ʹÓÃ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
Ïà¹ØÎĵµ£º
¹þÏ£±í£¨Hashtable£©ÓÖ³ÆÎª“É¢ÖÔ£¬HashtableÊÇ»á¸ù¾ÝË÷Òý¼üµÄ¹þÏ£³ÌÐò´úÂë×éÖ¯³ÉµÄË÷Òý¼ü£¨Key£©ºÍÖµ£¨Value£©Åä¶ÔµÄ¼¯ºÏ¡£Hashtable ¶ÔÏóÊÇÓɰüº¬¼¯ºÏÖÐÔªËØµÄ¹þϣͰ£¨Bucket£©Ëù×é³ÉµÄ¡£¶øBucketÊÇHashtableÄÚÔªËØµÄÐéÄâ×ÓȺ×飬¿ÉÒÔÈô󲿷ּ¯ºÏÖеÄËÑѰºÍ»ñÈ¡¹¤×÷¸üÈÝÒס¢¸ü¿ìËÙ¡£
¹þÏ£º¯ ......
Linux ÄÚºËÖвÉÓÿɼÓÔØµÄÄ£¿é»¯Éè¼Æ£¨LKMs£¬Loadable Kernel
Modules£©£¬Ò»°ãÇé¿öϱàÒëµÄLinux
ÄÚºËÊÇÖ§³Ö¿É²åÈëʽģ¿éµÄ£¬Ò²¾ÍÊǽ«×î»ù±¾µÄºËÐÄ´úÂë±àÒëÔÚÄÚºËÖУ¬ÆäËûµÄ´úÂë¿ÉÒÔÑ¡ÔñÔÚÄÚºËÖУ¬»òÕß±àÒëΪÄں˵ÄÄ£¿éÎļþ¡£³£¼ûµÄÇý¶¯³ÌÐòÒ²ÊÇ×÷ΪÄÚºË
Ä£¿é¶¯Ì¬¼ÓÔØµÄ¡£
Ä£¿éÏà¹ØÃüÁî
lsmod Áгöµ±Ç°ÏµÍ³¼ÓÔØµÄ ......
Ŀ ¼
Çý¶¯
I/O¶Ë¿Ú
from smth
»ù±¾½á¹¹
Çý¶¯³ÌÐò
¾ßÌåʵÏÖ
PCI
loopback
Sis 900
ISA×ÜÏßDMAµÄʵÏÖ
Çý¶¯
Linuxϵͳ֧³ÖÈýÖÖÀàÐ͵ÄÓ²¼þÉ豸£º×Ö·ûÉ豸¡¢¿éÉè
< type="text/javascript">< type="text/jav ......
ÓÉÓÚÕâЩÎļþ²»ÊÇÆÕͨµÄÎļþ£¬ËùÒÔÎÒÃDz»ÄÜÓÃ
ANSI C
£¨±ê×¼
C
£©µÄ
fopen
¡¢
fclose
µÈÀ´²Ù×÷Îļþ£¬¶øÓ¦¸ÃʹÓÃϵͳÎļþ
I/O
´¦Àíº¯Êý£¨
open
¡¢
read
¡¢
write
¡¢
lseek
ºÍ
close
£©À´´¦ÀíÕâЩÉ豸Îļþ¡£
ioctl
£¨£©»òÐíÊÇ
Linux
ÏÂ×îÅÓÔӵĺ¯Êý£¬Ëü¿ÉÒÔ¿ØÖƸ÷ÖÖÎļþµÄÊôÐÔ£¬ÔÚ
Linux
ÉùÒôÉ豸± ......