如果我要构建一个新的操作系统,它会有什么样的功能?

时间:2008-09-19 11:57:05

标签: operating-system

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

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

我急于阅读你的评论。

16 个答案:

答案 0 :(得分:23)

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

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

它只是一个普通的程序员“抓痒”的项目吗?如果是这样,那么一定要继续 - 你可以通过这样做来学习很多东西。但是,如果你是为最终产品做的那样,那么在你查看当前正在开发的所有操作系统之前,你不应该开始这条路径(有很多比你最初想的更多)并找出了什么你想改变它们。

很可能会更好地花费在改进/更改现有开源系统上。即使是你自己的实验,如果你开始研究已经开发的东西,也可能更容易得到你想要的结果。

答案 1 :(得分:20)

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

我当时正在IBM Boca Raton的多媒体小组工作,你可能还记得有些人,OS / 2。我已经在OS / 2上工作了好几年,并且认识到操作系统的“写在墙上”,我问他,“戴夫,Windows NT会带我们进入下个世纪,还是有其他的想法介意吗?“他对我的回答如下:

“M ....,Windows NT是任何人都可以从头开发的最后一个操作系统!”。然后他看着我,喝了一口啤酒,然后说:“再说一遍,你可以在和你的女孩度过一个特别美好的夜晚后,在下周六醒来,并为操作系统提供一个全新的方法,那个'这会让人感到羞耻。“

把这个对话放到上下文中,考虑到我回到大学攻读硕士学位(专攻操作系统设计),我会说新的操作系统有很大的空间。事情是把事情放在眼里。您对此操作系统的目标是什么?试图服务的问题是什么?

全面了解这一点,可以让您了解自己是否真正将目光投向了可实现的目标。

所有人都说,我是第二位早期的评论者注意到关于“奇点”这样的事情(我今年春天在我的一个课程中给出的一个演讲的重点......),或者如果你真的想要“咬牙切齿”进入一个处于起步阶段的操作系统......看看“ReactOS”。

然后,WebOSes,像gOS一样,可能是我们未来十年左右的发展方向。或者说,一个特别聪明的人可以在与他们的女士或男士朋友度过一个特别富有成效的晚会后醒来,并在操作系统中拥有“下一个大创意”。

答案 2 :(得分:14)

为什么直接在物理机上构建操作系统?你只是在汇编语言中捣乱;)。当然,这很有趣,但为什么不为虚拟机解决操作系统?

假设一个在Java / .NET / Parrot(您命名)VM上运行的操作系统,可以通过网络轻松传递并运行一堆软件。

它包括什么?

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

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

答案 3 :(得分:6)

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

答案 4 :(得分:5)

我强烈建议在Linux(0.01)上查看早期版本,至少让自己的脚湿透。你将会厌倦装配和非常模糊的低级别的东西甚至开始(特别是进入保护模式,多任务处理等)。是的,“大男孩”已经让市场陷入困境,这可能是真的。我不是告诉你不要这样做,但也许在Linux内核上做一些工作将是一个更好的垫脚石。

答案 5 :(得分:4)

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

如果您对用户功能感兴趣,可以考虑参与现有的桌面环境项目,例如GNOME,KDE等。

如果您对内核级功能感兴趣,可以尝试攻击BSD派生或Linux,或尝试创建自己的系统 - 但不要过多考虑用户功能。正确地掌握操作系统的核心是很困难的,并且需要花费很长时间 - 想要重新创造一切并没有多大意义,并且无处可去。

答案 6 :(得分:4)

查看CosmosSingularity,这些代表了我对未来操作系统的要求;-) 编辑:   SharpOS是另一项受管理的操作系统工作。建议yshuditelu

答案 7 :(得分:2)

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

我建议不要创建自己的操作系统。 (我自己令人讨厌的中断......看看Cloud ComputingAmazon EC2

我完全同意,通过定义你的目标是第一个帮助。我是用户体验的忠实粉丝,不仅考虑自己的目标,还考虑受众/用户/其他人的目标。一旦实现了这些目标,就转到下一步如何实现目标。

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

我也喜欢Sun的口号"the Network is the computer" ......但他们的公司在过去十年中确实倒下了。

关于网络的说明就是计算机......我再次强烈建议您查看Amazon EC2以及更一般地cloud computing

答案 8 :(得分:2)

您可能希望首先加入现有的操作系​​统实施项目,或者至少查看其他人已实施的内容。

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

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

答案 9 :(得分:2)

我认为从头开始构建一个新的操作系统,就像目前市场上的操作系统一样浪费时间。相反,您应该考虑从现在开始10到20年后的操作系统。我的直觉是,它们会如此不同,以致于它们在今天的标准中几乎无法识别。想想Facebook(gasp!)等框架,了解未来操作系统将如何运作的模型。

答案 10 :(得分:1)

我认为你现在的操作系统已经老旧了。有人说所有操作系统都很糟糕。是的,我们不是有问题吗?称之为BSOD,Sad Mac或Kernel Panic。我们的文件系统失败,存在安全性和可靠性问题。

微软通过其奇点内核追求有趣的方法。它使用类似于.NET的虚拟机和形式验证方法隔离软件中的进程。基本上所有IPC似乎都在正式指定和验证,甚至在程序运行之前。

但是还有另外一个问题 - Singularity 只是一个内核。你无法运行不是为它设计的应用程序。这是一个巨大的惩罚,最终过渡(奇点不公开)相当困难。如果你设法产生类似的技术优势,但有一个真正的过渡计划(考虑IPv4-> IPv6问题,或者Windows如何在桌面上获得如此多的市场份额),这可能是巨大的!

开始小也不是一个糟糕的选择。 Linux就是这样开始的,并且在很多情况下它会带来更好的设计。小是美丽的。更容易改变。更容易成长。祝你好运!

答案 11 :(得分:1)

结帐奇点项目, 做一些革命性的事情

答案 12 :(得分:1)

我一直想要一个基本上只是新鲜事件的操作系统。它将内置插件支持,允许您构建用户界面,应用程序,无论您想要什么。

这个系统的工作方式很像Lua沙箱,游戏可以使用,减去限制。您可以构建一个插件或模块系统,该系统可以访问您将使用的各种子系统。例如,如果您要编写Web浏览器应用程序,则需要加载网络库并在插件脚本中使用它。需要'安全'?加载库。

这与Linux之间的区别在于,Linux是一个操作系统,但它有一个运行在它之上的Windows管理器。在这个理论操作系统中,您将能够在插件系统中实现各种窗口的通用“外观”和“感觉”,或者您可以创建自定义界面。

这和Windows之间的区别在于它完全可以自定义,完全我的意思是,如果你想完全没有实现任何加密,你可以这样做,或者如果你想自定义现有的窗口,你可以做那。没有什么是封闭的。

在这个理论操作系统中,有一个带有插件系统的操作系统。插件系统使用简单而强大的语言。

答案 13 :(得分:1)

如果你问我想在操作系统中看到什么,我可以给你一个清单。我刚刚进入编程,所以我不确定这是否可行,但我可以给你我的想法。

  1. 我希望看到一个开发的操作系统(除了主要的操作系统),让无线网卡工作并不痛苦。这是我尝试过的大部分问题。

  2. 看到程序员为其他程序员设计的操作系统会很酷。拥有它,以便您可以为所有不同的操作系统运行程序。我不知道如果没有Windows和OSX的副本是否可能,但如果能检查我用所有操作系统编写的程序的兼容性,那真是太酷了。

答案 14 :(得分:0)

您还可以考虑使用MINIX,这是一个很好的起点。

答案 15 :(得分:0)

对于这个论坛的创始人,我很高兴先生,因为他敢于以更大胆,更理想的方式思考IT行业。首先,鉴于全球各地的计算机科学蓬勃发展,您的问题正是您认为应该吸引更广泛受众的问题。革命性Linux操作系统向我们传授的开放性,它通过强化其用户友好界面开始赢得了许多人的心灵和思想。所以推动信封的推崇。

如果我正确地遵循,那么你认为,鉴于迄今为止我们的劳动成果,进一步开发硬件和产品。软件混合可以或至少应该不那么传统。当然,这意味着任何新的发展都会比典型的更快地实现其目标。然而,对于一个全新的操作系统来说,这个时代的前景将是具有挑战性的 - 至少可以说 - 只是因为Linux和Linux之间存在很多摩擦。视窗。这真的是开源与开放之间的一场战斗。专有意识形态。 Bart Roozendaal在上面的评论中很好地证明了我的观点。忘记创新的想法,以及任何可能来自更现代的操作系统的可能性,因为这些是次要的。他本质上要问的是,你是否会站在利润的一边或者不是?他在这里很容易摆脱他的立场。如您所知,Windows因其在新市场,软件和其他技术方面的垄断方法而臭名昭着。自从它的存在以来,它一直保持着它的霸权地位,而且令人遗憾的是,它的窗户上堆满了无尽的虫子。后门。

再一次,我赞赏你为自己走一条不那么走的路,希望能够提前开辟,而不是气馁。就个人而言,我希望看到另一个操作系统......更具现代感。