LINUX系统分析与高级编程技术

LINUX系统分析与高级编程技术
作 者: 周巍松
出版社: 机械工业出版社
丛编项: Linux与自由软件资源丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Linux
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《LINUX系统分析与高级编程技术》作者简介

内容简介

本书介绍Linux环境下的编程方法,内容包括Linux系统命令、Shell脚本、编程语言(gawk、Perl)、系统内核、安全体系、XWindow等,内容丰富、论述全面,涵盖了Linux系统的方方面面。本书附带光盘包括了RedHatLinux系统的最新版本,及安装方法,还包括本书的大量程序代码,极大地方便了读者,为使用和将要使用Linux系统的技术人员提供了较全面的参考。

图书目录

目 录

前言

第一篇 Linux系统介绍

第1章 Linux简介

1.1Linux的起源

1.2自由软件基金会的GNU计划

1.3Linux的发音

1.4Linux的特点

1.5基本硬件要求

1.6如何获得Linux

1.6.1从网上下载Linux

1.6.2从光盘获得Linux

1.7涉及Linux的Web网址和新闻讨论组

1.8Linux的不足之处

第2章 外壳及常用命令

2.1登录和退出

2.2Linux系统的外壳

2.3外壳的常用命令

2.3.1更改帐号密码

2.3.2联机帮助

2.3.3远程登录

2.3.4文件或目录处理

2.3.5改变工作目录

2.3.6复制文件

2.3.7移动或更改文件、目录名称

2.3.8建立新目录

2.3.9删除目录

2.3.10删除文件

2.3.11列出当前所在的目录位置

2.3.12查看文件内容

2.3.13分页查看文件内容

2.3.14查看目录所占磁盘容量

2.3.15文件传输

2.3.16文件权限的设定

2.3.17检查自己所属的工作组名称

2.3.18改变文件或目录工作组所有权

2.3.19改变文件或目录的最后修改时间

2.3.20文件的链接

2.3.21文件中字符串的查录

2.3.22查寻文件或命令的路径

2.3.23比较文件或目录的内容

2.3.24文件打印输出

2.3.25一般文件的打印

2.3.26troff文件的打印

2.3.27打印机控制命令

2.3.28进程控制

2.3.29外壳变量

2.3.30环境变量

2.3.31别名

2.3.32历史命令

2.3.33文件的压缩

2.3.34管道命令的使川

2.3.35输入/输出控制

2.3.36查看系统中的用户

2.3.37改变用户名

2.3.38查看用户名

2.3.39查看当前系统上所有工作站

的用户

2.3.40与某工作站上的用户交谈

2.3.41检查远程系统是否正常

2.3.42电子邮件的使用简介

第3章 Linux系统的网络功能

3.1Linux支持的网络协议

3.1.1TCP/IP

3.1.2TCP/IP版本6

3.1.3IPX/SPX

3.1.4AppleTalk协议集

3.1.5广域网

3.1.6ISDN

3.1.7PPP、SLIP及PLIP

3.1.8业余无线电

3.1.9ATM

3.2Linux系统下的文件共享和打印共享

3.2.1Machintosh环境

3.2.2Windows环境

3.2.3Novell环境

3.2.4UNIX环境

3.3Linux系统中的Internet/Intranet功能

3.3.1邮件

3.3.2Web服务器

3.3.3Web浏览器

3.3.4FTP服务器和客户机

3.3.5新闻服务

3.3.6域名系统

3.3.7DHCP和bootp

3.3.8NIS

3.4Linux系统下应用程序的远程执行

3.4.1Telnet

3.4.2远程命令

3.4.3XWindow

3.5Linux系统的网络互连功能

3.5.1路由器

3.5.2网桥

3.5.3IP伪装

3.5.4IP统计

3.5.5IP别名

3.5.6流量限制器

3.5.7防火墙

3.5.8端口下传

3.5.9负载平衡

3.5.10EQL

3.5.11代理服务器

3.5.12按需拨号

3.5.13管道、移动IP和虚拟个人网络

3.6Linux系统中的网络管理

3.6.1Linux系统下的网络管理应用程序

3.6.2SNMP

3.7企业级Linux网络

3.7.1高可用性

3.7.2RAID

3.7.3冗余网络

第4章 Linux系统管理简介

4.1root帐号

4.2启动和关闭系统

4.2.1从软盘启动

4.2.2使用LILO启动

4.2.3关闭Linux系统

4.3挂接文件系统

4.3.1挂接软盘

4.3.2创建新的文件系统

4.3.3卸载文件系统

4.4检查文件系统

4.5使用文件作为交换区

4.6系统和文件的备份

4.7设置系统

4.7.1设置系统名

4.7.2使用维护磁盘

4.7.3重新设置root帐号口令

4.7.4设置登录信息

第二篇 Linux高级语言及管理编程

第5章 外壳编程

5.1创建和运行外壳程序

5.1.1创建外壳程序

5.1.2运行外壳程序

5.2使用外壳变量

5.2.1给变量赋值

5.2.2读取变量的值

5.2.3位置变量和共他系统变量

5.2.4引号的作用

5.3数值运算命令

5.4条件表达式

5.4.1if表达式

5.4.2case表达式

5.5循环语句

5.5.1for语句

5.5.2while语句

5.5.3 until语句

5.6shift命令

5.7Select语句

5.8repeat语句

5.9子函数

第6章 gawk语言编程

6.1gawk的主要功能

6.2如何4执行gawk程序

6.3文件、记录和字段

6.4模式和动作

6.5比较运算和数值运算

6.6内部函数

6.6.1随机数和数P学函数

6.6.2字符串的内部函数

6.6.3 输入输出的内部函数

6.7字符串和数字

6.8格式化输出

6.9改变字段分隔符

6.10元字符

6.11调用gawk程序

6.12卫BEGIN和END

6.13变量

6.14内置变量

6.15控制结构

6.15.1if表达式

6.15.2while循环

6.15.3for循环

6.15.4next和exit

6.16数组

6.17川户自定义函数

6.18儿个实例

第7章 Perl语言编程

7.1什么是Perl

7.2Perl的现状

7.3初试P erl

7.4Perl变量

7.4.1标量

7.4.2数组

7.4.3相关数组

7.5文件句柄和文件操作

7.6循环结构

7.6.1foreach循环

7.6.2判断运算

7.6.3for循环

7.6.4 while和until循环

7.7条件结构

7.8字符匹配

7.9替换和翻译

7.9.1替换

7.9.2翻译

7.10 子过程

7.10.1子过程的定义

7.10.2参数

7.10.3返回值

7.11 Perl程序的完整例了

第8章 Linux内核简介

8.1系统初始化

8.2系统运行

8.3内核提供的各种系统调用

8.3.1进程的从本概念和系统

8.3.2创建和撤消进程

8.3.3执九行程序序

第9章 系统进程

9.1什么是进程

9.2进程的结构

9.3进程调度

9.4进程使用的文件

9.5进程使川的虚拟内存

9.6创建进程

9.7进积的时间和计时器

9.7.1实时时钟

9.7.2虚拟时钟

9.7.3形象时钟

9.8程序的执行

9.8.1ELF文件

9.8.2脚本文件

第10章 内存管理

10.1内存管理的作用

10.2虚拟内存的抽象模型

10.3按需装入页面

10.4交换

10.5共享虚拟内存

10.6存取控制

10.7高速缓存

10.7.1缓冲区高速缓存

10.7.2页面高速缓存

10.7.3交换高速缓存

10.7.4硬件高速缓存

10.8系统页面表

10.9页面的分配和释放

10.9.1页面的分配

10.9.2页面的释放

10.10内存映射

10.11请求调页

10.12页面高速缓存

10.13内核交换守护进程

第11章 进程间通信

11.1信号机制

11.2管道机制

113SystemVIPC机制

11.3.1信息队列

11.3.2信号量

11.3.3共享内存

第12章 PCI

12.1PCI系统

12.2PCI地址空间

12.3PCI设置头

12.4PCII/O和PCI内存地址

12.5PCI-ISA桥

12.6PCI-PCI桥

12.7PCI初始化

12.7.1Linux系统内核有关PCI的

数据结构

12.7.2 PCI设备驱动程序

12.7.3 PCIBIOS函数

12.7.4 PCIFixup

第13章 中断和中断处理

13.1中断

13.2可编程中断控制器

13.3初始化中断处理的数据结构

13.4中断处理

第14章 设备驱动程序

14.1硬件设备的管理

14.2轮询和中断

14.3直接内存存取

14.4内存

14.5设备驱动程序和内核之间的接日

14.5.1字符设备

14.5.2块设备

14.6 硬盘

14.6.1IDE硬盘

14.6.2初始化IDE硬盘子系统

14.6.3SCSI硬盘

14.6.4初始化SCSI磁盘子系统

14.6.5传递块设备请求

14.7网络设备

14.7.1网络设备文件名

14.7.2总线信息

14.7.3网络接目标记

14.7.4协议信息

14.7.5初始化网络设备

第15章 文件系统

15.1Linux文件系统概述

15.2 ext2文件系统

15.2.1ext2的索引节点

15.2.2ext2超级块

15.2.3ext2数据块组描述符

15.2.4ext2中的目录

15.2.5在ext2文件系统中查找文件

15.2.6改变ext2文件系统中文件

的大小

15.3VFS

15.3.1.VFS超级块

15.3.2 VFS索引节点

15.3.3登记文件系统

15.3.4 挂接文件系统

15.3.5在VFS中查找文件

15.3.6撤消文件系统

15.3.7VFS索引节点缓存

15.3.8VFS目录缓存

15.4 缓冲区缓存

15.5/proc文件系统

第16章 网络系统

16.1TCP/IP网络简介

16.2TCP/IP网络的分层

16.3BSD套接口

16.4INET套接口层

16.4.1创建BSD套接口

16.4.2给INETBSD套接口指定地址

16.4.3在INETBSD套接口上创建连接

16.4.4监听INETBSD套接口

16.4.5接收连接请求

16.5IP层

16.5.1套接口缓冲区

16.5.2接收IP数据包

16.5.3发送IP数据包

16.5.4数据碎片

16.6地址解析协议

第17章 系统内核机制

17.1BottomHalf处理

17.2任务队列

17.3计时器

17.4等待队列

17.5信号量

第四篇 Linux系统高级编程

第18章 Linux内核模块编程

18.1 个简单程序HelloWorld

18.2 设备文件

18.3 proc义件系统

18.4 使用/proc输入

18.5 与设备文件通信

18.6 启动参数

18.7 系统调用

18.8 阻塞进程

18.9 替换printk

18.10 调度任务

第19章 有关进程通信的编程

19.1进程间通信简介

19.2半双工UNIX管道

19.2.1基本概念

19.2.2使用C语言创建管道

19.2.3创建管道的简单方法

19.2.4使用管道的自动操作

19.2.5使用半双工管道时的注意事项

19.3命名管道

19.3.1基本概念

19.3.2创建FIFO

19.3.3FIFO操作

19.3.4FIFO的阻塞

19.3.5SIGPIPE信号

19.4 SystemVIPC

19.4.1基本概念

19.4.2消息队列基本概念

19.4.3系统调川msgget()

19.4.4系统调川msgsnd()

19.4.5系统调用msgctl()

19.4.6一个msgtool的实例

19.5使用信号量编程

19.5.1基本概念

19.5.2系统调用semget()

19.5.3系统调用semop()

19.5.4系统调用semctl()

19.5.5使用信号量集的实例:semtool

19.6 共享内存

19.6.1基本概念

19.6.2 系统内部用户数据结构

shmidds

19.6.3系统调川shmget()

19.6.4 系统调用shmat()

19.6.5系统调川shmctl()

19.6.6系统调用shmdt()

19.6.7使用共享内存的实例:shmtool

第20章 高级线程编程

20.1线程的概念和用途

20.2个简单的例子

20.3线程同步

20.4使用信号量协调程序

20.5信号量的实现

20.5.1Semaphore.h

20.5.2Semaphore.c

第21章 Linux系统网络编程

21.1什么是套接口

21.2两种类型的Internet套接口

21.3网络协议分层

21.4数据结构

21.5IP地址和如何使川IP地址

21.5.1socket()

21.5.2bind()

21.5.3connect()

21.5.4listen()

21.5.5accept()

21.5.6send()和recv()

21.5.7sendto0和recvfrom()

21.5.8close()和shutdown0

21.5.9getpeername()

21.5.10gethostname()

21.6 DNS

21.7客户机/服务器模式

21.8简单的数据流服务器程序

21.9简单的数据流客户机程序

21.10数据报套接口

21.11阻塞

第22章 LinuxI/O端口编程

22.1如何在C语言下使用I/O端口

22.1.1 一般的方法

22.1.2另一个替代方法:/dev/port

22.2 硬件中断与DMA存取

22.3高精确的时间

22.3.1延迟时间

22.3.2时间的量测

22.4 使用共他程序语言

22.5 些有用的I/O 端口

22.5.1并行端口

22.5.2游戏端口

22.5.3串行端口

第五篇 Linux系统安全分析

第23章 系统管理员安全

23.1安全管理

23.2超级用户

23.3文件系统安全

23.3.1 Linux文件系统概述

23.3.2设备文件

23.3.3/etc/mknod命令

23.3.4 安全考虑

23.3.5find命令

23.3.6secure程序

23.3.7ncheck命令

23.3.8安装和拆卸文件系统

23.3.9 系统目录和文件

23.4 作为root运行的程序

23.4.1启动系统

23.4.2init进程

23.4.3进入多用户

23.4.4 shutdown命令

23.4.5系统V的cron程序

23.4.6系统V版本2之后的cron程序

23.4.7/etc/profile

23.5/etc/passwd文件

23.5.1口令时效

23.5.2UID和GID

23.6/etc/group文件

23.7增加、删除和移走用户

23.7.1增加用户

23.7.2删除用户

23.7.3将用户移到另 个系统

23.8安全检查

23.8.1记帐

23.8.2共他检查命令

23.8.3安全检查程序的问题

23.8.4 系统泄密后怎么办

23.9 加限制的环境

23.9.1加限制的外壳

23.9.2 用chroot()限制用户

23.10 小系统安全

23.11 物理安全

23.12 用户意识

23.13 系统管理员意识

23.13.1保持系统管理员个人的

登录安全

23.13.2 保持系统安全

第24章 系统程序员安全

24.1系统子程序

24.1.1I/O子程序

24.1.2 进程控制

24.1.3 文件属性

24.1.4 UID和GID的处理

24.2 标准C程序库

24.2.1标准I/O

24.2.2 /etc/passwd的处理

24.2.3/etc/group的处理

24.2.4 加密子程序

24.2.5 运行外壳

24.3编写安全的C程序

24.3.1 需要考虑的安全问题

24.3.2 SUID/SGID程序指导准则

24.3.3编译、安装SUID/SGID 程序

的方法

24.4root用户程序的设计

第25章 Linux系统的网络安全

25.1UUCP系统概述

25.1.1UUCP命令

25.1.2 uux命令

25.1.3uucico程序

25.1.4 uuxqt程序

25.2UUCP的安全问题

25.2.1USERFILE文件

25.2.2 L.cmds文件

25.2.3uucp登录

25.2.4 uucp使用的文件和目录

25.3HONEYDANBERUUCP

25.3.1HONEYDANBERUUCP

老UUCP的差别

25.3.2 登录名规则

25.3.3MACHINE规则

25.3.4 组合MACHINE和LOGNAME

规则

25.3.5uucheck命令

25.3.6 网关

25.3.7 登录文件检查

25.4其他网络

25.4.1远程作业登录

25.4.2 NSC网络系统

25.5通信安全

25.5.1物理安全

25.5.2 加密

25.5.3用户身份鉴别

25.6 SUNOS 系统的网络安全

25.6.1确保NFS的安全

25.6.2 NFS安全性方面的缺陷

25.6.3远程过程调用鉴别

25.6.4 Linux鉴别机制

25.6.5DES鉴别系统

25.6.6 公共关键字的编码

25.6.7 网络实体的命名

25.6.8DES鉴别系统的应用

25.6.9 遗留的安全问题

25.6.10 性能

25.6.11 启动和setuid程序引起的问题

25.6.12 小结

第26章 Linux系统的用户安全性

26.1口令安全

26.2文件许可权

26.3目录许可

26.4 umask命令

26.5设置用户ID和同组用户ID许可

26.6cpmvIn和cpio命令

26.7su和newgrp命令

26.7.1su命令

26.7.2newgrp命令

26.8文件加密

26.9 其他安全问题

26.9.1用户的profile文件

26.9.2 ls-a

26.9.3.exrc文件

26.9.4 暂存文件和目录

26.9.5UUCP和其他网络

26.9.6 特洛伊木马

26.9.7 诱骗

26.9.8计算机病毒

26.9.9 要离开自己已登录的终端

26.9.10 智能终端

26.9.11 断开与系统的连接

26.9.12 cu命令

26.10 保持帐户安全的要点

第六篇 XWindow系统的内部结构和使用

第27章 XWindow系统的基本知识

27.1XWindow系统介绍

27.1.1X的特点

27.1.2 什么是窗口系统

27.1.3X发展的历史

27.1.4 X的产品

27.1.5 MIT发行的X

27.2 X的从本结构

27.2.1X的从本元素

27.2.2服务程序和客户程序如何

交互通信

27.2.3X的网络概况

27.3 从川户界面的角度概观X

27.3.1管理界面:窗口管理器

27.3.2应用程序界面和工具箱

27.3.3儿他系统角度

27.4 术语和符号

27.4.1术语

27.4.2符号

27.5启动和关闭X

27.5.1启动X

27.5.2执行X程序的方式

27.5.3关闭X

27.6 窗口管理器从础 uwm

27.6.1什么是窗口管理器

27.6.2 启动uwm

27.6.3从本窗口操作 uwm

的莱单

27.6.4 移动窗口

27.6.5 重定窗口大小

27.6.6 建立新窗口

27.6.7管理屏幕空间

27.6.8中止应用程序窗口

27.6.9 激活uwm菜单的其他方式

27.7 使用X的网络设备

27.7.1指定远程终端机—— display

选项

27.7.2实际使用远程的显示器

27.7.3控制存取显示器 xhost

27.8终端机模拟器 详细介绍xterm

27.8.1选择xterm功能 菜单与

命令行选项

27.8.2 滚动xterm屏幕

27.8.3记录与终端机的交互过程 写

记录

27.8.4 剪贴文本

27.8.5使川Tektronix模拟功能

27.8.6 使用不同的字体

27.8.7 使川颜色

27.8.8其他xterm选项

27.8.9 设定终端机键盘

第28章 实用程序和工具

28.1实用程序

28.2保存、显示和打印屏幕图像

28.3使川X的应用程序

28.3.1文字编辑器 Xedit

28.3.2邮件信息处理系统 xmh

28.4示例和游戏程序

28.4.1找出通过随机迷宫的

路径 maze

28.4.2担任鼠标指针的大眼睛

xeyes

28.4.3智慧盘游戏——puzzle

28.4.4 打印一个人X标志—— xlogo

28.4.5跳动的多面体 ico

28.4.6动态儿何图案 munchcr与

plaid

28.7 显示信息和状态的程序

28.7.1列出X服务程序的特征——

Xdpyinfo

28.7.2 获取有关窗口的信息

28.7.3观察X的事件——xev

第29章 定制XWindow系统

29.1使用X的字体和颜色

29.1.1字体初步

29.1.2字体命名

29.1.3观察特定字体的内容 ——xfd

29.1.4 保存字体和位置

29.1.5 例子:在你的服务程序中

增加新字体

29.1.6使川X的颜色

29.2 定义和使用图形

29.2.1系统图形程序库

29.2.2交互编辑图形 ——bitmap

29.2.3编辑图形的其他方法

29.2.4 定制根窗口——xsetroot

29.3定义应用程序的缺省选项

Resources

29.3.1什么是资源

29.3.2XToolkit

29.3.3管理资源 资源管理器

29.3.4资源的类型 如何指定值

29.4 实际使用资源

29.4.1在何处保存资源的缺省值

29.4.2 在服务程序上保存缺省值卜——

xrdb

29.4.3常见的错误和修正

29.5定制键盘和鼠标

29.5.1实际使用转换

29.5.2转换 格式和规则

29.5.3转换规范中常见的问题

29.6 键盘和鼠标—— 对应和1参数

29.6.1键盘和鼠标映射 ——xmodmap

29.6.2键盘和鼠标参数设定——xset

29.7进一步介绍和定制uwm

29.7.1uwm的新特征

29.7.2 定制uwm

29.8显示器管理器 ——xdm

29.8.1需要做些什么

29.8.2xdm

29.8.3xdm的更多信息

29.8.4uwm配置

附录A GCC使用介绍

附录B 安装XWindow窗口系统