《linux 数据库编程.pdf》由会员分享,可在线阅读,更多相关《linux 数据库编程.pdf(484页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 Linux 专家之路 Linux 数据库编程 Linux 数据库编程 刘少锋 编著 雨人科技 策划 人民邮电出版社 图书在版编目(C I P)数据Linux 数据库编程刘少锋编著北京:人民邮电出版社,2002.2(Linux 专家之路)ISBN 7-115-09819-0 IL II刘 IIILinux 操作系统程序设计 IVTP316.81 中国版本图书馆 CIP 数据核字(2001)第 097649 号 内 容 提 要 本书由浅入深、由点到面地介绍了基于 Linux 操作系统的数据库编程技术。本书不仅从理论上做了生动透彻的讲述,并且所给出的实例也是非常经典的。本书首先讲述了 Linux
2、操作系统和数据库技术的基本概念,然后依次介绍了 Linux 下的几种常用数据库(Oracle、Informix 和 MySQL)的基础知识。在此基础上,循序渐进地讲解了 Oracle 数据库的 SQL 编程技术,最后介绍了 Oracle 数据库在 PL/SQL 高级编程方面的内容。书中列举的所有实例都已在 Red Hat Linux 7.0环境下测试通过。本书主要面向希望学习在 Linux 系统下进行数据库编程的初中级用户,同时也适合用作相关的 Linux 培训教材。L i n u x 专家之路L i n u x 数据库编 编 著 刘少锋 策 划 雨人科技 责任编辑 张瑞喜 执行编辑 郭立罡
3、人民邮电出版社出版发行 北京市崇文区夕照寺街 14 号 邮编 100061 电子函件 网址 http:/ 读者热线:010-67180876 北京汉魂图文设计有限公司制作 印刷厂印刷 新华书店总店北京发行所经销 开本:7871092 1/16 印张:31.25 字数:750 千字 2002 年 1 月 第 1 版 印数:10 000 册 2002 年 1 月 北京第 1 次印刷 ISBN 7-115-09819-0/TP2568 定价:48.00 元(附光盘)本书如有印装质量问题,请与本社联系电话:(0 1 0)6 7 1 2 9 2 2 3 前 言 近年来,数据库技术得到越来越普遍的应用。与
4、此同时,Linux 操作系统不断成熟,基于 Linux 系统的优良性能也逐渐体现出来。很多企业和网站使用了“Linux数据库”的模式,越来越多的用户开始学习在 Linux 下的 Oracle 编程。可以说,Linux 与数据库的结合已经成为一种不可逆转的趋势。当前比较流行的数据库主要有 Oracle、Informix、MySQL 等,其中 Oracle 数据库是使用最为普遍的一种数据库技术。本书是作者参照了部分国外最新的相关知识,结合了大量的实例,并加以作者自己的切身体会,精心打造而成的。即便读者对 Linux 和数据库一无所知,只要按照书中的指导学习,相信会有很大的收获。本书系统地介绍了“L
5、inux数据库”的开发模式。本书从最基本的 Linux 和数据库的知识讲起,以理论结合实例的方法,由浅入深地讲述了 Linux 下数据库编程的内容。第 1 章、第 2 章分别讲述了 Linux 的入门知识和数据库的基本概念;第 3 章、第 4 章、第 5 章讲述了Linux 下常用的几种数据库的安装使用方法;第 6 章 第 15 章循序渐进地讲解了 Oracle 数据库的 SQL 编程技术;第 16 章 第 24 章介绍了 Oracle 数据库 PL/SQL 高级编程的内容。本书每章均附有“习题与思考”,书后的附录中列有部分习题参考答案,以便读者练习掌握所学的知识。本书配有光盘。光盘内容包括程
6、序源代码,部分习题参考答案,雨人科技技术支持文档等。本书由雨人科技策划,刘少锋同志负责全书的设计、统稿和修改,并编写了第 1 章、第3 章、第 7 章和第 16 章以后的部分,其余章节由朱晶同志完成。此外,参加本书编写的还有姜云峰、刘馨宇等同志。在此对所有关心、支持和帮助过本书编写工作的同志表示诚挚的谢意!书中不足之处敬请读者指正,以便再版时修订。联系邮件地址: 雨人科技网站: 编著者 2001 年 8 月 目目 录录 第 1 章 Linux 基础.1 1.1 系统介绍.2 1.1.1 Linux 的特性综述.2 1.1.2 涉及 Linux 的 Web 网址和新闻讨论组.3 1.2 Red
7、Hat Linux 基本安装.4 1.2.1 了解 Linux 的硬件要求.4 1.2.2 了解计算机.7 1.2.3 对硬盘进行分区.7 1.2.4 什么是 LILO.8 1.2.5 制作安装软盘.9 1.2.6 用 Linux 启动计算机.9 1.2.7 从光盘安装 Red Hat Linux.10 1.2.8 选择安装类型.13 1.2.9 定制(Custom)安装.14 1.2.10 从 FTP 安装 Red Hat Linux.26 1.3 小结与练习.28 1.3.1 小结.28 1.3.2 习题与思考.28 第 2 章 数据库基础.29 2.1 数据库基本概念.30 2.1.1
8、数据与数据库.30 2.1.2 数据库管理系统.31 2.1.3 数据库语言.32 2.1.4 数据库系统.32 2.2 数据模型.34 2.2.1 数据模型的三要素.34 2.2.2 主要数据模型.35 2.3 数据库系统的结构.38 2.3.1 数据库系统三级模式结构.38 2.3.2 数据独立性.39 2.3.3 数据库操作过程.40 Linux 数据库编程 2 http:/ 2.4 小结与练习.41 2.4.1 小结.41 2.4.2 习题与思考.41 第 3 章 Linux 上安装 Oracle8i.43 3.1 基本概念.44 3.1.1 系统全局区域.44 3.1.2 程序全局区
9、域.45 3.1.3 表空间.45 3.1.4 数据文件.45 3.1.5 区.45 3.1.6 段.46 3.1.7 控制文件.46 3.1.8 重做日志.46 3.1.9 回退段.46 3.1.10 参数文件.46 3.1.11 版本标识符.47 3.1.12 PL/SQL.47 3.1.13 模式.47 3.2 系统需求.47 3.2.1 硬件需求.47 3.2.2 磁盘空间需求.48 3.2.3 操作系统软件需求.48 3.2.4 工具和预编译器.49 3.3 预备安装.49 3.4 安装 Oracle8i.53 3.5 安装后设置.63 3.5.1 SYS 和 SYSTEM 账号.6
10、3 3.5.2 参数文件的配置.63 3.5.3 检查数据库安全性.64 3.5.4 自动启动及关闭.65 3.5.5 网络配置.66 3.6 小试牛刀.68 3.6.1 启动和关闭数据库.68 3.6.2 创建账号.70 3.6.3 简单的 SQL*PLUS 应用.71 3.7 小结与练习.74 3.7.1 小结.74 目 录 http:/ 3 3.7.2 练习与思考.74 第 4 章 在 Linux 上安装 Informix.75 4.1 Informix数据库产品介绍.76 4.1.1 数据库服务器.76 4.1.2 应用开发工具.77 4.1.3 网络连接软件.77 4.2 Infor
11、mix Online Dynamic Server 的安装.77 4.2.1 软件的获取.78 4.2.2 创建 Linux 环境.78 4.2.3 实际安装.80 4.2.4 关于 Informix 的数据文件.81 4.3 配置.82 4.3.1$INFORMIXDIR/etc/$ONCONFIG.82 4.3.2$INFORMIXDIR/etc/sqlhosts.88 4.3.3 其他连接性文件.91 4.3.4 /opt/data/rootdbs.91 4.3.5 利用 oninit 启动并初始化数据库服务器.92 4.3.6 终止引擎.93 4.4 小结与练习.93 4.4.1 小结
12、.93 4.4.2 习题与思考.93 第 5 章 在 Linux 上安装 MySQL.95 5.1 MySQL 简介.96 5.2 安装 MySQL.97 5.2.1 MySQL 安装包的获取.97 5.2.2 使用何种版本.97 5.2.3 安装布局.98 5.2.4 安装 MySQL 二进制分发包.99 5.2.5 安装 MySQL 源代码分发包.100 5.2.6 安装后的操作和链接测试.101 5.3 启动和关闭 MySQL 服务器.103 5.4 小结和练习.103 5.4.1 小结.103 5.4.2 练习与思考.104 Linux 数据库编程 4 http:/ 第 6 章 Ora
13、cle 数据库编程.105 6.1 数据库.106 6.1.1 表空间.106 6.1.2 数据文件.108 6.2 数据库实例.109 6.3 Oracle 数据库的逻辑结构.110 6.3.1 表.110 6.3.2 视图.111 6.3.3 索引.111 6.3.4 同义词.111 6.3.5 权限及角色.111 6.3.6 簇.112 6.3.7 快照.113 6.3.8 序列.113 6.4 Oracle 数据库的内存结构.113 6.4.1 系统全局区.114 6.4.2 程序全局区.115 6.5 Oracle 数据库的进程结构.115 6.5.1 服务器端后台进程.115 6.
14、5.2 Oracle 特定的进程结构.117 6.6 Oracle 数据库的外部结构.118 6.6.1 重做日志.118 6.6.2 控制文件.119 6.6.3 跟踪文件与警告日志.120 6.7 小结与练习.120 6.7.1 小结.120 6.7.2 习题与思考.120 第 7 章 开始 Oracle 编程.121 7.1 术语.122 7.2 两种类型的 SQL 语言.123 7.2.1 DDL.123 7.2.2 DML.124 7.3 SQL*PLUS 入门.125 7.3.1 一个简单例子.125 7.3.2 数据类型.126 7.3.3 创建语句.127 目 录 http:/
15、 5 7.3.4 描述语句.128 7.3.5 插入语句.128 7.3.6 查询语句.130 7.3.7 where 子句.131 7.4 数值型数据.135 7.5 字符型数据.136 7.6 日期性数据.137 7.6.1 日期型函数.138 7.6.2 特殊格式的日期型数据.138 7.6.3 日期运算.140 7.7 表列数据类型转换.140 7.8 Update、Delete 和 Alter 等语句.141 7.8.1 update 语句.141 7.8.2 delete 语句.141 7.8.3 alter 语句.142 7.9 连接两个表.142 7.10 格式化输出.143
16、7.10.1 页和行的大小.144 7.10.2 页头标.144 7.10.3 页脚标.144 7.10.4 将 SQL*Plus 结果写到文件中.144 7.10.5 格式化输出表列.145 7.11 小结与练习.150 7.11.1 小结.150 7.11.2 习题与思考.150 第 8 章 创建和修改表.153 8.1 基本 CREATE TABLE 语句.154 8.1.1 表名.154 8.1.2 列名.154 8.2 权限要求.155 8.3 表的存储空间.156 8.3.1 STORAGE 子句.156 8.3.2 其他存储参数.157 8.3.3 表的位置.158 8.3.4
17、表的重建.159 8.4 描述表定义.160 8.4.1 DESC.160 Linux 数据库编程 6 http:/ 8.4.2 系统表.160 8.5 修改表.160 8.5.1 修改列定义.160 8.5.2 修改存储参数.162 8.5.3 分配区间.162 8.6 改变表名.163 8.7 拷贝表.163 8.8 删除表.164 8.8.1 简单删除.164 8.8.2 删除带约束的表.164 8.9 小结与练习.165 8.9.1 小结.165 8.9.2 习题与思考.165 第 9 章 修改表数据.167 9.1 简单介绍.168 9.2 INSERT 语句.168 9.2.1 插
18、入单行.168 9.2.2 插入多行.170 9.3 UPDATE 语句.171 9.4 DELETE 语句.173 9.5 在语句中使用函数.174 9.6 TRUNCATE 语句.174 9.7 修改数据和权限.175 9.7.1 系统权限.175 9.7.2 对象级权限.176 9.8 小结与练习.178 9.8.1 小结.178 9.8.2 习题与思考.178 第 10 章 Oracle 基本查询.181 10.1 准备工作.182 10.2 一般的句法格式.183 10.3 使用表达式、条件和操作符.184 10.3.1 表达式.184 10.3.2 条件.185 10.3.3 操作
19、符.185 10.4 使用 DISTINCTION 查询.189 目 录 http:/ 7 10.5 使用特殊的伪列.190 10.5.1 sequence.CURRVAL 和 sequence.NEXTVAL.190 10.5.2 ROWID.191 10.5.3 ROWNUM.191 10.5.4 UID 和 USER.192 10.6 使用空值查询.192 10.7 小结与练习.194 10.7.1 小结.194 10.7.2 习题与思考.194 第 11 章 查询中的 SQL 子句.197 11.1 ORDER BY 子句.198 11.2 GROUP BY 子句.200 11.3 H
20、AVING 子句.206 11.4 复合子句.208 11.5 小结与练习.209 11.5.1 小结.209 11.5.2 习题与思考.210 第 12 章 连接表.211 12.1 单个 SELECT 语句中的多重表.212 12.2 相等连接.215 12.3 不等连接.217 12.4 表自身的连接.218 12.5 小结与练习.219 12.5.1 小结.219 12.5.2 习题与思考.219 第 13 章 子查询.221 13.1 子查询.222 13.2 在子查询中使用聚集函数.223 13.3 嵌套子查询.225 13.4 相关子查询.227 13.5 使用 EXISTS,A
21、NY 和 ALL.229 13.5.1 EXISTS 关键字.229 13.5.2 ANY 关键字.230 13.5.3 ALL 关键字.231 13.6 小结与练习.232 Linux 数据库编程 8 http:/ 13.6.1 小结.232 13.6.2 习题与思考.232 第 14 章 其他数据库对象.235 14.1 使用其他数据库对象的优点.236 14.1.1 简化数据访问.236 14.1.2 提高性能.236 14.1.3 灵活性.236 14.2 视图.237 14.2.1 简单视图.238 14.2.2 概括数据.238 14.2.3 视图与安全性.240 14.2.4 用
22、视图简化复杂查询.242 14.2.5 删除视图DROP VIEW 语句.242 14.3 索引.242 14.3.1 创建索引.243 14.3.2 删除索引.245 14.4 簇.246 14.4.1 索引簇.246 14.4.2 散列簇.249 14.4.3 删除簇中的表.250 14.4.4 簇的优缺点.250 14.5 同义词.250 14.5.1 私有同义词.251 14.5.2 公共同义词.252 14.6 序列.253 14.7 小结与练习.255 14.7.1 小结.255 14.7.2 习题与思考.255 第 15 章 数据库安全性.257 15.1 Oracle 用户.2
23、58 15.1.1 创建用户.258 15.1.2 修改用户.260 15.1.3 删除用户.261 15.2 用户权限.262 15.2.1 系统级权限.262 15.2.2 对象级权限.264 目 录 http:/ 9 15.3 角色.265 15.3.1 角色的作用.265 15.3.2 创建、修改和删除角色.266 15.3.3 给角色授权.266 15.3.4 授予和收回角色.267 15.3.5 预定义角色.268 15.3.6 允许和禁止角色.269 15.3.7 与角色有关的数据字典视图.271 15.4 配置文件.273 15.4.1 缺省配置文件.273 15.4.2 创建
24、、修改和删除配置文件.273 15.4.3 赋予配置文件.275 15.4.4 激活资源配置.275 15.5 小结与练习.276 15.5.1 小结.276 15.5.2 习题与思考.277 第 16 章 PL/SQL 介绍及开发环境.279 16.1 引入 PL/SQL 语言.280 16.1.1 PL/SQL 与网络传输.282 16.1.2 PL/SQL 标准.282 16.2 PL/SQL 的特点.282 16.2.1 PL/SQL 的基本特点.282 16.2.2 PL/SQL 的高级功能.286 16.2.3 PL/SQL 内置包.290 16.3 本篇的约定.291 16.3.
25、1 PL/SQL 和 Oracle 数据库版本说明.291 16.3.2 Oracle 数据库文档.292 16.4 本篇案例使用的通用数据库表.293 16.5 小结与练习.301 16.5.1 小结.301 16.5.2 习题与思考.302 第 17 章 PL/SQL 开发和运行环境.303 17.1 应用模式和 PL/SQL.304 17.1.1 两层模式.304 17.1.2 三层模式.306 17.2 PL/SQL 开发工具介绍.307 Linux 数据库编程 10 http:/ 17.3 小结与练习.312 17.3.1 小结.312 17.3.2 习题与思考.313 第 18 章
26、 PL/SQL 基础.315 18.1 PL/SQL 块.316 18.2 词法单位.323 18.2.1 标识符.323 18.2.2 分界符.326 18.2.3 文字.327 18.2.4 注释.329 18.3 变量声明.330 18.3.1 声明变量.330 18.3.2 变量初始化.331 18.4 PL/SQL 类型.332 18.4.1 标量类型.333 18.4.2 复合类型.335 18.4.3 引用类型.340 18.4.4 LOB 类型.340 18.4.5 TYPE.340 18.4.6 用户定义子类型.340 18.4.7 在数据类型之间进行转换.341 18.5
27、表属性.342 18.6 表达式和运算符.347 18.6.1 赋值.347 18.6.2 表达式.347 18.7 PL/SQL 程序控制结构.349 18.7.1 条件语句.349 18.7.2 循环语句.352 18.8 PL/SQL 的编程风格.356 18.8.1 注释风格.356 18.8.2 变量名风格.357 18.8.3 大写风格.357 18.8.4 缩进风格.358 18.8.5 常见风格.358 18.9 小结与练习.359 18.9.1 小结.359 18.9.2 习题与思考.359 目 录 http:/ 11 第 19 章 PL/SQL 中的 SQL.361 19.
28、1 在 PL/SQL 中使用 SQL.362 19.1.1 SQL 语句.362 19.1.2 SELECT.363 19.1.3 INSERT.364 19.1.4 UPDATE.365 19.1.5 DELETE.366 19.1.6 事务控制.366 19.1.7 COMMIT 和 ROLLBACK.367 19.1.8 SAVEPOINT.368 19.2 内置 SQL 函数.368 19.2.1 字符函数.369 19.2.2 字符函数返回数字值.371 19.2.3 数值函数.372 19.2.4 日期函数.373 19.2.5 转换函数.374 19.2.6 分组函数.376 1
29、9.2.7 其他函数.378 19.3 小结与练习.381 19.3.1 小结.381 19.3.2 习题与思考.381 第 20 章 游标.383 20.1 什么是游标.384 20.1.1 处理显式游标.385 20.1.2 处理隐式游标.390 20.2 游标提取循环.392 20.2.1 简单循环.392 20.2.2 WHILE 循环和 FOR 循环.394 20.2.3 SELECT FOR UPDATE 游标.394 20.3 游标变量.398 20.3.1 声明游标变量.398 20.3.2 打开查询的游标变量.399 20.3.3 关闭游标变量.399 20.4 小结与练习.
30、400 20.4.1 小结.400 20.4.2 习题与思考.400 Linux 数据库编程 12 http:/ 第 21 章 子程序和包.401 21.1 过程和函数.402 21.1.1 创建子程序.403 21.1.2 过程和函数的撤消.407 21.1.3 子程序参数.408 21.1.4 过程与函数的比较.417 21.2 包.418 21.2.1 包的说明.418 21.2.2 包体.419 21.2.3 包和作用域.421 21.2.4 包的初始化.422 21.3 小结与练习.424 21.3.1 小结.424 21.3.2 习题与思考.424 第 22 章 触发器.427 2
31、2.1 触发器的类型.428 22.1.1 DML 触发器.428 22.1.2 替代触发器.429 22.1.3 系统触发器.430 22.2 创建触发器.431 22.2.1 创建 DML 触发器.431 22.3 触发器与数据字典.434 22.3.1 数据字典视图.434 22.3.2 删除和禁止触发器.435 22.4 变异表.435 22.4.1 变异表示例.436 22.4.2 变异表错误的处理.437 22.5 小结与练习.439 22.5.1 小结.439 22.5.2 习题与思考.439 第 23 章 异常.441 23.1 什么是异常.442 23.1.1 声明异常.44
32、2 23.1.2 异常触发.445 23.1.3 异常处理.445 目 录 http:/ 13 23.2 异常的传播过程.448 23.2.1 执行部分引发的异常.448 23.2.2 声明部分引发的异常.449 23.2.3 在异常处理部分引发的异常.449 23.3 小结与练习.449 23.3.1 小结.449 23.3.2 习题与思考.449 第 24 章 动态 PL/SQL.451 24.1 概述.452 24.1.1 静态和动态 SQL.452 24.1.2 DBMS_SQL 概述.453 24.2 执行非查询 DML 和 DDL 语句.455 24.2.1 打开游标.455 24
33、.2.2 分析语句.455 24.2.3 联编输入变量.456 24.2.4 执行语句.457 24.2.5 关闭游标.457 24.2.6 执行 DDL 语句.457 24.3 执行查询.457 24.3.1 分析语句.458 24.3.2 定义输出变量.458 24.3.3 提取行.459 24.3.4 将结果返回给 PL/SQL 变量.459 24.4 执行 PL/SQL.460 24.4.1 分析语句.460 24.4.2 检索输出变量的取值.460 24.5 小结与练习.461 24.5.1 小结.461 24.5.2 习题与思考.461 附录 部分习题参考答案.463 系统介绍 R
34、ed Hat Linux 基本安装 小结与练习 Linux 基础 第第第第1 1章章章章 Linux 数据库编程 2 http:/ Linux 是一种符合 POSIX 标准、包含全部 UNIX 特征的操作系统。Linux 对个人计算机和工作站都适用。这个系统是由世界各地数以百计的程序员设计、实现和完善的。本章着重介绍对 Linux 的成长和发展起关键作用的 GNU 计划以及 Linux 系统所具有的各种重要特性。对于初学者来讲,Linux 的安装具有相当的难度,因此本章使用了较大的篇幅详细讲述了安装 Red Hat Linux 的具体步骤和注意事项(包括从光盘安装和从 FTP 安装这两种常用的
35、安装方式),相信会对读者有所帮助。1.1 系统介绍 1.1.1 Linux 的特性综述 1全面的多任务、多用户和真正的 32 位操作系统 Linux 是一个真正的多任务操作系统,它允许多个用户同时在一个系统上运行多道程序。系统调度每一个进程平等地访问微处理器,保证每个程序都有机会运行。Linux 还是真正的32 位操作系统,它工作在 Intel 处理器(80386 以上)的保护模式下。2可编程 shell shell 的作用包括:提供完整的程序语言解释程序,在用户和系统之间起翻译作用;提供简单的编程接口,允许用户将不同的命令结合在一起,像执行普通的 Linux 命令一样执行组合命令;实现输入/
36、输出重定向以及作业控制等。借助于使用这些编程特性,用户能够使他们的系统更个性化、更友好,极大地增强了 Linux 操作系统的灵活性。另外,shell 编程特性还有助于优化多个应用程序的运行,可以在后台执行多个进程,从而使用户能够做其他工作。3X Window 系统 X Window是所有UNIX类操作系统的标准图形接口。XFree86 是Linux 平台上的X Window系统,它使 Linux 具备了在异种网络上运行窗口应用程序的能力。尽管 Xfree86 是为在网络环境中运行而设计的,它在独立的计算机系统上也可以很好地运转。4设备独立性 大部分打印机、终端、调制解调器等外围设备(外设)都受
37、到操作系统的支持,但是当操作系统不能访问某种外设时,用户就将面临外设不能使用的困难。Linux 把每个外围设备看作一个独立文件,通过这种方法解决了增加新设备的问题。当需要增加新设备时,系统管理员只需在内核中增加必要的连接。这种连接(也称为设备驱动程序)保证每次调用设备提供服务时,内核以相同的方式进行处理。当更新更好的外设被开 第 1 章 Linux 基础 http:/ 3 发出来时,Linux 操作系统允许在这些设备连接到内核后,用户能不受限制地立即访问它们。5强大的网络功能 Linux 操作系统能够紧密地和内核结合在一起提供连接网络的能力,并提供了大量的网络应用程序。Linux 支持 TCP
38、/IP。在 Linux 中,通过 Ethernet 可以连接到 Internet 或当地的局域网。使用 SLIP(Serial Line Internet Protocol)或 PPP(Point to Point Protocol),通过电话线和调制解调器也可连到 Internet 上。此外,还能通过一些 Linux 命令完成内部信息或文件的传输。Linux 从一开始就被设计成支持多任务和多个远程用户,它为系统管理人员和技术人员提供了访问其他系统的窗口。Linux 系统在超强网络需求下表现出了令人惊奇的健壮性。6虚拟内存和共享库 Linux 可以利用硬盘的一部分作为虚拟内存,从而扩展可用内存
39、的数量。Linux 不使用分段,也没有虚拟内存的限制。同时,Linux 利用共享库技术,允许那些使用标准子过程的程序在运行时共享子过程,从而节约了大量的系统空间。7自由代码与自由软件 Linux 内核中的代码均为自由代码。Linux 上的大部分程序是自由软件。这些软件是在自由软件基金会的 GNU 计划下开发的。尽管如此,来自世界各地的黑客、程序员,甚至商业公司也加入了 Linux 软件开发的行列。Linux 支持大部分 GNU 计划下的自由软件,包括 GNU、C、GCC 编译器、gawk 及其他软件。8可移植性 这里的可移植性指的是将操作系统从一个硬件平台转移到另一个平台,使它仍然按其自身的方
40、式运行的能力。Linux 特别注重可移植性,它能够支持多种硬件平台。无论是低端的Intel386 还是高端的超级并行计算机都可以运行 Linux 操作系统。可移植性为运行 Linux 的不同计算机平台与其他计算机进行准确而有效的通信提供了手段,而不需要另外增加特殊的通信接口。此外,和其他UNIX类操作系统相比,Linux更为便宜。用户可以从Internet上下载Linux,或者以很低的价格购买到 Linux 系统光盘。1.1.2 涉及 Linux 的 Web 网址和新闻讨论组 Linux 是通过 Internet 发展壮大的,所以当用户使用 Linux 遇到问题的时候,到Internet 上去
41、寻找答案是非常有效的解决方法。常用的涉及 Linux 的 Web 网址有:Linux 数据库编程 4 http:/ http:/ Linux 资源。http:/ Caldera 公司的网址。http:/ Red Hat 公司的网址。http:/sunsite.unc.edu/mdw Linux 文档计划的网址。http:/ Linux 杂志。http:/www.linux.org Linux 的官方网址。http:/www.li.org Linux 国际机构网址。http:/www.uk.linux.org Linux 欧洲网址。http:/www.blackdown.org Linux JA
42、VA 的网址。常见的 Linux 新闻讨论组有:comp.os.linux.announce Linux 的发展情况。comp.os.linux.development.apps Linux 的应用程序。comp.os.linux.development.system Linux 的操作系统内核。comp.os.linux.hardware Linux 硬件方面的问题。comp.os.linux.admin Linux 系统管理方面的问题。comp.os.linux.misc Linux 的一些特别的问题和回答。comp.os.linux.setup Linux 的安装和启动。comp.os.
43、linux.answers 关于 Linux 命令的问题和解答。comp.os.linux.help Linux 的帮助文档。working Linux 网络方面的问题和解答。1.2 Red Hat Linux 基本安装 也许多数用户都有过安装 DOS 和 Windows 操作系统的经历,但安装 Linux 要比它们复杂得多。用户必须对计算机有一定的了解,而且必须注意保护数据、小心操作。本节将介绍主要的 Linux 发行版本之一 Red Hat Linux 的安装方法。Red Hat Linux 是应用最广的 Linux 发行版本。和其他版本相比,Red Hat Linux 能够支持更多的硬件
44、,可靠性更高。Red Hat Linux 不同于其他 Linux 发行版本的最显著特点在于它是基于“包”(Package)的,每个包都提供了一个经过充分测试的、已经配置好的、随时可运行的软件。Linux 的软件开发是快速的(包括内核在内),一个发行版本发布后很快就会有新的版本出现。而 Linux 基于包的升级非常容易,甚至不用重新启动计算机。在开始安装 Linux 操作系统之前,用户有必要了解 Linux 对计算机硬件的需求情况。第 1 章 Linux 基础 http:/ 5 1.2.1 了解 Linux 的硬件要求 为了能够成功地安装 Linux,必须使用 Linux 能够支持的硬件。为 L
45、inux 系统选择合适的硬件取决于需要支持的用户数目以及要运行的应用程序的类型等因素。归结起来,所有这些因素可转化为对工作内存、硬盘存储空间以及终端类型等方面的具体要求。提示:在 Red Hat Software 的网站 http:/ 可以找到Red Hat Linux 所支持的硬件清单。在安装之前最好检查一下计算机的硬件与将要安装的 Linux 版本是否兼容。如果出现了硬件不兼容的情况,那么请用户仔细查看清单中有没有可以代替现有硬件的兼容产品,如果还是没有,那么只能等到 Linux新版本的出现或更换硬件。1系统 CPU 基本的系统需要一台装有 Intel 80386 或其后任一类型 CPU
46、的 IBM PC 兼容机。其他 CPU兼容产品(如 Ciryx 和 AMD 制造的芯片)也与 Linux 兼容。2系统总线 用于与外部设备进行通信的总线也很重要。Linux 只能工作在 ISA 和 EISA 总线上。一些较新的系统为磁盘访问和视频显示器等操作使用了一种称为局部总线的快速总线。Linux 确实支持 VESA 局部总线,但可能不支持非 VESA 局部总线。另外,Linux 还支持在许多高端奔腾系统上使用的 PCI(外设组件互连)总线。3所需内存 和 OS/2、Windows NT 这样一些功能相当的操作系统相比,Linux 运行所需的内存非常少。Linux 最少需要 2MB 的内存
47、,如果内存少于 4MB,就需要使用交换文件。当然,系统内存越大,系统运行速度也就越快。4磁盘驱动器和需要的空间 虽然在一台只有软盘驱动器的系统上也可以运行 Linux,但我们不提倡使用这种方法。为了得到较好的系统性能,需要将 Linux 安装在硬盘驱动器上。必须有一个标准的 IBM AT硬区控制器。Linux 支持所有的 MFM 和 IDE 控制器,以及大多数 RLL 和 ESDI 控制器。Linux 支持很多 SCSI 硬区控制器,如 Adaptec、Future Domain、Seagate、UltraStor和 Western Digital 等公司制造的 SCI 控制器,以及 ProA
48、udio Spectrum 16 位卡上的 SCSI适配器。在拥有一个合适的驱动器控制器后,就必须考虑磁盘空间的需求。Linux 支持多个硬盘驱动器并能跨驱动器安装。这也是 Linux 与其他操作系统的区别之一。?磁盘空间。Linux 不能和其他操作系统(如 MS-DOS 和 Windows 等)一起驻留在一个 Linux 数据库编程 6 http:/ 分区中。分区是在驱动器初始化过程中和在格式化之前指定的磁盘驱动器上的区域。为了有效地使用 Linux,必须对硬盘重新分区,并为 Linux 系统文件和用户数据文件分配足够的空间。?交换空间。上面提到,在内存有限的情况下需要用到交换空间。Wind
49、ows 操作系统所创建的交换文件与其他文件一样驻留在硬盘上,而 Linux 则允许把交换文件放在独立的交换分区上。Linux 允许建立多达 8 个不超过 16MB 的交换分区。交换分区的大小一般应该设置为系统实际内存容量的两倍。5监视器 对于基于文本的终端,Linux 支持所有标准的 Hercules、CGA、EGA、VGA 和 SuperVGA 视频卡和显示器。显卡的配置是安装过程中很重要的一个问题。Linux 在文本方式下几乎支持所有(99%)的显卡,但如果要配置 X Free86,在参数的设定上则要保守一些,因为设置不当可能会对显示器造成永久性的物理损坏。为了运行与 Linux 一起发行
50、的 X Window 系统 XFree86,需要使用 Linux 能够支持的芯片组的视频适配器。芯片组是一组集成电路(或计算机芯片),用于从计算机获取信息并将数据转换成一种在视频监视器上可显示的形式。6网络 目前,把 Linux 系统与 Internet 相连的两种最常用的方法是通过网络控制卡和调制解调器。网络控制卡包括令牌环网、FDDI、TAXI 和以太网卡。大多数通用网络使用以太网卡。(1)通过以太网访问网络 以太网在联网领域广为流行。尽管用户不可能在家中把 Linux 系统连接到以太网上,但许多商业及教育机构都是通过以太网相联的。表 1-1 列出了 Linux 支持的部分以太网适配器。表