linuxµÄttyÉ豸
ÖÕ¶ËÊÇÒ»ÖÖ×Ö·ûÐÍÉ豸£¬ËüÓжàÖÖÀàÐÍ£¬Í¨³£Ê¹ÓÃttyÀ´¼ò³Æ¸÷ÖÖÀàÐ͵ÄÖÕ¶ËÉ豸¡£ttyÊÇTeletypeµÄËõд£¬TeletypeÊÇ×îÔç³öÏÖµÄÒ»ÖÖÖÕ¶ËÉ豸£¬ºÜÏóµç´«´ò×Ö»ú£¬ÊÇÓÉTeletype¹«Ë¾Éú²úµÄ¡£É豸Ãû·ÅÔÚÌØÊâÎļþĿ¼/dev/Ï£¬ÖÕ¶ËÌØÊâÉ豸ÎļþÒ»°ãÓÐÒÔϼ¸ÖÖ£º
1£¬´®Ðж˿ÚÖÕ¶Ë£¨/dev/ttySn£©£º´®Ðж˿ÚÖÕ¶Ë£¨Serial Port Terminal£©ÊÇʹÓüÆËã»ú´®Ðж˿ÚÁ¬½ÓµÄÖÕ¶ËÉ豸¡£¼ÆËã»ú°Ñÿ¸ö´®Ðж˿ڶ¼¿´×÷ÊÇÒ»¸ö×Ö·ûÉ豸£¬ÄÇʱËüµÄ×î´óÓÃ;¾ÍÊÇÓÃÀ´Á¬½ÓÖÕ¶Ë¡£ÕâЩ´®Ðж˿ÚËù¶ÔÓ¦µÄÉ豸Ãû³ÆÊÇ/dev/ttys0¡¢/dev/ttys1µÈ£¬É豸ºÅ·Ö±ðÊÇ£¨4,0£©¡¢£¨4,1£©µÈ£¬·Ö±ð¶ÔÓ¦ÓÚDOSϵͳϵÄCOM1¡¢COM2µÈ¡£ÈôÒªÏòÒ»¸ö¶Ë¿Ú·¢ËÍÊý¾Ý£¬¿ÉÒÔÔÚÃüÁîÐÐÉϰѱê×¼Êä³öÖØ¶¨Ïòµ½ÕâÐ©ÌØÊâÎļþÃûÉϼ´¿É¡£ÀýÈ磬ÔÚÃüÁîÐÐÌáʾ·ûϼüÈ룺echo test >/dev/ttys1»á°Ñµ¥´Ê”test”·¢Ë͵½Á¬½ÓÔÚttys1£¨COM2£©¶Ë¿ÚµÄÉ豸ÉÏ¡£
2£¬Î±ÖÕ¶Ë£¨/dev/pty/£©£ºÎ±ÖÕ¶Ë£¨Pseudo Terminal£©ÊdzɶԵÄÂß¼ÖÕ¶ËÉ豸£¬ÀýÈç/dev/ptyp3ºÍ/dev/ttyp3£¨»òÕßÔÚÉ豸ÎļþϵͳÖзֱðÊÇ/dev/pty/m3ºÍ/dev/pty/s3£©¡£ÓÃls -l /devʱ¿ÉÒÔ¿´µ½pty**ºÍtty**µÄÉ豸ÐòÁУ¬Ö÷É豸ºÅ²»Í¬Í⣬³É¶ÔµÄ´ËÉ豸ºÅÊÇÒ»Öµġ£ËüÃÇÓëʵ¼ÊÎïÀíÉ豸²¢²»Ö±½ÓÏà¹Ø£¬·ÃÎÊʱºÜÏóÊÇÂß¼É豸¶ÔÖ®¼äµÄ¹ÜµÀ²Ù×÷¡£
3£¬¿ØÖÆÖÕ¶Ë£¨/dev/tty£©£ºÈç¹ûµ±Ç°½ø³ÌÓпØÖÆÖÕ¶Ë£¨Controlling Terminal£©µÄ»°£¬ÄÇô/dev/tty¾ÍÊǵ±Ç°½ø³ÌµÄ¿ØÖÆÖն˵ÄÉè±¸ÌØÊâÎļþ¡£¶ÔÓÚÄãµÇ¼µÄshell£¬/dev/tty¾ÍÊÇÄãʹÓõÄÖÕ¶Ë£¬É豸ºÅÊÇ£¨5,0£©¡£
4£¬¿ØÖÆÌ¨ÖÕ¶Ë£¨/dev/ttyn, /dev/console£©£ºÔÚUNIXϵͳÖУ¬¼ÆËã»úÏÔʾÆ÷ͨ³£±»³ÆÎª¿ØÖÆÌ¨ÖÕ¶Ë£¨Console£©¡£Ëü·ÂÕæÁËÀàÐÍΪLinuxµÄÒ»ÖÖÖÕ¶Ë£¨TERM= Linux£©£¬²¢ÇÒÓÐһЩÉè±¸ÌØÊâÎļþÓëÖ®Ïà¹ØÁª£ºtty0¡¢tty1¡¢tty2µÈ¡£µ±ÄãÔÚ¿ØÖÆÌ¨ÉϵǼʱ£¬Ê¹ÓõÄÊÇtty1¡£tty1–tty6µÈ³ÆÎªÐéÄâÖÕ¶Ë£¬¶øtty0ÔòÊǵ±Ç°ËùʹÓÃÐéÄâÖն˵ÄÒ»¸ö±ðÃû£¬ÏµÍ³Ëù²úÉúµÄÐÅÏ¢»á·¢Ë͵½¸ÃÖÕ¶ËÉÏ¡£Òò´Ë²»¹Üµ±Ç°ÕýÔÚʹÓÃÄĸöÐéÄâÖÕ¶Ë£¬ÏµÍ³ÐÅÏ¢¶¼»á·¢Ë͵½¿ØÖÆÌ¨ÖÕ¶ËÉÏ¡£Äã¿ÉÒԵǼµ½²»Í¬µÄÐéÄâÖÕ¶ËÉÏÈ¥£¬Òò¶ø¿ÉÒÔÈÃϵͳͬʱÓм¸¸ö²»Í¬µÄ»á»°ÆÚ´æÔÚ¡£Ö»ÓÐϵͳ»ò³¬¼¶Óû§root¿ÉÒÔÏò/dev/tty0½øÐÐд²Ù×÷.
5£¬ÆäËüÀàÐÍ»¹Õë¶ÔºÜ¶à²»Í¬µÄ×Ö·ûÉ豸´æÔÚÓкܶàÆäËüÖÖÀàµÄÖÕ¶ËÉè±¸ÌØÊâÎļþ¡£ÀýÈçÕë¶ÔISDNÉ豸µÄ/dev/ttyInÖÕ¶ËÉ豸µÈ¡£ÕâÀï²»ÔÙ׸Êö¡£
±¾ÎÄÀ´×ÔCSDN²©¿Í£¬×ªÔØÇë±êÃ÷³ö´¦£ºhttp://blog.csdn.net/walter2001/archive/
Ïà¹ØÎĵµ£º
# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
......
ÔÚ½øÈëÕýÎÄǰÏÈ¿´Ò»ÏÂÎÒÔÚÍøÉÏ¿´µ½µÄÌû×Ó£º
ÎÊ£ºatomic_set(v,i)µÄ¶¨ÒåÊÇÕâÑùµÄ:
#define atomic_set(v,i) v->counter=i
µ«ÊÇ£¬ÔÚi386Ìåϵ½á¹¹ÖУ¬²»ÄÜÖ±½Ó°ÑÒ»¸öÄÚ´æ²Ù×÷Êýͨ¹ýÒ»ÌõmovÖ¸Áî´æµ½ÁíÒ»¸öÄÚ´æ²Ù×÷ÊýÖУ¬
±ÈÈçÒª°Ñint32ÀàÐ͵ıäÁ¿ i ÉèÖÃ³É j£¬±ØÐë¾¹ýÁ½ÌõÖ¸Áî:
mov eax,j
mov i,eax
Èç¹ûÕâÑùÀ ......
×îÔç½Ó´¥LinuxÄÚºËÊÇÔÚ´óÈýµÄʱºò£¬ÄÇʱ¡¶²Ù×÷ϵͳ¡·µÄ¿Î³ÌÉè¼Æ¾ÍÊǽøÐÐLinuxÄÚºËÔ´´úÂëµÄ·ÖÎöÓë½ø³Ìµ÷¶ÈµÄ¸Ä½ø¡£ÌâÄ¿ÊÇ´óµÄÓеãÏÅÈË£¬ÌØ
±ðÊǶÔÄÇʱһ¸öÉæ×ãδÉîµÄÄêÇáÈË¿´À´¡£²»¹ýÄÇʱ×öµÄÊÂÇéºÜ¼òµ¥£¬ÈÏÈÏÕæÕæµÄ¿´ÁË¡¶LinuxÄÚºËÔ´´úÂëÇé¾°·ÖÎö¡·µÄǰÑÔ²¿·Ö£¨Ö÷Òª½²µÄAT&T»ã
±àÓïÑÔ£¬ÄÚºËÖÐÒ»Ð©ÌØÊâµÄ±à³Ì¹æÔò£©£¬Ó ......
½ñÌì¿´µ½Ê¦ÐÖ¹¤Î»ÉÏÓб¾Linux Kernel In a Nutshell£¬»¹ÊÇȫӢµÄÓ°Ó¡°æ£¬ËùÒԾͽè¹ýÀ´¿´¿´£¬·¢ÏÖÏÖÔÚ¿´Ó¢ÎĵÄÊé½¥½¥ÊÊÓ¦ÁË£¬»¹ÊDZȽÏÈÝÒ׵ģ¬ÊéÖпªÊ¼½éÉÜÈçºÎ±àÒëLinuxÄںˣ¬LinuxÄں˴óÈýµÄʱºòҲѧ¹ý±àÒë¹ý£¬µ«Êǵ±Ê±±àÒë±È½Ï¼òµ¥£¬Õâ´Î¾ö¶¨ÔÙÖØÍ·µ½Î²ºÃºÃ±àÒëһϣ¬Ê×ÏÈÏÂÔØlinux kernel£¬ÔÙÓÃsecureCRTÉÏ´«µ½Ubuntu 8. ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
Ëùν“Ôıø”¾ÍÊǼìÔIJ¿¶ÓµÄÒâ˼¡£
Linux
´ó¾ü£¨·¢Ðа棩¿Éν“É¢±øÓÎÓ”£¬Ì¸ºÎ´óÔıø£¿´ËÑÔ²îÒÓ¡£
......