linux2.6源码学习,linux0.12源码

kodinid 14 0

大家好,今天小编关注到一个比较意思的话题,就是关于linux2.6源码学习问题,于是小编就整理了4个相关介绍Linux2.6源码学习的解答,让我们一起看看吧。

  1. Linux下如何编译Android源码~~~?
  2. 如何编译linux源代码?
  3. linux代码如何换行?
  4. 需要多久才能看完linux内核源码?

Linux下如何编译Android源码~~~?

这个问题已经找到解决方案了,方法如下:

1.在Linux设置文件共享,将项目共享,最好有个密码什么的。

2.在Linux上配置ssh server,用于和编译安卓源码3.Linux mac 通过连接,原因是有线传输比无线的快很多,ping只是0.3左右ms,不影响使用然后可以mac编写代码,然后ssh编译什么的,很方便,

如何编译linux源代码

1、安装编码源码的编译工具一般需要安装gcc yum install gcc

2、把源码解压 tar zxvf uname.tar.gz

3、进入解压的目录执行 ./configure make make install 完成编译安装

linux代码如何换行?

linux代码换行方式:

1.普通命令:在要换行的地方输入^,然后回车,再继续命令的输入

2.控制命令:如if、for等语句中,克通过(、)控制语句的换行普通命令中换行通过^加入换行

需要多久才能看完linux内核源码?

linux内核不需要看完,分分类,选几个必须看的研究一下,多数不需要看。

内存管理中断管理,进程管理,进程调度,设备管理,inode数据结构等是必修的,设备驱动看俩代表性的,串口的,键盘的, 磁盘的。文件系统看一个意思一下,文件系统很多,代码太多一辈子都看不完。中断管理要多看看,涉及到很多定时,包括进程调度。

当年我花一学期陆陆续续看完所以unix内核代码,但那时的代码少,就2,3万行,现在linux全部内核一辈子也看不完。

linux内核代码算是开源社区里面一盏明灯般的存在,虽然代码是开源但是核心领域能够看懂并且能够真正修改的数量极其的稀少了,大部分代码的更新更多是***设备功能的增添,这种修改距离内核级别的改动还是存在本质的差异,而且很多中国程序员已经参与到很多模块代码的提交了,证明了中国软件行业也在快速发展壮大过程中,证明了很多国内程序员已经度过了最原始的积累过程。

从一个程序员对于编程系统掌握的层次来讲,首先是基础编程语言语言学习过程,然后是能够看懂代码,最后是代码的项目实战过程中,其实看代码和写代码的过程两者属于相辅相成的过程,不断的研究代码机构从中汲取精华然后应用到实际环境中,在实际项目中找到具体的场景自己掌握的一些理论模型在实战中发挥出来,这种属于学以致用的典型,所以一个成熟的程序员需要不断的研究新的代码机构,然后想办法在实践中展示自己的能力,形成良性的循环在现实中很多程序员在初级入门阶段还是积极的学习优秀的代码,在掌握了一定层次的编程能力之后就放慢了学习的脚步,这种模式下[_a***_]容易慢慢落伍。

如果从一个普通C++程序员的角度慢慢学习linux内核,需要具备以下几种基础首先由一个认知linux内核的代码是C语言和汇编完成,单纯的C++未必能够满足其基本的研究需要,所以先要把C语言的基础语法以及内部关键的语法掌握清楚,同时掌握一定的汇编知识,在linux内核的影响效率的地方会使用汇编,所以掌握了汇编和C语言基础的语法之后再去尝试研究linux内核源码,如果不准备好基础编程语法,去研究linux内核将是一种灾难般的存在;对linux内核的api接口有一定的了解,了解***的调用接口才能有助于了解内部是如何实现的,对于linux内核的驱动常规知识也需要有一定程度的掌握。

至于需要多长的时间能够看完linux内核知识,这种时间是无法确定有些人linux内核已经研究十几年了还是觉的里面有很多不了解的地方,可以尝试先从基础的模块开始熟悉从宏观上了解其工作原理,然后根据自己的兴趣爱好找到感兴趣的模块进行研究学习,不要指望多长时间能够掌握透彻,能够当成一辈子研究的事业去做,不要尝试给自己设定时间去完成学习linux内核这种巨大的工程,可以设定时间掌握宏观的框架,但更合适的做法是当成一种兴趣爱好长期去做,希望能帮到你。

Linux内核分为CPU调度、内存管理、网络存储四大子系统,针对硬件的驱动成百上千。代码的数量更是大的惊人。看看最新的关于内核代码量的统计

从图中可以看出,2020年1月份,内核的代码量大约是2千6百万行。回忆你一下你一天能看懂多少代码?反正我自己觉得自己一辈子都看不完Linux内核的代码。

其实阅读代码无非是为了学习代码中有用的内容,所以,我们没有必要阅读所有的代码,只需要阅读关键的代码,或者说对自己有用的代码。

由于内核分为四大子系统,因此我们可以选择自己相关的子系统来阅读。比如你是做存储相关的,可以阅读存储栈相关的代码,如果你是做网络的,你可以做网络相关的代码。

对于代码阅读方法从两个角度来介绍,一个方面是需要选择一个比较有效阅读代码的工具,这样能***我们来理解代码;另外一个方面是先阅读基础代码,比如链表,自旋锁等等。

当然,Linux内核确实博大精深,想要一下子搞明白是不可能的。

有些人推荐先阅读一些低版本的内核,比如0.01版的,总代码量才1万行左右。阅读这个代码大概一个月应该能比较清晰了。但是,改代码与现在的代码差异巨大,阅读后可以理解基本思想,但对理解现有代码的帮助不是特别明显。所以,还是要根据自己的需求来选择性的阅读比较好。

linux 0.11的内核源码,结合下面这本书,我花了大概一个寒***(1个半月),看了一遍。

然而,现在的内核已经膨胀的不成样子了,以还不算最新的linux-4.9.229为例:

整个内核源码一共约 801M:

驱动代码占了大概一半,大约407M:

体系相关的代码大约164M:

网路子系统相关的代码29M:

文件系统相关的代码38M:

linux内核核心代码大约7.7M:

但是就这7.7M,其实你要完全看完看懂也不容易。linux内核代码涉及c语言、硬件组成原理、操作系统数据结构算法等,这些基础知道你都具备了吗?如果没有具备,即使看完linux内核源码,你也看不懂liux内核的精髓。

我敢说,没有一个人把最新linux内核代码看完过,即便linus本人,也不会把内核每个部分了解得很清楚,太庞大了。

作为一个读过2.4代码和ucos II内核的过来人,读代码的目的是什么?是为了了解一个内核各个模块是如何具体实现的,比如内核如何引导的,如何从实模式切换到虚模式,内存如何分配管理的,文件系统是如何实现的,进程是如何管理调度的,中断又是如何实现的,驱动模型是什么样子。学习内核,最好结合前人的分析、一些书籍,在自己结合代码看,这样梗高效,目的是为了理解机制,和代码实现,不需要理解每行代码。国内计算机专业,理论和实践脱节了,尤其操作系统这类基础课,讲了进程管理,却不会讲具体如何实现,不过大学老师没几个能结合实际内核讲,都是照本宣科。

建议先读读ucos,代码量小,可以很深入了解进程和内存管理的实际实现,和各种锁的实现机制,尤其它进程调度算法,太经典了。

到此,以上就是小编对于linux2.6源码学习的问题就介绍到这了,希望介绍关于linux2.6源码学习的4点解答对大家有用。

标签: 代码 内核 linux