蓉杠学习网

linux内核 学习***,linux内核技术实战课

大家好,今天小编关注到一个比较意思的话题,就是关于linux内核 学习视频问题,于是小编就整理了3个相关介绍Linux内核 学习***的解答,让我们一起看看吧。

  1. 不懂汇编可以学Linux内核吗?
  2. 需要多久才能看完linux内核源码?
  3. 如何学习android上的linux kernel,从哪学起,怎么样循序渐进地看不同的部分?

不懂汇编可以学Linux内核吗?

1.汇编占kernel的极少部分。看你希望学习哪一块了。本人认为不影响你学习kernel,即便是汇编也是嵌入到c语言的汇编,所以不用担心。

2.汇编并不是一个非常苦难的东西。只要你熟悉 计算机体系结构程序基本原理函数堆栈,内存寻址),然后找一下官方的指令手册一行一行慢慢看,慢慢就熟悉了!

linux内核 学习视频,linux内核技术实战课div>
图片来源网络,侵删)

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

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

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

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

linux内核 学习视频,linux内核技术实战课
(图片来源网络,侵删)

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

我觉得一个人穷其一生也看不完整个内核的源码,Linux内核全世界的程序员在维护,现在已经变得无比庞大,连Linus本人也未必能读完。现实一点,找几个自己感兴趣的框架阅读一下就可以了,比如网络框架、多媒体框架等等。更深入一点阅读内存管理文件管理也是可以的,但意义不大,除非自己想搞一套操作系统,并且要有一定的[_a***_]基础。

老铁,我也在学习linux内核,我说一下我的想法吧。

linux内核 学习视频,linux内核技术实战课
(图片来源网络,侵删)

我曾经很早的时候就想学习linux内核了,当时准备啃书,并对着代码看,热情了一阵子,可由于太深奥就不了了之了。

最近工作原因,涉及到内核文件系统的研究,重新学习内核,感觉比较容易弄懂了。为了避免走弯路,我建议:

1. 不要一来就对着内核源码啃。内核源码压缩后现在都一百多M了,有生之年你也别想全看完弄懂,各种算法,诡异的写***弄晕你。

2. 先找一些内核实现原理的书来大致看一遍,这个时候不必深究细节,不懂的就做一些问题清单记起来。

3. 内核由几大模块构成,你要大概了解它们的相互关系。例如进程中就记录打开的文件信息,进程的地址空间主要内存管理模块来分配和管理内存。

4. 选择一个模块作为切入点,通过实验对内核下手!我是从文件系统这块开始的,比较简单这次没有搞晕我了。

5. 必须动手实验,光看书是没用的!!!你亲自通过加打印,或断点调试跟踪代码调用路径,通过自己写代码实现一些功能后,你自己会豁然开朗,信心大增了!

希望我的回答对你有用!

如果你的目标仅仅是看完,内核源码2000+万行,你给自己你个目标每天看多少行吧!而如果不要完全看懂这二千万行代码,恐怕要花掉你这一辈子光阴,都不一定能达成目标。

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

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

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

如何学习android上的linux kernel,从哪学起,怎么样循序渐进地看不同的部分?

这里本人推荐一本关于学习人工智能机器人存操作程序步骤的书籍,你可以循序渐进的学习。本书工程师撰写,介绍机器学习中需要的主要数学知识,以及机器学习算法的实现和应用场景,为机器学习初学者制定了如何夯实基础的方案。本书以机器学习的算法为主线,深入剖析算法的概念和数学原理,以通俗形象的语言进行介绍,让读者无需了解太多前置数学知识,就能看懂数学公式的表达意思,从而深度掌握机器学习的思想和原理。主要内容包括:首先介绍机器学习基本概念及工具,然后从概念、原理、Python实现、应用场景几个方面,详细剖析机器学习中主要的算法,如线性回归算法、逻辑回归算法、KNN、木素贝叶斯、决策分类、支持向量机分类、K-means聚类、分类、集成学习等。

这是一本介绍机器学习的书,按常理来说,我应该首先介绍学习机器学习的重要性。可是,有必要吗?我记得约五年前,机器学习还是一个很有科幻色彩的术语,而现在技术学习圈几乎整版都换成了机器学习的各种模型,国内很多大学已经开始设立人工智能,机器学习当仁不让地成为核心课程。据说相关学者已经将该知识编制成课本,即将走入中学课堂。机器学习的火热,连带着让长年不温不火的Python语言也借机异军突起,甚至掀起一阵Python语言的学习热潮。机器学习已经成为“技术宅”的一种技能,因此,实在没必要再占篇幅介绍它的重要性。但是,学习机器学习的路途是坎坷和颠簸的,不缺的就是让你半途而废的借口。机器学习的成就是站在巨人的肩膀上取得的,因此,当你终于下定决*习机器学习时,很多人给你开出一串长长的学习清单:机器学习涉及大量向量和矩阵运算,所以线性代数是肯定要学的;机器学习的很多模型算法都以统计知识作为背。

不清楚楼主从事哪方面的工作,一般Android系统剪裁或者驱动开发, 需要学习内核部分。

我的想法,可以从2方面进行。

1. 研究一下linux内核 0.1版

此版是学习linux系统原理的经典,只有几百K。

可以自己尝试编译运行linux 0.1版,以下是别人的分享

***s://mapopa.blogspot***/2008/09/linux-0.html

通过此版的研究(虽然功能单一),你能对操作系统有进一步的理解。

2. 研究Android内核

从加电power on启动流程分析 入手,然后到init进程,然后到binder,匿名内存共享等学习。

一步一个脚印,做好笔记,提升肯定会很快。

到此,以上就是小编对于linux内核 学习***的问题就介绍到这了,希望介绍关于linux内核 学习***的3点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/17101.html

分享:
扫描分享到社交APP