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() ³ö×Ó½
Ïà¹ØÎĵµ£º
¶ÔÓÚÒ»¸öÎļþÀ´Ëµ£¬ÓÐΨһµÄË÷Òý½ÓµãÓëÖ®¶ÔÓ¦£¬¶ø¶ÔÓÚÒ»¸öË÷Òý½ÓµãºÅ£¬È´¿ÉÒÔÓжà¸öÎļþÃûÓëÖ®¶ÔÓ¦¡£Òò´Ë£¬ÔÚ´ÅÅÌÉϵÄͬһ¸öÎļþ¿ÉÒÔͨ¹ý²»Í¬µÄ·¾¶È¥·ÃÎÊ
¸ÃÎļþ¡£
¡¡¡¡£±.Á¬½ÓÓÐÈíÁ¬½ÓºÍÓ²Á¬½Ó(hard link)Ö®·ÖµÄ£¬ÈíÁ¬½Ó(symbolic
link)ÓֽзûºÅÁ¬½Ó¡£·ûºÅÁ¬½ÓÏ൱ÓÚWindowsϵĿì½Ý·½Ê½¡£
ÈíÁ´½Óʵ¼ÊÉÏÖ»ÊÇÒ»¶ÎÎÄ× ......
Linux·¢Ðа汾֮¼äµÄ²î±ðÆäʵºÜÉÙ£¬²î±ðÖ÷Òª±íÏÖÔÚϵͳ¹ÜÀíµÄÌØÉ«¹¤¾ßÒÔ¼°Èí¼þ°ü¹ÜÀí·½Ê½µÄ²»Í¬£¬³ý´ËÖ®Í⣬ûÓÐʲô´óµÄ²î±ð£» ±ÈÈçFedoraÈí¼þ°ü¹ÜÀí¹¤¾ßÊÇrpm£¬¶øSlackwareÊÇpkgtool »òinstallpkgµÈ£»
ÑÔ¹éÕý´«£¬ÎÒÃǽÓ×Å˵Îļþϵͳ×éÖ¯½á¹¹¡£
/ LinuxÎļþϵͳµÄÈë¿Ú£¬Ò²ÊÇ´¦ÓÚ×î¸ßÒ»¼¶µÄĿ¼£»
/bin »ù´¡ÏµÍ³ËùÐèÒªµ ......
½«¿ÉÒƶ¯É豸Á¬Èëϵͳʱ£¬ÏµÍ³µÄºǫ́ÖлáÒÀ´Î·¢ÉúÈçÏÂʼþ£º
l Äں˼ì²âµ½ÐÂÓ²¼þ²åÈ룬Ȼºó·Ö±ð֪ͨhotplugºÍudev¡£Ç°ÕßÓÃÀ´×°ÈëÏàÓ¦µÄÄÚºËÄ£¿é(Èçusb-storage)£¬¶øºóÕßÓÃÀ´ÔÚ/devÖд´½¨ÏàÓ¦µÄÉ豸½Úµã(Èç/dev/sda1)¡£
l udev´´½¨ÁËÏàÓ¦µÄÉ豸½ÚµãÖ®ºó£¬»á½«ÕâÒ»ÏûϢ֪ͨhalµÄÊØ»¤³ÌÐò(hald)¡£µ±È»udev»¹µÃ±£Ö¤Ð ......
http://www.ixpub.net/619016.html
tarÃüÁî
[root@linux ~]# tar [-cxtzjvfpPN] Îļþ
ÓëĿ¼ ....
²ÎÊý£º
-c £º½¨Á¢Ò»¸öѹËõÎļþµÄ²ÎÊýÖ¸Áî(create µÄÒâ˼)£»
-x £º½â¿ªÒ»¸öѹËõÎļþµÄ²ÎÊýÖ¸Á
-t £º²é¿´ tarfile ÀïÃæµÄÎļþ£¡
Ìرð×¢Ò⣬ÔÚ²ÎÊýµÄÏ´ïÖУ¬ c/x/t ½öÄÜ´æÔÚÒ»¸ö£¡²»¿Éͬʱ´æÔÚ£¡
ÒòΪ²»¿ÉÄÜÍ¬Ê ......
o: ±àÒëµÄÄ¿±êÎļþ
a: ¾²Ì¬¿â£¬Æäʵ¾ÍÊÇ°ÑÈô¸ÉoÎļþ´òÁ˸ö°ü
so: ¶¯Ì¬Á´½Ó¿â£¨¹²Ïí¿â£©
lo: ʹÓÃlibtool±àÒë³öµÄÄ¿±êÎļþ£¬Æäʵ¾ÍÊÇÔÚoÎļþÖÐÌí¼ÓÁËһЩÐÅÏ¢
la: ʹÓÃlibtool±àÒë³öµÄ¿âÎļþ£¬ÆäʵÊǸöÎı¾Îļþ£¬¼Ç¼ͬÃû¶¯Ì¬¿âºÍ¾²Ì¬¿âµÄÏà¹ØÐÅÏ¢
1 libtoolµÄ¹¤×÷ÔÀí
libtool ÊÇÒ»¸öͨÓÿâÖ§³Ö½Å±¾£¬½«Ê¹Óà ......