Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÏÂtty¡¢consule¡¢´®¿ÚÖ®¼äµÄ¹ØÏµÊÕ¼¯

 1¡¢LINUXÏÂTTY¡¢CONSOLE¡¢´®¿ÚÖ®¼äÊÇÔõÑùµÄ²ã´Î¹ØÏµ£¿¾ßÌåµÄº¯Êý½Ó¿ÚÊÇÔõÑùµÄ£¿´®¿ÚÊÇÈçºÎ±»µ÷Óõģ¿
      ttyºÍconsoleÕâЩ¸ÅÄîÖ÷ÒªÊÇһЩÐéÄâÉ豸µÄ¸ÅÄ¶ø´®¿Ú¸ü¶àµÄÊÇÖ¸Ò»¸öÕæÕýµÄÉ豸Çý¶¯¡£Ttyʵ¼ÊÊÇÒ»ÀàÖÕ¶ËI/OÉ豸µÄ³éÏó£¬Ëüʵ¼ÊÉϸü¶àµÄÊÇÒ»¸ö¹ÜÀíµÄ¸ÅÄĿµÄÊÇÏòÉϲãµÄVFSÌṩһ¸öͳһµÄ½Ó¿Ú¡£Í¨¹ýfile_operations½á¹¹ÖеÄtty_ioctl¿ÉÒÔ¶ÔÆä½øÐÐÅäÖᣲétty_driver£¬Ä㽫µÃµ½n¸ö½á¹û£¬Êµ¼Ê¶¼ÊÇÏà¹ØÐ¾Æ¬µÄÇý¶¯¡£Òò´Ë£¬¿ÉÒԵõ½µÄ½áÂÛÊÇ£ºÃ¿¸öÃèÊöttyÉ豸µÄtty_structÔÚ³õʼ»¯Ê±±ØÈ»¹Ò½ÓÁËij¸ö¾ßÌåоƬµÄ×Ö·ûÉ豸Çý¶¯£¨²»Ò»¶¨ÊÇ×Ö·ûÉ豸£©£¬¿ÉÒÔÊǺܶ࣬°üÀ¨ÏÔ¿¨»ò´®¿Úchip¡£
      ¶øconsoleÊÇÒ»¸ö»º³åµÄ¸ÅÄËüµÄÄ¿µÄÓÐÒ»µãÀàËÆÓÚtty¡£Êµ¼ÊÉÏconsole²»½öºÍttyÁ¬ÔÚÒ»Æð£¬»¹ºÍframebufferÁ¬ÔÚÒ»Æð£¬¾ßÌåµÄÔ­Òò¿´ÏÂÃæµÄ¼üÅ̵ÄÖжϴ¦Àí¹ý³Ì¡£TtyµÄÒ»¸ö×Ó¼¯ÐèҪʹÓÃconsole(µäÐ͵ÄÈçÖ÷É豸ºÅ4£¬´ÎÉ豸ºÅ1¨D64)£¬µ«ÊÇҪעÒâµÄÊÇûÓÐconsoleµÄttyÊÇ´æÔڵġ£¶ø´®¿ÚÔòÖ¸µÄÊÇtty_driver¡£ ¾Ù¸öµäÐ͵ÄÀý×Ó£¬·ÖÎöһϼüÅ̵ÄÖжϴ¦Àí¹ý³Ì£º
keyboard_interrupt¨D>handle_kbd_event¨D>handle_keyboard_event¨D>handle_scancode
void handle_scancode(unsigned char scancode, int down)
{
     ……..
     tty = ttytab? ttytab[fg_console]: NULL;
     if (tty && (!tty->driver_data)) {
         ……………
         tty = NULL; 
     }
     ………….
     schedule_console_callback();

Õâ¶Î´úÂëÖеÄÁ½¸öµØ·½ºÜÖµµÃ×¢Ò⣬Ҳ¾ÍÊdzýÁË»ñµÃttyÍ⣨ͨ¹ýÈ«¾ÖÁ¿tty¼Ç¼£©£¬»¹½øÐÐÁËconsole»ØÏÔschedule_console_callback¡£TtyºÍconsoleµÄ¹ØÏµÔÚ´ËÒѾ­ºÜÃ÷ÁË£¡£¡£¡
2¡¢printkº¯ÊýÊǰÑÐÅÏ¢·¢Ë͵½¿ØÖÆÌ¨Éϰɣ¿ÈçºÎÈÃPRINTK°ÑÐÅϢͨ¹ý´®¿ÚËͳö£¿»òÕß˵ϵͳÔÚʲôµØ·½À´¾ö¶¨Êǽ«ÐÅÏ¢Ë͵½ÏÔʾÆ÷»¹ÊÇ´®¿Ú£¿ ¾ßÌå¿´Ò»ÏÂprintkº¯ÊýµÄʵÏÖ¾ÍÖªµÀÁË£¬printk²»Ò»¶¨Êǽ«ÐÅÏ¢Íù¿ØÖÆÌ¨ÉÏÊä³ö£¬ÉèÖÃkernelµÄÆô¶¯²ÎÊý¿ÉÄÜ¿ÉÒÔ´ïµ½½«ÐÅÏ¢Ë͵½ÏÔʾÆ÷µÄ


Ïà¹ØÎĵµ£º

LinuxµÄ´óÔıø






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
        Ëùν“Ôıø”¾ÍÊǼìÔIJ¿¶ÓµÄÒâ˼¡£
Linux
´ó¾ü£¨·¢Ðа棩¿Éν“É¢±øÓÎÓ”£¬Ì¸ºÎ´óÔıø£¿´ËÑÔ²îÒÓ¡£
 
   ......

Linux É豸Çý¶¯³ÌÐò½ø½×£¨0£©

ºÜ¾ÃûÓÐд¼¼Êõ²©ÎÄÁË£¬´ÓÕâÀ↑ʼÎÒµÄÑо¿ÉúÉúÑÄ£¬×ªÑÛ¾ÍÒªÔÚÖ°³¡ÉÏÑø¼Òºý¿Ú£¬Éú»îÕæµÄ²»ÈÝÒ×£¬ÐҺû¹Óм¼ÊõÏà°éΪÎé¡£
ÓÉÓÚ¹¤×÷µÄ¹ØÏµ£¬ÖÕÓÚ½Ó´¥µ½linuxÍøÂçºÍkernelµÄ±à³Ì£¬×ÜÌåÀ´Ëµ×ÜÊÇÒ»¸öºÃµÄÆõ»ú¡£ÈÃÎÒÄܹ»ÉîÈë²Ù×÷ϵͳÄںˡ£×ö¹ýÒ»¶Îʱ¼äµÄÓû§³ÌÐòµÄ¿ª·¢£¬×ÜÊÇÔÚWindowsƽ̨ÉÏ£¬ÖÕÓÚÓлú»áÔÚlinuxÉÏ×öµã¶«Î÷£¬»¹Ê ......

ǶÈëʽLinuxÎļþϵͳ¼°Æä´æ´¢»úÖÆ·ÖÎö

     ǶÈëʽϵͳÓëͨÓÃPC»ú²»Í¬£¬Ò»°ãûÓÐÓ²ÅÌÕâÑùµÄ´æ´¢É豸¶øÊÇʹÓÃFlashÉÁ´æÐ¾Æ¬¡¢Ð¡ÐÍÉÁ´æ¿¨µÈרΪǶÈëʽϵͳÉè¼ÆµÄ´æ´¢×°Ö㬱¾ÎÄ·ÖÎöÁËǶÈëʽϵͳÖг£ÓõĴ洢É豸¼°Æä¹ÜÀí»úÖÆ£¬½éÉÜÁ˳£ÓõĻùÓÚFLASHµÄÎļþϵͳÀàÐÍ¡£
1£®Ç¶Èëʽϵͳ´æ´¢É豸¼°Æä¹ÜÀí»úÖÆ·ÖÎö
¡¡¡¡¹¹½¨ÊÊÓÃÓÚǶÈëʽϵͳµÄLi ......

LinuxÖÐselectº¯Êýѧϰ¼°ÊµÀý±Ê¼Ç

UnixÖеĺ¯ÊýselectºÍpollÓÃÀ´£¬Ö§³ÖUnixÖÐI/O¸´ÓõŦÄÜ£¬ÔÚUnixÖÐI/OÄ£ÐÍ¿ÉÒÔ·ÖΪÒÔÒ»¼¸ÖÖ£º
£¨1£©×èÈûI/O
£¨2£©·Ç×èÈûI/O
£¨3£©I/O¸´Óã¨selectºÍpoll£©
£¨4£©ÐźÅÇý¶¯I/O(SIGIO)
£¨5£©Òì²½I/O
   ÆäÖУ¬ÏÖÔڱȽÏÁ÷ÐеÄI/OÄ£ÐÍÊÇ×èÈûI/OÄ£ÐÍ.×èÈûI/OÊǵ±Ó¦ÓóÌÐòºÍÄں˽»»»Êý¾Ýʱ£¬ÓÉÓÚÄں˻¹Ã»ÓÐ×¼±¸ºÃ ......

LINUX ´íÎó´úÂë errno

ÏÂÃæÕâ¸öÀý×ÓÁгöÁËËùÓÐϵͳ¶¨ÒåµÄ´íÎó´úÂë¼°´íÎóÃèÊö
Ô´´úÂëÊÇ£º
/************¹ØÓÚ±¾Îĵµ********************************************
*filename: strerror.c
*purpose: ÁгöÁËϵͳ¶¨ÒåµÄËùÓдíÎó´úÂë¼°ÃèÊö
*wrote by: zhoulifa(zhoulifa@163.com) ÖÜÁ¢·¢(http://zhoulifa.bokee.com)
Linux°®ºÃÕß Linux֪ʶ´«²¥ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ