@
FrankHB 其实我想表达的一个意思是,先有 UNIX 、Linux ,而后才有了强制控制访问一说。而整体的 Unix 或者类 Unix 系统的最初模型也是基于 DAC 模型。而后,为了适用于这个模型,才引用到操作系统中。
不瞒你说,我大概是 2010 年左右才听到这种说法,而还是因为当时公司参与了等级保护的项目。
当时我熟悉另一家公司的产品,除了 FreeBSD 以外,类 AIX ,HPUNIX 包括了 Windows 这类闭源系统,他们采用都是非常暴力的 Hacking 式介入,从而达到“强制访问控制”的需求。
但这些也正如你所说的,因为历史遗留问题。但是确实不能把文件系统做得不那么“烂”么,我觉得以维护 linux kernel 那帮老头的能力,并不是什么太大的问题吧,以 Windows 这么有经济实力的企业重新设计也不是多大难题吧。
但更多的时候,我觉得操作系统的迭代除了引入,加强新的功能和特性外,应该还要考虑的是“用户”,用户包括了使用者和开发者和硬件厂家。推倒一个文件系统去重新实现一个满足于并不算多数用户需要使用到的功能重要,还是只是兼容某个特性重要,这个问题似乎套在 linux 上,它似乎已经承受了太多它不应该承受的包袱,我并不是指它有多完美或者多优秀。
从为课堂而生的它到今天已经演变成了一个主流操作系统,它已经不是当年的那个研究的课件。
再回到 VFS ,从设计模式来看,我觉得 VFS 是一个非常棒的东西。当然可能是我格局小了,我看到的是这个内核层的接口,让后来的开发者在这个接口上重新设计一套 FS ,将变得更简单,而且不用过度参与到更底层的现实层去。总不能因为一个新的 FS fork 一个新的分支吧。
同样,参考你的 “
about-operating-systems.md” ,整个文档看下来,你的思维更多想完成一个更合乎于“现代”的一个操作系统的模型,或者说更理想化的一个模型。
从我的理解和认知里,Linux 也好其他 Unix 也好,更多的时候,在对现代模型的支持在当年那个年代没有办法设计出来,而后通过这种补丁式,侵入式,或者模块化的方式集成的现有的模型里面。当然,可能像你说的“懒”,但是我的理解可能是会了兼容更多的用户,满足更多的用户。
SELinux 可能对很多用户来讲太复杂了,但更多人没注意到一个简单的
https://elixir.bootlin.com/linux/v3.10/source/security/tomoyo而这是一个 LMK 的存在,当然,官方现在已经引入,也就是说已经可以在编译内核的时候选择编译到内核。
同样引用了 VFS 。
看了你的文档,才发现你对操作系统这么有研究,一个门外汉,跟你说了这么多,显得有点,不那么从容和淡定。