30

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

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

我急于阅读您的评论。

4

16 回答 16

23

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

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

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

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

于 2008-09-19T12:02:07.880 回答
20

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

我当时在 IBM Boca Raton 的多媒体小组工作,研究你们中有些人可能记得的 OS/2。我在 OS/2 上工作了几年,并认识到 OS 的发展方向“写在墙上”,我问他,“Dave,Windows NT 是否将把我们带入下一个世纪,或者你有其他想法吗?头脑 ?”。他给我的答复如下:

“M....,Windows NT 是任何人从零开始开发的最后一个操作系统!”。然后他看着我,啜了一口他的啤酒,然后说,“再说一次,你可以在和你的女孩度过一个特别美好的夜晚之后,下周六醒来,然后有一个全新的操作系统方法,那就是”会让这件事蒙羞。”

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

把这一切放在眼里会让你知道你是否真的把目光投向了一个可实现的目标。

综上所述,我支持之前的评论者关于研究“奇点”(我去年春天在我的一个课程中发表的演讲的重点......)之类的东西,或者如果你真的想“沉没你的进入“处于起步阶段的操作系统”......看看“ReactOS”。

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

于 2008-09-19T13:39:20.580 回答
15

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

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

它会包括什么?

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

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

于 2008-09-19T12:11:02.820 回答
6

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

于 2008-09-19T11:58:33.317 回答
5

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

于 2008-09-19T12:01:55.977 回答
5

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

于 2008-09-19T12:02:46.770 回答
4

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

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

如果您对内核级功能感兴趣,可以尝试在 BSD 衍生版本或 Linux 上进行黑客攻击,或者尝试创建自己的系统——但不要过多考虑用户功能。正确获取操作系统的核心是困难的,并且需要很长时间——想要重新发明一切没有多大意义,而且会让你一事无成。

于 2008-09-19T12:02:00.033 回答
2

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

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

我完全同意它首先有助于定义你的目标是什么。我是用户体验的忠实粉丝,不仅考虑您自己的目标,还考虑您的受众/用户/其他人的目标。一旦你有了这些目标,那么就进入下一步如何实现它。

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

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

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

于 2008-09-19T12:28:24.617 回答
2

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

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

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

于 2008-09-19T12:29:56.503 回答
2

我认为从头开始构建一个类似于市场上当前操作系统的新操作系统是浪费时间。相反,您应该考虑 10 到 20 年后操作系统会是什么样子。我的直觉是,它们将如此不同,以至于按照今天的标准,它们几乎无法识别。想想未来操作系统如何运行的模型,例如 Facebook(喘气!)。

于 2009-01-29T16:29:34.080 回答
1

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

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

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

这和 Windows 之间的区别在于它是完全可定制的,我的意思是如果你根本不想实现任何加密,你可以这样做,或者如果你想自定义一个已经存在的窗口,你可以这样做。没有什么对你关闭。

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

于 2009-01-29T15:59:55.560 回答
1

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

  1. 我希望看到一个开发的操作系统(除了主要的),让无线网卡工作并不痛苦。那是我对大多数我尝试过的最不满的第一件事。

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

于 2011-05-16T20:46:08.513 回答
1

checkout singularity project, do something revolutionary

于 2008-09-19T13:40:14.553 回答
1

我认为您对我们当前的操作系统已经过时是正确的。有人说所有操作系统都很烂。是的,我们对他们没有问题吗?称之为 BSOD、Sad Mac 或内核恐慌。我们的文件系统出现故障,存在安全性和可靠性问题。

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

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

从小处着手也不是一个坏选择。Linux 就是这样开始的,在很多情况下它会带来更好的设计。小就是美。更容易改变。更容易成长。无论如何,祝你好运!

于 2008-09-19T13:17:41.597 回答
0

对于本论坛的发起人,先生,我向您致敬,因为您敢于以更大胆和更理想主义的方式思考 IT 行业。首先,鉴于全球计算机科学的蓬勃发展以及革命性 Linux 操作系统向我们传授的开放性,您的问题正是您认为应该吸引更广泛受众的类型,而革命性 Linux 操作系统才刚刚开始赢得人心通过加强其用户友好的界面,有这么多。所以推信封的荣誉。

如果我的理解正确,您会认为鉴于我们迄今为止的劳动成果,进一步的硬件和软件组合的开发可能或至少应该不那么传统。当然,这意味着任何新的发展都将比典型的更快地达到其目标。然而,这一次全新的操作系统系统的前景将具有挑战性 - 至少可以说 - 只是因为 Linux 和 Windows 之间已经存在如此多的摩擦。这确实是开源和专有意识形态之间的一场战斗。Bart Roozendaal 在上面的评论中很好地证明了我的观点。忘记创新的想法和任何可能来自更现代的操作系统的可能性,因为这些都是次要的。他本质上要问的是,你会站在利润一边吗?他在这里很容易让出自己的位置。如您所知,Windows 因其在新市场、软件和其他技术方面的垄断做法而臭名昭著。自从它存在以来,它就一直牢牢抓住它的霸权地位,可悲的是,Windows 操作系统充满了无穷无尽的错误和后门。

再次,我为你走上一条人迹罕至的道路而鼓掌,并希望你能勇往直前,不要灰心丧气。就个人而言,我希望看到另一个操作系统......一个更现代的操作系统。

于 2009-07-29T21:36:07.857 回答
0

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

于 2009-06-02T07:20:47.543 回答