首页 / 答疑 / 我想写一个自己的操作系统,比如Unix或Linux,最起码我需要具备些什么?然后我需要怎么做?

我想写一个自己的操作系统,比如Unix或Linux,最起码我需要具备些什么?然后我需要怎么做?

Unix和Linux属于大型操作系统,凭个人之力,根本不可能完成。以Linux系统为例,它的版权人林纳斯.托瓦兹(Linux之父)是个天才程序员,没日没夜忙了差不多半年,写出Linux的0.01版,也就是初级版本,你猜源代码有多少?大概有1万行。

Linux0.01版发布后,林纳斯和全球成千上万黑客(和现在喜欢在网上偷鸡摸狗的黑客不同,那时的黑客都是程序员大牛,主要以改进电脑软硬件性能为乐趣)一起修改完善。从1991年0.01版发布,到1994年Linux1.0正式版发布,三年时间,参与的程序员能轻松坐满一个足球场,你猜代码有多少行?一共17万多行。

林纳斯.托瓦兹(Linus Torvalds),Linux系统之父。你的手机、你家的电视机顶盒、你常取款的 ATM上的系统,都是基于 Linux 系统改造而来,没有这个人,就不会有现在的开源软件。


除非你认为自己的编程天赋和勤奋努力程度能碾压上述大牛,那么可以试试以个人之力,写一个Linux级别的操作系统。

更重要的是,当时还是486电脑当道的时代,操作系统远没有今天复杂,那怕是iOS和安卓这样的公司化运作的操作系统项目,也并没有从0写起,而是“踩在前人的肩膀上爬梯子”,iOS的内核是Unix,安卓系统的内核是Linux,苹果公司和谷歌公司在原有系统上“改扩建”,搞成了自己的东西。

肯·汤普森(Kenneth Thompson),C语言前身B语言的作者,Unix的发明人之一,程序员们的祖师爷。


当然,如果不是要写Linux这样的大型操作系统,就是想写来玩玩,比如搞个mini的,还是有可操作性的:

  1. 建议从最基础的玩起,先写监控程序(操作系统的原型),仅具有加载程序和运行程序的功能。
  2. 监控程序玩熟练之后,可以写用于单片机的微型操作系统,包含控制程序、编译器和简单的应用程序。

个人要熟练写操作系统,大致说来需要具备下列素质:

  1. 熟练运用C语言编程;
  2. 会汇编语言;
  3. 了解基本的硬件知识;
  4. 会写硬件驱动程序;
  5. 会软件架构设计;

不过,上面这些都精通了,随便去互联网大厂拿个七八十万年薪的offer是分分钟的事,何苦自己折腾!

本文来自网络,不代表今日新闻立场,转载请注明出处:https://www.newstoday.cc/a0lpEM0.html
上一篇
下一篇

为您推荐

返回顶部