当前位置:首页 > 工业技术
UNIX系统第4版 程序员指南 系统服务和应用软件打包工具 Programmer's guide System services and application packaging tools
UNIX系统第4版 程序员指南 系统服务和应用软件打包工具 Programmer's guide System services and application packaging tools

UNIX系统第4版 程序员指南 系统服务和应用软件打包工具 Programmer's guide System services and application packaging toolsPDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:李建国等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:1992
  • ISBN:7505315528
  • 页数:297 页
图书介绍:
《UNIX系统第4版 程序员指南 系统服务和应用软件打包工具 Programmer's guide System services and application packaging tools》目录

1.2 应用编程 1

前言 1

0.1 目的 1

0.2 读者和所需的预备知识 1

0.3 组织 1

图2—3 终端I/O的系统调用 (1 1

图2—2 高级文件I/O的系统调用 (1 1

目录 1

第一章 应用编程介绍 1

1.1 引言 1

1.4  UNIX系统环境支持的语言及其有关资料 2

1.3 UNIX系统工具以及有关资料 2

1.3.1 本指南中涉及的工具和未涉及的工具 2

0.6 记号约定 2

0.5 硬件/软件依赖性 2

0.4 与C的关系 2

0.8 示例信息 3

0.7 命令索引 3

1.4.1  C语言 3

1.4.2 shell 3

1.4.3 awk 3

1.4.4 lex 4

1.4.5 yacc 4

1.4.6 m4 4

1.4.7  bc和dc 5

1.4.8 curses 5

1.4.9  FM LI 5

1.4.10 ETI 5

图和表 7

图1—1 一个简单的ETI程序 7

1.4.11 XWIN图形窗口系统 7

1.4.12 OPEN LOOK图形用户界面 7

2.1 引言 9

2.2 系统调用 9

第二章 UNIX系统环境中的应用编程 9

图2—1 基本的文件I/O的系统调用 10

2.2.3 高级的文件I/O 10

2.2.2 基本的文件I/O 10

2.2.1 出错处理 10

2.2.5 进程 11

2.2.4 终端I/O 11

图2—4 进程的系统调用 12

2.2.5.1 进程概述 12

2.2.5.2 exec(2) 13

图2—5 进程状态 13

2.2.5.3 fork(2) 14

图2—6 fork的例子 14

2.2.7 高级的进程间通信 15

2.2.6 基本的进程间通信 15

图2—7 高级进程间通信的系统调用 15

2.2.8 存储管理 15

2.2.9 文件系统控制 16

2.2.10 信号 16

图2—8 存储管理的系统调用 16

图2—9 文件系统控制的系统调用 16

图2—10 信号的系统调用 16

2.2.10.2 信号类型 17

2.2.10.1 信号概述 17

2.2.10.3 信号处理程序 18

2.2.10.5 保护临界区 19

2.2.10.4 发送信号 19

2.2.11 杂类系统调用 20

2.2.10.6 信号栈 20

图2—11 杂类系统调用 21

2.3.1 文件和记录加锁 21

2.3 应用软件的开发 21

2.3.1.1 何处能找到详细信息 22

2.3.2 进程间通信 22

2.3.3 进程调度 23

2.3.3.1 何处能找到详细信息 23

2.3.2.1 何处能找到详细信息 23

2.3.4 符号连结 24

2.3.6 数据合法性确认工具 25

2.3.5.2 何处能找到详细信息 25

2.3.5.1 存储映象界面 25

2.3.5 存储管理 25

2.3.4.1 何处能找到详细信息 25

2.4.1 打包应用软件 26

2.3.6.1 何处能找到详细信息 26

2.4 软件包的开发和安装 26

2.4.1.1 何处能找到详细信息 27

2.4.2 修改sysadm界面 27

2.4.2.1 何处能找到详细信息 28

第三章 文件和记录的加锁 29

3.1 引言 29

3.2 术语 29

3.3 文件保护 30

3.3.1 为记录加锁打开一文件 30

3.3.2 设置文件锁 31

3.3.3 设置和取消记录锁 33

3.3.4 获取加锁信息 37

3.3.5 死锁处理 39

3.4 选择咨询加锁或强制加锁 39

3.4.2 记录加锁和未来的U NIX系统 本 40

3.4.1 强制加锁使用注意事项 40

4.1 引言 41

第四章 进程间通信 41

4.2.1 使用消息 42

4.2 消息 42

图4—1 ipc-perm数据结构 44

4.2.2.1 使用msgget 45

4.2.2 得到消息队列 45

图4—2 操作权限代码 46

4.2.2.2 实例程序 47

图4—3 msgget系统调用实例 48

4.2.3 控制消息队列 49

4.2.3.1 使用msgctl 49

4.2.3.2 实例程序 50

图4—4 msgctl系统调用实例 52

4.2.4 对消息的操作 54

4.2.4.1 使用msgop 54

4.2.4.2 实例程序 56

8.7.2 安装参数 (1 59

图4—5 msgop系统调用实例 59

4.3 信号量 62

4.3.1 使用信号量 64

4.3.2 得到信号量 66

4.3.2.1 使用semget 66

图4—6 操作权限代码 67

4.3.2.2 实例程序 68

图4—7 semget系统调用实例 69

4.3.3.1 使用semctl 71

4.3.3 控制信号量 71

4.3.3.2 实例程序 72

图4—8 semctl系统调用实例 75

4.3.4 信号量上的操作 79

4.3.4.1 使用semop 80

4.3.4.2 实例程序 81

图4—9 semop系统调用实例 82

4.4 共享内存 84

4.4.1 使用共享内存 85

4.4.2 得到共享内存段 87

4.4.2.1 使用shmget 87

图4—10 操作权限代码 88

4.4.2.2 实例程序 89

图4—11 shmget系统调用实例 90

4.4.3 控制共享内存 91

4.4.3.1 使用shmctl 92

4.4.3.2 实例程序 92

图4—12 shmctl系统调用实例 94

4.4.4 对共享内存的操作 97

4.4.4.1 使用shmop 97

4.4.4.2 实例程序 98

图4—13 shmop系统调用实例 100

第五章 进程调度程序 103

5.1 引言 103

5.2 进程调度程序概述 104

图5—1 系统V4.0版的进程调度程序 104

5.2.2 系统类调度 105

5.2.1 分时类调度 105

图5—2 进程优先级(程序员角度) 106

5.2.3 实时类调度 106

5.3 命令与函数调用 106

5.3.1 priocnl命令 108

5.3.2 priocnl系统调用 111

5.3.2.1 PC-GETCID PC-GETCLINFO 112

5.3.2.2 PC-GETPARMS PC-SETPARMS 116

图5—3 PC-CETPARMS的返回值 117

5.3.3 priocntlset系统调用 120

5.4 与其他函数的相互作用 123

5.4.1 核心进程 123

5.4.2 fork,exec 123

5.4.3 nice 123

5.4.4 init 123

5.5 性能 123

5.5.1 进程状态转换 124

图5—4 进程状态转换图 124

5.5.2 软件延时 125

5.5.3 用于实时U块的内存 126

6.1 引言 127

第六章 符号连结 127

6.2 符号连结的使用 128

6.2.1 符号连结的特征 128

6.2.2 符号连结的创建 129

6.2.2.1 语义规则和语法规则 129

图6—1 符号连结文件树 129

6.2.2.2 例子 130

6.2.3 符号连结的删除 131

6.2.4 符号连结的存取 131

6.2.5 符号连结的拷贝 131

6.2.6 符号连结的连结 131

6.2.7 符号连结的改名 132

6.2.8 归档命令 132

6.2.9 文件属主和存取权限 133

6.2.10 在RFS中使用符号连结 133

图6—2 RFS中的符号连结例1 134

图6—3 RFS中的符号连结例2 135

第七章 存贮管理 137

7.1 虚拟存贮系统概述 137

7.1.1 虚存、地址空间和映射 137

7.1.2 网络、异机种和一致性 138

7.2 存贮管理界面 138

7.2.1 创建和使用映射 139

7.2.2 删除映射 142

7.2.3 高速缓存控制 142

7.3 地址空间的布局 145

7.2.4 其他映射函数 145

第八章 打包应用软件 147

8.1 软件打包概述 147

8.2 软件包的内容 147

8.2.1 必要的成分 147

8.2.2 可选的软件包信息文件 148

图8—1 软件包的内容 148

8.2.3 可选的安装脚本 149

8.3 软件包的结构生命周期 149

8.4 打包工具 150

8.4.1 pkgmk命令 150

8.4.3 pkgproto命令 151

8.5 安装工具 151

8.4.2 pkgtrans命令 151

图8—2 样本pkginfo文件 152

8.6.1 pkginfo文件 152

8.6 软件包信息文件 152

8.6.2.1 描述行 153

8.6.2 prototype文件 153

图8—3 样本#1prototype文件 154

8.6.2.2 命令行 154

图8—4 样本#2protoype文件 155

图8—5 样本compver文件 155

8.6.3 compver文件 155

8.6.5 depend文件 156

8.6.4 copyright文件 156

图8—6 样本copyright文件 156

图8—7 样本depend文件 157

图8—8 样本space文件 157

8.6.6 space文件 157

8.6.7 pkgmap文件 158

8.7 安装脚本 158

8.7.1 脚本处理 158

8.7.3 为脚本获取软件包信息 160

8.7.4 脚本的退出码 160

8.7.5 请求脚本 160

8.7.5.1 请求脚本的命名约定 161

8.7.6 类动作脚本 161

8.7.5.2 请求脚本的使用规则 161

图8—9 把参数存放到安装环境中 161

8.7.6.1 类动作脚本的命名约定 162

8.7.6.2 类动作脚本的使用规则 162

8.7.6.3 类的安装 162

8.7.6.4 类的删除 163

8.7.7 特别系统类 164

8.7.7.1 sed类脚本 164

图8—10 sed脚本格式 164

图8—11 awk脚本格式 165

8.7.8 过程脚本 165

8.7.7.2 awk类脚本 165

8.7.7.3 build类脚本 165

8.7.8.1 过程脚本的命名约定 166

8.7.8.2 过程脚本的使 用规则 166

8.8 打包的基本步骤 166

8.9 指定软件包的缩写名 168

8.10 定义软件包实例 168

8.10.1 标识一个软件包实例 168

8.10.2 在你的脚本中存取实例标识符 169

8.11 编写安装脚本 169

8.12 使软件包对象可重定位 169

8.12.1 定义群体可重定位对象 170

8.12.2 定义个别可重定位对象 170

8.13 对象分类 170

8.14 定义软件包的依赖性 171

8.15 编写版权信息 171

8.17 创建pkginfo文件 172

8.18 创建prototype文件 172

8.16 在安装机器上保留附加空间 172

8.18.1.2 映射开发路径名到安装路径名上 173

8.18.1.1 创建连接 173

8.18.1.3 定义pkgadd创建的对象 173

8.18.1 手工创建prototype文件 173

8.18.2 用pkgproto创建文件 174

8.18.2.1 创建一个基本的prototype文件 174

8.18.1.4 使用命令行 174

8.18.2.2 为对象指定类 175

8.18.2.3 用pkgproto重新命名路径名 175

8.19 把软件包分布在多个卷上 176

8.20 用pkgmk创建软件包 176

8.18.2.4 pkgproto和links 176

8.20.2 帮助pkgmk确定软件包内容 177

8.21 用pkgtrans创建软件包 177

8.20.1 创建软件包实例 177

8.21.1 创建数据流软件包 178

8.21.2 转换软件包实例 178

8.22 打包过程的快速引用 179

9.1.1 工具介绍 181

9.1 sysadm修改的概述 181

9.1.1.1 edsysadm命令 181

第九章 修改sysadm界面 181

9.1.1.2 delsysadm命令 182

9.1.1.3 数据合法性确认工具 182

9.1.2 打包修改文件的介绍 183

9.1.3 界面修改过程的概述 183

9.2 设计你的界面修改 184

9.2.1 决定是否你应该修改界面 184

9.2.2 设计你的修改位置 184

9.2.2.1 界面结构概貌 184

9.2.2.2 设计你的管理结构 185

9.2.3 命名你的界面修改 186

9.2.3.1 如何命名你的修改 186

9.2.3.2 界面命名的要求 186

9.2.3.3 系统如何处理命名冲突 186

9.4.1 条目求助文件 187

9.3 编写管理操作 187

9.4 编写求助消息 187

9.4.1.2 默认标题格式 188

9.4.1.1 菜单条目求助的消息格式 188

9.4.1.3 字段条目求助的消息格式 189

9.4.2 标题层次 190

9.4.3 在FACE对象中建立条目求助 190

图9—1 一个表格的项目求助文件 191

9.4.4 条目求助文件的举例 191

图9—2 多个表格的条目求助文件 192

9.5 打包你的界面修改 193

9.5.1 打包你的修改的基本步骤 193

9.5.2 为一个菜单项建立或改变打包 193

9.5.2.1 为一个菜单项建立打包 193

9.5.2.2 为一个菜单项改变打包 194

9.5.2.4 菜单定义表格 195

9.5.2.3 联机测试你的菜单改变 195

9.5.3 为一个任务项建立或改变打包 196

9.5.3.1 为一个任务项建立打包 196

9.5.3.2 为一个任务项改变打包 197

9.5.3.3 任务定义表格 198

9.6 准备你的软件包 199

9.7 删除界面修改 200

10.3 工具的特性 201

10.2 工具的类型 201

10.1 工具的介绍 201

第十章 数据合法性确认工具 201

10.3.2 数据合法性确认工具求助消息 202

10.3.1 数据合法性确认工具提示符 202

10.3.5 shell命令 203

10.3.4 消息格式化 203

10.3.3 数据合法性确认工具的出错消息 203

图10—1 shell命令 204

图10—2 直观工具 205

10.3.6 直观工具 205

附录A liber,一个图书馆系统 207

附录B 命令手册页 219

C.1 引言 273

附录C 软件包安装实例分析 273

C.2 实例#1 273

C.2.1 技术 273

C.2.2 方法 273

C.2.3 样本文件 274

图C—1 实例#1pkginfo文件 274

图C—2 实例#1prototype文件 275

图C—3 实例分析#1请求脚本 276

C.3 实例#2 277

C.3.1 技术 277

C.3.2 方法 277

图C—5 实例#2 pkginfo文件 278

C.3.3 样本文件 278

图C—4 实例#2prototype文件 278

图C—6 实例#2 请求脚本 279

图C—7 实例#2 postinstall脚本 280

C.4 实例#3 281

C.4.2 方法 281

C.4.1 技术 281

图C—8 实例#3 pkginfo文件 282

图C—9 实例#3 prototype文件 282

C.4.3 样本文件 282

图C—10 实例#3 space文件 283

图C—11 实例#3 安装类动作脚本(i·admin) 283

图C—12 实例#删除类动作脚本(r·cfgdata) 284

C.5 实例#4 284

C.5.1 技术 284

C.5.2 方法 284

图C—13 实例#4 pkginfo文件 285

图C—14 实例#4 copright文件 285

C.5.3 样本文件 285

图C—15 实例#4 compver文件 286

C.6 实例#5a 286

C.6.1 技术 286

图C—16 实例#4 depend文件 286

C.6.2 方法 287

图C—17 实例#5a pkginfo文件 288

图C—18 实例#5a prototype文件 288

图C—19 实例#5a sed脚本(/sbin/inittab) 288

C.6.3 样本文件 288

图C—20 实例#5a postinstall脚本 289

C.7 实例#5b 289

C.7.1 技术 289

C.7.2 方法 289

图C—21 实例#5b pkginfo文件 290

图C—22 实例#5b prototype文件 290

C.7.3 样本文件 290

图C—23 实例#5b安装类动作脚本(i.inittab) 291

图C—24 实例#5b删除类动作脚本(r·inittanb) 291

图C—25 实例#5c inittab文件 292

C.8.2 方法 292

C.8 实例#5c 292

C.8.1 技术 292

C.8.3 样本文件 293

图C—26 实例#5c pkginfo文件 293

图C—27 实例#5c prototype文件 293

C.9.2 方法 294

C.9.1 技术 294

C.9 实例#6 294

图C—28 实例#5c balld脚本(/sbin/init) 294

C.9.3 样本文件 295

图C—29 实例#6pkginfo文件 295

图C—30 实例#6prototype文件 296

图C—31 实例#6安装类别动作脚本(i·cron) 296

图C—32 实例#6删除类别动作脚本(r·cron) 297

图C—33 实例#6根crontab文件(与软件包一起传送) 297

图C—34 实例#6syscrontab文件(与软件包一起传送) 297

相关图书
作者其它书籍
返回顶部