首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 操作系统 >

LINUX系统编程 [平装]

2013-12-31 
编辑推荐《LINUX系统编程》是由东南大学出版社出版的。作者简介作者:(美国)Robert Love 译者:OReilly Taiwan
商家名称 信用等级 购买信息 订购本书
LINUX系统编程 [平装] 去商家看看
LINUX系统编程 [平装] 去商家看看

LINUX系统编程 [平装]

编辑推荐

《LINUX系统编程》是由东南大学出版社出版的。

作者简介

作者:(美国)Robert Love 译者:O'Reilly Taiwan公司

目录


前言
第一章 介绍与基本概念
系统编程
API与ABI
标准
Linux编程的概念
向系统编程迈进

第二章 文件I/O
打开文件
以read()进行读取操作
以write()进行写入操作
同步化I/O
关闭文件
使用lseek()查找文件位置
针对特定位置的读取与写入
截短文件
多任务式I/O
内核内部
结束语

第三章 缓冲式I/O
用户缓冲式I/O
标准I/O
打开文件
经文件描述符打开流
关闭流
从流中读取
使用缓冲式I/O的简单程序
查找一个流
刷新一个流
错误与EOF
取得相应的文件描述符
控制与缓冲机制
线程安全
标准I/O的缺陷
结束语

第四章 高级文件I/O
分散一聚集I/O
事件轮询接口
将文件映射至内存
对一般文件I/0的用法提供建议
同步化、同步及异步操作
I/O调度程序与I/O性能
结束语

第五章 进程管理
进程ID
运行一个新进程
终止一个进程
等待已终止的子进程
用户与组
会话与进程组
守护进程
结束语

第六章 高级进程管理
进程的调度
让出处理器
进程优先级
实时系统
资源限制

第七章 文件和目录管理
文件与其元数据
目录
链接
文件的复制以及移动
设备节点
带外通信

第八章 内存管理
进程地址空间
分配动态内存
管理数据段
匿名内存映射
高级内存分配
调试内存分配
基于堆栈的分配
选择内存分配机制
操作内存
锁定内存
投机取巧的分配策略

第九章 信号
信号的概念
基本的信号管理
发送一个信号
可重人性
信号集
阻挡信号
高级信号管理
以payload送出信号
结束语

第十章 时间
时间的数据结构
POSIX时钟
取得当前时间
设定当前时间
操作时间
调整系统时钟
休眠与等待
定时器
附录GCC对C语言的扩展
参考书目

序言

内核开发者之所以会这么说,目的是于任何用户空间程序代码执行失败的时候撇清所有责任。当所发生的问题绝对不是内核的过错时,他们所关心的是用户空间开发者应该去修正他们自己的程序代码。
为了证明这通常不是内核的过错,3年多前,一位具领导地位的Linux内核开发者曾在挤满人的会议室里,以“why user Space Sucks”(为何用户空间程序很糟糕)为题发表演讲,他举出实例说明我们每个人每天使用了哪些可怕的用户空间程序代码。其他内核开发者则以自己创建的工具来展示差劲的用户空间程序如何滥用硬件,并耗尽无预警的笔记本电脑电池的电量。
尽管用户空间程序对嘲笑它的内核开发者而言可能只是一个“试验负载”,不过这些内核开发者也是每天都得依靠这些用户空间程序。如果没有用户空间程序可用,所有的内核充其量就只能在屏幕上交替输出ABABAB样式的信息。而今,Linux已经成为有史以来最灵活、最强大的操作系统,随处都可以看到它的踪迹,不仅最小型的手机和嵌入式装置运行它,全世界前500台速度最快的超级计算机中也有70%以上的在运行它。其他操作系统从未曾有过这么好的规模,也不会遭受各种硬件和环境的挑战。
如同内核一样,在Linux的用户空间上运行的程序也得运作在各种平台上,以人们所依赖的应用程序和公用程序提供给全世界使用。

文摘

插图:


Linux编程的概念
本节将对Linux系统所提供的服务做一个简明的概述。所有的unix系统,包括Linux,会提供一组共同的抽象概念以及接口。的确,这种通用性定义了unix。文件和进程、用于管理pipe和socket的接口等抽象概念就是unix的基础组件。本节假设你已经熟悉LlnUX的操作环境:你可以在shell中游走、使用基本的命令以及编译简单的c程序。本节的内容并非Linux或其编程环境的概述,而是Linux系统编程的基本知识。
文件以及文件系统
文件是Linux中最基本且最重要的抽象概念。Linux遵循了“一切皆文件”的哲学(尽管做得不如其他系统,例如Plan9(注2)。因此,许多操作是通过对文件的读写进行的,即使所操作的对象并非你平日所使用的文件。
文件必须先被打开才可以被访问。文件可以被打开以备读取、写入或是读写。你可以通过一个独一无二的描述符(descriptor)来引用一个已打开的文件,此描述符让我们可以从与已打开文件相关的元数据映射回相应文件。在Linux内核内部,此描述符的操作是通过一个称为文件描述符的整数(这是c的int数据类型)来进行。由用户空间程序所共享,而用户空间程序可以直接使用来访问文件。Linux系统编程多半就是以来进行文件的打开、操纵、关闭以及其他工作。
常规文件
一般人所谓的文件就是Linux所称的常规文件。常规文件内含数据的字节,而且被组织成一个称为字节流(bytestream)的线性数组(Lineararray)。在Linux中,不会再为文件指定任何格式。这些字节可以具有任何值,而且可以通过任何方式被组织在一起。从系统层来看,除了字节流之外,Linux不会再对文件套上任何结构。有些操作系统,例如VMs,会提供高度结构化的文件来支持像记录(record)这样的概念。Linux则不会这么做。

喜欢LINUX系统编程 [平装]请与您的朋友分享,由于版权原因,读书人网不提供图书下载服务

热点排行