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

ʹÓÃBusyBoxÖÆ×÷linux¸ùÎļþϵͳ


ʹÓÃBusyBoxÖÆ×÷linux¸ùÎļþϵͳ£¨CramFS+mdev£©
²Ù×÷ϵͳ£ºUbuntu9.04
Äں˰汾£ºlinux-2.6.24.7  
¿ª·¢°å£º²©´´arm2410s    
½»²æ±àÒ빤¾ß£ºarm-linux-gcc-4.1.1 
BusyBox£ºbusybox-1.11.1      
CramFS£ºCramFS-1.1
 
×¢Ò⣺ÓÉÓÚÒªÖÆ×÷µÄ¸ùÎļþϵͳʹÓÃÁËmdev(BusyBox¼ò»¯°æµÄudev£©£¬Òò´Ë£¬ÐèÒªÄÚºËÖ§³Ösysfs¡¢procfsºÍramfs£¨tmpfs£©ÎļþϵͳÒÔ¼°hotplug£¨uevent£©Ê¼þ»úÖÆ¡£
 
dzÀ¶É«ÎªÃüÁéÙºìɫΪ´úÂëºÍ½Å²½
1¡¢×¼±¸¸ùÎļþϵͳ
ʹÓÃshell½Å±¾create_rootfs.sh£¬½¨Á¢¸ùÎļþϵͳµÄĿ¼¿ò¼Ü
lingd@ubuntu:~/arm2410s$ vi create_rootfs.sh
create_rootfs.shÄÚÈÝÈçÏ£º
#!/bin/sh
echo "------Create rootfs directons......"
mkdir rootfs
cd rootfs
echo "--------Create root,dev......"
mkdir root dev etc bin sbin mnt sys proc lib home tmp var usr
mkdir usr/sbin usr/bin usr/lib usr/modules
mkdir mnt/usb mnt/nfs mnt/etc mnt/etc/init.d
mkdir lib/modules
chmod 1777 tmp
cd ..
echo "-------make direction done---------"
Ϊcreate_rootfs.shÌí¼ÓÖ´ÐÐȨÏÞ
lingd@ubuntu:~/arm2410s$ chmod a+x create_rootfs.sh
Ö´ÐÐcreate_rootfs.sh£¬½¨Á¢¸ùÎļþϵͳµÄĿ¼¿ò¼Ü
lingd@ubuntu:~/arm2410s$ ./create_rootfs.sh
lingd@ubuntu:~/arm2410s$ cd rootfs
lingd@ubuntu:~/arm2410s/rootfs$ ls
bin  dev  etc  home  lib  mnt  proc  root  sbin  sys  tmp  usr  var
2¡¢´´½¨É豸Îļþ
mdev ÊÇͨ¹ý init ½ø³ÌÀ´Æô¶¯µÄ£¬ÔÚʹÓà mdev ¹¹Ôì /dev Ŀ¼֮ǰ£¬init ÖÁÉÙÒªÓõ½É豸Îļþ/dev/console¡¢ /dev/null £¬ËùÒÔÐèÒªÊÂÏȽ¨Á¢ÕâÁ½¸öÉ豸Îļþ:
lingd@ubuntu:~/arm2410s/rootfs$ cd dev
lingd@ubuntu:~/arm2410s/rootfs/dev$ sudo mknod -m 660 console c 204 64
[sudo] password for lingd:
lingd@ubuntu:~/arm2410s/rootfs/dev$ sudo mknod -m 660 null c 1 3
lingd@ubuntu:~/arm2410s/rootfs/dev$ ls -l
total 0
crw-rw---- 1 root root 5, 1 2010-04-02 15:49 console
crw-rw---- 1 root root 1, 3 2010-04-02 15:50 null
×¢Ò⣺±¾À´consoleµÄÖ÷´ÎÉ豸ºÅӦΪ5ºÍ1.µ«ÊÇÒòΪinitÔÚÖ´ÐÐÍê/etc/init.d/rcS½Å±¾ºó£¬¾Í»áÔÚÒ»¸ö¿ØÖÆÌ¨ÉÏ£¬°´ÕÕini


Ïà¹ØÎĵµ£º

linux waitpid wait (ת)

  wait(µÈ´ý×Ó½ø³ÌÖжϻò½áÊø)
±íÍ·Îļþ
     #include<sys/types.h>
     #include<sys/wait.h>
¶¨Ò庯Êý pid_t wait (int * status);
º¯Êý˵Ã÷
    wait()»áÔÝʱֹͣĿǰ½ø³ÌµÄÖ´ÐÐ,Ö±µ½ÓÐÐźÅÀ´µ½»ò×Ó½ø³Ì½á
    Êø¡£È ......

linuxÄÚºËÖеÄHlistÓëList_head½á¹¹

List_Head
²Ù×÷ϵͳÄں˾­³£ÐèҪά»¤Êý¾Ý½á¹¹¡£ÄÚºËÓбê×¼µÄÑ­»·Á´±í¡¢Ë«ÏòÁ´±íµÄʵÏÖ¡£ÔÚ<Linux/list.h>ÎļþÖж¨ÒåÁËÒ»¸ölist_headÀàÐͼòµ¥½á¹¹£º
struct list_head {
   struct list_head *next, *prev;
};
 
ͨÓÃÁ´±íµÄ³£ÓÃÓÃ;Êǽ«Ä³Ò»¸öÊý¾Ý½á¹¹±¾Éí´®³ÉÁ´±í£¬»ò½«Ä³Ð©Á´±íÓëÒ»¸öÊý¾Ý½á¹ ......

linux Îļþϵͳ

linux Îļþϵͳ½á¹¹
/       ¸ùĿ¼
/bin         ³£ÓõÄÃüÁî   binary   file   µÄĿ¼
/boot      ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ   (kernel)   ......

linux É豸Çý¶¯±à³Ì

Ŀ ¼
Çý¶¯

I/O¶Ë¿Ú

from smth

»ù±¾½á¹¹

Çý¶¯³ÌÐò

¾ßÌåʵÏÖ


PCI

loopback

Sis 900

ISA×ÜÏßDMAµÄʵÏÖ


Çý¶¯
    Linuxϵͳ֧³ÖÈýÖÖÀàÐ͵ÄÓ²¼þÉ豸£º×Ö·ûÉ豸¡¢¿éÉè
< type="text/javascript">< type="text/jav ......

ÿÈձؿ´µÄlinuxÍøÕ¾ºÍ²©¿ÍÊÕ¼¯

http://www.linuxjournal.com/
Linux Kernel Newbies
Ò»·½ÊʺÏÄں˿ª·¢³õ¼¶ºÚ¿ÍµÄÀÖÍÁ——¸ÃÍøÕ¾¼¸ºõÄܹ»Âú×ãËùÓÐÄ¥µ¶»ô»ôÏòÄں˵ÄÐÂÊÖµÄÐèÇó¡£
http://kernelnewbies.org/
http://vger.kernel.org/
Á˽âÈçºÎʹÓÃlinuxÄÚºËÁбí
http://www.tux.org/lkml/
Linux
ÐÂÎÅÖÜ¿¯£¬ËüÓÐÒ»¸ö×¨Çø±¨µÀÓйØÄں˵ÄÖØÒª ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ