百科问答小站 logo
百科问答小站 font logo



何为文件系统,何为根文件系统? 第1页

  

user avatar   xi-yang-86-73 网友的相关建议: 
      

你的问题本来就是应当三言两语打发的,因为根本不涉及底层原理。

1:什么是文件系统?

用来增删改查“文件名=>存储位置”的映射数据结构。主要要干两件事情:

  • 文件夹、文件是树状的,存储器地址是线性的,需要映射。
  • 文件尺寸是可变的,需要管理。
2:什么是根文件系统?

Unix没有盘符的概念,要求自己的文件系统是单一的一棵树。直接挂载在整棵树根上的那个盘里面的文件系统,就是根文件系统。

实际上可以更灵活、更复杂,比如Unix都是可以chroot的,把一个目录重新定义成当前根。

3:为啥还要挂载其它文件系统?

你当然可以这么做,实际上Linux初学者经常在PC上这么做。

但是Unix要求自己只有一整棵文件树,那么现在如果你有两个硬盘,怎么办?

启动过程究竟要挂载几次文件系统?

这显然完全取决于具体实现。

4:

那么具体是怎么对应的?

比如,第一个盘挂在/上,第二个盘挂在/mnt/foo上,第三个盘挂在/mnt/bar上,就是这么对应的。

Linux有一个用户态的程序mount来管理挂载,有一个配置文件/etc/fstab来控制启动之后额外分区的挂载。在此之前的行为,我并不很了解。现代Linux已经很复杂,会建立一大堆系统挂载,这是我笔记本上装的debian的挂载状态:

       $ mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) udev on /dev type devtmpfs (rw,nosuid,relatime,size=8177560k,nr_inodes=2044390,mode=755) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1637876k,mode=755) /dev/sdb1 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=5,subvol=/) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=3636) mqueue on /dev/mqueue type mqueue (rw,relatime) debugfs on /sys/kernel/debug type debugfs (rw,relatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) /dev/sdc4 on /home type ext3 (rw,relatime,data=ordered) /dev/sdc3 on /mnt/d type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime) tmpfs on /run/user/123 type tmpfs (rw,nosuid,nodev,relatime,size=1637872k,mode=700,uid=123,gid=136) tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=1637872k,mode=700,uid=1000,gid=1000) gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)     

里面只有/dev/sdXXX那些是挂载的硬盘,其它都是系统挂上的特殊目录。

ramdisk文件系统管理着ram空间,那么掉电后数据不就没了吗?

没了就没了,本来就不打算让你放正经东西啊。

是不是这种情况下必须再挂载一个flash空间的文件系统?

你都搞嵌入式了,那显然需不需要flash完全取决于你的产品设计啊。




  

相关话题

  为什么KK说Emacs是最有程序猿范的编写工具而林斌表示用vi的不同意呢?怎么评价vi和Emacs呢? 
  Linux设备驱动开发 新手,创建第一个字符设备驱动时对一些代码的功能不是很了解,能解释一下吗? 
  如何看待微软 Build 2019 上发布的新 WSL2? 
  现在的 Linux 内核和 Linux 2.6 的内核有多大区别? 
  内核页表和linux的伙伴系统是不是有冲突? 
  放弃51单片机,直接学STM32的开发会有什么严重的问题么? 
  为什么GCC的版本号增速比以前快这么多? 
  Fuchsia OS可以从Cast OS保留数据升级,是否说明Fuchsia只是Linux套壳? 
  为什么 Windows 不提供内存文件系统? 
  开发一款基于WIFI的红外收发器,需要多少费用? 

前一个讨论
为什么 Windows 不提供内存文件系统?
下一个讨论
「绝艺」成为中国国家围棋队指定训练 AI 后会有哪些影响?





© 2025-06-17 - tinynew.org. All Rights Reserved.
© 2025-06-17 - tinynew.org. 保留所有权利