Linux程序员指南.pdf
文本预览下载声明
下载
第1章 Linux操作系统
1 9 9 1年3 月,Linus Benedict To r v a l d s 为他的 AT 3 8 6 计算机买了一个多任务操作系统:
M i n i x 。他使用这个操作系统来开发自己的多任务系统,并称之为 L i n u x 。1 9 9 1年9月,他向
I n t e r n e t 网上的其他一些M i n i x用户发电子邮件,发布了第一个系统原型,这样就揭开了 L i n u x
工程的序幕。从那时起,有许多程序员都开始支持 L i n u x 。他们增加设备驱动程序,开发应用
程序,他们的目标是符合 P O S I X标准。现在的 L i n u x 功能已经非常强大了,但是 L i n u x更吸引
人的地方在于,它是免费的 ( 当然并不像免费啤酒那样,不是完全免费 ) 。现在人们正在把
L i n u x移植到其他平台上。
下载
第2章 Linux内核
L i n u x 的基础就是它的内核。用户可以替换某个库,或者将所有库都进行替换,但是只要
L i n u x 内核存在,它就还是L i n u x 。内核包括设备驱动程序、内核管理、进程管理以及通信管
理。内核高手总是遵循 P O S I X规则,该规则有时会使编程变得简单,有时会使它变得比较复
杂。如果用户的程序在一个新的 L i n u x 内核版本上行为发生了变化,可能是因为实现了一个新
的P O S I X规则。如果读者想了解更多的关于 L i n u x 内核编程的信息,可以阅读《 Linux Kernel
H a c k e r ’s Guide 》。
下载
第3章 Linux libc包
L i b c :ISO 8859.1 ;位于 l i n u x / p a r a m . h 中;包括Y P 函数、加密函数、一些基本的影子
过程(默认情况不包含) ,……在l i b c o m p t 中有一些为了保持兼容性而提供的老过程 (默认情况下
不激活) ;提供英文、法文,或者德文的错误信息;在 l i b c u r s e s 中有一些具有bsd 4.4lite 兼容性
的屏幕处理过程;在l i b b s d 中有一些b s d 兼容的过程;在l i b t e r m c a p 中有一些屏幕处理过程;在
l i b d b m 中有用于数据库管理的过程;在 l i b m 中有数学过程;在c r t O . o ? ? ? 中有执行程序的入口,
在l i b i e e e ? ? ?有一些字节信息 (请别再笑话我了,能不能给我提供一些信息? ) ,在l i b g m o n 中是
用户空间的配置信息。
我希望由某位Linux libc 开发人员来编写本章。现在我能说的唯一的一句话是 a . o u t可执行
格式将会变化成 e l f (可执行并可链接)格式( 出版者注:这个变化已经发生了 ) ,而后者又意味着
在创建共享库方面的一个变化。当前这两种格式 ( a . o u t和e l f )都支持。
Linux libc包的绝大部分都是遵守库 G N U公共许可证的,尽管有些文件是遵守特殊的版权
规定的,例如 c r t O . o 。对商业版本来说,这就意味着一个限制 , 即禁止静态链接可执行程序。
在这里动态链接可执行程序又是一个特殊的例外。 F S F ( 自由软件基金会) 的Richard Stallman 说
过:
在我看来,我们应该明确地允许发行不带伴随库的动态链接可执行程序,只要组成该可
执行程序的对象文件按照第 5节的规定是不受限制的。… …,所以我决定现在就允许这样做。
实际上,要更新L G P L将需要等到我有时间的时候,并且需要检查一下新版本。
下载
第4章 系 统 调 用
系统调用是向操作系统 ( 内核)所作出的一次申请,请求操作系统做一次硬件 / 系统相关的
操作,或者是作一次只有系统才能做的操作。以 Linux 1.2为例,它总共定义了 1 4 0个系统调用
显示全部