浅谈操作系统原理,linux操作系统原理( 二 )


第二步:网络原理 。当今是互联网时代,计算机网络知识的重要程度不言而喻 。网络原理涉及到网络体系结构、协议、数据通信管理、安全等内容,另外还涉及到如何操作交换机、路由器等网络设备 。学习计算机网络要注重实验,通过实验能够建立数据通信过程等画面感 。第三步:编程语言和数据结构 。编程语言是操作计算机的重要工具,是一定要掌握的重点内容,程序设计本质上就是算法设计和数据结构的结合,所以在学习数据结构之前应该掌握编程语言的使用,对于初学者来说,C、Java、Python等语言都是不错的选择 。
第四步:数据库和深入理解操作系统 。数据库对于软件开发来说是非常重要的,数据库的内容比较多,需要学习关系型数据库和NoSq数据库的使用 。之后深入学习一下计算机操作系统还是有一定必要的,如果能读一下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,苹果公司和谷歌公司在原有系统上“改扩建”,搞成了自己的东西 。
【浅谈操作系统原理,linux操作系统原理】肯·汤普森(Kenneth Thompson),C语言前身B语言的作者,Unix的发明人之一,程序员们的祖师爷 。当然,如果不是要写Linux这样的大型操作系统,就是想写来玩玩,比如搞个mini的,还是有可操作性的:建议从最基础的玩起,先写监控程序(操作系统的原型),仅具有加载程序和运行程序的功能 。监控程序玩熟练之后,可以写用于单片机的微型操作系统,包含控制程序、编译器和简单的应用程序 。

推荐阅读