c****m 发帖数: 824 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: xiaoju (可爱的龙猫), 信区: Programming
标 题: 转:王垠--一种新的操作系统设计
发信站: BBS 未名空间站 (Sat Sep 14 10:22:03 2013, 美东)
http://www.yinwang.org/blog-cn/2013/04/14/os-design/
一种新的操作系统设计
我一直在试图利用程序语言的设计原理,设计一种超越“Unix 哲学”的操作系统。这
里是我的设想:
这种系统里面的程序间通信不使用无结构的字符串,而是使用带有类型和结构的数据。
在这样的系统里面,“程序”的概念基本上完全消失。系统由一个个的“函数”组成,
每个函数都可以调用另外一个函数,通过参数传递数据。每个函数都可以并发执行。
由于参数是一个数据结构,而不是字符串,这避免了程序间通信繁琐的“编码”和“解
码”过程。使得“进程间通信”变得轻而易举。任何函数都可以调用另一个函数来处理
特定类型的数据,这使得像 “OLE 嵌入”这样的机制变得极其简单。
所有函数由同一种先进的高级程序语言写成,所以函数间的调用完全不需要“翻译”。
由于这种语言不允许应用程序使用“指针运算”,应用程序不可能产生 segfault 一类
愚蠢的错误。
由于没有指针运算,系统不再需要现代处理器提供的“内存映射”机制,以及 TLB。这
使得内存访问效率大幅提高。而且简化了处理器的设计。
操作系统使用与应用程序相同的高级语言写成(可能需要支持一些“特权操作”),至
于“系统调用”,只不过是调用另外一个函数。
操作系统的“shell”,不过是一个这种高级语言的 REPL。用户可以在终端输入各种函
数调用,从而启动进程的运行。
系统不需要 SQL,不需要关系式数据库。所有的数据都作为“对象”,保存在一个分布
式的数据空间。
系统不需要“文件系统”。所有的数据,包括“进程上下文”自动被“版本控制”,在
合适的时候作为对象同步到磁盘。所以即使在机器掉电的情况,绝大部分的数据和进程
能够在电源恢复后自动继续运行。
程序员和用户完全不需要知道“数据库”或者“文件系统”的存在。程序假设自己拥有
无穷大的空间,可以任意的构造数据。
为了减少数据的移动,系统根据数据的位置,选择: 1)迁移数据,或者 2)迁移处理
数据的“进程”。程序员不需要使用 MapReduce,Hadoop 等,就能进行大规模并行计
算。 这个操作系统是如此的“一致”,以至于所有的用户和程序员,只需要学会一种
很简单的程序语言。
我曾经以为我是第一个想到这个做法的人。可惜的是,调查之后发现,很多人早就已经
做出了类似的系统(虽然缺少对把它用于分布式计算的设想)。Lisp Machine 似乎是
其中最接近的一个。Oberon 是另外一个。我只能说,英雄所见略同。 |
m*****e 发帖数: 10963 | 2 鉴于本版删关于温鸡巴的贴子如此勤快。。我老决定。。。
每次上来第一件事是必发一贴痛骂温鸡巴这个汉奸,奸相,奸贼的帖子。。。。
再删我骂温奸的帖子,我老马上全站所有版面跟贴所有贴 痛骂温贼。。。
“温鸡巴,你欺世盗名,无耻巨贪,霍乱我族,我操你八辈祖宗。” |
k*****r 发帖数: 21039 | 3 现在买买提也接受中宣部和犹宣部双重领导了?
【在 m*****e 的大作中提到】 : 鉴于本版删关于温鸡巴的贴子如此勤快。。我老决定。。。 : 每次上来第一件事是必发一贴痛骂温鸡巴这个汉奸,奸相,奸贼的帖子。。。。 : 再删我骂温奸的帖子,我老马上全站所有版面跟贴所有贴 痛骂温贼。。。 : “温鸡巴,你欺世盗名,无耻巨贪,霍乱我族,我操你八辈祖宗。”
|
m*****e 发帖数: 10963 | 4 “温鸡巴,你欺世盗名,无耻巨贪,残害忠良,霍乱我族,我操你八辈祖宗。” |