ºÍÆäËû²Ù×÷ϵͳһÑù£¬Linux°üº¬½ø³Ìµ÷¶ÈÓë½ø³Ì¼äͨÐÅ(IPC)¡¢ÄÚ´æ¹ÜÀí(MMU)¡¢ÐéÄâÎļþϵͳ(VFS)¡¢ÍøÂç½Ó¿ÚµÈ£¬ÏÂͼ¸ø³öÁËLinuxµÄ×é³É¼°Æä¹ØÏµ£º
LinuxÄÚºËÔ´´úÂë°üÀ¨¶à¸öĿ¼£º
¡¡¡¡£¨1£©arch£º°üÀ¨Ó²¼þÌØ¶¨µÄÄں˴úÂ룬Èçarm¡¢mips¡¢i386µÈ£»
¡¡¡¡£¨2£©drivers£º°üº¬Ó²¼þÇý¶¯´úÂ룬Èçchar¡¢cdrom¡¢scsi¡¢mtdµÈ£»
¡¡¡¡£¨3£©include£ºÍ¨ÓÃÍ·Îļþ¼°Õë¶Ô²»Í¬Æ½Ì¨Ìض¨µÄÍ·Îļþ£¬Èçasm-i386¡¢asm-armµÈ£»
¡¡¡¡£¨4£©init£ºÄں˳õʼ»¯´úÂ룻
¡¡¡¡£¨5£©ipc£º½ø³Ì¼äͨÐÅ´úÂ룻
¡¡¡¡£¨6£©kernel£ºÄں˺ËÐÄ´úÂ룻
¡¡¡¡£¨7£©mm£ºÄÚ´æ¹ÜÀí´úÂ룻
¡¡¡¡£¨8£©net£ºÓëÍøÂçÐÒéÕ»Ïà¹ØµÄ´úÂ룬Èçipv4¡¢ipv6¡¢ethernetµÈ£»
¡¡¡¡£¨9£©fs£ºÎļþϵͳÏà¹Ø´úÂ룬Èçnfs¡¢vfatµÈ£»
¡¡¡¡£¨10£©lib£º¿âÎļþ£¬ÓëÆ½Ì¨Î޹صÄstrlen¡¢strcpyµÈ£¬ÈçÔÚstring.cÖаüº¬£º
char * strcpy(char * dest,const char *src)
{
¡¡¡¡¡¡ char *tmp = dest;
¡¡¡¡
¡¡¡¡¡¡ while ((*dest++ = *src++) != '')
¡¡¡¡¡¡¡¡¡¡¡¡¡¡/* nothing */;
¡¡¡¡¡¡ return tmp;
}
£¨11£©Documentation£ºÎĵµ¡£
¡¡¡¡ ÔÚLinuxÄں˵ÄʵÏÖÖУ¬ÓÐһЩÊý¾Ý½á¹ ......
¼ÍÏþá°Ôø¾Ëµ£º“ÊÀ¼äµÄµÀÀíÓëÊÂÇ飬¶¼ÔÚ¹ÅÈ˵ÄÊéÖÐ˵¾¡£¬ÏÖÔÚÈçÔÙÖøÊö£¬ÈÔÈ»³¬²»¹ý¹ÅÈ˵ķ¶Î§£¬ÓֺαØÔÙ¶àÖøÊö¡£”ÓÚÊÇËûÒ»ÉúÖ®ÖУ¬´Ó²»ÖøÊ飬ֻÊDZàÊé--ÕûÀíǰÈ˵ĵ伮£¬½«ÖйúÎÄ»¯×÷ϵͳµÄ·ÖÀ࣬ÒÔ±ãÓÚÒÔºóµÄѧÕßÃÇѧϰ¡£×Ô¼ºµÄÖø×÷Ö»ÓСºÔÄ΢²ÝÌñʼǡ»Ò»²á¶øÒÑ¡£
linuxÉ豸ģÐÍÒ²ÊÇÈç´Ë£¬Õâ¸ö¶«Î÷±¾À´¾ÍÊÇÀÏÍâ·¢Ã÷µÄ£¬¶øÇÒÓ¢ÎÄÏà¹Ø×ÊÁÏÒ²×ã¹»ÏêʵÃ÷ÁË£¬ÎÒÔڴ˲»¶à׸ÑÔ£¬Ö»½«×ÊÁÏÕûÀíÓÚ´Ë¡£
ÔÚLinux Kernel Development(Second Edition)£¬linux device drivers£¨third edition£©£¬Understanding the Linux Kernel£¨third edition£©Öж¼ÓйØÓÚlinux device modelµÄÕ½ڣ¬ÆäÖÐlinux device drivers£¨third edition£©ÖнéÉÜ×îΪÏêʵ£¬ÔÚµÚÊ®ËÄÕ¡£[ÕâÈý±¾¿ÉÒÔ´ÓÕâÀïÏÂÔØ]
ÆäʵËùÓйØÓÚlinux device modelµÄÎÄÕ²»¹ýºõÁ½µã£¬Ò»¸öÊǹØÓÚKobjects, Ksets,Ktype£¬ÁíÒ»¸ö¾ÍÊǹØÓÚsysfs£¬ÀïÃæ»á½éÉÜËüµÄdevice,bus,classµÈĿ¼¡£ÔÚlinux device drivers»¹ÓÐÒ»ÕÂ14.6. Putting It All TogetherºÜºÃ£¬Ê¹ÎÒÃǸü¼ÓÇåÎúµÄÁ˽âÒ»¸öÉ豸 ......
linux Îļþϵͳ½á¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄĿ¼
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ÔÚÄÚ
/boot/grub/menu.lst GRUBÉèÖÃ
/boot/vmlinuz ÄÚºË
/boot/initrd ºËÐĽâѹËõËùÐè RAM Disk
/dev ϵͳÖܱßÉ豸
/etc ϵͳÏà¹ØÉ趨Îļþ
/etc/DIR_COLORS &nbs ......
Ŀ ¼
Çý¶¯
I/O¶Ë¿Ú
from smth
»ù±¾½á¹¹
Çý¶¯³ÌÐò
¾ßÌåʵÏÖ
PCI
loopback
Sis 900
ISA×ÜÏßDMAµÄʵÏÖ
Çý¶¯
Linuxϵͳ֧³ÖÈýÖÖÀàÐ͵ÄÓ²¼þÉ豸£º×Ö·ûÉ豸¡¢¿éÉè
< type="text/javascript">< type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
±¸ºÍÍøÂçÉ豸¡£×Ö·ûÉ豸ÊÇÖ±½Ó¶ÁÈ¡µÄ£¬²»±ØÊ¹Óûº³åÇø¡£ÀýÈ磬ϵͳµÄ´®ÐпÚ/dev/cua0ºÍ/dev/cua1¡£¿éÉ豸ÿ´ÎÖ»ÄܶÁȡһ¶¨´óСµÄ¿éµÄ±¶
Êý£¬Í¨³£Ò»¿éÊÇ512»òÕß1024×Ö½Ú¡£¿éÉ豸ͨ¹ý»º³åÇø¶Áд£¬²¢ÇÒ¿ÉÒÔËæ»úµØ¶Áд¡£¿éÉ豸¿ÉÒÔͨ¹ýËüÃǵÄÉ豸Îļþ´æÈ¡£¬µ«Í¨³£ÊÇͨ¹ýÎļþϵͳ´æÈ¡¡£Ö»ÓÐ
¿éÉ豸֧³Ö¹Ò½ÓµÄÎļþϵͳ¡£ÍøÂçÉ豸ÊÇͨ¹ýBSDÌ×½Ó×Ö½çÃæ´æÈ¡µÄ¡£
Linuxϵͳ֧³Ö¶àÖÖÉ豸£¬ÕâЩÉ豸µÄÇý¶¯³ÌÐòÖ®¼äÓÐһЩ¹²Í¬µÄÌØµã£º
* Äں˴úÂ룺É豸Çý¶¯³ÌÐòÊÇϵͳÄں˵ÄÒ»²¿·Ö£¬ËùÒÔÈç¹ûÇý¶¯³ÌÐò³öÏÖ´íÎóµÄ»°£¬½«¿ÉÄÜÑÏÖØµØÆÆ»µÕû¸öϵͳ¡£
*
Äں˽ӿڣºÉ豸Çý¶¯³ÌÐò±ØÐëΪϵͳÄں˻òÕßËüÃǵÄ×Ó ......
Ŀ ¼
Çý¶¯
I/O¶Ë¿Ú
from smth
»ù±¾½á¹¹
Çý¶¯³ÌÐò
¾ßÌåʵÏÖ
PCI
loopback
Sis 900
ISA×ÜÏßDMAµÄʵÏÖ
Çý¶¯
Linuxϵͳ֧³ÖÈýÖÖÀàÐ͵ÄÓ²¼þÉ豸£º×Ö·ûÉ豸¡¢¿éÉè
< type="text/javascript">< type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
±¸ºÍÍøÂçÉ豸¡£×Ö·ûÉ豸ÊÇÖ±½Ó¶ÁÈ¡µÄ£¬²»±ØÊ¹Óûº³åÇø¡£ÀýÈ磬ϵͳµÄ´®ÐпÚ/dev/cua0ºÍ/dev/cua1¡£¿éÉ豸ÿ´ÎÖ»ÄܶÁȡһ¶¨´óСµÄ¿éµÄ±¶
Êý£¬Í¨³£Ò»¿éÊÇ512»òÕß1024×Ö½Ú¡£¿éÉ豸ͨ¹ý»º³åÇø¶Áд£¬²¢ÇÒ¿ÉÒÔËæ»úµØ¶Áд¡£¿éÉ豸¿ÉÒÔͨ¹ýËüÃǵÄÉ豸Îļþ´æÈ¡£¬µ«Í¨³£ÊÇͨ¹ýÎļþϵͳ´æÈ¡¡£Ö»ÓÐ
¿éÉ豸֧³Ö¹Ò½ÓµÄÎļþϵͳ¡£ÍøÂçÉ豸ÊÇͨ¹ýBSDÌ×½Ó×Ö½çÃæ´æÈ¡µÄ¡£
Linuxϵͳ֧³Ö¶àÖÖÉ豸£¬ÕâЩÉ豸µÄÇý¶¯³ÌÐòÖ®¼äÓÐһЩ¹²Í¬µÄÌØµã£º
* Äں˴úÂ룺É豸Çý¶¯³ÌÐòÊÇϵͳÄں˵ÄÒ»²¿·Ö£¬ËùÒÔÈç¹ûÇý¶¯³ÌÐò³öÏÖ´íÎóµÄ»°£¬½«¿ÉÄÜÑÏÖØµØÆÆ»µÕû¸öϵͳ¡£
*
Äں˽ӿڣºÉ豸Çý¶¯³ÌÐò±ØÐëΪϵͳÄں˻òÕßËüÃǵÄ×Ó ......
ÓÉÓÚÕâЩÎļþ²»ÊÇÆÕͨµÄÎļþ£¬ËùÒÔÎÒÃDz»ÄÜÓÃ
ANSI C
£¨±ê×¼
C
£©µÄ
fopen
¡¢
fclose
µÈÀ´²Ù×÷Îļþ£¬¶øÓ¦¸ÃʹÓÃϵͳÎļþ
I/O
´¦Àíº¯Êý£¨
open
¡¢
read
¡¢
write
¡¢
lseek
ºÍ
close
£©À´´¦ÀíÕâЩÉ豸Îļþ¡£
ioctl
£¨£©»òÐíÊÇ
Linux
ÏÂ×îÅÓÔӵĺ¯Êý£¬Ëü¿ÉÒÔ¿ØÖƸ÷ÖÖÎļþµÄÊôÐÔ£¬ÔÚ
Linux
ÉùÒôÉ豸±à³ÌÖУ¬×îÖØÒªµÄ¾ÍÊÇʹÓô˺¯ÊýÕýÈ·ÉèÖñØÒªµÄ²ÎÊý¡£
¡¡¡¡ÏÂÃæÎÒÃǾÙÁ½¸öʵ¼ÊµÄÀý×ÓÀ´ËµÃ÷ÈçºÎʵÏÖ
Linux
ϵÄÉùÒô±à³Ì¡£ÓÉÓÚ´ËÀà±à³ÌÉæ¼°µ½ÏµÍ³É豸µÄ¶Áд£¬ËùÒÔ£¬ºÜ¶àʱºòÐèÒªÄãÓÐ
root
ȨÏÞ£¬Èç¹ûÄ㽫ÏÂÃæµÄÀý×Ó±àÒëºó²»ÄÜÕýÈ·Ö´ÐУ¬ÄÇô£¬Ê×ÏÈÇëÄã¼ì²éÊÇ·ñÊÇÒòΪûÓвÙ×Ýij¸öÉ豸µÄȨÏÞ¡£
1.
¶ÔÄÚ²¿ÑïÉùÆ÷±à³Ì
¡¡¡¡ÄÚ²¿ÑïÉùÆ÷ÊÇ¿ØÖÆÌ¨µÄÒ»²¿·Ö£¬ËùÒÔËü¶ÔÓ¦µÄÉ豸ÎļþΪ
/dev/console
¡£±äÁ¿
KIOCSOUND
ÔÚÍ·Îļþ
/usr /include /linux /kd.h
ÖÐÉùÃ÷£¬
ioctl
º¯ÊýʹÓÃËü¿ÉÒÔÀ´¿ØÖÆÑïÉùÆ÷µÄ·¢Éù£¬Ê¹ÓùæÔòΪ£º
¡¡¡¡
ioctl ( fd, KIOCSOUND, (int) tone);
¡¡¡¡
fd
ΪÎļþÉ豸ºÅ£¬
tone
ÊÇÒôƵֵ¡£µ±
tone
Ϊ
0
ʱ£¬ÖÕÖ¹·¢Éù¡£±ØÐëÒ»ÌáµÄÊÇËüËùÀí½âµÄÒôƵºÍÎÒÃÇÆ½³£ÒÔΪµÄÒôƵÊDz»Í¬µÄ£¬ÓÉÓÚ¼ÆËã»úÖ÷°å¶¨Ê±Æ÷µÄʱÖÓÆµÂÊΪ
......