LinuxÉ豸ģÐÍÖ®ttyÇý¶¯¼Ü¹¹·ÖÎö
LinuxÉ豸ģÐÍÖ®ttyÇý¶¯¼Ü¹¹·ÖÎö
À´Ô´: ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º 2008.07.25 16:24¡¡(¹²ÓÐ0ÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
------------------------------------------
±¾ÎÄϵ±¾Õ¾Ô´´,»¶Ó×ªÔØ!
×ªÔØÇë×¢Ã÷³ö´¦:http://ericxiao.cublog.cn/
------------------------------------------
Ò»£ºÇ°ÑÔ
TtyÕâ¸öÃû³ÆÔ´Óڵ紫´ò×ֽڵļò³Æ¡£ÔÚlinux±íʾ¸÷ÖÖÖÕ¶Ë¡£ÖÕ¶Ëͨ³£¶¼¸úÓ²¼þÏà¶ÔÓ¦¡£±ÈÈç¶ÔÓ¦ÓÚÊäÈëÉ豸¼üÅÌÊó±ê¡£Êä³öÉ豸ÏÔʾÆ÷µÄ¿ØÖÆÖն˺ʹ®¿ÚÖÕ¶Ë.Ò²ÓжÔÓ¦ÓÚ²»´æÔÚÉ豸µÄptyÇý¶¯¡£ÔÚÈç´ËÖÚ¶àµÄÖÕ¶ËÄ£ÐÍÖ®ÖУ¬linuxÊÇÔõô½«ËüÃÇͳһ½¨Ä£µÄÄØ?Õâ¾ÍÊÇÎÒÃǽñÌìÒªÌÖÂÛµÄÎÊÌâ.
¶þ£ºttyÇý¶¯¸Åò
Tty¼Ü¹¹ÈçÏÂËùʾ£º
ÈçÉÏͼËùʾ,Óû§¿Õ¼äÖ÷ÒªÊÇͨ¹ýÉ豸Îļþͬtty_core½»»¥.tty_core¸ù¾ÝÓÿռä²Ù×÷µÄÀàÐÍÔÙÑ¡Ôñ¸úline disciplineºÍtty_driver½»»¥.ÀýÈçÉèÖÃÓ²¼þµÄioctlÖ¸Áî¾ÍÖ±½Ó½»¸øtty_driver´¦Àí¡£ReadºÍwrite²Ù×÷¾Í»á½»¸øline discipline´¦Àí.
Line disciplineÊÇÏß·¹æ³ÌµÄÒâ˼¡£ÕýÈçËüµÄÃû×ÖÒ»Ñù£¬Ëü±íʾµÄÊÇÕâÌõÖÕ¶Ë”Ï߳̔µÄÊäÈëÓëÊä³ö¹æ·¶ÉèÖÃ.Ö÷ÒªÓÃÀ´½øÐÐÊäÈë/Êä³öÊý¾ÝµÄÔ¤´¦Àí¡£´¦ÀíÖ®ºó¡£¾Í»á½«Êý¾Ý½»¸øtty_driver
Tty_driver¾ÍÊÇÖն˶ÔÓ¦µÄÇý¶¯ÁË¡£Ëü½«×Ö·ûת»»³ÉÖÕ¶Ë¿ÉÒÔÀí½âµÄ×Ö´®.½«Æä´«¸øÖÕ¶ËÉ豸¡£
ÖµµÃ×¢ÒâµÄÊÇ,Õâ¸ö¼Ü¹¹Ã»ÓÐΪtty_driveroÌṩread²Ù×÷¡£Ò²¾ÍÊÇ˵tty_core ºÍline discipline¶¼Ã»Óа취´Ótty_driverÀïÖ±½Ó¶ÁÖÕ¶ËÐÅÏ¢¡£ÕâÊÇÒòΪtty_driver¶Ô¾ÍµÄhardware²¢²»Ò»¶¨ÊÇÊäÈëÊý¾ÝºÍÊä³öÊý¾ÝµÄ¹²Í¬¸ºÔØÕß¡£ÀýÈç¿ØÖÆÖÕ¶Ë£¬Êä³öÉ豸ÊÇÏÔʾÆ÷¡£ÊäÈëÉ豸ÊǼüÅÌ¡£»ùÓÚÕâÑùµÄÔÀí¡£ÔÚline disciplineÖÐÓÐÒ»¸öÊäÈ뻺´æÇø¡£²¢ÌṩÁËÒ»¸öÃû½Ðreceive_buf()µÄ½Ó¿Úº¯Êý¡£¶ÔÓ¦µÄÖÕ¶ËÉ豸ֻҪµ÷ÓÃline discipineµÄreceiver_bufº¯Êý£¬½«Êý¾ÝдÈëµ½ÊäÈ뻺´æÇø¾Í¿ÉÒÔÁË¡£
Èç¹ûÒ»¸öÉ豸ͬʱÊÇÊäÈëÉ豸ÓÖÊÇÊä³öÉ豸¡£ÄÇÔÚÉ豸µÄÖжϴ¦ÀíÖе÷ÓÃreceive_buf()½«Êý¾ÝдÈë¼´¿É.
Èý£ºttyÇý¶¯½Ó¿Ú·ÖÎö
¾ßÌåµÄttyÇý¶¯Éè¼Æ¿ÉÒԲο¼LDD3¡£ÕâÀïÖ»¶ÔËüµÄ½Ó¿ÚʵÏÖ×öÒ»¸ö·ÖÎö.tty driverµÄËùÓвÙ×÷¶¼°üº¬ÔÚtty_driverÖС£Äں˼´¹©ÁËÒ»¸öÃû½Ðalloc_tty_driver()À´·ÖÅäÕâ¸ötty_driver¡£µ±È»ÎÒÃÇÒ²¿ÉÒÔÔÚ×Ô¼ºµÄÇý¶¯Öн«Ëü¶¨Òå³ÉÒ»¸ö¾²Ì¬µÄ½á¹¹¡£¶Ôtty_driver½øÐÐһЩ±ØÒªµÄ³õʼ»¯Ö®ºó£¬µ÷ÓÃtty_register_driver()½«Æä×¢²á.
alloc_tty_driver()½Ó¿Ú´úÂëÈçÏÂËùʾ£º
struct tty_driver *alloc_tty_driver(int lines)
{
&
Ïà¹ØÎĵµ£º
ʵÏÖÒ»¸öÁ´±í£¬Íê³ÉÁ´±íµÄ²åÈ룬²éÕÒ£¬É¾³ý
typedef struct _FIFO_M{
void *pdata;
struct _FIFO_M *pNext;
}FIFO_M,* pFIFO_M;
typedef struct _FIFO{
pFIFO_M head;
pFIFO_M tail;
pFIFO_M pos;
int mcount;//½Úµã¸öÊý
int max_count;//½Úµã×î´ó¸öÊý¡£
}FIFO,* pFIFO;
......
¡¡¡¡linuxÖеÄCronÃüÁîÊÇLinuxµÄÄÚÖ÷þÎñ£¬µ«Ëü²»×Ô¶¯ÆðÀ´£¬¿ÉÒÔÓÃÒÔÏµķ½·¨Æô¶¯¡¢¹Ø±ÕÕâ¸ö·þÎñ£º
¡¡¡¡/sbin/service crond start //Æô¶¯·þÎñ
¡¡¡¡/sbin/service crond stop //¹Ø±Õ·þÎñ
¡¡¡¡/sbin/service crond restart //ÖØÆô·þÎñ
¡¡¡¡/sbin/service crond reload //ÖØÐÂÔØÈëÅäÖÃ
¡¡¡¡ÄãÒ²¿ÉÒÔ½«Õâ¸ö·þÎñÔÚϵͳÆô ......
ÕâÁ½ÌìÔÚ¹¹½¨Ò»¸öÓ¦ÓõÄʹÓÃÓõ½ÁËmaven,ÓÉÓÚprojectºÜ´ó,×ã×ãÓÐ700¶à¸öpom.xmlÎļþ,¸üÓôÃÆµÄÊÇÔںܶàpom.xmlÎļþÀï¶¼µ¥¶ÀÖ¸¶¨ÁË×ÊÔ´¿âµÄurl,ÎÒÐèÒª°ÑÕâЩ×ÊÔ´¿âµÄurlͳһָ¶¨µ½nexus±¾µØÖÐÑë¿â.
ÊÖ¹¤Ò»¸ö¸ö¸ÄÎļþÅäÖÃÓе㲻̫ʵ¼Ê,ËùÒÔgoogleÁËÒ»ÏÂ,ÕÒµ½ÅúÁ¿Ìæ»»ÎļþÄÚÈݵĺ÷½·¨,ÃüÁî½á¹¹ÈçÏÂ:
find -name 'Òª²éÕÒµÄÎ ......
ÎÊÌâÃèÊö£º
µ±linuxÆô¶¯µ½sendmail·þÎñʱ£¬ÎÞ·¨Õý³£½øÈëϵͳ
½â¾öÎÊÌ⣺
1¡¢²¢²»ÊÇÎÞ·¨½øÈ¥£¬¶øÊÇÕâÒ»¸ö·þÎñÆô¶¯µÄÌØ±ðÂý£¬ËùÒÔ¾´ÇëµÈ´ý
2¡¢ÈçÆô¶¯Ê±²»ÏëµÈ´ý£¬OK£¬Äǵ±ÎÒÃǽøÈëÒԺ󣬹صôsendmail·þÎñ£º ......
USBÊÇ´ó¼Ò³£¼ûµÄ£¬É豸×ÜÏß¡£ Õâ¸öUSB·ÖΪÁ½¸ö²¿·Ö£ºÖ÷»ú£¬É豸¡£ ËûÊÇÒ»¸öÊ÷ÐεĹØÏµ£º Ö÷»ú
É豸 É豸 É豸 Ö÷»úÀï×°µÄÊÇ£¬Ö÷»ú¿ØÖÆÆ÷£¬É豸ÖÐ×°µÄÊÇÉ豸¿ØÖÆÆ÷ Host Controller ......