我正在考虑创建一个全新的操作系统,想听听这个论坛上的每个人对此有何看法?首先,大男孩在我们的生活中如此根深蒂固,以至于我们永远无法改变,为时已晚(哇——多么可怕的想法……)。但如果不是这种情况,操作系统应该为您做什么?哪些功能最重要?所有组件是否都应该单独安装(换句话说 - 基本操作系统是否真的没有用户功能并且通过创建“插件”来添加,就像一个很好的灵活工具?)

为什么我要这样做...我比较好奇是否有需求,我想知道,因为我们今天使用最多的操作系统(Linux,Windows,Mac OS X(Free BSD))实际上编写了超过20 年前(我很慷慨——我的意思是当时双核和四核不存在,总线慢得多,硬件贵得多,等等……),我只是对新技术感到好奇,如果我们会做些不同的事吗?

我很想读你的评论。


回答第一个问题:永远不会太晚。特别是当涉及到利基细分市场和类似的东西时。

其次,在开始创建新操作系统之前,您应该了解它的类型:这将是一个庞大的项目。

它只是一个普通程序员“挠痒痒”的项目吗?如果是这样,那么一定要继续——你可能会通过这样做学到很多东西。但是如果你是为了最终的产品而这样做,那么你不应该开始这条路,直到你查看了所有当前正在开发的操作系统(比你最初想象的要多得多)并弄清楚是什么你想改变他们。

很可能将精力花在改进/更改现有的开源系统上会更好。即使对于您自己的实验,如果您从已经在开发中的东西开始,也可能更容易获得您想要的结果。


首先,一个小故事。1992 年,在第一届 Win32(后来成为 MS 专业开发人员大会)会议期间,我有机会与 Dave Cutler 先生(现在大多数人称之为 Windows NT 的首席架构师)共进午餐, Windows 2000、XP 等)。

我当时在 IBM Boca Raton 的多媒体小组工作,研究你们中的一些人可能还记得的 OS/2。我在 OS/2 上工作了几年,并认识到操作系统的发展方向是“墙上的文字”,我问他,“戴夫,Windows NT 是否会带我们进入下一个世纪,或者您还有其他想法吗?头脑 ?”。他对我的回答如下:

“M....,Windows NT 是最后一个从头开始开发的操作系统!”。然后他看着我,喝了一口啤酒,然后说,“话又说回来,你可以在与你的女孩度过一个特别愉快的夜晚后在下周六醒来,并且对操作系统有一个全新的方法,那就是'会让这件事蒙羞。”

把那个谈话放在上下文中,考虑到我回到大学攻读硕士学位(专攻操作系统设计),我想说新操作系统有很多空间。问题是要正确看待事物。您对该操作系统的目标是什么?它试图服务什么问题空间?

全面考虑这一切会让您了解您是否真的将目光投向了一个可实现的目标。

话虽这么说,我支持早期评论者关于研究“奇点”之类的事情(我去年春天在我的一门课上发表的演讲的重点......),或者如果你真的想“沉没你的咬牙切入“处于起步阶段的操作系统……看看“ReactOS”。

话又说回来,WebOS 与 gOS 等类似,可能是我们在未来十年左右的发展方向。或者,某个特别聪明的人可能会在与他们的女性或男性朋友度过一个特别富有成效的夜晚后醒来,并在操作系统方面拥有“下一个伟大的想法”。


为什么直接在物理机上构建操作系统?你只会用汇编语言胡闹 ;)。当然,这很有趣,但为什么不解决 VM 的操作系统问题呢?

假设一个操作系统运行在 Java/.NET/Parrot(你的名字)VM 上,它可以很容易地通过网络传递并且可以运行一堆软件。

它包括什么?

  • 一些存储数据的方式(传统的FS不会砍)
  • 进程/线程的模型(或者只是劫持 VM 提供的东西?)
  • 与这些进程交互的工具等。

因此,构建一个可以在广泛使用的虚拟机上执行的简单平台。为特定的细分市场(云计算?)添加一些很酷的功能。去!


有关微内核与整体内核的更多信息,请查看 Linus 与 Andrew Tanenbaum 的“讨论”。


我强烈建议查看 linux(0.01) 上的早期版本,至少让你的脚湿润。您甚至会开始处理汇编和非常晦涩的低级内容(尤其是进入保护模式、多任务处理等)。是的,“大公司”可能确实已经垄断了市场。我不是告诉你不要这样做,但也许在 linux 内核上做一些工作会是一个更好的垫脚石。


查看CosmosSingularity,它们代表了我想要的未来操作系统 ;-) 编辑: SharpOS是另一个托管操作系统成果。由yshuditelu推荐


操作系统根本不应该有任何用户功能。用户功能应该由单独的项目添加,这根本不意味着这些项目不应该一起工作!

如果您对用户功能感兴趣,也许您应该考虑参与现有的桌面环境项目,例如 GNOME、KDE ​​或其他项目。

如果您对内核级功能感兴趣,可以尝试破解 BSD 派生版本或 Linux,或者尝试创建您自己的系统——但不要过多考虑用户功能。让操作系统的核心正确是很困难的,需要很长时间——想要重新发明一切没有多大意义,而且会让你无处可去。


您可能想先加入现有的操作系​​统实施项目,或者至少看看其他人已经实施了什么。

例如,AROS 作为业余爱好操作系统已经开发了大约 10 年或更长时间,现在在许多方面都非常有用。

或者更小众的东西怎么样?查看 Symbios,这是一个完全多任务桌面(Windows 风格)操作系统 - 适用于 4MHz Z80 CPU(Amstrad CPC,MSX)。也许你会想写这样的东西,它远不如完整的下一代操作系统那么简单。


底线……关注您的目标,更重要的是关注他人的目标……帮助满足这些需求。永远不要只从技术开始。

我建议不要创建自己的操作系统。(我自己的令人讨厌的中断......研究云计算亚马逊 EC2

我完全同意,它首先会通过定义您的目标来提供帮助。我是用户体验的忠实拥护者,不仅会考虑您自己的目标,还会考虑您的受众/用户/其他人的目标。一旦你有了这些目标,就可以进入下一步如何实现它。

现在,什么是操作系统?内核、操作系统、虚拟服务器实例、Linux、Windows Server、Windows Home、Ubuntu、AIX、zSeries OS/390 等。我想这是操作系统的一个很好的定义......维基百科

我也喜欢 Sun 的口号“网络就是计算机” ……但他们的公司在过去十年中确实没落了。

关于网络的注意事项是计算机……再次,我强烈建议您查看Amazon EC2和更普遍的云计算

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部