精华内容
下载资源
问答
  • 一篇描述如何阅读Linux内核代码的文章, 适合不知道如何下手的新人.
  • Linux内核学习路径

    2018-07-12 22:28:54
    Linux内核学习路径 Linux内核学习路径 Linux内核学习路径
  • Linux 内核学习经验总结,Linux 内核学习经验总结,Linux 内核学习经验总结
  • linux内核学习必备,包含了三本电子书: Linux内核设计的艺术_图解Linux操作系统架构设计与实现原理 Linux内核完全注释 Understanding.the.Linux.Kernel.3rd.Edition
  • Linux内核学习路线 有入门到深入

    千次阅读 2020-07-16 13:30:04
    学习linux内核是需要一步一步循序渐进,掌握正确的linux内核学习路线对学习至关重要,本篇文章就来分享学习linux内核的一些建议吧。 1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew ...

    学习linux内核,这个可不像学一门语言,c或者java一个月或者3月你就能精通掌握。学习linux内核是需要一步一步循序渐进,掌握正确的linux内核学习路线对学习至关重要,本篇文章就来分享学习linux内核的一些建议吧。

    1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。非常推荐。

    2. 有了操作系统的基本概念以后,可以了解Linux的机制了。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这本书要反复认真看透。

    3. 有了Linux内核的了解,还需要具体研究Linux内核源码。经典的就是《深入理解Linux内核》Daniel P. Bovet 写的。学习这本书的时候,要对着内核代码看着学。这本书学起来相当费力了,那么多多代码要研究。不过这本书如果学明白了,恭喜你,Linux内核你已经很熟悉了。

    4. 如果要开发设备驱动,可以学习《linux设备驱动程序》O'Reilly出版社的。这本作为驱动的入门是很好的资料。另外还有一本《精通Linux 驱动程序开发》也是不错的教材,可以参考着看。学习驱动,免不了要学习一些硬件的协议和资料,研究哪个就找到相应的硬件文档,把硬件的工作原理搞明白。这些就不细说了。

    5. 网络部分,学些Linux网络部分就学习《深入理解LINUX网络技术内幕》。这本书把Linux的网络部分讲的非常清晰透彻。但是通常不做这方面的工作研究,也不用研究这么深,毕竟现在相关职位较少。

    6. 现在Linux相关的工作,多集中在一些嵌入式开发领域,arm,mips等,要学习以下这些体系架构的的资料,了解CPU的设计和工作方式。ARM就看对应的芯片手册,讲的很细致。MIPS就看 《see mips run》,有一二两版,两版内容有些差异,推荐都看。

    7. 补充一点经验。不要认为Linux很庞大,很复杂,就觉的很难学。任何东西认真学下来都是能学会的,看你都恒心和毅力了。另外,不要走弯路,不要看市面上讲什么Linux0.11的那些书,直接学你要学的东西。就像学C语言看什么谭浩强一样,弯路走了,力气没少花,还严重影响学习效果。

    关于linux内核学习路线,再多说几句应用编程,有时候经常会需要的:

    1. 学习Linux应用编程,建议看《unix环境高级编程》,把里面的例子都做一遍,会对整个Linux编程有系统认识。

    2. 针对Linux,有本 《Linux系统编程》,学完上一本,这本很快看一遍就懂了。主要是针对Linux具体懂一些内容,讲的挺全了,很实用。

    3. Linux网络编程,系统的学习一下《unix网络编程.卷1,套接字联网api》,基本上网络应用相关的程序就都没问题了。

    这些内容,分几年时间,分步计划学习,就会成为Linux高手了

    展开全文
  • Linux内核学习资料

    2013-06-26 16:32:08
    Linux内核学习资料包中有Linux内核--网络栈实现分析(二)--数据包的传递过程(上).pdf Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上).pdf Linux内核--网络栈实现分析(四)--网络层之IP协议(上)....
  • Linux内核学习

    千次阅读 2016-11-17 14:45:24
    Linux内核组成:系统调用接口,进程管理,内存管理,Arch,设备驱动程序,网络协议栈,虚拟文件系统。 内核目录结构: (1)Arch:是architecture的缩写。内核所支持的每种CPU的体系,在该目录下都有对应的子目录...

    内核空间和用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。

    系统调用是程序主动发起的,硬件中断时被动的。

    Linux内核组成:系统调用接口,进程管理,内存管理,Arch,设备驱动程序,网络协议栈,虚拟文件系统。


    内核目录结构:

    (1)Arch:是architecture的缩写。内核所支持的每种CPU的体系,在该目录下都有对应的子目录。每个CPU子目录,有进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等。

    (2)block:部分块设备驱动程序。

    (3)crypto:加密、压缩、CRC校验算法。

    (4)documentation:内核的文档。

    (5)driver:设备驱动程序。

    (6)fs目录:存放各种文件系统的实现代码。每个子目录对应一种文件系统的实现,公用的源程序用于实现虚拟文件系统vfs。

    (7)include目录:内核所需要的头文件。与平台无关的头文件在include/linux子目录下,与平台相关的头文件放在相应的子目录下。

    (8)lib目录:库文件代码。

    (9)mm目录:mm目录中的文件用于实现内存管理中与体系无关的部分。

    (10)net目录:网络协议实现代码。

    (11)samples:一些内核编程的范例。

    (12)scripts:配置内核的版本。

    (13)security:SELinux的模块。

    (14)sound:音频设备驱动文件。

    (15)usr:cpio命令实现。

    (16)virt:内核虚拟机。


    嵌入式系统:以应用为中心,软硬件可裁剪,对功耗、体积、成本等严格要求的专业计算机系统。

    内核配置和编译

    Linux内核具有可定制的优点具体步骤如下:

    1.清除临时文件、中间文件和配置文件:make clean,删除产生的文件比如说o文件,但是不能删除配置文件;

       :make mrproper,删除产生的文件和配置文件;

       :make distclean,mrproper+remove editor backup and patch files;

    2.确定目标系统的软硬件配置情况,比如CPU的类型、网卡的型号,所需支持的网络协议等。

    3.使用如下命令之一配置内核:(1)make config,基于文本模式的交互式配置;

      (2)make menuconfig,基于文本模式的菜单型配置(推荐使用);

      (3)make oldconfig,使用已有的配置文件,但是会询问新增的配置选项;

      (4)make xconfig,图形化配置(需要安装图形化系统)。

    *和m产生->.o,而*再产生image,m只编译不链接,*编译链接

    n什么也不产生 

    内核配置通常在一个已有的配置文件基础上,通过修改得到新的配置文件,Linux内核提供了一些列可参考的内核配置文件,位于Arch/$cpu/configs。

    4.编译内核:

    (1)make zlmage

    (2)make bzlmage

    区别:在x86平台上,zlmage只能用于小于512k的内核。

    如需获取详细的信息,可使用:

    (1)make zlmage V=1

    (2)make bzlmage V=1

    编译好的内核位于arch/<cpu>/boot/目录下

    5.编译内核模块:

    make modules

    6.安装内核模块:

    make modules_install,将编译好的内核模块从内核源代码目录copy至/lib/modules下。

    7.制作init ramdisk

    mkinitrd initrd-$version $version

    例:mkinitrd initrd-2.6.29 2.6.29

    version可以通过查询/lib/modules下的目录得到。

    内核安装

    1.cp arch/x86/boot/bzlmage/boot/vmlinuz-$version
    2.cp $initrd /boot/boot/
    3.修改/etc/grub.conf或者/etc/lilo.conf
    version为所编译的内核版本号。

    内核模块

    什么是内核模块?
    Linux内核的整体结构非常庞大,其包含的组件也非常多,如何使用需要的组件呢?
    (1)把所有的组件都编译进内核文件zlmage或bzlmage,但这样会导致两个问题:一时生成的内核文件过大;二是如果要添加和删除两个组件,要重新编译整个内核。
    有没有一种机制让内核文件本身并不包含某组件,二是组件需要被使用的时候,动态添加进正在运行的内核呢? 有,Linux提供了一种内核模块的机制就是实现了以上的效果。
    内核模块特点:(1)模块本省并不被编译进内核文件;(2)可以根据需求,在内核运行期间动态的安装和卸载。

    程序机构:
    1.模块加载函数(必须):安装模块时被系统自动调用的函数,通过module_init宏来指定。
    2.模块卸载函数(必须) 卸载模块时被系统自动调用的函数通过module_init宏来指定。
    模块的编译,在Linux2.6下编译内核模块,通常使用makefile

    内核模块的安装和卸载:
    模块可选信息:









    展开全文
  • 详细描述参考 http://blog.chinaunix.net/uid-20608849-id-3066172.html, 之所以要1分:人人为我,我为人人
  • Linux内核设计与实现_第三版_清晰中文版;UnderStanding The Linux Kernel (3rd Edition);深入linux内核架构;深入理解Linux内核(完整版)中文版
  • 内核经典书籍之前,我觉得应该先明确学习linux的方向。之前看到一篇关于linux学习方向的文章,觉得写的很有道理,他把学习linux分为这么几个方向:  桌面系统:应用,像XP  内核源代码学习:研究,爱好,研发  ...
  • Linux内核学习书籍

    万次阅读 2018-10-11 15:43:29
    关于内核学习我建议不要上来就读内核而是先了解内核的构成和特性,然后通过思考发现疑问这时再去读内核源码。即先了解概貌在读局部细节。而且内核分成好多部分,不要只是按照顺序去读,应该针对某一部分比如内存管理...

    转自: https://blog.csdn.net/21aspnet/article/details/6585602

    关于内核学习我建议不要上来就读内核而是先了解内核的构成和特性,然后通过思考发现疑问这时再去读内核源码。即先了解概貌在读局部细节。而且内核分成好多部分,不要只是按照顺序去读,应该针对某一部分比如内存管理或进程管理横向读几本书,这样可以理解很全面。

    Linux Kernel 四库全书
    1. Linux内核设计与实现 Edition 2   
    2. Linux设备驱动 Edition 3   
    3. Linux内核源代码情景分析   
    4. 深入理解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比发生了很多显著改善,应该学习的。

    全书内容博大精深,不是非常好懂,对细节问题描述比较清晰。但是感觉对内核的整体感觉不够强。另外缺少网络部分的分析。觉得不是很适合初学者。
    上册讲解内存管理、中断、异常与系统调用、进程控制、文件系统与传统Unix IPC;下册讲解socket、设备驱动、SMP和引导。

    本书基于Intel IA32体系,由于厚度大,很多体系上的知识都捎带讲解了,所以如果你想深入了解内核的工作机制而又不非常熟悉Intel CPU的体系构造,本书是最合适的。

     

    这本书可以结合陈莉君老师的《深入分析Linux内核源代码》,这本书也是2.4内核的,网上可以下载

    作者: 陈莉君
    出版社: 人民邮电出版社
    出版年: 2002-8
    页数: 531
    ISBN: 9787115105257

    说明:陈老师是上述《深入理解Linux内核》和《Linux内核设计与实现》的作者,曾通读过linux的所有代码。
     

    ==================扩充阅读==================

    5.《Linux内核源代码分析》

    作者: (美)Scott Maxwell
    译者: 冯锐/邢飞/等
    出版社: 机械工业出版社
    出版年: 2000-06
    页数: 633
    ISBN: 9787111080923

    点评:面对中高级,这本书很好,对了解操作系统是一本不可多得的好书。

     

    6. 《LINUX KERNEL技术手册》

    参考手册,很薄,值得一看。

     

    7.《深入Linux内核架构》

    这本书针对的是比较新的内核版本2.6.24;内容比较全面,深入浅出。

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

     

    8.《Linux内核完全注释》

    此书出自同济一个博士--赵炯。

    本书作者赵炯谈《Linux内核完全注释》和《Linux内核源代码情景分析》..
    主要描述和注释了Linux 0.11内核全部源代码。对于初学Linux内核操作系统的人来讲,该书能够引领读者快速入门,并且能全面了解一个简单操作系统的工作机理。对于进一步学习现在的Linux内核具有非常大的指导作用。对于学习嵌入式应用的技术人员来讲,通过《完全注释》一书的学习也能迅速融入嵌入式应用领域。同样,该书也能作为阅读现代Linux内核源代码的一本参考手册使用。由于该书是对代码逐条进行注释的,因此也能作为深入学习C语言编程的参考书。另外,该书不仅配备有完整的Linux 0.11系统试验环境,而且本人还在一年前就在网上专门建立了一个针对该书的网站“www.oldlinux.org”,专门开辟了一个讨论该书所涉及的Linux内核实现的论坛。目前该网站的内容已经被权威Linux内核发布网站www.kernel.org全部作了镜像(mirrors.kernel.org)。

    http://www.oldlinux.org/Linux.old/

    网站宗旨:

    收集Linux从酝酿到开发初始版本有关的所有资料和信息(1991-1995);

    重新建立起最古老的Linux可运行系统,这些系统在其它地方很难再找到了;

    为初学者提供一个学习Linux内核基本工作原理的最简单方法。

     

    本书新版:《Linux内核完全剖析--基于0.12内核》

    2009年出的,很厚。

    ===============自制操作系统系列==================

    9.《Orange S:一个操作系统的实现》

    作者:于渊

    出版社: 电子工业出版社; 第1版 (2009年6月1日)

    本书第一版2005年出版,这是第二版。

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

     

    10.《30天自制操作系统

    作者: (日)川合秀实    [作译者介绍]
    译者: 周自恒 李黎明 曾祥江 张文旭
    丛书名: 图灵程序设计丛书
    出版社:人民邮电出版社
    ISBN:9787115287960

    点评:小日本写的,不过确实写的内容很好,讲怎么自己一步步写操作系统,从汇编到C都有涉及。

    _________________________________________________________________________

     

    unix是Linux的基础,学习linux也要看unix

    Unix的绝版好书

    UNIX操作系统设计


        原书名:The Design of the UNIX Operating System

        作者: (美)Maurice J.Bach   
        译者: 陈葆钰 王旭 柳纯录 冯雪山
        丛书名: 计算机科学丛书
        出版社:机械工业出版社
        ISBN:9787111373971

    点评:当年linux之父参考过,非常经典,无需多言

    ----------------------------------------------------------

     

    UNIX编程环境


        原书名:The UNIX Programming Environment

        作者: Brianw.Kernighan   
        译者: 陈向群
        丛书名: 计算机科学丛书
        出版社:机械工业出版社
    点评:非常好的入门书.书中绝无生僻的角落,对于入门来说没有什么难以理解的。但是字里行间浸透了作者设计unix的指导思想,这一点是别的入门书无法企及的。
      书中提及的点滴都是实用的方法和准则,而这些充斥着在unix上一整天的工作,即使是有经验的用户学过此书后工作效率也会提升。

     

    UNIX高级教程系统技术内幕

    作者: (美)Uresh Vahalia
    译者: 聊鸿斌/等
    出版社: 清华大学出版社
    出版年: 1999-05

    点评:老书,有电子版。linux/unix的顶级宝贝!

    展开全文
  • linux内核学习资料

    2015-07-23 16:40:22
    linux内核学习的经典书籍,内核、驱动学习
  • Linux内核学习和研究及嵌入式(ARM)学习和研究的开放文档.chm电子书格式,将网页内容制作成的
  • linux内核重要学习资料(吐血推荐) linux内核学习资料(吐血推荐) linux内核学习资料(吐血推荐) linux内核学习资料(吐血推荐) linux内核学习资料(吐血推荐)
  • Linux 内核学习

    2013-08-17 11:23:48
    linux 内核学习资料,深入学习linux必备工具,内核功能可裁剪、增加灵活性,Linux系统一般有4个主要部分,分别是应用程序,shell、内核,文件系统。shell,内核文件系统构成了基本操作系统结构,在它之上使得用户可以...
  • Linux内核学习路线 学习linux内核的建议

    千次阅读 多人点赞 2019-03-04 15:17:11
    学习linux内核是需要一步一步循序渐进,掌握正确的linux内核学习路线对学习至关重要,本篇文章就来分享学习linux内核的一些建议吧。 1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S...

    学习linux内核,这个可不像学一门语言,c或者java一个月或者3月你就能精通掌握。学习linux内核是需要一步一步循序渐进,掌握正确的linux内核学习路线对学习至关重要,本篇文章就来分享学习linux内核的一些建议吧。

    1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。非常推荐。

    2. 有了操作系统的基本概念以后,可以了解Linux的机制了。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这本书要反复认真看透。

    3. 有了Linux内核的了解,还需要具体研究Linux内核源码。经典的就是《深入理解Linux内核》Daniel P. Bovet 写的。学习这本书的时候,要对着内核代码看着学。这本书学起来相当费力了,那么多多代码要研究。不过这本书如果学明白了,恭喜你,Linux内核你已经很熟悉了。

    4. 如果要开发设备驱动,可以学习《linux设备驱动程序》O'Reilly出版社的。这本作为驱动的入门是很好的资料。另外还有一本《精通Linux 驱动程序开发》也是不错的教材,可以参考着看。学习驱动,免不了要学习一些硬件的协议和资料,研究哪个就找到相应的硬件文档,把硬件的工作原理搞明白。这些就不细说了。

    5. 网络部分,学些Linux网络部分就学习《深入理解LINUX网络技术内幕》。这本书把Linux的网络部分讲的非常清晰透彻。但是通常不做这方面的工作研究,也不用研究这么深,毕竟现在相关职位较少。

    6. 现在Linux相关的工作,多集中在一些嵌入式开发领域,arm,mips等,要学习以下这些体系架构的的资料,了解CPU的设计和工作方式。ARM就看对应的芯片手册,讲的很细致。MIPS就看 《see mips run》,有一二两版,两版内容有些差异,推荐都看。

    7. 补充一点经验。不要认为Linux很庞大,很复杂,就觉的很难学。任何东西认真学下来都是能学会的,看你都恒心和毅力了。另外,不要走弯路,不要看市面上讲什么Linux0.11的那些书,直接学你要学的东西。就像学C语言看什么谭浩强一样,弯路走了,力气没少花,还严重影响学习效果。

    关于linux内核学习路线,再多说几句应用编程,有时候经常会需要的:

    1. 学习Linux应用编程,建议看《unix环境高级编程》,把里面的例子都做一遍,会对整个Linux编程有系统都认识。

    2. 针对Linux,有本 《Linux系统编程》,学完上一本,这本很快看一遍就懂了。主要是针对Linux具体懂一些内容,讲的挺全了,很实用。

    3. Linux网络编程,系统的学习一下《unix网络编程.卷1,套接字联网api》,基本上网络应用相关的程序就都没问题了。

    这些内容,分几年时间,分步计划学习,就会成为Linux高手了

    展开全文
  • Linux内核学习笔记(1)—— 什么是Linux内核? 1. 什么是操作系统? 操作系统是负责完成整个系统中最基本功能和系统管理,包括内核、设备驱动程序、启动引导程序、命令行shell或其它种类的用户界面、基本的文件...
  • linux内核学习

    2013-04-24 22:52:28
    Linux内核设计与实现+原书第3版.pdf Linux内核完全注释V3.0.pdf 深入理解Linux内核第3版.pdf
  • 非常详细的linux内核视频教程,比较健全,适合入门到精通。
  • Linux内核学习笔记(四)进程管理

    千次阅读 2018-05-09 17:10:40
    进程是正在执行的程序,同时也是操作系统进行资源管理的最小单位,进程需要管理打开的文件、挂起的信号、内核内部数据、处理器状态等。 线程(Thread)是进程中正在执行的程序片段,是操作系统进行调度的最小单位,...
  • 史上最牛的Linux内核学习方法
  • 又报错了,这在内核学习过程中是很常见的,我们要习惯,并尝试去解决错误,我们首先没有修改过源码文件,所以我们先不要去修改源代码,那么就是少一些依赖文件,经过查阅资料,我们知道原来启用 make menuconfig 是...
  • linux内核学习 Linus Torvalds本人是这样回答的:你必须使用过Linux。 这个……还是有点太泛了吧,我想下面几个基础可能还是需要的,尽管不一定必需: 1, 关于操作系统理论的最初级的知识。不需要通读并理解《操作...
  • raspberry-pi-os:使用Linux内核和Raspberry Pi学习操作系统开发
  • 我的Linux内核学习之路

    万次阅读 多人点赞 2014-03-02 18:34:28
    所以当时就选择学习Linux。 至于为什么要学习Linux, 有以下三个原因。  一是我比较喜欢开源的东西, 当时学习Java就是因为它开源, 以后选择学习Android很大一部分原因也是因为它开源。 现在已经工作了大...
  • linux内核学习的一点感受

    千次阅读 2016-05-01 21:12:03
    徐晨 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程...既然是课程总结,我大概描述一下这个课程,供对Linux内核感兴趣的同学参考。这门课没讲什么 在学习操作系统的时候,我们知道了操作系统将CPU
  • Linux内核学习总结

    千次阅读 2018-09-08 10:44:35
    Linux内核是一个提供硬件抽象层、文件系统管理、多任务管理等功能的系统软件,主要模块包括:CPU和进程管理、存储管理、文件系统、设备管理和驱动、网络通信、系统调用等。而本课程主要聚焦在CPU和进程管理模块,...
  • Linux内核学习 逐步学习Linux内核。
  • linux 内核学习3-自己编译一个ARM Linux内核 1. 目的 编译一个ARM版本的内核镜像,谁让我是做Android的呢!并且在QEMU上运行。 2. 准备工作 2.1 开发环境 ubuntu 18.4虚拟机 linux内核版本 4.19.67 linux内核地址 ...
  • Linux内核学习(3)最小系统制作 参考书籍:《深度探索Linux操作系统 系统构建和原理解析》 参考博文:https://blog.csdn.net/lixiangminghate/article/details/55224412 (一)配置内核方式介绍 1.按照芯片...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 175,944
精华内容 70,377
关键字:

linux内核学习

linux 订阅