您的浏览历史

Linux内核编程

促销活动
  • [本书]参加机械工业出版社华章公司满58元赠书活动

基本信息

编辑推荐

本书是一本Linux内核编程的权威指南,其独特的由表及里学习途径使得内核编程更易于理解。本书是第一本全面涵盖快速增长的PowerPC Linux开发平台的书,也是惟一一本用Linux构建系统彻底讨论内核配置的书。...

内容简介回到顶部↑

本书以Linux操作系统为基础,详细介绍了Linux内核子系统,并用大量内核源代码和示例程序进行演示,对深入了解Linux内核具有指导意义。本书内容主要包括:Linux基本知识、内核探索工具集、程序执行的基本模型、内存管理、输入/输出、文件系统、调度与内核同步、内核引导、构建Linux内核,以及向内核添加代码等。简述一些应用工具和使用程序,从而可以获取理解内核内幕所需的信息。每章末都给出小结和一些练习,涉及内核运行的操作及工作原理。.
本书适合不同级别的系统程序员、Linux爱好者以及应用程序开发人员学习和参考。
本书是一本Linux内核编程的权威指南,其独特的由表及里学习途径使得内核编程更易于理解。本书从用户空间到内核,把内核的实现原理与用户级编程的基本原则相联系,系统地跟踪了实现功能。这种途径有助于在你所了解的Linux知识基础上,加深对内核组成及工作机理的理解。
为了理解内核代码并掌控其行为,作者逐步引入所有的工具和汇编语言编程技术,并一一比较x86和PowerPC的实现,揭示了含糊不清的实现功能。另外,书中对源代码例子和实际项目都加有适当注释。本书是第一本全面涵盖快速增长的PowerPC Linux开发平台的书,也是惟一一本用Linux构建系统彻底讨论内核配置的书。..
● 数据结构
● x86和PPC汇编语言
● 查看内核内部状态
● Linux进程模型
● 用户空间和内核空间
● 中断和异常
● 内存分配和跟踪
● 跟踪子系统行为
● I/O交互
● 文件系统和文件操作
● 调度和同步
● 内核启动过程
● 内核构建过程
● 配置选项
● 设备驱动程序
本书介绍了Linux内核编程需要的所有技巧和技术,无论对于系统程序员、软件工程师、系统分析员、测试人员还是Linux的热衷者来说,都是不可或缺的参考书。...

作译者回到顶部↑

本书提供作译者介绍

Claudia Salzberg Rodriguez就职于IBM Linux技术中心,进行内核及相关编程工具的开发。她做了5年多Linux系统程序员,针对Intel和PPC平台,进行嵌入式到高性能系统的Linux开发。.
Gordon Fischer 为很多低级设备开发了Linux和UNIX设备驱动程序,并针对Intel和PPC平台,在各种各样的企业级设置中使用Linux内核。..
Steven Smolski 在制造、测试以及内存、处理器和ASICS的研发等半导体行业工作了26年,他为Linux、AIX、Windows以及嵌入式操作系统都写过应用程序和驱动程序。...
.. << 查看详细

目录回到顶部↑

译者序.

作者简介
前言
第1章 概述
1.1 UNIX发展史 1
1.2 标准和通用接口 2
1.3 自由软件和开放源码 3
1.4 Linux发布版的快速浏览 3
1.4.1 Debian 4
1.4.2 Red Hat/Fedora 4
1.4.3 Mandriva 4
1.4.4 SUSE 4
1.4.5 Gentoo 4
1.4.6 Yellow Dog 4
1.4.7 其他发布版 5
1.5 内核版本信息 5
1.6 基于Power的Linux 5
1.7 操作系统的概念 6
1.8 内核组织 7

译者序回到顶部↑

追本溯源,从本书开始!.
Linux最为人称道的莫过于它的自由精神,所有源代码唾手可得。打开Linux内核源代码,我们可以看到熟悉的C语言函数和一些陌生的汇编代码。但是,Linux内核入门很不容易,它之所以难学,在于庞大的规模和涉及的层面。规模一大,就不易现出本来面目,浑然一体,自然不容易找到着手之处;层面一多,就会让人眼花缭乱,盘根错节,怎能让人提纲挈领?
就我们的经验,内核初学者(不是编程初学者)可以从这本书着手。本书三位作者有多年的行业经验。Claudia Salzberg Rodriguez就职于IBM Linux技术中心,进行内核及相关编程工具的开发。Gordon Fischer为很多设备开发了Linux和UNIX设备驱动程序。Steve Smolski在半导体行业已经有26年,进行过各种驱动程序和嵌入式系统的开发。他们合作奉献给大家的这本内核入门,是对Linux内核编程的有效指导。作者独特的由表及里学习途径使得内核编程更易于理解,从用户空间到内核,把内核内在的实现原理与用户级编程的基本原则相联系,系统地追踪了实现功能。这种途径有助于扩大你所了解的Linux知识,加深对内核组成及工作机理的理解深度。..
在本书的翻译过程中,更是感到作者软硬件知识的全面、对内容独到的组织方式和娴熟的开发经验。在我们熟知的x86平台之外,作者对PowerPC的深入讲解,不仅让基于PowerPC平台的开发者找到了知音,更为x86的开发者打开了一扇新窗户。
为了让本书尽快与读者见面,本书翻译组陈莉君、贺炎、刘霞林、康华和石莉放弃了春节的休息时间,夜以继日。书中不妥之处和错误难免,希读者谅解。
在这消化这本书的基础上,如果你侧重于内核的全面了解,可以进一步研究《Understand Linux Kernel》和源代码本身;如果你侧重于了解内核设计思想,则阅读《Linux Kernel Develop-ment》;如果你侧重于实际编程,可以研读《Linux Device Driver》,直接开始动手工作;如果你想有一个轻松的内核学习和实践环节,请访问我们的网站www.kerneltravel.net。...
译 者
2006年3月

前言回到顶部↑

无论是一般的技术还是专业性很强的计算机,对于试图了解它们的人们来说都同样具有不可思议的魔力。技术的发展推动着对已确立的框架和曾经模糊的陈旧概念的重新评估。Linux操作系统已经对促进工业变革和商业营销方式做出了巨大贡献。GNU公共许可证的采用,以及与GNU软件的互动,使围绕开源的各种争论有了共同的标准。开源操作系统如此强大,Linux无疑是一个极其成功的典范,它以无法想像的魔力吸引着世界各地的程序员。.
对于数量庞大的计算机用户来说,越来越多的人使用了Linux。有了各种各样的发布版,社团的支持,以及工业后盾,Linux的应用也找到了安全的港湾,它的身影出现在大学、工业应用以及数以千万计的家庭用户中。
使用大潮促进了技术支持和新功能需求的日益增长。这样一来,愈来愈多的程序员发现自己对Linux内核的内幕感兴趣,因为大量现有的(还有快速增长的)军工企业需要支持不同的体系结构和种类繁多的新设备。
Linux操作系统的繁荣和发展归功于把内核移植到了Power体系结构,它覆盖了从高端的服务器到低端的嵌入式系统。随着各公司倾向于购买基于Power PC的系统来运行Linux,想知道Linux在该体系结构上运行机理的愿望就显得日益强烈。
适合的读者
本书可供不同级别的系统程序员、Linux爱好者以及应用程序开发者阅读,这些开发者渴望更好地理解自己的程序到底是如何工作的。只要有C知识,熟悉基本的Linux使用基础,还想知道Linux是如何工作的,那么你就会发现这本书提供了进行这种理解基本而必要的概念,可以说,本书是理解Linux内核如何工作的初级读本。
不管你是编写过在Linux上运行的小程序,还是已开发过系统但正在寻求对某个子系统特性的理解,本书所编写的内容都是你所期待的。
内容组织
本书分为三部分,每部分都提供必要的知识,让读者能顺畅地钻研Linux内幕。
第一部分提供必要的工具,并理解对Linux内幕所进行的探索。
第1章“概述”,叙述Linux和UNIX的历史,罗列很多发布版,并从用户空间的观点简述各种内核子系统。
第2章“内核探索工具集”,描述Linux内核中常用的数据结构和语言的用法,介绍x86和PowerPC体系结构的汇编语言,并简述一些工具和实用程序,从而可以获取理解内核内幕所需的信息。
第二部分介绍了在每个内核子系统中所涉及的基本概念,并分析了执行子系统功能的必要代码。
第3章“进程:程序执行的基本模型”,涵盖了进程模型的实现。解释了为何引入进程,并讨论了用户空间到内核空间的控制流,也讨论了内核空间到用户空间的控制流。我们还讨论了进程在内核中是如何实现的,并描述了所有与进程执行相关的数据结构。本章还涵盖了中断和异常,描述了这些硬件机制在每种体系结构中是如何发生的,它们与Linux内核又是如何交互的。
第4章“内存管理”,描述了Linux内核如何追踪和管理用户空间进程的可用内存和内核的可用内存。本章描述了内核对内存分类的方式,以及如何决定分配和释放内存,也详细描述了缺页机制以及它是怎样在硬件上执行的。..
第5章“输入/输出”,描述了处理器是如何与其他设备进行交互的,内核又是如何响应和控制这些交互的。本章还涵盖了各种设备及其在内核中的实现。
第6章“文件系统”,概述文件和目录如何在内核中实现。本章引入了虚拟文件系统,它是用于支持多文件系统的抽象层。本章还跟踪了文件相关操作的执行,如打开和关闭文件。
第7章“调度和内核同步”,描述调度程序的操作,调度程序让多个进程运行起来就像只有一个进程在系统中运行一样。本章详细描述了内核如何选择一个任务运行,进程切换时如何与硬件进行交互。本章还叙述了什么是内核抢占,它又是怎样执行的。最后,描述了系统时钟的工作原理,内核怎样使用它计时。
第8章“内核引导”,描述电源开和关时都发生些什么。本章对各种处理器装入内核的方式进行了跟踪,包括对BIOS、Open Firmware和bootloaders的描述。然后,考察了内核启动和初始化时的线性顺序,涵盖了前面章节中讨论的所有子系统。
第三部分,描述如何构建内核并与内核进行交互的多种途径。

序言回到顶部↑

“有龙在此”,中世纪地图绘制者碰到未知和危险的地方就如此标记,可能你首次敲入如下命令也有这样的感觉:.
cd/usr/asc/linux;ls
你可能也发出“从何开始?”的感叹。“我到底想知道什么?这是怎样放在一起的?本质上又如何工作?”
现代功能俱全的操作系统庞大而复杂。子系统为数不少,它们之间的交互更错综复杂而且微妙。不错,你的确拥有Linux内核源代码(稍后还会详述),但是,从何处开始,着眼于什么,该以怎样的顺序,远非易事。
本书的编写目的正在于此。一步一步,你会了解到内核的各个部分,它们如何工作,互相之间怎样关联。本书的作者熟知内核,这些知识贯穿于本书的始终,你和内核之间至少会成为好朋友,乃至产生深厚的情意。
Linux内核是“自由的”软件。Richard Stallman对自由软件给出了定义,所谓自由(free-dom)就是让软件是自由的(Free,第一个字母F大写)。有两层含义,一方面,运行软件是自由的,这是最基本的自由。另一方面,探究程序如何编写也是自由的。这种自由往往被忽略,实际上,这才是最重要的,因为学习如何做事的最好方式之一就是观察别人如何做事。在软件世界中,那就意味着阅读别人的程序,并了解到他们在哪些地方做得较好,哪些地方做得较差。至少在我看来,在现代计算领域里,GNU/Linux之所以能变成一股强大的力量,其最根本原因之一就是GPL的自由。这些自由,在你使用GNU/Linux的每时每刻都会感到其益处,偶尔停下来,试想一下是不是这回事。..
有了本书,我们充分利用自由之二,让你有机会深入研究Linux内核源代码。你会看到,有些事的确做得不错;同时,你也会看到,有些事也并不尽人意。但是,因为自由之二,你会看到全貌,更重要的是,你会从中学到很多知识。
况且,这也使我走入了Prentice Hall开源软件开发系列丛书,本书是首批成员之一。开发这一系列丛书的念头源于阅读程序是学习的最好方式之一。如今,这个世界幸运地享有丰富而自由开放的源代码软件,这些源代码正期待着(或许热切渴望着)被阅读、理解,甚至赞许。这一系列丛书会成为你软件开发学习曲线的领路人,也可以说,通过尽可能多地展示真实的代码,有助于你学到货真价实的东西。
我真诚地希望你会欣赏本书,并从中学到东西。我也期望你会从中得到灵感,从而在自由软件和开源世界开创你自己的事业,参与进来,那无疑是最令人愉快的方式了。
玩得开心! ...
Arnold Robbins
系列丛书编辑

评论交流

共有10人开贴评论  11人参与评论  5人参与打分 查看

0人
 0%
用户平均打分
我要写评论 help如何参与评论和打分
2人
 40%
2人
 40%
1人
 20%
0人
 0%

498203113
一级评论员
  
发表于:2009-10-1 19:56:00
翻译的比较差。在学校图书馆借到了中文版,有的地方看不明白,在网上下了英文电子书后发现是翻译的问题。。决定买本英文版,才30RMB
这本书分析了内核中的一些重要的数据结构和代码,跟linux kernel development可以配合看,后者侧重讲机制,代码相对比较少
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

murder

三级评论员
  
发表于:2009-7-10 13:33:00
此书9成新20元转让 限北京 138 114 36944
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

smchinapub

四级评论员
评价等级:  
发表于:2008-10-19 17:37:00
英文版给我的第一印象很好,刚开始看。中文版不清楚。
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

runger

三级评论员
评价等级:  
发表于:2008-9-27 18:27:00
读了一把, 感觉有点难懂
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

murder

三级评论员
  
发表于:2007-8-30 15:27:00
25元
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共10条)