Linux 架构书籍:颠覆编程视野(linux架构书籍)

#### Linux 架构书籍:颠覆编程视野

Linux 操作系统提供了高级、安全性高、灵活度高的编程架构,能够适用于许多不同类型的应用系统。为了更好地深入理解 Linux 架构,许多 C\C++ 开发者汲取 Linux 操作系统的相关知识及见解,走上一条独特的学习道路。

在此,我们强烈推荐 *Linux Kernel Development* 这本书,它凝聚了 25 年 Linux 内核开发经验,是目前国内外实力派 Linux 内核开发者必备的指南。本书从 Linux 内核源码分析出发,深入讨论 Linux 操作系统架构下的多个重要组件,包括内存管理、设备驱动开发、中断处理、中断子系统以及进程、线程、信号等内容,其中包括了各种实用的源码实例,实现了从底层到表面,从硬件到软件的完整解析,帮助你更好的理解 Linux 内核的设计思想及其构建步骤,从而颠覆编程的视野,重新看待软件编程世界。

除此书,还有一本《Linux Device Drivers》,是 Linux 外围设备驱动开发必备参考,该书介绍了 Linux 设备驱动开发的核心技术和流程,例如:申请设备号、定义读写文件操作、模块加载与卸载、中断处理等,书中给出的实例代码很有帮助,让你轻松进行快速的设备驱动开发,下面以一个 UART 中断处理的实例来说明:

“`c

#include

#include

#include

/* 确认中断号 */

static int irqNumber;

/* 中断句柄函数的参数 */

static void *dev_id;

/* 中断处理函数 */

static irq_return_t irq_handler(int irq, void *dev_id){

/* 静态数据 */

static int count = 0;

/* 读取端口 */

u8 data = inb(0x378);

count += data;

printk(KERN_INFO “Count %d, byte %x \n”, count, data);

/*

* 接收中断

*/

return IRQ_HANDLED;

}

static int __init My_init(void){

/* 申请中断号 */

int ret;

ret = request_irq(irqNumber, (irq_handler_t) irq_handler, 0, “My_handler”, &dev_id);

return 0;

}

static void __exit My_exit(void){

synchronize_irq(irqNumber);

free_irq(irqNumber, &dev_id);

printk(KERN_INFO “Freeing up the IRQ line”);

}


以上两本书使你更轻松、更系统地学习 Linux,利用 C/C++ 编程架构中的技术,有效的建立工程的效率,令你颠覆编程的视野,从而掌握更多编程技术,开发出更加高效的软件。

数据运维技术 » Linux 架构书籍:颠覆编程视野(linux架构书籍)