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

linux ÐÂÔöϵͳµ÷ÓÃ


´ËÎÄÓÚ2010-02-26±»ÍƼöµ½CSDNÊ×Ò³
ÈçºÎ±»ÍƼö£¿
×î½üÔÚÑо¿ Linux
Äں˵Äʱ¼ä×Óϵͳ£¬ÎªÏÂһƪ³¤ÎÄ¡¶·þÎñÆ÷³ÌÐòÖеÄÈÕÆÚÓëʱ¼ä¡·×ö×¼±¸£¬ÎÞÒâÖÐ×¢Òâµ½ÁË Linux
ÐÂÔöµÄ¼¸¸öϵͳµ÷ÓõĶԱàд·þÎñÆ÷´úÂëµÄÓ°Ï죬ÏÈ´óּǼÔÚÕâÀï¡£ÕâÆª²©¿ÍÒ²¿ÉËã×÷ǰһƪ¡¶¶àÏß
³Ì·þÎñÆ÷µÄ³£Óñà³ÌÄ£ÐÍ¡·
µÄÒ»¸ö×¢½Å¡£
< type="text/javascript">
1. ·þÎñÆ÷³ÌÐòµÄ·ç¸ñ¿ÉÄÜÔÚ±ä
еĴ´½¨ÎļþÃèÊö·ûµÄ
syscall Ò»°ã¶¼Ö§³Ö¶îÍâµÄ flags ²ÎÊý£¬¿ÉÒÔÖ±½ÓÖ¸¶¨ O_NONBLOCK ºÍ FD_CLOEXEC£¬ÀýÈ磺
accept4 – 2.6.28
eventfd2 – 2.6.27
inotify_init1
– 2.6.27
pipe2 – 2.6.27
signalfd4 – 2.6.27
timerfd_create 2.6.25
ÒÔÉÏ 6 ¸ö
syscalls£¬³ýÁË×îºóÒ»¸öÊÇй¦ÄÜ£¬ÆäÓàµÄ¶¼ÊÇÔöǿԭÓеĵ÷Ó㬰ÑÊý×ÖβºÅÈ¥µô¾ÍÊÇÔ­À´µÄ syscall¡£
O_NONBLOCK
µÄ¹¦ÄÜÊÇ¿ªÆô“·Ç×èÈûIO”£¬¶øÎļþÃèÊö·ûĬÈÏÊÇ×èÈûµÄ¡£
ÕâЩ´´½¨ÎļþÃèÊö·ûµÄϵͳµ÷ÓÃÄÜÖ±½ÓÉ趨 O_NONBLOCK
Ñ¡Ï»òÐíÄÜ·´Ó³µ±Ç° Linux £¨·þÎñ¶Ë£©¿ª·¢µÄ·çÏò£¬ÄǾÍÊÇÎÒÔÚǰһƪ²©¿Í¡¶¶àÏß
³Ì·þÎñÆ÷µÄ³£Óñà³ÌÄ£ÐÍ¡·
ÀïÍÆ¼öµÄ one loop per thread + (non-blocking IO with IO
multiplexing)¡£´ÓÕâЩÄں˸͝À´¿´£¬non-blocking IO ÒѾ­Ö÷Á÷µ½ÈÃÄÚºËÔö¼Ó syscall ÒÔ½Úʡһ´Î
fcntl(2) µ÷Óõij̶ÈÁË¡£
ÁíÍ⣬ÒÔÏÂÐÂϵͳµ÷ÓÿÉÒÔÔÚ´´½¨ÎļþÃèÊö·ûʱ¿ªÆô FD_CLOEXEC Ñ¡Ï
dup3 – 2.6.27
epoll_create1 – 2.6.27
FD_CLOEXEC
µÄ¹¦ÄÜÊÇÈóÌÐò fork() ʱ£¬×Ó½ø³Ì»á×Ô¶¯¹Ø±ÕÕâ¸öÎļþÃèÊö·û
£¨¼ûÏÂÃæµÄ¸üÕý
£©¡£
¶øÎļþÃèÊöĬÈÏÊDZ»×Ó½ø³Ì¼Ì³ÐµÄ£¨ÕâÊÇ´«Í³ Unix µÄÒ»ÖÖµäÐÍ IPC£¬±ÈÈçÓà pipe(2) ÔÚ¸¸×Ó½ø³Ì¼äµ¥ÏòͨÐÅ£©¡£
ÒÔÉÏ 8
¸öРsyscalls ¶¼ÔÊÐíÖ±½ÓÖ¸¶¨ FD_CLOEXEC£¬»òÐí˵Ã÷ fork() µÄÖ÷ҪĿµÄÒѾ­²»ÔÙÊÇ´´½¨ worker process
²¢Í¨¹ý¹²ÏíµÄÎļþÃèÊö·ûºÍ¸¸½ø³Ì±£³ÖͨÐÅ£¬¶øÊÇÏñ Windows µÄ CreateProcess ÄÇÑù´´½¨“¸É¾»”µÄ½ø³Ì£¬ÆäÓ븸½ø³ÌûÓжàÉٹϸð¡£
ÒÔÉÏÁ½¸ö flags ÔÚÎÒ¿´À´£¬ËµÃ÷ Linux ·þÎñÆ÷¿ª·¢µÄÖ÷Á÷Ä£ÐÍÕýÔÚÓÉ fork() + worker processes
Ä£ÐÍת±äΪÎÒǰÎÄÍÆ¼öµÄ¶àÏß³ÌÄ£ÐÍ¡£fork() µÄʹÓÃÆµ¶È»á´ó´ó½µµÍ£¬½«À´»òÐíÖ»ÓÐרߺÔðÆô¶¯±ðµÄ½ø³ÌµÄ“¿´ÃŹ·³ÌÐò”²Å»áµ÷ÓÃ
fork()£¬¶øÒ»°ãµÄ·þÎñÆ÷³ÌÐò£¨´Ë´¦“·þÎñÆ÷³ÌÐò”µÄ¶¨Òå¼ûÎÒǰһƪÎÄÕ£©²»»áÔÙ fork() ³ö×Ó½


Ïà¹ØÎĵµ£º

Linux kernel ѧϰ±Ê¼Ç£¨1£© ·Ö¶Î·ÖÒ³±£»¤»úÖÆ

ʹÓÃ80x86´¦ÀíÆ÷½øÐÐÑ°Ö·Ê±Ç£Éæµ½ÈýÖÖ²»Í¬µÄµØÖ·£¬Æä¹ØÏµÈçÏÂËùʾ
Âß¼­µØÖ·------------------->ÏßÐÔµØÖ·-------------------------->ÎïÀíµØÖ·
                 £¨·Ö¶Î£©          ......

LinuxÄÚºËÉý¼¶µÄ»ù±¾²½Öè

Ò»¡¢±¾´ÎÄں˱àÒëÐÂÄÚºËËùÉæ¼°Èí¼þ°æ±¾
 
“gcc –version”¿É²éѰGCC°æ±¾------4.3.2 20081105£¨Red Hat 4.3.2-7£©
“make –v”¿É²éѯ Gnu make°æ±¾-----3.81
“ld –V£¨v£©¿É²éѯGNU ld°æ±¾-----2.18.50.0.9-7¡£f c10 20080822
“fdformat --version”ÃüÁî ......

Linux´ÓÔ´Âë°²×°subversionÓöµ½ÎÊÌâ¼°½â¾ö

LinuxÔ´Âë°²×°Subversion
ÏÈ´ÓsubversionµÄ¹Ù·½ÍøÕ¾ÏÂÔØÔ´Â룬subversion.apache.org
½âѹ¿ªµ½subversion-xxx È»ºóconfigure
È»ºóÒ»°ã¾ÍÊÇÕÒ²»µ½Ä³Ä³¿âµÄ´íÎó£¬ÒÔÏÂ˵Ã÷
1.ÕÒ²»µ½sqlite3
  ´ÓsqliteÍøÕ¾ÉÏÏÂÔØsqlite3µÄÔ´Â룬Ȼºó°Ñsqlite3.c¿½±´µ½ subversion-xxx/sqlite-amalgamation/sqlite3.c
2.ÕÒ²»µ½apr
......

LinuxÉ豸ģÐÍÖ®input×ÓϵͳÏê½â(¶þ)

;           break; 
         } 
  
         if (type != EV_SYN) 
            &nbs ......

Linux Input Device ½é紹: APIs


Linux Input Device ½é紹: APIs
jollen 發±íì¶ April 8, 2009 12:18 PM
Linux µÄ Input Device ÊÇÖØÒªµÄÒ»個 subsystem£¬ÔÚ進ÐÐ實Àý½é紹ǰ£¬ÏÈ´óÂÔÁ˽âÒ»ÏÂÏà關µÄ API¡£
Linux Input Device
input.cÊÇLinuxµÄ”input”驅動³Ìʽ£¬Ö÷ÒªÖ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ