学linux内核的一些感想

关于计算机科学与技术专业的感想

两个月前,我突然决定看一下linux内核。作为一个计算机专业出生的学生,我想透彻地了解整个计算机系统。虽然学过计算机组成原理、操作系统、编译原理等课程,但是总感觉比较偏向理论。而我是一个注重理论与实践相结合。而事实上理论与实践想结合的想法对不对有待认证。在中国,计算机学院会设置一个专业叫计算机科学与技术,而科学与技术其实是不同的方向。计算机科学理注重理论,技术是注重实践。根据个人爱好与兴趣和能力,我选择了走技术这条路,兼顾科学。学技术,做一个工程师。 这要求对技术的熟练应用,要做的是一个产品,是要投入使用的。而搞理论,做的是一个模型,不投入使用,重在创新。曾经一度迷茫,在做一个程序时,是实现了功能或者突破技术难关就行了,还是力求完美。其实突破技术难关偏向于理论,而做得完美能用偏向于工程。作为一个工程师最基本的要求是能完成一个能用的产品,这此基础之上再能攻关技术瓶颈。

作为一个硕士研究生,我们应该能熟练掌握一门技术,还得有做理论的能力(这可能是我们为什么要念大学,读研究生,而不是去报个技术培训班吧)。而学校里开的课很基础,这对做理论很重要,实践相对较少,这需要我们自己加强。

对计算机专业一些课程的认识

计算机包括硬件和软件两部分。在大学中有模拟电子技术和数字电子技术两门课,这两门课中讲了模拟电路、数字电路的构成。从二极管、三极管原理(PN结),到构成数字电路里的逻辑门,有了与、或、非这三种逻辑就可以完成计算机所有计算功能。而锁存器(同样可以由二极管构成)是构成内存的原理。 现在这些也许太低级了,现在有DDR内存,有可编程逻辑器件。不过对认识计算机的物理基础很重要。计算机不再是个神奇的东西了,与我们学过的物理知识能结合起来了。
用二级管和三级管构成锁存器和与门。
引用网上三级写构成与门的图
引用网上二级管构成锁存器
有了基本的逻辑元件和存储,我们就可以构造计算机最构心的部件CPU了。CPU中用逻辑运算单元,有存储(寄存器)。控制器可以由存储实现,而这些知识在一门叫计算机体系结构或者计算机组成原理的课中有详细讲解。有了CPU和内存基本上就有了计算机的模型了。可是内存和CPU如何连接呢?而且现在计算机外部有如些多的外设,CPU又如何控制他们?这些又在微机原理与接口技术这一门课中有详细讲解。如果我们把这些外设和CPU和内存等连接起来,那就构成了计算机硬件。

只有硬件的计算机是不能功能的。CPU要执行指令,而指令从何而来?最初计算机启动时要执行BIOS里的指令,这些预先存到ROM中的指令来初始化硬件。初始化硬件听起来很高端,其实原理很简单,就是微机原理与接口技术中,初始化8259A啊什么的。

然而硬件管理是一件复杂的事儿,如果我们写代码时,还要管CPU里哪个寄存器,或者还要管内存哪一块有没有用,甚至还要管显示器如果显示图形,那写一个程序是很困难的。而这此功能每个程序都需求,因此人们开发了操作系统这个软件来管理所有硬件。让操作系统提供一些基础服务。操作系统的功能在大学里的操作系统课程里有讲解。然而,现在操作系统越来越复杂,我们使用操作系统时,已经不知道他在背后做了什么了,为了更好的使用操作系统,或者开发操作系统,研究一下操作系统的实现是很必要的。

操作系统给我们提供了写代码的平台,高级语言让写代码理方便快捷。可是人类语言与计算机语言是不同的。计算机只认识二进制串,于是出来一门专门的翻译官–编译器,由他来把高级语言翻译成机器语言。关于编译器的功能在编译原理这门课里有详细介绍。

现在代计算机通常有网卡这样的设备,可以用来和其他计算机通信。很多计算机想通信共享资料。原来人们发明了互联网。关于网络的部分在计算机网络这门课中有详细讲解。网络中涉及单个主机,也涉及到路由器、交换机,这此什么器什么机的,还是计算机机,只是有特定功能。

从物理的电路,到CPU,到操作系统,到应用软件,整个计算机体系构成了。

为什么要研究linux内核

有了以上基础设施,我们就可以轻松地开发各种应用了。明显,开发应用时,会使用操作系统提供的服务,调用API。有时候我们也好奇,为什么一个open调用就能打开文件,读磁盘上的数据。而有时候,我们使用了一个API,比如select epoll,却发现其性能有所差距?更有可能,我们生产了一个新的硬件,而操作系统不认识,需要我们自己写个驱动程序。当然应用非常多,后来发现,只是简单的会调用几个系统API,还解决不了问题,有时可能需要修改操作系统内核。于是,就开始研究操作系统的实现了。

学内核的必要性:
为了形成一套完整的计算机知识体系。
为了在使用操作系统时做到知其所以然。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值