14 日录 33.2.7处理键盘事件……………………(47) 33.2.8 为获得动画效果对OpenGL图形进行更新…………(7) 33.2.9示例程序清单………(47) 第5部分 特殊编程技术 第34章使用GNU bash进行Shell编程…(451) 34.1为何使用bas 4………(451) 34.2bsh基i础灯识………………………………”(451) 34.2.】通配符…………………(451) 34.2,2花括狐展开式………… *…………(452) 34,2.3特殊字符……… ……(452) 34,3使月bash变量…………(453) 34.4使用bash操作符…(455) 34.4.】字符申操作符………………… 34.4,2模式匹配操作符…………………(457) 3.行流控制… (458) 34.5.1条件执行:if……… (458) 34.5.2确定性循环:for …(462 34.5.3非确定性循环:while和until……… (462) 34.5.4选择结构:se租0………(463) 34,6Shl】函数…+…++…*… ………(465) 34.7输入与输出……… (466) 34.7,】/0重定向*…**…(466) 34.7.2字符串I/0. (生67) 34.8命令行处理…………… (469) 34,9进程和作业控制………………… …………(471) 34.9.1she的信号处理… 〔471) 34.9.2使用t打ap……… 4…………(471) 34.10小结………+………* …4444(473) 第35章有关安全性的编程………… …(474) 35.1应用程序类型 *……(474) 35.1.15tuid程序……… (474) 35.】.2网络服务器(守护进程)… (474) 35.1.3网络客户程序小4*……………………4……… 〔475) 35.1.4邮件用户代理程序……… (475) 35.1.5CG】捍序……… (475) 35.1.6工具程序…………………………(175) 35.1.7应用程序 (176) 35.2特殊的代码问题……… (476) 35.2.】shel脚本和system()系统调用…(476)
目录 15 35.2.2来自不信任用户的输入… .…(177) 35.2.3缓冲区溢出…… 352.4环境变量………… +…………(180) 35.2.5 gethostbyname()函数… …………(182) 352.6信号……………………………………(482》 35.2.7 user ID group ID 35.2.8函数库的脆弱性…… (485) 35.2.9执行其他程序…………………… ………*(485) 35.2.10/tmp竞争…………………(485) 35.2.1】拒绝服务型攻击 (485) 35.2.12随机数………(487) 35.2.13令牌…… (487) 35.1.14密码 (487) 35.2.15文件名 ……*…(88) 35.2.16 符号链接… (489) 35.2.17chr00l()环境… 4…(498 35.2.18分割程序…… (499) 35.2.19进程间通信…… (499) 35,2.20 identd守护进程… (500) 35.2.2TCP与UDP……(500) 35,2.22劲态与静态内存分配 35.2.23安全级别……(502) 35.2.24P0SIX.1e的能力…………(502) 35,3擦滁级冲区…(502) 35.4穿越防火墙提交HTML表单. (502) 35.5窃听、盗取及中间人攻击 ,……………(503) 35.6HTML眼务器包含特性………(503) 35.7预先派生子进程的服务器的问题…………。 (503) 35,8韬时山……… (504) 35.9三因素认证…(504) 35.10可插入的认证模块……。 505) 35.11一般的程序健壮性何题…………,(505) 35.12加密技术………*…………4…………(505) 35.12.1加密算法的类型……… (506) 35,12.2加密系统…………………4… (507) 35.12.3加密的胞弱性………(507》 35,13小结 (508) 第36章调试:GNU gdb 4*n(509) 36.】为使用gdb进行编译…… …(509) 36.2使用基本的gdb命今………… ……(509) 36.2.1启动gd北………(5]0) 36,2.2在调试器中查看代码…………*+… ………(511
16 目录 36.2.3检查数据4…4… (512 36.2.4设性断点… 36.2.5检查并更改运行中的代码………(515) 36.3高级gdb概念和命令…(516) 36.3.1变量的作用域和上下文…………(516) 36.3.2遍历函数搁用找……………(517) 36,3.3操纵源文件…4……………(518】 36,3.4与Shll进行通信………(519) 36.3.5附加到某个运行中的程序 36,4小结……………+…*4**………(520) 第6部分 补充内容 第37章软件包管理………(521) 37.1理解t8r文件…………………4………………(52) 37.1.1创建tar文件 (522) 34.1.2更新ta江文件……… (523) 37.1.3列出tar文件的内容 37.2理解install命令…… (523) 37,3理解Red Hat软件包管理器… (525】 37.3.】最小要求+……4 (526) 37,3.2配置RPM……… (526】 37.3.3控制构造过程:使用spcc文件 (527) 37.3.4分析-个spe心文件… 4…4(528) 37.3.5 构造软件包………… (630) 37.4小结… (531) 第38章建档… (532) 38.1手册页面…… …*……(532) 38.1.1手册页面的组成… (532) 38.1.2手册页面例子及解释……… (532) 38.1.3使用groff命令…… (534) 38.1.4{inux约定…… 4 (535) 38.2使用SGML工具创建SGML文档 (536) 38.2.1SGML工具… (537) 38.2.2SGML工具的标记……………(540) 38.2.3格式化SGML文档… (541) 38.3小结………………… (541) 第39章许可证的发放… (542) 39.1MIT/X风格的许可证…。 (542) 39.2BSD风格的许可证…… (543)
目录 17 39.3Arti8ti许可证………… (543) 39.4GNU通用公共许可f………………………+…(544) 39.4.1GNU通坩公共许可证(GPL)………………(54) 39.4.2(GNU库通用公共许可证LGPL)… …………(545】 39.5开放源代码的定义………………(546) 39、6选择正确的许可证…………(547) 第?部分附录 附录A符号表函数库……… …(548) A.】可用的文挡…… ……………(548 A.1.上示例程序:userchange…+*……(549) A.1,2定义一个符号表来描述一个结构类型…………(549) A.】3定义一个变量的随机集………………… (551) 八,1.4包含分-个符号表………………(553) A.1.5出错报告……………………(554) A.1.6智能指针……………(55) A.上.7符号表库函数………… (555) A.】.8执行例子……… 附录BGNU通用公共许可证(General Public License)…(562)
第1章概貌 靠1部分上雅工具包 第1章概貌 在过去的8年中,Linux取得了惊人的成就。1998年,Limx最终进入了美国E流公司 的视野。 L.1 Linux既往成就 1998年3月,Netscape公司宣布他们将在GNU免费软件的GPL(General Public Li- cense,通用公共许可证)的一个修订版本的基础上公开Communicator Internet套件的源代 码。7月,Informix和()racle,全球最大的两个关系数据库公宜布将把Linux作为数据库产 品的操作系统平台。8月,Intel和Netscape宣布支持Linux操作系统市场中的领头羊Red Hat公司,同时,IBM的数据库系统DB/2的Linux版也进入beta版测试。Corei最终将他们 的整个办公套件移植到了Linux平台,并且引人了一条生产线,制造基于ntel的Stron- gARM处理器和定制的Linux系统的台式计算机。这些还只是众多对Linux的商业关注中 的-一小部分。 注意:在本书即将出版的时候,Red Hat提交一份报告,中请公司股票进入初领 市场。一个以免费操作亲统为收入来源的公司即将进入美国上市公司的行列,真是 一个绝妙的讽喻。 另外值得一提的是Microsoft公司臭名昭著的万圣节文件,这份泄密的内部备忘录详细 分析了【inux对Microsoft市场霸权尤其是对其服务器操作系统Windows NT的减胁,并讨 论了用以应付Linux的这坐挑战的方法。 1.2 Linux预期成就 作为一个服务器端的操作系统,Linux已经成熟。在Linux上运行Web服务器随处可 见,在业务数量不断增长的情形下,它也可以提供文件和打印服务。根据独立的汇DG(国际数 据集闭)的报告,1998年Linux以212%的增幅位居所有服务器挨作系统(包括Windows NT)装机增长率的榜首。但是,Iux在企业级特性方面,比如对多处理机和大型文件系统 的支持,还有待加强。最新的2.2版的Lnux内核现在可以支持16个处理器(2.0系列的上 限是支持4个处理器),并且,利用诸如Beowulf的群集技术,Linux可以集成数百台普通的 PC来达到超级计算机的处理能力,而其造价要比这·一类机器如Cray,SGI和Sun低得多。 作为桌面操作系统,Linux也有待成熟。KDE是一个与Microsoft Windows相当的、易于 |