linux books
简介
在这篇文章中,我介绍了和linux相关的一些书籍和他们的主要内容
感谢
书籍
“Mastering Embedded Linux Programming”
这本书的特点就是各种嵌入式开发的流程和工具的使用,它不是那种讲很多代码和原理的类型,相当的工具化,是可以自己动手跟着做实验的那种类型了。
而且是基于5.4内核,而且使用树莓派4作为硬件
主要内容:交叉编译工具链,bootloader,如何配置和构建kernel,构建根文件系统,构建工具yocto的使用,busybox的使用,嵌入式的电源管理,使用gdb调试等
目录如下
- Starting Out
- Learning about Toolchains
- All about Bootloaders
- Configuring and Building the Kernel
- Building a Root Filesystem
- Selecting a Build System
- Developing with Yocto
- Yocto Under the Hood
- Creating a Storage Strategy
- Updating Software in the Field
- Interfacing with Device Drivers
- Prototyping with Breakout Boards
- Starting Up – The init Program
- Starting with BusyBox runit
- Managing Power
- Packaging Python
- Learning about Processes and Threads
- Managing Memory
- Debugging with GDB
- Profiling and Tracing
- Real-Time Programming
“The linux programming interface”
这个的内容相当基础,相当纯粹,就是介绍了linux的系统调用,介绍了大量的系统api要如何使用,是初学者不可缺少的书籍。
而且有配套代码,也是相当实用的类型,跟着自己敲一边,测试这些api的功能,相当有趣,我就是这样做的。
Linux kernel development
看名字就知道,讲的内核的内容,这本书基于2.6.34的内核
内容:进程管理,文件系统,内核数据结构,内核同步机制等
都比较基础,主要是内核的几个子系统的一个大概的简介,相当的粗糙,这是一本内核的最简单的书。它没有对某一个子系统进行细致全面的解释,但是它覆盖的范围很广。从它的中文版只有三百多页,就可以看出来。
一般来讲,对于某一个子系统,比如进程管理,它会介绍相关的原理,然后是涉及到的内核源码中的主要结构和主要接口
缺点:没有能够跟着操作的源代码,相当理论向的,几乎完全没有实操的部分,而且内核版本也很久了
Linux device drivers development
看名字就知道,这是一本专注于讲linux设备驱动开发的书,没错了,这里面的主要内容就是将各种设备的开发,像是iic,spi,dma,gpio等等
使用的内核版本未4.13,设备是imx6,发行版是ubuntu16.04,并且有完全的源码支持,甚至还有彩色的插图可以下载
https://static.packt-cdn.com/downloads/LinuxDeviceDriversDevelopment_ColorImages.pdf
是可以跟着做的实用类型,非常不错

Linux device drivers
这本书相当的理论向,非常厚重,介绍了几乎所有内核源码设备驱动的重要的数据结构和api等等,有点像是api手册,不过是关于linux 内核中设备驱动的部分啦!哈哈
同时,这本书的源码版本也是比较旧了,是2.6.10
增长驱动开发的理论知识,一定是需要的,解释的很清楚很全面
Linux kernel programming
这是两本书,用5.4内核,不需要额外的硬件支持,只需要虚拟机。非常详细,手把手的教,代码和插图等等都非常全面。
主要内容:如何构建内核,写内核模块,如何在内核中分配空间,内核同步,内核中的cpu调度,如何写字符设备驱动,如何处理硬件中断
目录如下


Mastering linux device driver development
这不是一本入门的书籍,如果你需要使用到相关的内容,那才会需要这本书,比如MFD,ALSA,V4L2,PCI,NVMEM等
目录如下








