Linux中国 | Linux.cn - 我们的Linux中文社区

 找回密码
 加入

QQ登录

QQ登录

搜索

学习initrd中的init(二)

热度 9已有 1219 次阅读2010-7-27 11:37 |关键词:initrd 学习 fedora sys 目录 proc

在通过对fedora与ubuntu的对比之中,我发现/proc下的目录结构是不一样的。但是/sys下的目录结构却是一样的的。有些书中说,/sys的主要目录的就是将信息分类,便于用户可以方便的查找信息。我想这可能就是为什么/sys下的文件目录结构是一样的了。

下面继续研究下面的代码:

# Note that this only becomes /dev on the real filesystem if udev's scripts
# are used; which they will be, but it's worth pointing out
if ! mount -t devtmpfs -o mode=0755 none /dev; then
	mount -t tmpfs -o mode=0755 none /dev
	mknod -m 0600 /dev/console c 5 1
	mknod /dev/null c 1 3
fi
mkdir /dev/pts
mount -t devpts -o noexec,nosuid,gid=5,mode=0620 none /dev/pts || true
> /dev/.initramfs-tools
mkdir /dev/.initramfs

3. /tmpfs

代码的前两行是将tmpfs挂到/dev下。tmpfs与/proc,/sys一样是虚拟文件系统。主要是用来存储设备相关信息的。在建立在物理内存当中,所以速度很快。很多人会手动建立tmpfs,将firefox中的catch入在里面,这样可以提高firefox的速度。

下面是创建console的节点。它总是指向当前的终端。/dev/null是很常用的,它可以清除所有的数据。

下面我们打开/dev看看里面的内容

root@alice-desktop:~# ls /dev
adsp             dmmidi    fd0u1722  input   mcelog              psaux  ram4    sda         sr0     tty15  tty27  tty39  tty50  tty62    vcs    vcsa5
agpgart          dsp       fd0u1743  kmsg    mem                 ptmx   ram5    sda1        sr1     tty16  tty28  tty4   tty51  tty63    vcs1   vcsa6
audio            dvd       fd0u1760  log     midi                pts    ram6    sda2        stderr  tty17  tty29  tty40  tty52  tty7     vcs2   vcsa7
block            dvd1      fd0u1840  loop0   mixer               ram0   ram7    sda5        stdin   tty18  tty3   tty41  tty53  tty8     vcs3   vga_arbiter
bsg              ecryptfs  fd0u1920  loop1   net                 ram1   ram8    sequencer   stdout  tty19  tty30  tty42  tty54  tty9     vcs4   vmci
bus              fb0       fd0u360   loop2   network_latency     ram10  ram9    sequencer2  tty     tty2   tty31  tty43  tty55  ttyS0    vcs5   vsock
cdrom            fd        fd0u720   loop3   network_throughput  ram11  random  sg0         tty0    tty20  tty32  tty44  tty56  ttyS1    vcs6   zero
cdrom1           fd0       fd0u800   loop4   null                ram12  rfkill  sg1         tty1    tty21  tty33  tty45  tty57  ttyS2    vcs7
char             fd0u1040  fd0u820   loop5   oldmem              ram13  root    sg2         tty10   tty22  tty34  tty46  tty58  ttyS3    vcsa
console          fd0u1120  fd0u830   loop6   parport0            ram14  rtc     shm         tty11   tty23  tty35  tty47  tty59  urandom  vcsa1
core             fd0u1440  full      loop7   pktcdvd             ram15  rtc0    snapshot    tty12   tty24  tty36  tty48  tty6   usbmon0  vcsa2
cpu_dma_latency  fd0u1600  fuse      lp0     port                ram2   scd0    snd         tty13   tty25  tty37  tty49  tty60  usbmon1  vcsa3
disk             fd0u1680  hpet      mapper  ppp                 ram3   scd1    sndstat     tty14   tty26  tty38  tty5   tty61  usbmon2  vcsa4
root@alice-desktop:~# 

这里面显示所有的设备,有些设备即使你已经删除了,它还是会存在的。随着你的设备不断增加,这个文件的大小也会随之而改变。所以tmpfs是动态的。不过你记住它是受内存大小限制的。

接下来是创建/dev/pts.这个目录下所有的文件都是由ptmx创建的,我们可以打开看一下。

root@alice-desktop:~# ls /dev/pts
0  ptmx

4./dev/initramfs

这个文件我不太了解,大概知道它是用来执行用户第一个程序-init。如果有人了解,不妨赐教。

本文系雪雪原创,版权归雪雪及Linux中国所有,转贴请注明。

发表评论 评论 (1 个评论)

回复 fuhualiang 2011-1-14 12:37

facelist

你需要登录后才可以评论 登录 | 加入

无觅相关文章插件