《UNIX系统V/386第4版 集成软件开发指南 Integrated software development guide》求取 ⇩

目录1

第一章 引论1

1·1 引言1

1·1·1 本指南的目的1

1·1·2 本指南的内容1

1·1·3 如何使用本指南2

1·2 符号约定2

1·2·1 有关的文档3

2·2 软件包的内容5

2·1 软件打包概述5

第二章 应用软件打包5

2·3 软件包的结构生命周期6

2·4 打包工具6

2·4·1 pkgmk命令6

2·4·2 pkgtrans命令7

2·4·3 pkgproto命令7

2·4·4 prototype文件7

2·4·4·1 描述行8

图和表9

图2-1 #1prototype文件样本9

2·4·4·2 命令行9

2·6 软件包信息文件10

图2-2 #1prototype文件样本10

2·5 安装工具10

图2-3 pkginfo文件样本11

2·6·1 pkginfo文件11

2·6·2 pkgmap文件11

图2-4 compver文件样本12

2·6·4 depend文件12

2·6·3 compver文件12

图2-5 depend文件样本13

2·6·5 space文件13

图2-7 copyright文件样本14

图2-6 space文件样本14

2·7 安装脚本14

2·6·7 request文件14

2·6·6 copyright文件14

2·7·1 脚本处理15

2·7·3 为脚本获取软件包信息16

2·7·2 安装参数16

图2-8 将参数置入安装环境17

2·7·5·1 请求脚本的命名约定17

2·7·5 请求脚本17

2·7·4 脚本的出口码17

2·7·6 分类动作脚本18

2·7·6·2 分类动作脚本的使用规则18

2·7·6·1 分类动作脚本的命名约定18

2·7·5·2 请求脚本的使用规则18

2·7·6·3 类的安装19

2·7·7·1 sed类脚本20

2·7·7 特别系统类20

2·7·6·4 类的删除20

图2-9 sed脚本格式21

2·7·7·2 awk类脚本21

图2-10 awk脚本格式22

2·7·7·3 build类脚本22

2·7·8 过程脚本22

2·7·8·1 过程脚本的命名约定22

2·7·8·2 过程脚本的使用规则23

2·8 打包的基本步骤23

2·8·1 第一步 指定软件包的简称24

2·8·2 第二步 定义一个软件包实例24

2·8·2·1 标识软件包实例24

2·8·2·2 在脚本中引用实例标识符25

2·8·3 第三步 将对象分类25

2·8·4·1 定义群体可重定位对象26

2·8·4·2 定义个体可重定位对象26

2·8·4 第四步 使软件包对象可重定位26

2·8·5 第五步 书写安装脚本27

2·8·6 第六步 定义软件包的相关性27

2·8·9·1 手工创建prototype文件28

2·8·7 第七步 书写版权消息28

2·8·9 第九步 创建prototype文件28

2·8·8 第八步 创建pkginfo文件28

2·8·9·2 用pkgproto创建prototype文件30

2·8·11 第十一步 用pkgmk创建一个软件包32

2·8·10 第十步 将软件包分布在多个卷上32

2·8·11·2 帮助pkgmk确定软件包内容的位置33

2·8·11·1 pkgmk创建一个软件包实例33

2·8·12 第十二步 用pkgtrans创建一个软件包33

2·8·12·2 转换一个软件包实例34

2·8·12·1 创建一个数据流软件包34

3·1·1 什么是UNIX的设备驱动程序35

第三章 设备驱动程序35

3·1 设备驱动程序35

3·2·0·1 系统缓冲区36

3·2 驱动程序的任务及责任36

3·1·2 一般的UNIX驱动程序36

3·2·0·3 进程的睡眠和唤醒37

3·2·0·2 系统与用户空间之间的数据传输37

3·2·0·4 核心计时器38

3·2·0·5 驱动程序的同步段和中断段38

3·2·0·7 驱动程序的临界区39

3·2·0·6 中断处理39

3·2·0·8 如何在核心和设备之间移动数据40

3·3·0·1 设备的类型42

3.3 UNIX系统的驱动程序特点42

3·2·0·9 DMA分配例程42

3·3·0·2 特别文件42

3·3·0·4 /dev目录43

3·3·0·3 主设备号和次设备号43

3·3·1 设备驱动程序源文件的结构44

3·3·1·1 包含文件44

3·3·0·5 主文件和系统文件44

3·3·1·2 通用系统数据结构45

3·3·1·3 驱动程序专用的数据结构46

3·3·1·4 设备标志devflag46

3·4 函数说明(驱动程序入口点)47

3·4·0·1 Poll47

3·4·0·2 Kenter47

3·4·0·3 Kexit48

3·4·0·4 中断处理程序48

3·5·0·1 睡眠与唤醒49

3·4·0·5 共享中断与DMA通道49

3·4·0·6 函数命名约定49

3·5 系统实用函数49

3·5·0·2 延迟函数50

3·5·0·3 块驱动程序的biowait/biodone事件的同步51

3·5·0·4 设置处理器优先级51

3·5·0·5 中断优先级53

3·5·0·6 睡眠优先级53

3·5·0·7 Timeout55

3·5·1 出错报告56

3·5·2 分配缓冲区空间56

3·5·2·1 核心内存分配56

3·5·2·2 缓冲区池57

3·5·4 ID概要58

3·5·3 可安装驱动程序的实现58

3·6 控制器接口基础58

3·6·0·1 中断59

3·6·0·2 I/O地址和控制器存储地址60

3·6·0·3 DMA控制器操作60

3·6·1 用户接口61

3·6·1·1 用户特权61

3·6·1·2 与SVR4.0/386中的其它进程间的相互影响61

3·6·2 可安装的驱动程序个数61

3·7 对ID的修改62

3·7·0·4 ID目录结构62

3·7·0·1 主文件62

3·7·0·2 系统文件62

3·7·0·3 space·c62

3·7·0·5 由配置进程生成的设备#define64

3·8·0·3 Idbuild65

3·8·0·2 Idinstall65

3·8 安装驱动程序并重构UNIX操作系统核心的命令65

3·8·0·1 Idcheck65

3·9 驱动程序软件包66

3·9·0·3 System(必需的)67

3·9·0·2 Master(必需的)67

3·9·0·1 Driver·o(必需的)67

3·9·0·6 Init(任选的)68

3·9·0·5 Node(任选的)68

3·9·0·4 Space·c(任选的)68

3·9·0·9 Postinstall(必需的)69

3·9·0·8 Shutdown(任选的)69

3·9·0·7 Rc(任选的)69

3·9·0·10 Preremove(必需的)70

3·9·0·11 模块小结71

表3-1 驱动程序软件包的组成模块71

3·9·1 基本系统驱动程序72

3·9·2 更新驱动程序软件包73

3·9·3 安装/删除小结73

3·9·4 可调的系统参数74

3·9·5 修改一个现有的核心参数74

3·9·7 重新配置核心以启用新参数75

3·9·6 定义一个新的核心参数75

3·9·8 设备驱动程序开发方法75

3·9·9 驱动程序开发过程75

3·9·9·1 紧急状态下的恢复(新的核心无法引导)77

3·10 驱动程序的调试78

3·10·0·1 核心打印语句78

3·10·0·2 跟踪驱动程序79

3·10·0·3 系统的致命错误79

3·10·0·4 将系统卸出79

3·10·0·5 postinstall脚本81

3·10·0·6 preremove脚本81

3·10·0·7 如何为驱动程序的安装编制文档81

3·10·1 将XENIX系统V/386设备驱动程序转换为SVR 4.0/386的设备驱动程序82

4·2·1 打包中的变化85

4·2 UNIX Release 3.0、3.1和3.285

4·1 引言85

第四章 兼容性方面的考虑85

4·2·2·1 文件系统类型86

4·2·2 文件系统86

4·2·2·3 目录的布局89

4·2·2·2 /proc文件系统类型89

4·2·2·4 符号连结90

4·2·3 STREAMS驱动程序93

4·2·4 网络服务94

4·2·5 国际化95

4·2·6·2 增强的加锁功能99

4·2·6·1 核心存储分配程序99

4·2·6 存储分配99

4·2·7·2 浮点变化100

4·2·7·1 编译程序的变化100

4·2·7 标准C开发环境(SCDE)100

4·2·7·4 可扩展的连结格式(ELF)101

4·2·7·3 排错变化101

4·2·7·5 动态共享库102

4·2·8 可调参数:动态及静态103

4·2·9·1 基本的EFT数据类型104

4·2·9 扩展的基本类型:EFT104

表4-1 基本EFT数据类型105

4·2·9·2 EFT兼容性问题105

4·2·10 其它107

5·1 引言109

第五章 视象接口109

5·2·4 正文方式和图形方式110

5·2·3 寄存器110

5·2·2 存储区110

5·2·1 视象适配器板110

5·2 视象显示程序设计的概念性概述110

5·2·5 程序设计的步骤111

5·2·4·2 图形方式111

5·2·4·1 正文方式111

5·2·5·1 开始之前111

5·2·5·2 正文方式112

5·2·5·3 图形方式112

5·3·1·1 确定适配器类型113

5·3·1 视象适配器板113

5·3 视象显示程序设计的技术性概述113

5·3·1·2 方式的获取与设置115

5·4·2 字符集117

5·4·1 正文是如何存放的117

5·4 正文方式下的程序设计117

5·4·4 转义序列118

5·4·3 选择正文方式118

5·4·5 正文方式程序设计的例子119

5·4·6 正文程序设计存储管理121

5·4·6·1 存储布局121

5·5 存取视象存储区的程序设计124

5·5·0·1 取得物理地址125

5·5·0·2 映射视象存储区125

5·5·0·3 映射举例126

5·6·1 存取图形方式的视象存储区126

5·6 图形方式126

5·5·0·4 与MAPCONS的关系126

5·6·1·1 在EGA图形方式下对视象存储区寻址131

5·7 存取视象控制器寄存器133

5·6·1·3 方式切换133

5·6·1·2 VGA独有的寻址方式133

5·7·0·1 利用寄存器提高效率135

5·7·0·2 寄存器编程举例135

5·8·1 引言138

5·8 使用虚拟终端138

5·8·2 终端用户使用虚拟终端139

5·8·3 程序设计的特点140

5·8·3·1 VT操作方式140

5·8·4·1 性能良好的图形应用程序举例141

5·8·4 书写性能良好的程序141

5·8·5 编写虚拟终端使用管理程序147

5·8·6 虚拟终端的创建和应用150

5·8·7 确定VT状态153

5·8·8 虚拟终端控制155

5·9·4 字体操作161

5·9·3 声音效果161

5·9·2 键盘操作161

5·9·1 设置边界161

5·9 其它功能161

5·9·4·2 替换字库中的个别字符162

5·9·5 对鼠标器编程162

5·9·4·1 替换整个字库162

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

附录B 软件包安装实例分析181

B·1 引言181

B·2 实例#1181

B·2·1 技术181

B·2·2 方法181

图B-1 实例#1pkginfo文件182

B·2·3 样本文件182

图B-2 实例#1prototype文件183

图B-3 实例分析#1请求脚本184

B·3 实例#2185

B·3·1 技术185

B·3·2 方法185

B·3·3 样本文件186

图B-4 实例#2prototype文件186

图B-5 实例#2pkginfo文件187

图B-6 实例#2请求脚本187

图B-7 实例#2postinstall脚本188

B·4·2 方法189

B·4·1 技术189

B·4 实例#3189

图B-8 实例#3pkginfo文件190

图B-9 实例#3prototype文件190

B·4·3 样本文件190

图B-11 实例#3安装类动作脚本(i·admin)191

图B-10 实例#3space文件191

B·5 实例#4192

图B-12 实例#3删除类动作脚本(r·cfgdata)192

B·5·1 技术192

B·5·2 方法192

B·5·3 样本文件193

图B-13 实例#5pkginfo文件193

图B-14 实例#4copyright文件193

图B-16 实例#4depend文件194

B·6·1 技术194

B·6 实例#5a194

图B-15 实例#4compver文件194

B·6·3 样本文件195

B·6·2 方法195

图B-17 实例#5a pkginfo文件196

图B-18 实例#5a prototype文件196

图B-19 实例#5a sed脚本(/sbin/inittab)196

图B-20 实例#5a postinstall脚本197

B·7·2 方法197

B·7·1 技术197

B·7 实例#5b197

图B-21 实例#5b pkginfo文件198

图B-22 实例#5b prototype文件198

B·7·3 样本文件198

图B-24 实例#5b删除类动作脚本(r·inittab)199

图B-23 实例#5b安装类动作脚本(i·inittab)199

B·8·2 方法200

B·8·1 技术200

B·8 实例#5c200

图B-25 实例#5b inittab文件200

B·8·3 样本文件201

图B-27 实例#5c prototype文件201

图B-26 实例#5c pkginfo文件201

B·9 实例#6202

B·9·1 技术202

图B-28 实例#5c build脚本(/sbin/inittab)202

B·9·2 方法202

图B-29 实例#6pkginfo文件203

B·9·3 样本文件203

图B-30 实例#6protoype文件204

图B-31 实例#6安装类别动作脚本(i·cron)204

图B-34 实例#6sys crontab文件(与软件包一起传送)205

图B-32 实例#6删除类动作脚本(r·eron)205

图B-33 实例#6根crontab文件(与软件包一起传送)205

附录C 跟踪驱动程序207

附录D 一个软盘驱动程序原型219

附录E 一个驱动程序软件包样本241

附录F 综合视象程序设计举例249

附录G 图形方式小结265

G·1 SW_BG320265

G·2 SW_CG320265

G·3 SW_BG640266

G·4 SW_GG320_D266

G·5 SW_CG640_W267

G·6 SW_CG640×350267

G·7 SW_ENH_CG640268

G·8 SW_VGA640×480C268

G·9 SW_VGA640×480E268

G·10 SW_VGA320×200269

G·11 SW_ATT640269

G·12 SW_VDC800×600E269

G·13 SW_VDC640×400V270

附录H 正文和图形方式IOCTLs271

H·1 正文方式选择IOCTLs271

H·2 图形方式选择IOCTLs271

H·3 display(7)loctl小结272

附录I UNIX兼容性表275

I·1 引言275

I·1·1 参考表格的用法275

I·2 参考表277

附录J 地区和时区环境变量303

J·2 LANG环境变量303

J·1 引言303

J·3 TZ环境变量304

1992《UNIX系统V/386第4版 集成软件开发指南 Integrated software development guide》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由郑蕾等译校 1992 北京:电子工业出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。