ϵͳµ÷ÓÃÊÇÓ¦ÓóÌʽºÍ²Ù×÷ϵͳÄÚºËÖ®¼äµÄ¹¦Äܽӿڡ£ÆäÖ÷ҪĿµÄÊÇʹµÃÓû§
ÄÜʹÓòÙ×÷ϵͳÌṩµÄÓйØÉ豸¹ÜÀí¡¢ÊäÈë/ÊäÈëϵͳ¡¢ÎļþϵͳºÍ½ø³Ì¿ØÖÆ¡¢
ͨÐż°´æ´¢¹ÜÀíµÈ·½ÃæµÄ¹¦ÄÜ£¬¶ø²»±ØÁ˽âϵͳ³ÌʽµÄÄÚ²¿½á¹¹ºÍÓйØÓ²¼þϸ
½Ú£¬´Ó¶øÆðµ½¼õÇáÓû§¸ºµ£ºÍ±£»¤ÏµÍ³¼°Ìá¸ß×ÊÔ´ÀûÓÃÂʵÄ×÷Óá£
¡¡¡¡Linux²Ù×÷ϵͳ×÷ΪÃâ·ÑÈí¼þµÄ´ú±í£¬ËûÓÅÁ¼µÄÐÔÄÜʹµÃËûµÄÓ¦ÓÃÈÕÒæ¹ã·º£¬
²»½öµÃµ½×¨ÒµÈËÊ¿µÄ¿Ï¶¨£¬¶øÇÒÉÌÒµ»¯µÄÓ¦ÓÃÒ²ÊÇÈç»ðÈçݱ¡£ÔÚLinuxÖУ¬´ó²¿·Ö
µÄϵͳµ÷Óðüº¬ÔÚLinuxµÄlibc¿âÖУ¬Í¨¹ý±ê×¼µÄCº¯Êýµ÷Ó÷½·¨Äܵ÷ÓÃÕâЩϵͳ
µ÷Óá£ÄÇô£¬¶ÔLinuxµÄ·¢ÉÕÓÑÀ´Ëµ£¬ÔõôÔÚLinuxÖÐÔö¼ÓеÄϵͳµ÷ÓÃÄØ£¿
1 Linuxϵͳµ÷ÓûúÖÆ
¡¡¡¡ÔÚLinuxϵͳÖУ¬ÏµÍ³µ÷ÓÃÊÇ×÷ΪһÖÖÒì³£ÀàÐÍʵÏֵġ£Ëû½«Ö´ÐÐÏàÓ¦µÄ»úÆ÷
´úÂëÖ¸ÁîÀ´²úÉúÒì³£Ðźš£²úÉúÖжϻòÒì³£µÄÖØÒªÐ§¹ûÊÇϵͳ×Ô¶¯½«Óû§Ì¬×ª»»Îª
ºËÐÄ̬À´¶ÔËû½øÐд¦Àí¡£Õâ¾ÍÊÇ˵£¬Ö´ÐÐϵͳµ÷ÓÃÒì³£Ö¸Áîʱ£¬×Ô¶¯µØ½«ÏµÍ³×ª»»
ΪºËÐÄ̬£¬²¢°²ÅÅÒì³£´¦Àí³ÌʽµÄÖ´ÐС£
¡¡¡¡LinuxÓÃÀ´ÊµÏÖϵͳµ÷ÓÃÒì³£µÄʵ¼ÊÖ¸ÁîÊÇ£º
¡¡¡¡Int  $0x80
¡¡¡¡ÕâÒ»Ö¸ÁîʹÓÃÖжÏ/Òì³£ÏòÁ¿ºÅ128£¨¼´16½øÖƵÄ80£©½«¿ØÖÆÈ¨×ªÒƸøÄںˡ£Îª
´ïµ½ÔÚʹÓÃϵͳµ÷Óà ......
×î½üÔÚ°ÚŪlinux,·¢ÏÖËüÕæµÄ²»ÊÊÓÃÀ´Í棬ÓÃÀ´°ì¹«»¹ÊÇ¿ÉÒÔ¡¢×ö¸ß¼¶Ó¦ÓÃÒ²¿ÉÒÔ£¡
ÏÖÔÚÄÇЩÉÏÍø±¾µÄϵͳºÜ¶àlinux°æ£¬µ«ÔÚÖйú¾ø´ó²¿·Ö¶¼»á±»¸Éµô»»³Éwindows£¬ÎªÊ²Ã´£¿µÀÀíºÜ¼òµ¥£¬¾ø´ó¶àÊýÕâÑùµÄÓû§¶ÔµçÄÔ¼¼Êõ¶¼²»Ì«Ê죬¶øÇÒ¶¼Ï£ÍûÓÃÀ´ÉÏÍø¿´µçÓ°¡¢ÁÄÌ죬ÕâÕýºÃÊÇlinuxµÄ¶Ì°å£¡¿´¿´ÍøÉϳ£ÓõÄuusee¡¢pps¡¢pplive¶¼Ö»Ö§³Öwindows;»¹ÓÐQQ£¬linux°æµÄÎÞÓïÒôºÍÊÓÆµ£¬¶øÇÒÎȶ¨ÐÔÒ²²îµÈ£¬×ÀÃæÏµÍ³ÒªÈ¡´úwindows¶ÌÆÚÄÚÊǼþ²»¿ÉÄܵÄÊÂÇéÓ´£¡linux×ÀÃæ°æÔڰ칫ӦÓ÷½ÃæÌæ´úÊÇÓпÉÄܵ쬵«ÏÖÔ򵀮óÒµÖÐÓõÄERP´ó¶àÊÇwindows°æ±¾µÄ£¬ËùÒÔlinux×ÀÃæ°æÒª½øÈëÆóÒµ×ÀÃæ¶ÌÆÚÄÚÒ²ÊǼþ²»¿ÉÄܵÄʼþ£¡
ÓÃlinuxµÄ·þÎñÆ÷°æ±¾×öÊý¾Ý¿â·þÎñÆ÷¡¢Îļþ·þÎñÆ÷¡¢web·þÎñÆ÷¶¼¿ÉÒÔ£¬ËùÒÔ
ÄÄλÐֵܽãÃÃÏëѧlinux£¬Ö»ÒªÑ§ÈçºÎ°²×°¡¢Ð¶ÔØÈí¼þ£¬°²È«ÅäÖá¢ÐÔÄÜÓÅ»¯¡¢LAMP´î½¨¡¢oracle°²×°µÈ¾Í¿ÉÒÔÁË£¬ÆäËüµÄѧµÄÉÌÒµÒâÒå²»´ó£¡»¨Ì«¶àµÄʱ¼äÒ²µÃ²»µ½»Ø±¨£¡
......
http://www.ibm.com/developerworks/cn/linux/l-rcu/
º¯ÊýÕªÒª£º
C´úÂë
/*¶ÁÕßÔÚ¶ÁÈ¡ÓÉRCU±£»¤µÄ¹²ÏíÊý¾ÝʱʹÓøú¯Êý±ê¼ÇËü½øÈë¶Á¶ËÁÙ½çÇø¡£*/
rcu_read_lock()
/*
¸Ãº¯ÊýÓërcu_read_lockÅä¶ÔʹÓã¬ÓÃÒÔ±ê¼Ç¶ÁÕßÍ˳ö¶Á¶ËÁÙ½çÇø¡£¼ÐÔÚÕâÁ½¸öº¯ÊýÖ®¼äµÄ´úÂëÇø³ÆÎª"¶Á¶ËÁÙ½çÇø"(read-side critical section)¡£¶Á¶ËÁÙ½çÇø¿ÉÒÔǶÌ×£¬Èçͼ3£¬ÁÙ½çÇø2±»Ç¶Ì×ÔÚÁÙ½çÇø1ÄÚ¡£
*/
rcu_read_unlock()
/*
¸Ãº¯ÊýÓÉRCUд¶Ëµ÷Óã¬Ëü½«×èÈûдÕߣ¬Ö±µ½¾¹ýgrace periodºó£¬¼´ËùÓеĶÁÕßÒѾÍê³É¶Á¶ËÁÙ½çÇø£¬Ð´Õ߲ſÉÒÔ¼ÌÐøÏÂÒ»²½²Ù×÷¡£Èç¹ûÓжà¸öRCUд¶Ëµ÷Óøú¯Êý£¬ËûÃǽ«ÔÚÒ»¸ögrace periodÖ®ºóÈ«²¿±»»½ÐÑ¡£
*/
synchronize_rcu()
/*
º¯
Êý call_rcu Ò²ÓÉ RCU д¶Ëµ÷Óã¬Ëü²»»áʹдÕß×èÈû£¬Òò¶ø¿ÉÒÔÔÚÖжÏÉÏÏÂÎÄ»ò softirq ʹÓ㬶ø
synchronize_rcu¡¢synchronize_kernel ºÍsynchronize_shced
Ö»ÄÜÔÚ½ø³ÌÉÏÏÂÎÄʹÓ᣸ú¯Êý½«°Ñº¯Êý func ¹Ò½Óµ½ RCU»Øµ÷º¯ÊýÁ´ÉÏ£¬È»ºóÁ¢¼´·µ»Ø¡£Ò»µ©ËùÓÐµÄ CPU
¶¼ÒѾÍê³É¶ËÁÙ½çÇø²Ù×÷£¬¸Ãº¯Êý½«±»µ÷ÓÃÀ´ÊÍ·Åɾ³ýµ ......
[ת]Õâ¸öÌâÄ¿ºÜ´ó£¬¸øÈËÒ»ÖָоõÎÒºÃÏñºÜ³É¹¦£¬Æäʵ²»È»¡£Êµ¼ÊÉÏ×Ô¼ºË®Æ½²»¸ß£¬ÉõÖÁºÜµÍ£¬µ«ÊÇ×ö¹ýÁËһЩÇúÕÛµÄѧϰµÀ·£¬Í¬Ê±°Ñ×Ô¼ºÕæÊµµÄѧϰÀú³Ì±í´ï³öÀ´£¬Ï£Íû¶ÔºóÀ´ÕßÓÐ½è¼øµÄÒâÒ壬ÉõÐÒ£¡
¹¤×÷ÈýÄê¡¢¼¸³É·ÏÈË£¡
ÎÒ2000Äê±ÏÒµÓÚ»ªÖеØÇøµÄÒ»¸öÀí¹¤¿Æ´óѧ£¬×¨ÒµÊÇ»úеµç×Ó£¬ÎÒµ±Ê±ÒѾǩÁËÒ»¼ÒÄÚ½ij¸öÊ¡¼¶»ú¹Ø¹¤×÷£¬¼ÒÀï°Ë±²ÊÇÅ©Ãñ£¬²¢Ç񼆮«Ô¶£¬Äܹ»½øÈëÕâÑùµÄµØ
·½ÊÇ׿·ØÓзçË®¡£µ«ÔÚ±ÏҵǰϦÓиö½øÈëitµÄ»ú»á£¬ÎÒ±¾Ïë½øÈ¥µÄ£¬¼ÒÀïÈ˼«Á¦·´¶Ô£¬×èÁ¦¿ÉÏë¶øÖª¡£Í¬Ê±Òª½»4000ÔªµÄÎ¥Ô¼½ð£¬¶ÔÎÒÀ´ËµÊÇÌìÎÄÊý×Ö¡£´óѧ
ÀïµÄ·ÑÓúܶàÊǽèµÄ£¬¼¸ºõ½«½üÒ»°ëµÄ·ÑÓÃÊÇÔÚ´óѧÇÚ¹¤¼óѧÕõµÄ£¬ÎªÁËʡǮ£¬¸ßÖÐÒ»¸öѧÆÚ»Ø¼ÒÒ»´Î£¬´óѧһÄê»ØÈ¥Ò»´Î¡£²¢ÇÒÎÒ¸öÈËÒ²ÓÐÌØÊâµÄÈËÉú±³¾°£¨±¯¾°
¸üÈ·ÇУ©£¬ÕâÀï²»¶à˵ÁË£¬Ð´Ê®ÆªÒ²Ð´²»Í꣬ͬʱƫÀëÖ÷Ìâ¡£ÕâÑùÎҾͲμÓÁ˹¤×÷¡£Ò»Õű¨Ö½Ò»±²èµÄÈÕ×Ó£¬¼¸ºõϰàºóÓÐÖֺܿÕÐéºÍ¿Ö»ÅµÄ¸Ð¾õ¡£ÔÚ¹¤×÷ÖÐËäÈ»ÊÇ
Óë×Ô¼º×¨ÒµÓÐµã¹ØÏµ£¬µ«ÊǺÜÉÙ¡£×¨Òµ¼¸ºõ»Ä·Ï¡£ÎÒ×Ô¼ºÒ²Ë¼¿¼£¬Èç¹ûÔÙ²»³öÈ¥£¬×Ô¼º½«»á³É·ÏÈË£¬Ö»ºÃÈùú¼ÒÑøÁË¡£Á½Äêºó¾ö¶¨³öÈ¥£¬µ«ÊǼ¸³É·ÏÈË£¬Ë񻀯£¬Ö»
ºÃµ½Ñ§Ð£È¥¶Æ½ð¡£ÕâÊÇÖйú½ÌÓýºÍÉç»áµÄ±¯°§£¡
ÖÁÓÚרҵ¾Í¸ÄΪ¼ÆËã»ú·½Ã ......
1.#uname -a
Èç¹ûÓÐx86_64¾ÍÊÇ64λµÄ£¬Ã»ÓоÍÊÇ32λµÄ
2.# uname -m
x86_64
3.# arch
x86_64
4.#file /bin/cat
/bin/cat: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses shared libs), stripped
5.²é¿´cpuÊǶàÉÙλµÄ
more /proc/cpuinfo
ÔõÑù²é¿´ LINUXÊÇ32λ»¹ÊÇ64λ
$su - root
#file /sbin/init
/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
¼´ÊÇ32λµÄ linux, ÈçÊÇ64λµÄ, ÏÔʾµÄÊÇ 64-bit
6. getconf LONG_BIT ......
[תÌû]
Îļþϵͳ¸ÅÄî
Ò». ÎļþÓëĿ¼µÄ¶¨Òå
1. Îļþϵͳ£ºËüÊÇ´ÅÅÌÉÏÓÐÌØ¶¨¸ñʽµÄÒ»Æ¬ÇøÓò£¬²Ù×÷ϵͳͨ¹ýÎļþϵͳ¿ÉÒÔ·½±ãµØ²éѰºÍ·ÃÎÊÆäÖÐËù°üº¬µÄ´ÅÅ̿飻
2. Îļþ£ºÎļþϵͳÖд洢Êý¾ÝµÄÒ»¸öÃüÃûµÄ¶ÔÏó¡£
3. Ŀ¼£ºÆäÖаüº¬Ðí¶àÎļþÏîÄ¿µÄÒ»ÀàÌØÊâÎļþ¡£
4. ×ÓĿ¼£º±»°üº¬ÔÚÁíÒ»¸öĿ¼ÖеÄĿ¼¡£
5. ÎļþÃû£ºÓÃÀ´±êʶÎļþµÄ×Ö·û´®£¬Ëü±£´æÔÚÒ»¸öĿ¼ÎļþÏîÖС£
6. ·¾¶Ãû£ºÓÉбÏß×Ö·û£¨/£©½áºÏÔÚÒ»ÆðµÄÒ»¸ö»ò¶à¸öÎļþÃûµÄ¼¯ºÏ¡£
¶þ. Îļþ½á¹¹
1. ÎļþµÄ³É·Ý£ºÎÞÂÛÎļþÊÇÒ»¸ö³ÌÐò¡¢Ò»¸öÎĵµ¡¢Ò»¸öÊý¾Ý¿â£¬»òÕßÊÇÒ»¸öĿ¼£¬²Ù×÷ϵͳ¶¼»á¸³ÓèÎļþÏàͬµÄ½á¹¹£¬¾ßÌåÐÅÏ¢ÈçÏ£º
¢Ù Ë÷Òý½Úµã£ºÓÖ³Æ i ½Úµã¡£
¢Ú Êý¾Ý£ºÎļþµÄʵ¼ÊÄÚÈÝ¡£
2. ÃüÃûÎļþ£ºÎļþÃû±£´æÔÚĿ¼ÎļþÖС£
Ϊ·½±ã¹ÜÀíÎļþ£¬Ó¦×ñÑÒÔϹæÔò£º
¢Ù ÎļþÃûÓ¦Á¿¼òµ¥£¬²¢ÇÒÓ¦·´Ó³³öÎļþÄÚÈÝ¡£
¢Ú ³ýбÏߣ¨/£©ºÍ¿Õ×Ö·ûÒÔÍ⣬ÎļþÃû¿ÉÒÔ°üº¬ÈÎÒâµÄ ASCII ×Ö·û;
¢Û ϰ¹ßÉÏÔÊÐíʹÓÃÏÂÏß·û£¨_£©ºÍ¾äµã£¨.£©À´Çø±ðÎļþµÄÀàÐÍ£¬Ê¹ÎļþÃû¸üÒ×¶Á£»µ«ÊÇÓ¦±ÜÃâʹÓÃÒÔÏÂ×Ö·û£¬ÒòΪ¶ÔϵͳµÄ shell À´Ëµ£¬ËüÃÇÓÐÌØÊâµÄº¬Òå¡£ÕâЩ×Ö·ûÊÇ£º
£» | & ......