我在思考我们如何设计自己的文件系统以用于研究和实验目的。
但为了做到这一点,我找不到适当的文档和资源。
我还想知道,即使我能够以某种方式开发文件系统,但我如何才能将其格式化为给定的驱动器。为此需要编写什么样的代码?
如果有人知道这一切是如何运作的以及有哪些资源可以参考,那么请提供帮助。
谢谢
答案1
如果你查看“/sbin”和“mk*”程序二进制文件,它们将创建文件系统(即格式)
guiverc@d960-ubu2:~$ ls /sbin/mk*
/sbin/mkdosfs /sbin/mkfs /sbin/mkfs.exfat /sbin/mkfs.ext4 /sbin/mkfs.minix /sbin/mkfs.reiser4 /sbin/mkfs.xfs /sbin/mkreiser4
/sbin/mke2fs /sbin/mkfs.bfs /sbin/mkfs.ext2 /sbin/mkfs.fat /sbin/mkfs.msdos /sbin/mkfs.reiserfs /sbin/mkhomedir_helper /sbin/mkreiserfs
/sbin/mkexfatfs /sbin/mkfs.cramfs /sbin/mkfs.ext3 /sbin/mkfs.jfs /sbin/mkfs.ntfs /sbin/mkfs.vfat /sbin/mkntfs /sbin/mkswap
mkfs.fat
将创建一个 FAT fs,mkfs.ntfs
将创建一个 NTFS 文件系统等等。
man mkfs.ntfs
任何您感兴趣的文件系统都可以参考手册页。
由于这是开源的,您可以获取源代码,那里有大量的文件系统供您查看。如果我想获取“ext4”(或程序mkfs.ext4
)的源代码,我可以使用
guiverc@d960-ubu2:~$ dpkg -S /sbin/mkfs.ext4
e2fsprogs: /sbin/mkfs.ext4
抓住源sudo apt source e2fsprogs