当前位置:首页 » 操作系统 » linux源代码情景分析

linux源代码情景分析

发布时间: 2022-06-08 07:19:57

‘壹’ linux内核源代码情景分析的作者简介

1989年到美国留学,在其取得硕士学位后,先后在美国在摩托罗拉等知名企业从事IT工作,对计算机软件和硬件有十分深入、透彻的理解,在此基础上与胡希明一同撰写了Linux业内的经典之作《LINUX核心源代码情景分析》。1999年针对“千年虫”问题,他曾巧妙应用“混合基数”原理,提出一种独特的解决方案,该方法已获美国专利登记,同时获得日内瓦PCT国际专利局全球专利登记。归国后,毛德操教授一直在浙江大学从事计算机软件教育工作,同时在浙大网新作高级顾问兼研发中心主任。2003年12月毛教授来到北京出任新近改组的北京共创开源软件有限公司执行副总裁职位。

‘贰’ 2.6了,看linux 内核源代码情景分析有意义吗

意义肯定有,只是你如何评定你的时间精力“投入”与“收获”问题。看基于2.4版的《linux 内核源代码情景分析》要注意,内存管理部分与2.6完全不同。

‘叁’ 有没有Linux内核源码指导书籍

1.《Linux内核设计与实现》
本书重在原理。适合入门的最佳图书。作者是为2.6内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本书是很权威的。

2.《深入理解Linux内核》
此书比上一本多了些细节。是Linux内核黑客在推荐图书时的首选。写的比较简单易懂,适合刚刚接触LINUX内核的。
此书图表很多,形象地给出了关键数据结构的定义,与《Linux内核源代码情景分析》相比,本书内容紧凑,不会一个问题讲解动辄上百页,有提纲挈领的功用,但是深度上要逊于《Linux内核源代码情景分析》。

3.《LINUX设备驱动程序(第3版)》
这书强调动手实践!但它是讲解“设备驱动”的,不是最核心的东西,而且有些东西没硬件的话无法实践,可能更适合驱动开发的程序员吧
其中关于同步与互斥、内存分配的部分,感觉很不错。

4.《Linux内核源代码情景分析》
好,很经典,是浙大教授毛德操写的,可惜成书于2001年之后一直没有更新。分上下册。
很多是基于2.4内核讲解的需要注意。如果学习的话也建议学习2.6,2.6跟2.4比发生了很多显着改善,应该学习的。
全书内容博大精深,不是非常好懂,对细节问题描述比较清晰。但是感觉对内核的整体感觉不够强。另外缺少网络部分的分析。觉得不是很适合初学者。

5.《Linux内核源代码分析》
点评:面对中高级,这本书很好,对了解操作系统是一本不可多得的好书。
6. 《LINUXKERNEL技术手册》
参考手册,很薄,值得一看。

7.《深入Linux内核架构》
这本书针对的是比较新的内核版本2.6.24;内容比较全面,深入浅出。
如果没有对Linux内核的初步结构的认识,那么会看得比较吃力。建议可以一边去翻在国内已经闻名已经久的四本Linux内核着作(《Linux内核原代码情景分析》、《Linux内核设计与实现》、《深入理解Linux内核》、《Linux设备驱动程序》),再一边看这本书,把这本书当作一个补充或者当作一个内核框架图谱说明书来阅读,收效会更好。

8.《Linux内核完全注释》
主要描述和注释了Linux0.11内核全部源代码。对于初学Linux内核操作系统的人来讲,该书能够引领读者快速入门,并且能全面了解一个简单操作系统的工作机理。对于进一步学习现在的Linux内核具有非常大的指导作用。对于学习嵌入式应用的技术人员来讲,通过《完全注释》一书的学习也能迅速融入嵌入式应用领域。

9.《Orange S:一个操作系统的实现》
从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。

‘肆’ Linux学习书籍求推荐

Linux学习书籍求推荐
1、《Linux与Unix Shell 编程指南》
c语言基础
1、《C Primer Plus,5th Edition》【美】Stephen Prata着
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux应用程序开发详解》
Linux内核
1、《深入理解Linux内核》(第三版)
2、《Linux内核源代码情景分析》毛德操 胡希明着
研发方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP详解》
3、《Linux内核编程》
4、《Linux设备驱动开发》(LDD)
硬件基础
1、《ARM体系结构与编程》杜春雷着
2、S3C2410 Datasheet
英语基础
1、《计算机与通信专业英语》
系统教程
1、《嵌入式系统――体系结构、编程与设计》
2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着
3、《Building Embedded Linux Systems》
理论基础
1、《算法导论》
2、《数据结构(C语言版)》
3、《计算机组织与体系结构?性能分析》
4、《深入理解计算机系统》【美】Randal E. Bryant David O’Hallaron着
5、《操作系统:精髓与设计原理》
6、《编译原理》
7、《数据通信与计算机网络》
8、《数据压缩原理与应用》
入门篇
《LINUX权威指南》书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux 。另外比较热门的也可以看看《鸟哥的私房菜》等书,偏管理类的书。如果想做server方向的可以找来看看。
驱动 篇
《LINUX设备驱动程序 》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对linux外围驱动有很全面的讲解
内核篇
浙江大学的《LINUX内核源代码情景分析》,外国鬼子的《莱昂氏UNIX源代码分析》还有《深入理解linux内核》都是出名的经典巨作。另外赵 炯的《LINUX内核完全剖析–基于0.12内核》也非常不错,对内核代码进行了详细的注释,非常有助于对内核的理解和代码的分析。
shell篇
《LINUX与UNIX Shell编程指南》
应用 编程
不用说了肯定是《unix环境高级编程》被称为unix编程的圣经。
TCP/IP篇
《TCP/IP详解》作者W.Richard Stevens也是《unix环境高级编程》的作者,牛人出的书没有一本不是经典的。但是英年早逝,默哀一下。
c语言
《The C Programming Language》正是作者造出来的c语言,书能垃圾就怪了
《c和指针》和《c缺陷和陷阱》两本必备。包含了c语言最容易出错的地方,加深c语言功力的好材料。
关于算法
《算法导论》
1 熟悉linux基本环境 >>> 《鸟哥的私访菜》《unix初级教程》 《linux编程宝典》(市面上无,图书馆有), 等等。
2 熟悉操作系统的基础知识 >>> 《现代操作系统》 《操作系统概念》
3 熟悉系统编程 >>> 《unix环境高级编程第二版》《unix操作系统设计与实现》
4 内核 按先后顺序: 《 linux内核设计与实现》 《linux设备驱动程序》 《深入理解 linux内核》 《linux内核源代码情景分析》 《深入理解linux虚拟内存系统》
5 其他一些书籍: 《freebsd操作系统设计与实现》 《solaris内核结构》 《unix高级教程:系统技术内幕》 《现代体系结构的unix系统:内核程序员的smp与cache技术》 《保护方式下的80386及其编程》 (后3本市面上没了,大学图书馆里一般都有》 《Intel64 and IA-32 Arichitectures Software Developer’s Manual》
6 其实内核玩深了,体系和编译也要学好 《计算机体系结构:量化研究方法》 《编译原理》(龙书)

Linux编程推荐书籍一览表
shell 编程
《LINUX与UNIX SHELL编程指南》
BASH宝典:
Advanced Bash Scripting Guide (如果你使用的是 GNU/Debian 系统,可以用 apt-get install abs-guide 安装该文档)
BASH Programming – Introction HOW-TO
Bash Man

用户级编程书籍:
Advanced Programming in the UNIX Environment(中文版《UNIX环境高级编程》第二版) 作者 W.Richard
Stevens/尤晋元等
GNU/Linux编程指南 作者 Kurt Wall
Linux 程序设计权威指南 作者 于明俭、陈向阳、方汉
《The Art of Unix Programming》作者 E.S.R
Computer Systems A Programmer’s Perspective
(中文名)《深入理解计算机系统(修订版)》
《Unix Systems Programming》(中文版《UNIX系统编程》)作者: (美)KAY
A.ROBBINS, STEVE ROBBINS 译者:陈涓 赵振平
网络编程:
Unix Network Programming V1 & V2,Unix网络编程卷1、2 作者 W.Richard Stevens
《unix网络编程》
XWindow编程
Definitive Guides to the X WindowSystem 作者 Dan Heller, Paula M. Ferguson

内核源代码阅读(结合源代码)和编程
(入门)
《边干边学Linux内核指导》
(高级)
《Linux Kernel Development》
《Linux内核源代码情景分析》
《深入分析Linux内核源代码》 陈莉君
《 Understanding Linux Network Internals 》即《 深入理解Linux网络内幕(英文影印版)》Christian Benvenuti
内核模块编程
《The Linux Kernel Mole Programming Guide》
Linux设备驱动编程
Linux设备驱动程序/Linux Device
Drivers 作者 Alessandro Ruibini
多线程编程
《多线程编程指南》

‘伍’ 看Linux内核源代码情景分析之前要看什么书我完全是菜鸟。看第一章预备知识cpu寻址方式就看不懂了。

先看看王爽的《汇编语言》,了解一下CPU基本原理和实模式下的寄存器和寻址方式吧,然后建议看看深入理解LINUX内核,讲得详细一些。

《Linux内核源代码情景分析》寻址方面直接讲的保护模式的寻址方法,没基础的话一下子是看不懂的,等你了解了实模式的寻址方式,对寄存器、内存分段管理有一定了解后,就比较容易看懂了。

‘陆’ linux内核源代码情景分析 怎么样

这段时间一直在为毕业论文纠结,论文题目是关于Linux进程模块的源代码分析与研究。 以前拜读过《操作系统设计与实现》,《Linux内核设计与实现》,《understanding the linux kernel 3rd》等等,桌面还有大把的网络下下来的资料。 初识这本书,是大三时候一位同学跟我提起,当时觉得还没到阅读源代码的程度。一直到做这篇论文,在我最纠结的时候,忽然想起朋友说过这本书,于是下了电子版本。 理所当然,我完全被这本书吸引。 我难掩心中的激动,几乎要欢呼起来,这何尝不是一本可以当做小说阅读的书籍! 这本书不像前两本那样,仅仅只是罗列出Linux的特性,数据结构,相关的技术等等,他是在带领你去走进Linux源代码的世界,顺着代码的调用,一路斩荆披棘,最后带你到底目的地。途中虽然惊险,但一路过来,却是充满了趣味,更是享受到了智力上的成就感。 关于书的语言。 读这本书,仿佛是你的好朋友就坐在你面前跟你讲话,他把Linux源码中的枯燥的理论跟生活中普遍的事物联系起来,像进程的task_struct结构体,相当于我们的“户口本”,进程转换到"zombie”状态,“进程死亡了无法帮自己注销户口登记,要父进程帮忙”等等,这些解释非常地形象。所谓的大师也便是如此,用最通俗的语言把最深奥的道理讲明白,我想,这本书的作者做到了。 此书的不足。 这本书也存在着不足之处。第一点,此书是2001年出版的,所以是以2.4版本的源代码为基础的,而现在已经长期停留在2.6版本了;第二是,书中的图片严重不足,很多原理只要附加张图片便能让读者明了,可是作者花了不少的篇幅去解释而没有附加图片,这很让人费解,或者这是因为录入不是作者本人做的原因;第三,这跟很多国内书籍类似,没有索引,查找代码的讲解是件很痛苦的事情。 距离这本书第一次出版已经有八年的时间了,希望作者能抽出时间再修订,在此基础上做2.6版本源代码的分析。 这是我见过的国内比较好的真正用心去写的计算机书籍,在此之前也只读过一本关于汇编语言的书籍,作者是王爽。依稀还记得当年舍友都睡了的时候,一个人小心翼翼地趴在笔记本前仔细阅读的情景,如今甚是怀念。 这是本好书。

‘柒’ Linux内核源代码情景分析的目录

第1章 预备知识
1.1 Linux内核简介.
1.2 Intel X86 CPU系列的寻址方式
1.3 i386的页式内存管理机制
1.4 Linux内核源代码中的C语言代码
1.5 Linux内核源代码中的汇编语言代码
第2章 存储管理
2.1 Linux内存管理的基本框架
2.2 地址映射的全过程
2.3 几个重要的数据结构和函数
2.4 越界访问
2.5 用户堆栈的扩展
2.6 物理页面的使用和周转
2.7 物理页面的分配
2.8 页面的定期换出
2.9 页面的换入
2.10 内核缓冲区的管理
2.11 外部设备存储空间的地址映射
2.12 系统调用brk()
2.13 系统调用mmap()
第3章 中断、异常和系统调用
3.1 X86 CPU对中断的硬件支持
3.2 中断向量表IDT的初始化
3.3 中断请求队列的初始化
3.4 中断的响应和服务
3.5 软中断与Bottom Half
3.6 页面异常的进入和返回
3.7 时钟中断
3.8 系统调用
3.9 系统调用号与跳转表
第4章 进程与进程调度
4.1 进程四要素
4.2 进程三部曲:创建、执行与消亡
4.3 系统调用fork()、vfork()与clone()
4.4 系统调用execve()
4.5 系统调用exit()与wait4()
4.6 进程的调度与切换
4.7 强制性调度
4.8 系统调用nanosleep()和pause()
4.9 内核中的互斥操作
第5章 文件系统
5.1 概述
5.2 从路径名到目标节点
5.3 访问权限与文件安全性
5.4 文件系统的安装和拆卸
5.5 文件的打开与关闭
5.6 文件的写与读
5.7 其他文件操作
5.8 特殊文件系统/proc
第6章 传统的Unix进程间通信
6.1 概述
6.2 管道和系统调用pipe()
6.3 命名管道
6.4 信号
6.5 系统调用ptrace()和进程跟踪
6.6 报文传递
6.7 共享内存
6.8 信号量

‘捌’ 如何读《深入理解linux内核》和《情景分析》

怎么读《深入理解linux内核》和《情景分析》
有同感的人回帖。
------解决方案--------------------------------------------------------
没有基础看着两本书是相当吃力的!
------解决方案--------------------------------------------------------
得有相当的软硬件知识积累才行
要是能随便一天读懂一章,那这个世界就没什么值得积累的技术了

我的建议是先看 Robert Love的Linux Kernel Develop 2nd,作者说那是《深入理解linux内核》的导读,等到你看LKD都很轻松的时候就好看经典了

另外,我觉得先学好驱动开发,再分析内核才是正途。做驱动需要经常用到内核中的数据结构和函数(相当于内核api),难度却比分析内核要低。等到驱动练得熟练了,等于内核的结构有了大致把握,然后就可以分析内核函数的具体实现了,也方便做实验验证。

我也是初学者,目前只是看LKD比较轻松的阶段
------解决方案--------------------------------------------------------
有误
是译者建议先看《深入理解linux内核》再看UND和LDD

驱动难度却比分析内核要低
--------
仅考虑软件部分也许还行,但实际跟硬件交互总有复杂的问题需要解决
------解决方案--------------------------------------------------------
是译者建议先看Linux Kernel Develop 2nd 再看《深入理解linux内核》和LDD

晚上有点不清醒
------解决方案--------------------------------------------------------
我是跳着看过..
------解决方案--------------------------------------------------------
不能太急:)
------解决方案--------------------------------------------------------
都看不懂~
------解决方案--------------------------------------------------------
其实 Robert Love 的Linux Kernel Develop 2nd也比较难懂。

这几本书的中文版都是陈丽君翻译的,她自己写的一本《Linux操作系统原理与应用》比较易懂,可以做这几本书的铺垫!
------解决方案--------------------------------------------------------
建议:
lkd+ulk+源代码,
情景分析中讲的太细,没有ULK的基础很容易一猛子扎进去出不来,迷在代码中
建议lkd先看一遍,这个半月就差不多了
然后ULK结合源码,这可是个慢功夫,一般ULK看一半就感觉前边看的什么都没有了
这时候在看lkd中对应的ULK已经看过的章节
等ULK中重要的章节基本看完,再分块看
例如:
进程管理+中断,内存管理等几块
情景分析的话等ULK看了1-2遍(随时结合代码),需要深入的章节而你自己看源码又有些地方不理解,可以参考情景分析相应的章节,没必要全部看完

另外,推荐一本新书《Professional Linux Kernel Architecture》,个人认为这本比ULK写的更好
ULK更多是教你内核里有什么,而这本书教的是内核有什么,为什么这样。让你知其然又知其所以然。当然虽然本书很厚,1300多页,由于涉及太多,深度的话跟ULK差不多,甚至稍微浅一点。

本人的一点感想,不一定适合LZ,LZ看情况而定吧

------解决方案--------------------------------------------------------
个人感觉《深入理解linux内核》也就是ULK没有个一年功夫就别想读懂,这东西欲速则不达。
------解决方案--------------------------------------------------------
看了好几本, 没有一本看完的
------解决方案--------------------------------------------------------
楼主心态有问题,速战速决要分情况滴

------解决方案--------------------------------------------------------
其实 Robert Love 的Linux Kernel Develop 2nd也比较难懂。

这个我以前听说是比较入门的,但是我看了两遍后还是希里糊涂的。

‘玖’ LINUX内核源代码情景分析(上册)

毫不犹豫的买下了,京东速度果然非常快的,从配货到送货也很具体,快递非常好,很快收到书了。书的包装非常好,没有拆开过,非常新,可以说无论自己阅读家人阅读,内核源代码情景分析(上册)采取类似于英语教学中行之有效的情景会话的教学方法,全面深入地剖析了最新版本核心源代码,并对核心的独特优点和需要进一步改进的问题作了精辟的评述。内核源代码情景分析(上册)包括预备知识、存储管理、中断和系统调用、进程和进程调度、文件系统以及传统的进程通讯共六章。收藏还是送人都特别有面子的说,特别精美各种十分美好虽然看着书本看着相对简单,但也不遑多让,塑封都很完整封面和封底的设计、绘图都十分好画让我觉得十分细腻具有收藏价值。书的封套非常精致推荐大家购买。打开书本,书装帧精美,纸张很干净,文字排版看起来非常舒服非常的惊喜,让人看得欲罢不能,每每捧起这本书的时候似乎能够感觉到作者毫无保留的把作品呈现在我面前。作业深入浅出的写作手法能让本人犹如身临其境一般,好似一杯美式咖啡,看似快餐,其实值得回味无论男女老少,第一印象最重要。从你留给别人的第一印象中,就可以让别人看出你是什么样的人。所以多读书可以让人感觉你知书答礼,颇有风度。多读书,可以让你多增加一些课外知识。培根先生说过知识就是力量。不错,多读书,增长了课外知识,可以让你感到浑身充满了一股力量。这种力量可以激励着你不断地前进,不断地成长。从书中,你往往可以发现自己身上的不足之处,使你不断地改正错误,摆正自己前进的方向。所以,书也是我们的良师益友。多读书,可以让你变聪明,变得有智慧去战胜对手。书让你变得更聪明,你就可以勇敢地面对困难。让你用自己的方法来解决这个问题。这样,你又向你自己的人生道路上迈出了一步。多读书,也能使你的心情便得快乐。读书也是一种休闲,一种娱乐的方式。读书可以调节身体的血管流动,使你身心健康。所以在书的海洋里遨游也是一种无限快乐的事情。用读书来为自己放松心情也是一种十分明智的。读书能陶冶人的情操,给人知识和智慧。所以,我们应该多读书,为我们以后的人生道路打下好的、扎实的基础!读书养性,读书可以陶冶自己的性情,使自己温文尔雅,具有书卷气读书破万卷,下笔如有神,多读书可以提高写作能力,写文章就才思敏捷旧书不厌百回读,熟读深思子自知,读书可以提高理解能力,只要熟读深思,你就可以知道其中的道理了读书可以使自己的知识得到积累,君子学以聚之。总之,爱好读书是好事。让我们都来读书吧。其实读书有很多好处,就等有心人去慢慢发现.最大的好处是可以让你

‘拾’ Linux内核源代码情景分析适合初学linux的人吗

如果你有一定的c语言基础并且对linux的文件系统比较了解的话,可以直接看linux的内核源码分析

热点内容
java读取xlsx 发布:2024-11-01 08:54:47 浏览:724
苹果安卓系统英文叫什么 发布:2024-11-01 08:54:37 浏览:761
php日期计算 发布:2024-11-01 08:52:18 浏览:443
怎么压缩rar 发布:2024-11-01 08:45:50 浏览:660
按位与java 发布:2024-11-01 08:39:44 浏览:55
鸟哥linux私房菜服务器 发布:2024-11-01 08:26:19 浏览:943
tomcat在linux下配置 发布:2024-11-01 08:09:57 浏览:95
工行密码器怎么买东西 发布:2024-11-01 08:00:02 浏览:712
查找子串的算法 发布:2024-11-01 07:58:25 浏览:215
最快学编程 发布:2024-11-01 07:30:56 浏览:527