出版时间:2010-3 出版社:清华大学出版社 作者:琼斯 页数:530 译者:张元章
Tag标签:无
前言
GNU/Linux是操作系统中的“瑞士车刀”。从最小的设备(如苹果的iPod)到最大的设备(如;IBM的“蓝色基因”巨型机)中部可以看到它的踪影。你会发现GNU/Linux运行在很多不同的架构中,从老式的x86处理器到PlayStation3使用的cell处理器,不一而举。本书提供GNU/Linux操作系统上的应用程序开发的基础知识。无论你是为iPod还是BlueGene开发应用程序,所需要的编程概念与API均可以在本节中找到。 本书内容 本书全面介绍GNU/Linux环境下应用程序丌发的所有知识。全书五部分,包含GNU工具、应用程序开发、shell与脚本、调试与硬化及——些介绍性的主题,如虚拟化基础。 具体包含以下主题。 GNU/Linux架构与虚拟机制。 GNU工具,如GCC、make、automake/autoconf、源代码拧制系统、GNU Debugger以及GNUplot。 应用程序开发基础,如库(静态的和动态的)、文件管理、管道、套接字、编程等。 GNU/Linux进程模型(包括线程)和POSIX IPC机制(消息序列、旗语及共享内存)。 shell与脚本基础,从相应的GNU/Linux命令到Bash、Ruby以及Python。sed和awk文本管理,flex和bison语法分析器生成。 本书还覆盖调试和硬化技术,包括软件测试工具、覆盖测试和利用GCov和GProf的剖析及内存调试工具(如valgrind等)。 本书配套资源 本书面向的读者 如果你想学习如何开发运行与GNU/Linux操作系统有关的应用程序,或者想扩充知识以进入更高深的开发领域,那么本书就是为你而写的,本节适合GNU/Linux初级和中级程序开发人员阅读与参考。书中覆盖相关的工具、API及开发技术,并通过大量实例来阐明如何使用GNU/Linux的API。
内容概要
GNU/Linux也称Linux,被誉为操作系统中的“瑞士军刀”。从iPod之类的小型设备到IBM的Blue Gene之类的超级计算机,都可以看到它的”芳踪”。GNU/LinuX可以运行于大众化体系结构之上,从老式的x86处理器到最新的Play Station 3游戏机采用的cell处理器,不一而举。 本书详细介绍如何开发可以运行于GNU/Linux操作系统的应用程序,经过全面修订的第2版涵括所有必要的工具和编程技术,提供丰富的例子来说明GNU/Linux API的使用。 GNU/Linux架构与虚拟化技术 GNU工具,如GCC,make、automake/autoconf,源代码控制系统,GNU Debugger和Gnuplot 应用程序开发基础主题,包括库(动态的和静态的)、文件处理、管道、套接字和编程基础等 GNU/Linux过程模型(包括线程)和POSIXIPC机制(如消息队列、旗语和共享内存) shell和脚本编程基础,从常用的GNU/Linux命令到Bash、Ruby和Python sed和AWK文本处理,flex和bison解析器 调试和代码硬化技术,包括软件测试工具、覆盖测试和GCov和GPro概要和内存调试工具等 本书针对Linux程序员,本书详细介绍如何开发高性能、高安全性的应用程序。经过全面修订的第2版涵括所有必要的工具和编程技术,提供丰富示例来说明GNU/Linux APl的用法。全书共5部分34章,主题涉及GNU工具,应用程序开发,shell与脚本编程,调试和提高安全性,虚拟化技术。凡此种种,吸引着近万名程序员选择本书宋学习GNU/Linux编程技术。 本书浅显易懂,从全局介绍Linux编程基础,重点强调Linux编程利器的使用,对Linux程序员具有重要的参考和指导作用。
作者简介
M.Tim Jones是一名嵌入式软件架构师,也是多部畅销书的作者,代表作有AI Application Programming,BSD Sockets Proqramming from a Multilanguage Perspective,Artificial Intelligence:A Systems Approach,还发表过大量技术文章。他的工程背景很丰富,曾经为太空船开发过内核,也开发过嵌入式系统架构和联网协议。Tim目前在科罗拉多Longmont的Emulex公司担任顾问工程师。
书籍目录
第Ⅰ部分 导论 第1章 GNU/Linux的历史 第2章 GNU/Linux系统架构 第3章 自由软件开发 第4章 Linux虚拟化与仿真 第Ⅱ部分 GNU工具 第5章 GNU编译工具链 第6章 应用GNU make构建软件 第7章 库的构建与使用 第8章 用automake/affcoconf打包 第9章 GNU/Linux的源码控制 第10章 应用Gnuplot进行数据可视化 第Ⅲ部分 应用程序开发主题 第11章 GNU/Linux的文件操作 第12章 管道编程 第13章 套接字编程简介 第14章 GNU/Linux进程模型 第15章 POSIX线程(P线程)编程 第16章 消息队列IPC 第17章 旗语同步 第18章 共享内存编程 第19章 高级文件操作 第20章 其他应用程序开发主题 第Ⅳ部分 GNU/Linux的shell与脚本 第21章 GNU/Linux标准命令 第22章 Bourne-Again shell(Bash) 第23章 使用sed进行编辑 第24章 使用awk进行文本处理 第25章 使用flex和bison 第26章 Ruby脚本编程 第27章 Python脚本编程 第28章 GNU/Linux管理基石出 第Ⅴ部分 调试与测试 第29章 软件单元测试框架 第30章 用GDB进行调试 第31章 代码硬化 第32章 用GNU gcoy进行覆盖测试 第33章 用GNU gprof进行 第34章 高级调试主题 附录 缩写与部分 缩写词
章节摘录
插图:完全虚拟化完全虚拟化方法为客户操作系统创建一个虚拟机实例,使客户操作系统可以不加修改地运行。虚拟机模拟底层硬件的某些部分,捕捉需要由管理程序(虚拟机监视器)进行仲裁的调用。这种虚拟化模式如图4.1所示。完全虚拟化要求所有的操作系统都是针对同一处理器架构开发的,这是一个很普通的要求,实验性的或开发中的系统可能不能满足这一点。运行中各个操作系统都不加改动并且不知道它是在一个虚拟平台上执行。此外,完全虚拟化可以在支持虚拟化的硬件上运行。虚拟化当中最大的问题是如何处理特殊的特权模式指令。这些指令必须被正确捕捉并且由管理程序处理。所以在一个未加修改的操作系统中(没有虚拟化硬件),必须找出这些调用并转换为管理程序调用。这个过程称为代码扫描,其结果是向原始代码中找到的特权捕获指令处插入管理程序调用代码。准虚拟化最近的公告修改了“准虚拟化”的定义。早期的准虚拟化方法要求对修改客户操作系统,使得操作系统知道它实际上已经被虚拟化了。这意味着更高的性能(因为不必进行代码扫描),但也限制了能被虚拟化的操作系统(见图4.5)。但是现在,准虚拟化的定义已经变化了。拥有了支持虚拟化的硬件,操作系统的修改不再必要。这意味着所有的操作系统都可以被虚拟化,因为虚拟化对各个客户操作系统都是透明的(见图4.6)。
编辑推荐
《GNU/LINUX环境编程(第2版)》:浅显易懂,容易理解的Linux编程基础聚焦Linux编程利器——GNU工具和库全面覆盖各种有用的API配套资源包含《GNU/LINUX环境编程(第2版)》代码和所有API
图书封面
图书标签Tags
无
评论、评分、阅读与下载