当前位置:首页 » 操作系统 » 阅读linux源码

阅读linux源码

发布时间: 2022-04-04 18:15:30

⑴ 如何阅读linux源代码

用写字板打开就可以自动识别UNIX系统的换行符号。一个不会使用基础的编辑工具的新手,还是不要在源代码上浪费时间了。有空先学点基础编程吧~~~

⑵ linux阅读源码用什么软件

系统自带有vi

⑶ 如何通过阅读linux源代码深入学习linux内存子系统

首先,对linux的内存要有整体认识:建议看《深入理解linux内核》,英文好的看原版,没有完全理解不要急,毕竟操作系统没有那么容易学。
其次,导致linux内存管理机制复杂的原因在于Intel的体系结构不断要向前兼容,导致段式管理等一些不易理解的概念产生。建议看《独辟蹊径品内核 linux内核源代码导读》的前部分,在硬件体系结构上理解linux内存管理的演化。
第三,阅读源代码:建议看《linux内核源代码情景分析》。

⑷ 如何阅读linux源码

阅读linux源代码要掌握一定的386硬件知识,AT&T汇编语言结构,操作系统原理等等基础知识。但是及时掌握这些知识读懂源码还是很困难的(当然掌握操作系统原理也是一件不容易的事情),建议你先去看一下u/cos源代码,根据其源代码试着自己给51单片机写一个小的分时操作系统,移植到单片机上试试效果。然后再根据对u/cos理解自己写一个自己的u/cos,并移植到arm7平台上,一步一步来。。。。。。总之linux操作系统是一个很复杂的软件,它不仅仅要求你对大型软件架构有很深入的认识,还要求你对硬件的操作非常熟悉,我们经常看到在linux系统中常常会有汇编语言与c语言的嵌套。阅读linux源代码不是一件容易的事情,要不断的学习,让我们一起来努力吧!

⑸ 如何阅读linux的源代码

1.精通C
2.懂汇编、计算机体系结构、操作系统原理
3.懂算法和数据结构
4.找一本介绍linux源代码的书看,按照书上的步骤做。
5.当然,你要有linux源代码,并且尽可能多地阅读相关文档。

www.oldlinux.org上有一个《linux内核源代码完全注释》的电子文档,是基于linux0.11版的内核注释的。我承认,由于对C的一知半解,加上没学过汇编和体系结构,算法和数据结构也勉勉强强,虽然只有1万行左右的代码,还是没能坚持把它看完。

要是你不喜欢看电子版的,该书已由机械工业出版社出版,你可以向出版社联系购买。

⑹ 在Windows下如何阅读Linux下的源代码

windows下一般使用source insight来阅读linux源码。
Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析。能分析源代码并在工作的同时动态维护它自己的符号数据库,并自动显示有用的上下文信息。

⑺ Linux 平台下阅读 Linux 内核源码好用的工具有哪些

可以使用vim 我个人感觉如果你在linux系统下。基本上编码或者阅读文本都可以使用vim。太强大的一个编辑器了。

⑻ 如何阅读Linux源代码

用Linux的人越来越多了,阅读Liux的人也越来越多了。但是,很多人下了很打的功夫,收益不是很大,下面给大家介绍一下,学Linux阅读Linux内核源代码的捷径。 把内核源码解压后,你会发下,那么多文件夹,早期版本的Linux文件夹还比较少,后来越来越多,这也造成了阅读的困难,下面给大家简单的介绍一下,希望对大家的学习,起作用,能做到事半功倍。

⑼ 怎么开始读Linux内核源码

本人是一名 android display方面的工程师,结合实际工作经验聊聊(观点未必正确)
1. 准备工作:选择什么样的版本,使用什么样的工具,这个需要考虑好。
如果是要参考书的话,kernel版本一般都应该选择和书里面同步的版本,不要去选择最新的版本。因为最新的版本,各种改动比较多,反而对不上书了。
工具问题,你可以选择windows下的source insight,也可以选择linux下vim+ctags;

2. 第一遍浏览,我建议是先把kernel里面的 start_kernel() 函数里面的东西看清楚(不一定看明白),看看这个过程中,出现了什么玩意,有哪些分支,并将分支初略的画出一张图来(当然,我自己并没做到这一点,有点讽刺了)。
这里面最重要的几个地方,我个人认为,应该搞明白mole机制,它是怎么通过编译链接脚本放在特定的区域,然后系统起来后,又是如何去(按照什么规则)去加载这些模块;
应该搞明白sysfs系统,这个对于驱动和用户空间的连接,有非常大的作用;
系统调用的open()应该走一遭,看看用户空间到kernel之间参数是如何传递,又是怎么通过vfs系统,把open的动作最终落实到某一个驱动的open()上去的;
对kernel启动过程中,内存的分配算法,是怎么从伙伴算法切换到最终的算法上,也应该略有耳闻;对fork()函数的过程有所明白。
对kernel中基本的数据结构实现过程、锁机制实现过程要有概念:
这一部分,总结起来,应该看的路线是:

start_kernel()
mole_init() 宏实现 // 看这个的时候,强烈建议,把makefile真正的意图弄明白
open() 系统调用
fork() 系统调用
sysfs 框架实现
双链表是如何实现的;
锁最终是依靠什么来保证的?(其实还是硬件来保证的)

对于数据结构和锁这部分,就按照《Linux内核设计与实现》里面的东西挨个挨个看。有兴趣,自己也可以实现一个双链表公共API,随便哪个项目,一旦用上,直接抛进去,也未尝不可。

第一遍浏览,窃以为,上面这几部分看明白后,kernel的代码对你依然很难,但已经不再有神秘的面纱。
后续,你想研究某个模块,直接快速定位到那边去就行。

3. 在完全用眼睛看完上面这部分内容后,kernel的路或许找到了,但是,万里长征的第一步,并没有迈出。这个时候,动手是很重要的了。
网上有各种方法,比如说,去kernel maillist里面订阅bug,然后自己试着解bug,此方法可取,而且是非常好。这里会遇到一个问题是,我们该怎么调试?
有人是架各种虚拟机或者多台物理机一起开干,这个可以有。(但是本人动手能力确实有限,这个没干成,本人是后面借助了公司的开发板)
如果你也像我一样,动手能力不足,如果你恰巧是手机或者类似手机开发公司的,你可以直接使用公司的开发机,通过串口log,将printk()的级别设置为3,把你需要的信息打印出来;
如果你是学生或者爱好者,可以花500左右人民币,去淘宝上买一个开发板,也是带串口的,所有的debug信息都是通过串口打印出来,保存到一个Log文件中,然后分析;
至于买什么样的板子,你可以随便选择,经典的s3c2440也行,高端点的树莓派,或者全志什么的,都可以。(不推荐全志,他们添加和修改硬件比较多,驱动也许不好搞)

4. 选择你喜欢的模块,进行深入研究,通过log打印,反复推敲,这个时候,bug是最好的导师。多关注kernel/Documents/ 目录下的文档。
你需要注意的是,一定要把该模块无关的东西砍掉,否则,生命是有限的,而代码是无限的。
最后一句话是,在用眼睛看完后,思考过后,还得动手,然后再思考。否则,只读的话,仅能扫盲。

热点内容
平板怎么破解密码 发布:2024-11-14 20:31:23 浏览:340
安卓和苹果系统哪个好哪个不卡顿 发布:2024-11-14 20:24:58 浏览:472
jetty文件上传 发布:2024-11-14 20:23:58 浏览:863
彩色解压泥 发布:2024-11-14 20:16:33 浏览:341
苹果手机怎么打开配置 发布:2024-11-14 20:14:09 浏览:128
php自动压缩 发布:2024-11-14 20:03:48 浏览:15
northwind数据库 发布:2024-11-14 19:46:37 浏览:502
解压感悟 发布:2024-11-14 19:40:25 浏览:448
pdomysqlphp 发布:2024-11-14 19:23:25 浏览:966
entityframework缓存 发布:2024-11-14 19:19:14 浏览:129