• 关于Linux内核,推荐的8本书籍


    https://zhuanlan.zhihu.com/p/72818398

    推荐几本高质量的Linux内核的书籍。

    第一本,《Linux内核设计与实现》,基于Linux 2.6内核介绍了Linux内核的设计与实现,涵盖了从核心内核系统的应用到内核设计与实现等各方面内容,主要内容包括:进程管理、调度、时间管理和定时器、系统调用接口、内存寻址、内存管理、页缓存、VFS、内核同步、可移植性、调试技术等。此外,本书还讨论了Linux 2.6颇具特色的内容,包括CFS调度程序、抢占式内核、块I/O层以及I/O调度程序。

    第二本,《深入理解LINUX内核》,内核中使用的最重要的数据结构、算法和程序设计诀窍进行一次遍历。通过对表面特性的探究,作者给那些想知道自己机器工作原理的人提供了颇有价值的见解。书中讨论了Intel特有的重要性质。相关的代码片段被逐行剖析。然而,本书涵盖的不仅仅是代码的功能,它解释了Linux以自己的方式工作的理论基础。

    1. ●内存管理,包括文件缓存、进程交换和直接内存存取(DMA)
    2. ●虚拟文件系统层和第二、第三扩展文件系统
    3. ●进程创建和调度
    4. ●信号、中断和设备驱动程序的主要接口
    5. ●定时
    6. ●内核中的同步
    7. ●进程间通信(IPC)
    8. ●程序的执行

    《深入理解Linux内核》将使你了解Linux的所有内部工作,它不仅仅是一个理论上的练习。你将学习到哪些情况下Linux性能最佳,并且你将看到,在大量的不同环境里进行进程调度、文件存取和内存管理时它如何满足提供良好的系统响应的需要。这本书将帮助你充分利用Linux系统。

     

    第三本,《LINUX设备驱动程序》,本书的作者均是Linux社区的领导者。Jonathan Corbet虽不是专职的内核代码贡献者,但他是备受关注的新闻及信息网站的执行编辑。Alessandro Rubini是一名Linux代码贡献者,也是活跃的意大利Linux社区的灵魂人物。Greg Kroah-Hartman是目前内核中USB、PCI和驱动程序核心子系统(本书均有讲述)的维护者。

    要阅读并理解本书,您不必首先成为内核黑客;只要您理解C语言并具有Unix系统调用的一些背景知识即可。您将学到如何为字符设备、块设备和网络接口编写驱动程序。为此,本书提供了完整的示例程序,您不需要特殊的硬件即可编译和运行这些示例程序。本书还在单独的章节中讲述了PCI、USB和tty(终端)子系统。对期望了解操作系统内部工作原理的读者来讲,本书也深入阐述了地址空间、异步事件以及I/O等方面的内容。

    第四本,《Linux内核源代码情景分析》,分为上下两册,全面深入地剖析了Linux最新版本核心源代码,并对Linux核心的独特优点和需要进一步改进的问题作了精辟的评述。上册的内容包括预备知识、存储管理、中断和系统调用、进程和进程调度、文件系统以及传统的Unix进程通讯六章。下册的内容包括设备驱动、多处理器SMP系统结构以及系统引导和初始化四章。

    第五本,《深入Linux内核架构》,Linux操作系统的源代码复杂、文档少,对程序员的要求高,要想看懂这些代码并不是一件容易事。本书结合内核版本2.6.24源代码中最关键的部分,深入讨论Linux内核的概念、结构和实现。具体包括进程管理和调度、虚拟内存、进程间通信、设备驱动程序、虚拟文件系统、网络、时间管理、数据同步等方面的内容。本书引导你阅读内核源代码,熟悉Linux所有的内在工作机理,充分展现Linux系统的魅力。

    作者Wolfgang Mauerer 资深Linux专家,有数十年Linux开发经验。从1997年最初发表关于内核的系列文章开始,他就醉心于解释Linux核心的内部机制、编写相关的文档。此外,他还著有LaTeX排版方面的图书,其撰写的大量文章已经被翻译成7种语言。

     

    第六本,《Linux内核完全注释》,主要描述和注释了Linux 0.11内核全部源代码。对于初学Linux内核操作系统的人来讲,该书能够引领读者快速入门,并且能全面了解一个简单操作系统的工作机理。对于进一步学习现在的Linux内核具有非常大的指导作用。该书不仅配备有完整的Linux 0.11系统试验环境,而且本人还在一年前就在网上专门建立了一个针对该书的网站

    Oldlinux.org -- Linux plinux​www.oldlinux.org

    专门开辟了一个讨论该书所涉及的Linux内核实现的论坛。

     

    第七本,《LINUX KERNEL技术手册》,本书由Linux 内核的顶尖开发和维护人员所写,向您提供了全面的内核配置和编译方法,而内核配置和编译正是Linux管理员和开发人员的关键任务。由于没有任何一个Linux的发行版可以仅用一个内核就满足所有人的需要,面因而对大大小小需求各异的计算机平台,对内核进行重新配置和重新编译就在所难免。《Linux Kernel技术手册》解释了如何让Linux按您所需要的表现和性能进行工作。

    第八本,《ARM Linux内核源代码分析》,面向中高级,Linux内核源代码,不可多得的好书。

     

    推荐很多人想学习内核

  • 相关阅读:
    LeetCode:删除链表中的节点【203】
    精益创业和画布实战(1):变革家,让天下没有难懂的生意
    怎么投资理财,如果有且仅有100万本金?
    怎么投资理财,如果有且仅有100万本金?
    Java集合——HashMap、HashTable以及ConCurrentHashMap异同比较
    View绘制详解,从LayoutInflater谈起
    Java线程和多线程(七)——ThreadLocal
    跳槽谋发展:人生发展的一些思考和最近找工作的坎坷经历
    跳槽谋发展:人生发展的一些思考和最近找工作的坎坷经历
    三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别
  • 原文地址:https://www.cnblogs.com/dhcn/p/12842258.html
Copyright © 2020-2023  润新知