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

Linux Kernelѧϰ±Ê¼Ç

Linux Kernelѧϰ±Ê¼Ç
Table of Contents
1. ´æ´¢Æ÷Ѱַ
2. É豸Çý¶¯³ÌÐò¿ª·¢
3. ×Ö·ûÉ豸Çý¶¯³ÌÐò
3.1. É豸ºÅ
3.2. É豸ºÅµÄ·ÖÅäºÍÊÍ·Å
3.3. ÖØÒªµÄÊý¾Ý½á¹¹
3.4. ¶ÁºÍд
4. PCIÉ豸
5. Äں˳õʼ»¯ÓÅ»¯ºê
6. ·ÃÎÊÄں˲ÎÊýµÄ½Ó¿Ú
7. Äں˳õʼ»¯Ñ¡Ïî
8. ÄÚºËÄ£¿é±à³Ì
8.1. ÈëÃÅ
8.2. Ϊģ¿éÌí¼ÓÃèÊöÐÅÏ¢
8.3. ÄÚºËÄ£¿é´¦ÀíÃüÁî½éÉÜ
9. ÍøÂç×Óϵͳ
9.1. sk_buff½á¹¹
9.2. sk_buff½á¹¹²Ù×÷º¯Êý
9.3. net_device½á¹¹
9.4. ÍøÂçÉ豸³õʼ»¯
9.5. ÍøÂçÉ豸ÓëÄں˵ŵͨ·½Ê½
9.6. ÍøÂçÉ豸²Ù×÷²ãµÄ³õʼ»¯
9.7. ÄÚºËÄ£¿é¼ÓÔØÆ÷
9.8. ÐéÄâÉ豸
9.9. 8139too.cÔ´Âë·ÖÎö
9.10. ÄÚºËÍøÂçÊý¾ÝÁ÷
10. ±¸Íü¼
Chapter 1. ´æ´¢Æ÷Ѱַ
ÔÚ80x86΢´¦ÀíÆ÷ÖУ¬ÓÐÈýÖÖ´æ´¢Æ÷µØÖ·£º
·   Âß¼­µØÖ·£¨logical address£©£¬°üº¬ÔÚ»úÆ÷ÓïÑÔÖ¸ÁîÖÐÓÃÀ´Ö¸¶¨Ò»¸ö²Ù×÷Êý»òÒ»ÌõÖ¸ÁîµÄµØÖ·¡£Ã¿¸öÂß¼­µØÖ·¶¼ÓÉÒ»¸ö¶Î£¨segment£©ºÍÒ»¸öÆ«ÒÆÁ¿£¨offset£©×é³É¡£Æ«ÒÆÁ¿Ö¸Ã÷Á˴ӶεĿªÊ¼µ½Êµ¼ÊµØÖ·Ö®¼äµÄ¾àÀë¡£
·   ÏßÐÔµØÖ·£¨linear address£©£¨Ò²³ÆÎªÐéÄâµØÖ·£¬virtual address£©£¬ËüÊÇÒ»¸ö32λÎÞ·ûºÅÕûÊý£¬¿ÉÓÃÒÔ±í´ï¸ß´ï4GµÄµØÖ·£¨2µÄ32´Î·½£©¡£Í¨³£ÒÔÊ®Áù½øÖÆÊý±íʾ£¬ÖµµÄ·¶Î§´Ó0X00000000µ½0Xffffffff¡£
·   ÎïÀíµØÖ·£¨physical address£©£¬ÓÃÓÚ´æ´¢Æ÷оƬ¼¶´æ´¢µ¥ÔªÑ°Ö·£¬ËüÃÇÓë´Ó΢´¦ÀíÆ÷µÄµØÖ·Òý½Å·¢Ë͵½´æ´¢Æ÷×ÜÏßÉϵĵçÐźÅÏà¶ÔÓ¦¡£ÎïÀíµØÖ·ÓÉ32λÎÞ·ûºÅÕûÊý±íʾ¡£
CPU¿ØÖƵ¥ÔªÍ¨¹ýÒ»ÖÖ³ÆÎª·Ö¶Îµ¥Ôª£¨segmentation unit£©µÄÓ²¼þµç·°ÑÒ»¸öÂß¼­µØÖ·×ª»»³ÉÏßÐÔµØÖ·;ÏßÐÔµØÖ·ÓÖͨ¹ýÒ»¸ö·ÖÒ³µ¥Ôª£¨paging unit£©µÄÓ²¼þµç·°ÑÒ»¸öÏßÐÔµØÖ·×ª»»³ÉÎïÀíµØÖ·¡£
Âß¼­µØÖ·ÓÉÁ½²¿·Ý×é³É£¬Ò»¸ö¶Î±êʶ·ûºÍÒ»¸öÖ¸¶¨¶ÎÓÉÏà¶ÔµØÖ·µÄÆ«ÒÆÁ¿¡£¶Î±êʶ·ûÊÇÒ»¸ö16볤µÄ×ֶΣ¬³ÆÎª¶ÎÑ¡Ôñ·û£¨segment selector£©£¬Æ«ÒÆÁ¿ÊÇÒ»¸ö32볤µÄ×ֶΡ£
´¦ÀíÆ÷ÌṩרÃŵĶμĴæÆ÷ÒÔ¿ìËÙ´¦Àí¶ÎÑ¡Ôñ·û£¬¶Î¼Ä´æÆ÷µÄΨһĿµÄ¾ÍÊÇ´æ·Å¶ÎÑ¡Ôñ·û¡£¹²ÓÐ6¸ö¶Î¼Ä´æÆ÷£¬·Ö±ðÊÇcs¡¢ss¡¢ds¡¢es¡¢fsºÍgs¡£ÆäÖÐcs¡¢ss¡¢ds¼Ä´æÆ÷ÓÐרÃŵÄÓÃ;¡£
·   csÊÇ´úÂë¶Î¼Ä´æÆ÷£¬Ö¸Ïò°üº¬³ÌÐòÖ¸ÁîµÄ¶Î¡£
·   ssÊÇÕ»¼Ä´æÆ÷£¬Ö¸Ïò°üº¬µ±Ç°³ÌÐòÕ»µÄ¶Î¡£
·   dsÊÇÊý¾Ý¶Î¼Ä´æÆ÷£¬Ö¸Ïò°üº¬¾²Ì¬Êý¾Ý»òÕßÍⲿÊý¾ÝµÄ¶Î¡£
cs¼Ä´æÆ÷ÓÐÒ»¸öÖØÒª¹¦ÄÜ£¬Ëü°üº¬ÓÐÒ»¸öÁ½Î»µÄ×Ö


Ïà¹ØÎĵµ£º

LinuxϵͳÐÅÏ¢²é¿´ÃüÁî´óÈ«

ϵͳ
# uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
# hostname # ²é¿´¼ÆËã»úÃû
# lspci -tv # ÁгöËùÓÐPCIÉ豸
# lsusb -tv # ÁгöËùÓÐUSBÉ豸
# lsmod # Áгö¼ÓÔØµÄÄÚºËÄ£¿é
# env # ²é¿´»·¾³±äÁ¿
×ÊÔ´
# free -m # ²é¿´ÄÚ´æÊ¹ÓÃÁ¿ºÍ ......

BoostÏÂÔØ°²×°±àÒëÅäÖÃʹÓÃÖ¸ÄÏ£¨º¬WindowsºÍLinux£©

ÀíÂÛÉÏ£¬±¾ÎÄÊÊÓÃÓÚboostµÄ¸÷¸ö°æ±¾£¬ÓÈÆäÊÇ×îа汾1.39.0£»ÊÊÓÃÓÚ¸÷ÖÖC++±àÒëÆ÷£¬ÈçVC6.0£¨²¿·Ö¿â²»Ö§³Ö£©£¬VS2003£¬VS2005£¬VS2008£¬gcc£¬C++ BuilderµÈ¡£ÏÈ×ܽáÒ»ÏÂWindowsϵͳ¡£
Ò»¡¢ÏÂÔØ
Ê×ÏÈ´Óboost¹Ù·½Ö÷Ò³http://www.boost.org/ÏÂÔØ×îаæboost°²×°°ü£¨Ä¿Ç°×îаæÊÇ1.39.0£©¡£ÒòΪboostÒ»²¿·ÖÀàÊÇÐèÒª±àÒë³É¿â²Å ......

±¾È˳£ÓõĻù´¡ linuxÃüÁî

  Ò» »ù±¾µÄÎļþ²Ù×÷¼°ÏµÍ³²Ù×÷
н¨Ä¿Â¼                              mkdir –Ŀ¼Ãû
½«¹¤×÷Ŀ¼¸Ä±äµ½Dir        ......

֨װwindowsºó»Ö¸´linuxÒýµ¼

ǰ¼¸Ìì֨װÁËwindowsϵͳ£¬µ¼ÖÂÒÔǰ°²×°µÄLinux½ø²»È¥ÁË£¬ÎÞ·¨½øÈëLinux£¬Óò»ÏëÖØÐ°²×°Linux£¬ÄÇÑùÌ«·ÑÊÂÁË£¬ÔÚÍøÉÏËÑË÷ÁËһϣ¬ÕÒµ½»Ö¸´LinuxÒýµ¼µÄ·½·¨£¬¾­ÊµÑ飬֨ÐÂÒýµ¼½øÈëÔ­À´µÄLinuxϵͳ£¬Ôڴ˼òµ¥¼Ç¼һÏ£º
  Ê×ÏÈ£¬ÏÂÔØÒ»¸öGrub4dos£¬½âѹµ½CÅ̸ùĿ¼Ï£¬°ÑÀïÃæµÄgrldr¸´ÖƵ½¸ùĿ¼Ï£¬ÐÞ¸Äboot.iniÎļþ£ ......

linuxÏÂmysql5°²×°ÈÕÖ¾

step 1)ÏÂÔØÔ´´úÂë°üµ½±¾µØLinuxÖ÷»ú£¬È»ºó½âѹËõ£¬½øÈë¸ÃĿ¼£¬½øÐÐÅäÖ㬱àÒëºÍ°²×°
ÏÂÔØmysql5Ô´Âëmysql-5.0.18.tar.gzµ½Ä¿Â¼/usr/local
cd /usr/local
tar xzvf mysql-5.0.18.tar.gz
cd mysql-5.0.18
./configure --prefix=/usr/local/mysql
make && make install
make¹ý³Ì»¨µÄʱ¼ä±È½Ï³¤
step 2)ÅäÖÃ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ