¡¶Essential Linux Device Drivers¡·ÖÐÎİæµÚ2ÕÂ
-Ëᦻª£¨Barry Song£©
ÔÚ¿ªÊ¼²½ÈëLinuxÉ豸Çý¶¯³ÌÐòµÄÉñÃØÊÀ½ç֮ǰ£¬ÈÃÎÒÃÇ´ÓÇý¶¯³ÌÐò¿ª·¢ÈËÔ±µÄ½Ç¶È¿´¼¸¸öÄں˹¹³ÉÒªËØ£¬ÊìϤһЩ»ù±¾µÄÄں˸ÅÄî¡£ÎÒÃǽ«Ñ§Ï°Äں˶¨Ê±Æ÷¡¢Í¬²½»úÖÆÒÔ¼°ÄÚ´æ·ÖÅä·½·¨¡£²»¹ý£¬ÎÒÃÇ»¹ÊǵôÓÍ·¿ªÊ¼Õâ´Î̽Ë÷Ö®Âá£Òò´Ë£¬±¾ÕÂÒªÏÈä¯ÀÀÒ»ÏÂÄں˷¢³öµÄÆô¶¯ÐÅÏ¢£¬È»ºóÔÙÖð¸ö½²½âһЩÓÐÒâ˼µÄµã¡£
2.1 Æô¶¯¹ý³Ì
ͼ2-1ÏÔʾÁË»ùÓÚx86¼ÆËã»úLinuxϵͳµÄÆô¶¯Ë³Ðò¡£µÚÒ»²½ÊÇBIOS´ÓÆô¶¯É豸Öе¼ÈëÖ÷Òýµ¼¼Ç¼£¨MBR£©£¬½ÓÏÂÀ´MBRÖеĴúÂë²é¿´·ÖÇø±í²¢´Ó»î¶¯·ÖÇø¶ÁÈ¡GRUB¡¢LILO»òSYSLINUXµÈÒýµ¼×°Èë³ÌÐò£¨Bootloader£©£¬Ö®ºóÒýµ¼×°Èë³ÌÐò»á¼ÓÔØÑ¹ËõºóµÄÄÚºËÓ³Ïñ²¢½«¿ØÖÆÈ¨´«µÝ¸øËü¡£ÄÚºËÈ¡µÃ¿ØÖÆÈ¨ºó£¬»á½«×ÔÉí½âѹËõ²¢Í¶ÈëÔËת¡£
»ùÓÚx86µÄ´¦ÀíÆ÷ÓÐÁ½ÖÖ²Ù×÷ģʽ£ºÊµÄ£Ê½ºÍ±£»¤Ä£Ê½¡£ÔÚʵģʽÏ£¬Óû§½ö¿ÉÒÔʹÓÃ1 MBÄڴ棬²¢ÇÒûÓÐÈκα£»¤¡£±£»¤Ä£Ê½Òª¸´Ôӵö࣬Óû§¿ÉÒÔʹÓøü¶àµÄ¸ß¼¶¹¦ÄÜ£¨Èç·ÖÒ³£©¡£CPU±ØÐëÖÐ;½«ÊµÄ£Ê½Çл»Îª±£»¤Ä£Ê½¡£µ«ÊÇ£¬ÕâÖÖÇл»Êǵ¥ÏòµÄ£¬¼´²»ÄÜ´Ó±£»¤Ä£Ê½ÔÙÇл»»ØÊµÄ£Ê½¡£
Äں˳õʼ»¯µÄµÚÒ»²½ÊÇÖ´ÐÐʵģʽϵĻã±à´úÂ룬֮ºóÖ´Ðб£»¤Ä£Ê½ÏÂinit/main.cÎļþ£¨ÉÏÒ»ÕÂÐ޸ĵÄÔ´Îļþ£©ÖеÄstart_kernel()º¯Êý¡£start_kernel()º¯ÊýÊ×ÏÈ»á³õʼ»¯CPU×Óϵͳ£¬Ö®ºóÈÃÄÚ´æºÍ½ø³Ì¹ÜÀíϵͳ¾Í룬½ÓÏÂÀ´Æô¶¯Íⲿ×ÜÏߺÍI/OÉ豸£¬×îºóÒ»²½ÊǼ¤»îinit½ø³Ì£¬ËüÊÇËùÓÐLinux½ø³ÌµÄ¸¸½ø³Ì¡£init½ø³ÌÖ´ÐÐÆô¶¯±ØÒªµÄÄں˷þÎñµÄÓû§¿Õ¼ä½Å±¾£¬²¢ÇÒ×îÖÕÅÉÉú¿ØÖÆÌ¨Öն˳ÌÐòÒÔ¼°ÏÔʾµÇ¼£¨login£©Ìáʾ¡£
x86±£»¤Ä£Ê½
arch/x86/boot/pm.c
x86ʵģʽ
Óû§½ø³ÌºÍÊØ»¤³ÌÐò
init½ø³Ì
±£»¤Ä£Ê½ÄÚºË
ʵģʽÄÚºË
Òýµ¼×°Èë³ÌÐò£¨GRUB/LILO/…£©
BIOS
Éϵç
ͼ2-1 »ùÓÚx86Ó²¼þÉϵÄLinuxµÄÆô¶¯¹ý³Ì
±¾½ÚÄÚµÄ3¼¶±êÌâ¶¼ÊÇͼ2-2ÖеÄÒ»Ìõ´òÓ¡ÐÅÏ¢£¬ÕâЩÐÅÏ¢À´Ô´ÓÚ»ùÓÚx86µÄ±Ê¼Ç±¾µçÄÔµÄLinuxÆô¶¯¹ý³Ì¡£Èç¹ûÔÚÆäËûÌåϵ¼Ü¹¹ÉÏÆô¶¯Äںˣ¬ÏûÏ¢ÒÔ¼°ÓïÒå¿ÉÄÜ»áÓÐËù²»Í¬¡£Èç¹û¸Ð¾õ±¾½ÚÖеÄһЩÄÚÈݷdz£»Þɬ£¬Çë²»Òªµ£ÐÄ¡£µ±Ç°µÄÄ¿µÄ½öÊÇÈÃÄãÓÐÒ»¸ö´ó¸ÅµÄÓ¡Ïó£¬ÈÃÄãÏÈÆ·³¢ÄÚºËÌðµãµÄζµÀ¡£½ÓÏÂÀ´ÒªÌáµ½µÄÐí¶à¸ÅÄî¶¼»áÔÚÒÔºóµÄÕ½ÚÖнøÐиüÉîÈëµÄÂÛÊö¡£
2.1.1 BIOS-provided physical RAM map
Äں˻á½âÎö´ÓBIOSÖжÁÈ¡µ½µÄϵͳÄÚ´æÓ³É䣬²¢ÂÊÏȽ«ÒÔÏÂÐÅÏ¢´òÓ¡³öÀ´£º
BIOS-provided physical RA
Ïà¹ØÎĵµ£º
2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......
°²×°Tomcat6.0ºÍJDK1.6
ÔÚlinuxϵͳÉϰ²×°tomcatºÍjdkÓ¦¸Ã˵ÊÇÎÒѧϰlinux֪ʶµÄµÚÒ»¿ÎÁË£¬Ö®Ç°Ö»
ÊÇÌý˵¹ý£¬´Óû½Ó´¥¹ý£¬µ«ÎÒÃǹ«Ë¾ÏîÄ¿¶¼ÊDz¿ÊðÔÚlinuxϵͳÉϵģ¬ÄÇÌìÉÏ˾ͻ
È»¸øÎÒ·¢Á˼¸¸öÎĵµ£¬ÈÃÎÒ¿´Ò»Ï£¬È»ºóÔÚÕýʽµÄ·þÎñÆ÷ÉÏ£¬°²×°jdkºÍtomcat£¬Ò»¿ªÊ¼Óеã¶ù»Å£¬ÏÈÔÚ±¾»ú×°Á˸öÐéÄâ»ú£¬·´¸´ÃþË÷²âÊÔÁ˼¸±é£¬Óöµ ......
ÔÚfork()/execve()¹ý³ÌÖУ¬¼ÙÉè×Ó½ø³Ì½áÊøÊ±¸¸½ø³ÌÈÔ´æÔÚ£¬¶ø¸¸½ø³Ìfork()֮ǰ¼Èû°²×°SIGCHLDÐźŴ¦Àíº¯Êýµ÷ÓÃwaitpid()µÈ´ý×Ó½ø³Ì½áÊø£¬ÓÖûÓÐÏÔʽºöÂÔ¸ÃÐźţ¬Ôò×Ó½ø³Ì³ÉΪ½©Ê¬½ø³Ì£¬ÎÞ·¨Õý³£½áÊø£¬´Ëʱ¼´Ê¹ÊÇrootÉí·Ýkill-9Ò²²»ÄÜɱËÀ½©Ê¬½ø³Ì¡£²¹¾È°ì·¨ÊÇɱËÀ½©Ê¬½ø³ÌµÄ¸¸½ø³Ì(½©Ê¬½ø³ÌµÄ¸¸½ø³Ì±ØÈ»´æÔÚ)£¬½©Ê¬½ø³Ì³ÉÎ ......
¡¡1.1¡¢ÓÃrootÓû§µÇ¼£¬½øÈëÖÕ¶ËÃüÁîģʽ£»
¡¡¡¡1.2¡¢¿ªÆôftp·þÎñ¡£
¡¡¡¡cd /etc/xinetd.d £¬±à¼ftp·þÎñµÄÅäÖÃÎļþgssftpµÄÉèÖãº
¡¡¡¡¿ªÆôftp·þÎñÉèÖÃ.
¡¡¡¡vi gssftp £¬½« ÐÞ¸ÄÁ½ÏîÄÚÈÝ£º
¡¡¡¡£¨1£©server_args = -l –a È¥µô-a ¸ÄΪserver_args = -l
¡¡¡¡£¨2£©disable=yes¸ÄΪdisable=no
¡¡¡¡£¨3£©±£´æÍ˳ ......
# cd /home/tmp (½øÈëѹËõ°üËùÔÚĿ¼)
# groupadd mysql (½¨Á¢mysql×é)
# useradd -g mysql mysql (ÔÚmysql×éÖн¨Á¢mysqlÓû§)
# tar -zxvf mysql-5.0.37.tar.gz (½âѹmysqlÔ´Âë,bz2ѹËõ°üÇëÓÓtar -jvxf ÎļþÃû”Ö¸Áî)
# cd mysql-5.0.37 (½øÈë½âѹĿ¼)
# ./configure --prefix=/usr/local/mysql (p ......