如果我实现了自己的OS,我算开发者中的精英吗?

jopen 9年前

相信有很多Linux爱好者心中都怀有编出一个自己的操作系统的理想,一位外国网友在quora上提出了这个问题。本期#linuxstory 说#节目翻译节选了一个令人启迪的回答,让我们从另一个角度思考个人重新发明轮子的意义。以下是网友的答案:

简单粗暴的回答是:当然!你绝对成为了一个不为人知,极为小众的一类开发者。尽管这些开发者掌握了开发操作系统的能力与知识,但99.9999%的普通人类是不关心你的创举的。如果你还是觉得这样的事实让你开心,不要犹豫,放手去做吧。

从头写一个OS是一项艰巨的事业。我用从头组装一辆汽车来比喻从零编写OS。要组装一辆车,你只需要买到所有能买到的零件,除此以外需要做的就是将这些零件组装起来。

如果我实现了自己的OS,我算开发者中的精英吗?

carparts~1

现在,你组装完成一辆可以跑起来的汽车,你迫不及待的向周围人炫耀你的成就,一下就是不同人的反应:

第一类,普通人类,括号,不懂汽车设计和机械工程的人类,他会说,好棒的车,你自己组装的吗?真牛逼!

第二类,你极客圈里的朋友,括号,碰巧也是汽车改装爱好者,他们对你的创举真正表现出狂热的兴趣。他们会不停询问你选的什么配件呀,那里应该怎么组装啊,然后你就在这个圈子里赢得了声望,自尊心得到极大地满足。

第三类,汽车工程师精英工程师,括号,已经设计了多辆汽车,他会说“欢迎来到俱乐部,让我们一起分享造车的点子和秘诀吧”。对,你将会成为这个造车 俱乐部中一员,可是你还想组装多少车呢?有时买一辆车比自己组装便宜多了回到软件工程上来,你编写了自己的操作系统,多么伟大的创举,让复杂系统运行起来 使你得到个人满足,你感觉自己简直站在世界的巅峰。

好,我们看看你有哪些得与失。

  • 得:获得了对数据结构、进程调度、上下文切换、线程、内存管理、资源分享、设备驱动等等一系列内核概念最扎实的理解,期间获得极大地幸福感,以及向他人吹嘘的话语权。
  • 失:你花费了太多太多的时间让你的系统正确跑起来。在这个时代,这个系统除了你没有人在乎,没有人会使用它,没有实际的应用程序,没有实际的用 途,只有你唯一一个开发者兼维护者。非常小的机会你会凭着你的系统与Linus Torvalds见面,括号,非常不幸,实现中没有OS作者俱乐部!

所以,缺点是大于优点的。确实你从中学到了很多开发复杂软件的知识与技巧(但很可能在实际中不会再遇到),但收益也仅限于此。你的这些知识会在你追求你的事业或者启动你自己的公司时成为优势,但是你知道吗?其实你并不需要通过写OS来得到它。

如果你真的希望自己写一个OS,首先你要问问自己到底是OS的哪一个部分让你着迷? 你真的要自己完全实现一个内存管理器?或者你对调度感兴趣,也许是调度感兴趣?你可以试试一些仿真器帮助你学习和理解这些东西。

每次你对一个需要巨大工作量的任务抱有兴趣时候,我都建议你尝试从经济角度评判一下意义。经常问问自己做这个的价值是什么,你可以开始着手来设计自 己的OS,如果你已经得到你想要的东西,要懂得适时的放手。你也许不需要自己码代码来获得操作系统如何运行的知识,通过一些经典的参考书你也可以获得同样 的知识以及与相同程度的乐趣。

华华联想到目前很多专家教授都在吹鼓国产操作系统,从个人角度来讲,我们其实没有必要重复发明轮子,从国家层面来说,也更应该从经济角度思考国产轮子真的有必要吗?为什么不把有限的资金投入到使用开源轮子的国产发动机上呢?

来源: http://www.linuxstory.org/linuxvoice5/