我在十几岁时开始编写自己的小型操作系统(https://github.com/1player/klesh),并且……
……我在十几岁时开始编写自己的小型操作系统(https://github.com/1player/klesh),并且在过去的20年里,我一直想回到这个领域,利用我积累的所有经验。只是不要让它成为另一个UNIX,请。我们已经有很多这样的系统了 ;)
源讨论对Serenity OS的Andreas Kling的采访(2022)原帖 176 条评论 · 导入时统计……我在十几岁时开始编写自己的小型操作系统(https://github.com/1player/klesh),并且在过去的20年里,我一直想回到这个领域,利用我积累的所有经验。只是不要让它成为另一个UNIX,请。我们已经有很多这样的系统了 ;)
源讨论对Serenity OS的Andreas Kling的采访(2022)原帖 176 条评论 · 导入时统计我越来越想尝试自己动手做一个玩具操作系统——或者至少是一个内核。有一些事情我非常希望操作系统能做: 1. 具有类似数据库的事务或(至少)文件操作的写入屏障。当前的文件系统语义对数据库和其他需要在崩溃后不损坏数据的应用程序来说非常糟糕。fsync()太重了,因为在等待fsync时不能发出后续的写入。写入屏障有更好的使用体验(即更少的复杂性,更少的错误),而且它们粒度更细——因此数据库也可以运行得更快。认真地说,关于这个我可以 rant 很久。这让我很烦躁。 2. 使用类似事件队列的语义进行订阅。有很多操作系统 API 中,操作系统会向应用程序提供随时间变化的数据。例如,文件系统监视、USB设备插入…
完整原文把你的经验,加入这段讨论。
> 只是别让它变成另一个UNIX,拜托了。我们已经有很多这样的系统了;) 哈哈,谢谢你的鼓励!别担心,这方面没有危险。我对“一切皆文件”的概念已经很厌倦了。 我喜欢UNIX将大型程序拆分为可以组合在一起的小程序的想法。但UNIX的原始字节流作为消息总线非常糟糕。
完整原文> 在你的代码中导致一个三重故障异常,从而导致系统直接关机之前,你还没真正活过。 在我工作的操作系统中,我故意添加了一个三重故障触发器,作为在“正常”重启方法失败时的备用重启方法,这种情况我之前见过。 对于想要尝试编写自己操作系统的人,一定要去试试。这非常有趣,而且你几乎可以学到无限多的东西。有了QEMU、bochs和VirtualBox等工具,开始并不难。如果你想尝试但不想从头开始,但又觉得Linux源代码太复杂,可以看看OpenBSD。并不是说Linux很难,但需要一些时间来适应他们的做事方式。我觉得OpenBSD更容易上手。
完整原文>但是对于软件工程师来说,编写操作系统是我们能体验到的最令人兴奋的感觉,看到自己的代码影响真实硬件。 除非你想去玩玩具机器人或者家庭自动化。
完整原文尊重不同观点,分享具体经验。
登录后即可发帖、评论、转发和引用。