Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB
ÈÈÃűêÇ©£º c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 ×îÐÂÎÄÕ : linux

¡¶Essential Linux Device Drivers¡·ÖÐÎÄ°æµÚ1ÕÂ




-Ëᦻª(Barry Song)
Linux¾ßÓÐÓÕÈ˵Ä÷ÈÁ¦£¬ËüÊÇÒ»¸öÓÉÈ«ÊÀ½ç²»Í¬Ãñ×å¡¢²»Í¬ÐÅÑö¡¢²»Í¬ÐÔ±ðµÄÈ˹²Í¬²ÎÓëºÍЭ×÷µÄ¹ú¼ÊÐÔÏîÄ¿¡£LinuxÃâ·ÑÌṩԴ´úÂ룬²¢ÇÒ¾ßÓÐÓëUnixÀàËƵÄΪÈËÃÇËùÊìϤµÄÓ¦ÓóÌÐò±à³Ì»·¾³£¬ÕâÒ»ÇÐÔì¾ÍÁËËü½ñÌìµÄ¾Þ´ó³É¹¦¡£Í¨¹ý»¥ÁªÍø´Óר¼Ò´¦¼´Ê±»ñµÃµÄ¸ßÖÊÁ¿µÄÃâ·ÑÖ§³ÖÒ²·¢»ÓÁËÖØÒª×÷Óã¬Ëü´Ù³ÉÁËÒ»¸öÅÓ´óµÄLinuxÉçÇø¡£
ÔÚ¼¼Êõ·½Ã棬¿ª·¢ÈËÔ±¿ÉÒÔ»ñµÃËùÓÐÔ´Â룬²¢Óɴ˵óöһЩ´´Ð·½°¸£¬ËûÃÇÒò´Ë¸Ðµ½ÎÞ±ÈÕñ·Ü¡£Æ©È磬Äã¿ÉÒÔÐ޸ģ¨hack£©[¢Ù]
LinuxµÄÔ´Â룬²¢×ö¶¨ÖÆ£¬ÈÃÉ豸ÔÚ¼¸ÃëÖÓÖ®ÄÚÆô¶¯£¬¶øʹÓÃÒ»¸öÓÐרÀûµÄÉÌÒµ²Ù×÷ϵͳÔòºÜÄÑÍê³ÉÕâÑùµÄ׳¾Ù¡£
1.1
Ñݽø
1991Ä꣬һλÃûΪLinus TorvaldsµÄ·ÒÀ¼´óѧÉú¿ª·¢ÁËLinux²Ù×÷ϵͳ¡£Æð³õÕâÖ»ÊÇËû¸öÈ˵İ®ºÃ£¬µ«ËüºÜ¿ì¾Í·¢Õ¹³ÉΪÔÚÈ«ÊÀ½ç·¶Î§ÄÚ¹ãÊÜ»¶Ó­µÄÏȽøµÄ²Ù×÷ϵͳ¡£LinuxµÚÒ»´Î·¢²¼Ê±½öÖ§³ÖIntel 386´¦ÀíÆ÷£¬µ«ÊǺóÀ´£¬ËüµÄÄں˸´ÔÓÐÔÖð²½Ôö¼Ó£¬¿ÉÒÔÖ§³ÖÖÚ¶àµÄÌåϵ¼Ü¹¹¡¢¶à´¦ÀíÆ÷Ó²¼þºÍ¸ßÐÔÄܼ¯Èº¡£LinuxËùÖ§³ÖµÄÌåϵ½á¹¹·Ç³£¶à£¬Ö÷ÒªÖ§³ÖµÄһЩӲ¼þ¼Ü¹¹ÊÇx86¡¢IA64¡¢ARM¡¢PowerPC¡¢Alpha¡¢s390¡¢MIPSºÍSPARC¡£LinuxÒѾ­±»ÒÆÖ²µ½³ÉǧÉÏÍòµÄ»ùÓÚÕâЩ´¦ÀíÆ÷µÄÓ²¼þƽ̨֮ÉÏ¡£Óë´Ëͬ ......

¡¶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()º¯ÊýÊ× ......

Linux c Êý¾ÝÀàÐÍ

µ±LinuxÄÚºËÔÚÌåϵ½á¹¹²îÒì½Ï´óµÄƽ̨֮¼äÒÆֲʱ£¬»á²úÉúÓëÊý¾ÝÀàÐÍÏà¹ØµÄÎÊÌâ¡£
.ÔÚ±àÒëÄÚºËʱʹÓà -Wall  -W strict-prototypes Ñ¡Ïî, ¿ÉÒÔ±ÜÃâºÜ¶à´íÎóµÄ·¢Éú
.ÄÚºËʹÓõĻù±¾Êý¾ÝÀàÐÍÖ÷ÒªÓÐ:
     int           ±ê×¼CÓïÑÔÕûÊýÀàÐÍ
     u32         32λÕûÊýÀàÐÍ
     pid_t       Ìض¨Äں˶ÔÏópidµÄÀàÐÍ
.ÔÚ²»Í¬µÄCPUÌåϵ½á¹¹ÉÏ£¬CÓïÑÔµÄÊý¾ÝÀàÐÍËùÕ¼¿Õ¼ä²»Ò»Ñù¡£
 
arch 
char 
 short
int 
long 
ptr 
long-long 
u8 
u16 
u32 
u64 
i686


 4
 4
 4



4

i386 

2
4
4
4
8
1
2
4
8
alpha 

2
4
8
8
8
1
2
4
8
armv41 
1
2
4
4
4
8
1
2
4
8
 ia64
1
2
4
8
8
8
1
2
4
8
 m68k ......

Linux c Êý¾ÝÀàÐÍ

µ±LinuxÄÚºËÔÚÌåϵ½á¹¹²îÒì½Ï´óµÄƽ̨֮¼äÒÆֲʱ£¬»á²úÉúÓëÊý¾ÝÀàÐÍÏà¹ØµÄÎÊÌâ¡£
.ÔÚ±àÒëÄÚºËʱʹÓà -Wall  -W strict-prototypes Ñ¡Ïî, ¿ÉÒÔ±ÜÃâºÜ¶à´íÎóµÄ·¢Éú
.ÄÚºËʹÓõĻù±¾Êý¾ÝÀàÐÍÖ÷ÒªÓÐ:
     int           ±ê×¼CÓïÑÔÕûÊýÀàÐÍ
     u32         32λÕûÊýÀàÐÍ
     pid_t       Ìض¨Äں˶ÔÏópidµÄÀàÐÍ
.ÔÚ²»Í¬µÄCPUÌåϵ½á¹¹ÉÏ£¬CÓïÑÔµÄÊý¾ÝÀàÐÍËùÕ¼¿Õ¼ä²»Ò»Ñù¡£
 
arch 
char 
 short
int 
long 
ptr 
long-long 
u8 
u16 
u32 
u64 
i686


 4
 4
 4



4

i386 

2
4
4
4
8
1
2
4
8
alpha 

2
4
8
8
8
1
2
4
8
armv41 
1
2
4
4
4
8
1
2
4
8
 ia64
1
2
4
8
8
8
1
2
4
8
 m68k ......

½â¾övmwareÉÏclone linuxÐéÄâ»úºó eth0²»´æÔÚµÄÎÊÌâ

ÎÄÕÂ×÷ÕߣºSlyar ÎÄÕÂÀ´Ô´£ºSlyar Home (www.slyar.com) תÔØÇë×¢Ã÷£¬Ð»Ð»ºÏ×÷¡£
¸øÅ®ÅóÓѸ´ÖÆÁËÒ»·ÝÎÒÅäÖúõÄUbuntu Server Vmware vmdk£¬ÔÚËýµçÄÔÉÏÓÃÕâ¿éÐéÄâÓ²ÅÌн¨³öµÄUbuntuÒ²ÄÜÓã¬Î¨Ò»ÓÐÎÊÌâµÄ¾ÍÊÇÕÒ²»µ½Íø¿¨ÁË£¬Ìáʾ"No such device eth0"...
½â¾ö¹ý³Ì²»Ð´ÁË£¬·´ÕýºÄµôÁËÎҺü¸¸öСʱ...
Ô­ÒòÊÇVmware±£´æµÄÓ²¼þÅäÖÃÎļþ*.vmxÀï¼Ç¼ÁËÍø¿¨µÄMACµØÖ·£¬¶øUbuntuÒ²»á¼Ç¼MACµØÖ·£¬ÕâÑùÔÚ¿Ë¡ÐéÄâ»úµÄʱºò£¬Vmware»áΪUbuntu·ÖÅäÒ»¸öеÄeth0Íø¿¨£¬µ«ÊÇÓÉÓÚ±»Ö®Ç°µÄeth0Õ¼Óã¬ËùÒÔËü»á±ä³Éeth1¡£ÔÙÒòΪeth0ÊÇĬÈϵÄÍø¿¨£¬ÏÔÈ»Õâ¸öÍø¿¨²»´æÔÚ£¬ËùÒÔ¾ÍÌáʾ"No such device eth0"..
Ubuntu±£´æMACµØÖ·µÄÅäÖÃÎļþΪ"/etc/udev/rules.d/70-persistent-net.rules"£¬ÎÒ×°µÄÊÇ9.10°æ±¾£¬8.04ÒÔºóµÄ°æ±¾Ó¦¸Ã¶¼ÊÇÕâ¸ö½â¾ö·½·¨:
·½·¨1:Ö±½Óɾ³ýÅäÖÃÎļþ
Ö±½Óɾ³ýÅäÖÃÎļþ£¬ÖØÆôÖ®ºóUbuntu¾Í»áÕÒµ½ÐµÄÍø¿¨ÁË¡£
sudo rm /etc/udev/rules.d/70-persistent-net.rules
·½·¨2:ÐÞÕýÅäÖÃÎļþ
ÐÞ¸ÄÅäÖÃÎļþ£¬½«Ô­±¾µÄeth0ɾ³ý£¬È»ºóÐÞ¸Äeth1µÄNAME="erh1"ΪNAME="eth0"£¬ÖØÆôÖ®ºóUbuntu¾Í»áʹÓÃеÄÅäÖÃÎļþÉèÖÃÍø¿¨ÁË¡£
ÐÞ¸ÄÇ°µÄ /etc/udev/rules.d/70-persistent-net.rules Ïñ ......

LinuxÎļþϵͳµÄÌåϵ½á¹¹

Ò»¡¢Ó²ÅÌ·ÖÇøÓëÎļþϵͳ
1) ͨ³£ÔÚÄõ½Ò»¿éеÄÓ²ÅÌʱ£¬»á½«Ó²ÅÌ·Ö¸î³É¼¸¸ö²»Í¬µÄ·ÖÇø(partition)
2) ·ÖºÃ·ÖÇøºó£¬Òª°ÑÕâЩ·ÖÇø¸ñʽ»¯(Format)³ÉÌض¨µÄÎļþϵͳ¸ñʽ(File System Format)£¬²ÅÄܹ»ÓÃÀ´´¢´æÎļþ¡£¸ñʽ»¯¾ÍÊÇ°Ñ·ÖÇøÇиî³ÉÒ»¸ö¸öСµ¥Î»(³ÆΪblock)£¬²¢ÇÒblockÒÀÐò±àºÅ¡£blockÊÇ´¢´æÎļþÄÚÈݵÄ×îСµ¥Î»¡£ÔÚÔ¤ÉèÇé¿öÏ£¬Ò»¸öblockµÄ´óСΪ4K£¬Ò»¸öblock×î¶àÖ»ÄÜÓÃÀ´´¢´æÒ»¸öÎļþ¡£
¶þ¡¢LinuxÎļþϵͳµÄÌåϵ½á¹¹
1) ´Óͼ2.1¿ÉÒÔ¿´³ö£¬Kernel¶ÔÉÏ(Óû§¿Õ¼äµÄÓ¦ÓóÌÐò)ÌṩͳһµÄϵͳµ÷ÓÃ(System Call)×÷Ϊ½Ó¿Ú£¬¶ÔÏÂ(ÎïÀí´æ´¢É豸)ʹÓÃÉ豸Çý¶¯½øÐдæÈ¡Êý¾Ý¡£¶øϵͳµ÷ÓúÍÉ豸Çý¶¯Ö®¼ä¾ÍÊÇÎļþϵͳ¡£
                                                               ͼ2.1  LinuxÎļþϵͳÌåϵ½á¹¹
2) LinuxʹÓÃÐéÄâÎļþϵͳ(Virtual File ......

LinuxºÍWindows XPÖ®¼äʹÓÃFTP»¥´«Îļþ

ÎÒÊÇÓÃÐéÄâ»ú×°ÁËLinux£¬ÕæʵϵͳÊÇWindows XP£¬ÔÚWindows XPÏÂÓÃServ-uÈí¼þ¼ÜÉèÁËFTP·þÎñÆ÷£¬È»ºóÎÒÃǾͿÉÒÔÔÚÐéÄâ»úµÄLinuxϵǼ¸ÃFTP·þÎñÆ÷ÏÂÔØ»òÉÏ´«ÎļþÁË£¬²»Í¬µÄ½öÊÇÔÚLinuxÏÂÊÇÔÚÃüÁîÐÐÀïÊäÈëÏà¹ØFTPÃüÁîÀ´Íê³ÉµÄ£¬Ó¦¸ÃÒ²ÓÐÏñFlashFXP¡¢CuteFTPÕâÒ»ÀàµÄLinuxרÓÃÈí¼þ£¬²»¹ýÎҹª¹ÑÎÅ£¬²»Á˽⣬Ҳ¾Í²»ÎóÈË×ÓµÜÁË¡£
¡¡¡¡¼òµ¥½éÉÜÒ»ÏÂLinuxϵÄFTPÃüÁ
¡¡¡¡1¡¢Á¬½ÓFTP·þÎñÆ÷
¡¡¡¡¸ñʽ£ºftp hostname»òip-address
¡¡¡¡a)ÔÚlinuxÃüÁîÐÐÏÂÊäÈë¼ÜÉè·þÎñÆ÷µÄ»úÆ÷IP»òÕßÖ÷»úÃû£ºftp 10.60.48.195
¡¡¡¡b)·þÎñÆ÷ѯÎÊÄãÓû§ÃûºÍÃÜÂ룬·Ö±ðÊäÈëÒԺ󣬴ýÈÏ֤ͨ¹ý¼´¿É¡£×¢Ò⣺ÊäÈëÃÜÂëʱ£¬ÖÕ¶ËÖв»ÏÔʾÊäÈ룬ʼÖÕһƬ¿Õ°×£¬ËùÒÔÖ»ÒªÄãÈ·¶¨ÊäÈëÕýÈ·ÁË£¬°´»Ø³µ¾ÍÐÐ
¡¡¡¡2¡¢ÏÂÔØÎļþ
¡¡¡¡ÏÂÔØÎļþͨ³£Óà get ºÍ mget ÕâÁ½ÌõÃüÁget ÓÃÓÚµ¥¸öÎļþ£¬mget ÔòÊǶà¸öÎļþ¡£
¡¡¡¡a) get
¡¡¡¡¸ñʽ£ºget ÒªÏÂÔصÄÎļþÃû ±£´æµ½±¾µØµÄÎļþÃû
¡¡¡¡ÈçÒª»ñÈ¡·þÎñÆ÷ÉÏD£º\pic\logo.jpg£¬ÔòÊäÈëÒÔÏÂÃüÁî
¡¡¡¡get /pic/logo.jpg face.jpg (»Ø³µ)
¡¡¡¡ÕâÑù£¬·þÎñÆ÷ÉϵÄÎļþ“logo.jpg”±ãÏÂÔص½±¾µØ»úÆ÷ÉÏ£¬²¢ÖØÃüÃûΪ“face.jpg”¡£
¡¡¡¡b) mget
¡¡¡¡¸ñʽ£ ......
×ܼǼÊý:5772; ×ÜÒ³Êý:962; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [57] [58] [59] [60] 61 [62] [63] [64] [65] [66]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ