大家好,今天小编关注到一个比较有意思的话题,就是关于100天学习linux的问题,于是小编就整理了2个相关介绍100天学习Linux的解答,让我们一起看看吧。
linux学会需要多长时间?
如果普通操作的话,很容易学会,用不了多长时间,和普通的window操作系统一样拥有图形界面,操作起来非常方便,Linux中也有WPS办公系统,qq,微信等一些应用程序、Linux上的应用程序没有windows上那么丰富,但也能满足普通用户的需求,如果搞研发,最好能把Linux源代码看懂,花费时间较多。
学会linux一般在一个月之内就行了。
Linux操作系统比较简单,命令也不是特别的多,首先你需要了解常用的命令,熟悉命令行的操作,通过安装操作系统,安装设置软件等工作来了解linux操作系统。熟悉命令行之后,再了解一下图形界面就可以了,快的一两个星期就能够在工作中使用linux了。
需要多久才能看完linux内核源码?
linux 0.11的内核源码,结合下面这本书,我花了大概一个寒假(1个半月),看了一遍。
然而,现在的内核已经膨胀的不成样子了,以还不算最新的linux-4.9.229为例:
整个内核源码一共约 801M:
体系相关的代码大约164M:
网路子系统相关的代码29M:
文件系统相关的代码38M:
linux内核核心代码大约7.7M:
但是就这7.7M,其实你要完全看完看懂也不容易。linux内核代码涉及c语言、硬件组成原理、操作系统、数据结构和算法等,这些基础知道你都具备了吗?如果没有具备,即使看完linux内核源码,你也看不懂liux内核的精髓。
如果你的目标仅仅是看完,内核源码2000+万行,你给自己你个目标每天看多少行吧!而如果不要完全看懂这二千万行代码,恐怕要花掉你这一辈子光阴,都不一定能达成目标。
Linux内核分为CPU调度、内存管理、网络和存储四大子系统,针对硬件的驱动成百上千。代码的数量更是大的惊人。看看最新的关于内核代码量的统计。
从图中可以看出,2020年1月份,内核的代码量大约是2千6百万行。回忆你一下你一天能看懂多少代码?反正我自己觉得自己一辈子都看不完Linux内核的代码。
其实阅读代码无非是为了学习代码中有用的内容,所以,我们没有必要阅读所有的代码,只需要阅读关键的代码,或者说对自己有用的代码。
由于内核分为四大子系统,因此我们可以选择自己相关的子系统来阅读。比如你是做存储相关的,可以阅读存储栈相关的代码,如果你是做网络的,你可以做网络相关的代码。
对于代码阅读方法从两个角度来介绍,一个方面是需要选择一个比较有效阅读代码的工具,这样能辅助我们来理解代码;另外一个方面是先阅读基础代码,比如链表,自旋锁等等。
当然,Linux内核确实博大精深,想要一下子搞明白是不可能的。
有些人推荐先阅读一些低版本的内核,比如0.01版的,总代码量才1万行左右。阅读这个代码大概一个月应该能比较清晰了。但是,改代码与现在的代码差异巨大,阅读后可以理解基本思想,但对理解现有代码的帮助不是特别明显。所以,还是要根据自己的需求来选择性的阅读比较好。
linux内核代码算是开源社区里面一盏明灯般的存在,虽然代码是开源但是核心领域能够看懂并且能够真正修改的数量极其的稀少了,大部分代码的更新更多是外围设备功能的增添,这种修改距离内核级别的改动还是存在本质的差异,而且很多中国的程序员已经参与到很多模块代码的提交了,证明了中国软件行业也在快速发展壮大过程中,证明了很多国内程序员已经度过了最原始的积累过程。
从一个程序员对于编程系统掌握的层次来讲,首先是基础编程语言的语言学习过程,然后是能够看懂代码,最后是代码的项目实战过程中,其实看代码和写代码的过程两者属于相辅相成的过程,不断的研究代码机构从中汲取精华然后应用到实际环境中,在实际项目中找到具体的场景把自己掌握的一些理论模型在实战中发挥出来,这种属于学以致用的典型,所以一个成熟的程序员需要不断的研究新的代码机构,然后想办法在实践中展示自己的能力,形成良性的循环在现实中很多程序员在初级入门阶段还是积极的学习优秀的代码,在掌握了一定层次的编程能力之后就放慢了学习的脚步,这种模式下非常容易慢慢落伍。
如果从一个普通C++程序员的角度慢慢学习linux内核,需要具备以下几种基础首先由一个认知linux内核的代码是C语言和汇编完成,单纯的C++未必能够满足其基本的研究需要,所以先要把C语言的基础语法以及内部关键的语法掌握清楚,同时掌握一定的汇编知识,在linux内核的影响效率的地方会使用汇编,所以掌握了汇编和C语言基础的语法之后再去尝试研究linux内核源码,如果不准备好基础编程语法,去研究linux内核将是一种灾难般的存在;对linux内核的api接口有一定的了解,了解外围的调用接口才能有助于了解内部是如何实现的,对于linux内核的驱动常规知识也需要有一定程度的掌握。
至于需要多长的时间能够看完linux内核知识,这种时间是无法确定有些人linux内核已经研究十几年了还是觉的里面有很多不了解的地方,可以尝试先从基础的模块开始熟悉从宏观上了解其工作原理,然后根据自己的兴趣爱好找到感兴趣的模块进行研究学习,不要指望多长时间能够掌握透彻,能够当成一辈子研究的事业去做,不要尝试给自己设定时间去完成学习linux内核这种巨大的工程,可以设定时间掌握宏观的框架,但更合适的做法是当成一种兴趣爱好长期去做,希望能帮到你。
到此,以上就是小编对于100天学习linux的问题就介绍到这了,希望介绍关于100天学习linux的2点解答对大家有用。