大家好,今天小编关注到一个比较有意思的话题,就是关于教你如何学习linux内核的问题,于是小编就整理了4个相关介绍教你如何学习Linux内核的解答,让我们一起看看吧。
- 学习linux,要什么基础?要懂C语言吗,还是C和C加加?
- linux内核和系统的区别?
- 一个程序员不会linux内核系统,算得上一个优秀程序员吗?
- 看linux内核源码对初期学习C语言有多大帮助?推荐一个版本的内核源码?
学习linux,要什么基础?要懂C语言吗,还是C和C加加?
1、一定的英文基础是必要的,需要了解C语言和C++。针对学习shell编程,及熟知各种Linux系统命令使用即可。如果有python或perl基础则更容易上手。
2、看书时要多做习题,一题一题的弄明白,要不书也白看。从一开始养成良好的编程习惯,怎么算好的你看书上的代码怎么写的。
3、关于数学,初中数学水平可以编程,小学甚至学前班也没什么不可以。另一方面数学博士编程的时候也不会嫌自己数学学的太多了。需要多少数学这跟你要做的东西很有关系,也影响到你学习的深入程度,工作中就影响你的代码质量。总的来说数学水平是越高越好,但并没有一个门槛,什么水平都可以学,就是质量差一些。
4、学习Linux内核开发。Linux的内核是由绝大部分的C语言和少部分汇编语言组成的。要学习Linux内核开发,必须要懂C语言,同时对操作系统原理需要有一定了解。
5、学习Linux平台上的软件开发。这部分包含很广,有各种各样的要,需要根据项目性质确定基础需求。
linux内核和系统的区别?
ubuntu系统和centos系统可能会使用同一个版本的linux内核。内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。
直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。
硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
一个程序员不会linux内核系统,算得上一个优秀程序员吗?
现在的项目都讲究敏捷开发,DevOps的概念已经深入人心,与其讨论程序员会不会Linux内核,会不会手写SQL,会不会汇编语言,不如问他:知不知道各种控件,会不会用项目管理工具,毕竟谁都不可能当一辈子程序员。PS,请先从SpreadJS了解起
也可以这样问,一个不会数学的体育老师是优秀的老师吗?一个不会开飞机的坦克手是一个好士兵吗?程序员的范围太广了,不一定都要和linux打交道,也不一定非要编写linux下的程序。世界很大,能解决好一部分问题就很好了。比如我就知道某大学一老师计算流体力学搞得牛,程序也写得好,求解器轻松卖出几千万,而且只会fortran语言,这在你看来是否一样很low?
看linux内核源码对初期学习C语言有多大帮助?推荐一个版本的内核源码?
老实说对于初期学习c语言还是别看linux内核源码了,因为内核非常庞大,涉及到相当多c语言以外的知识,比如汇编,音频,视频,计算机系统,数据结构等等。c语言初学者看源码会觉得很艰难,因为基础还很薄弱,对于c语言提升的帮助十分有限。如果你以后有志于参与内核开发或者对内核感兴趣,推荐你看一看《linux内核设计与实现》,这[_a***_]介绍了内核基本设计思想,又不涉及过多的源码分析,看完能够大概的了解linux内核。内核版本的话还是推荐2.6,内核更新非常快,但资料更新跟不上,现在市面上大部分内核分析的书都是基于2.6的。不过内核最重要的是理解设计思想,弄明白2.6就能很快的熟悉4.x的内核了。
我一般还是工作中需要才会才会分析相关的内核源代码,因为看起来真的是枯燥:)
到此,以上就是小编对于教你如何学习linux内核的问题就介绍到这了,希望介绍关于教你如何学习linux内核的4点解答对大家有用。