###Linux的特色
Linux是Torvalds先生所开发出来的,基于GPL的版权宣告之下,可以在x86的架构下运作,也可以被移植到其他的大型主机上面。 由于开发的相关理念与兼容的问题,因此,我们也可以称Linux为Unix Like操作系统的一种。
**Tips:**
<i>其实Unix-Like可以说是目前服务器类型的操作系统的统称啦! 因为,不论是FreeBSD, BSD, Sun Unix, HP Unix, Red Hat Linux, Mandrake Linux等等,都是由同一个祖先Thompson所写的『Unix』来的, 因此,这些咚咚都被统称为Unix-Like的操作系统啰!</i>
*****
###Linux的特色
那么这个系统有什么特异功能呢?简单的说:
- 自由与开放的使用与学习环境:
由于Linux是基于GPL的授权之下,因此他是自由软件, 也就是任何人都可以自由的使用或者是修改其中的原始码的意思! 这种开放性架构对科学界来说是相当重要的! 因为很多的工程师由于特殊的需求,常常需要修改系统的原始码, 使该系统可以符合自己的需求!而这个开放性的架构将可以满足各不同需求的工程师! 因此当然就有可能越来越流行啰!以鸟哥来说,目前环境工程界的空气质量模式最新版 Models-3/CMAQ 就是以Linux为基准平台设计的呢!
- 配备需求低廉:
Linux可以支持个人计算机的x86架构,系统资源不必像早先的Unix系统那般,仅适合于单一公司所出产的设备! 单就这一点来看,就可以造成很大的流行啰!不过,如果你想要在Linux下执行X Window系统, 那么硬件的等级就不能太低了!
- 核心功能强大而稳定:
而且由于Linux功能并不会输给一些大型的Unix工作站,因此,近年来越来越多的公司或者是团体、 个人投入这一个操作系统的开发与整合工作!例如IBM与升阳公司都有推出x86的Linux服务器呢!
- 独立作业:
另外,由于很多的软件套件逐渐被这套操作系统拿来使用,而很多套件软件也都在 Linux这个操作系统上面进行发展与测试,因此,Linux近来已经可以独力完成几乎所有的工作站或服务器的服务了,例如 Web, Mail, Proxy, FTP.....。
目前Linux已经是相当成熟的一套操作系统啰!而且不耗资源又可以自由取得!呵呵, 可以说造成微软相当大的压力呀!此外,由于他的系统硬件要求很低, 加上目前很多的人由于『Intel 的阴谋』而造成手边有相当多的淘汰掉的硬件配备, Linux在这些被淘汰的硬件中就可以执行的相当的顺畅与稳定!因此也造成相当多朋友的关注啰!
**Tips:**
<i>
呵呵!开玩笑的,因为Tom的硬件评论 (http://www.big5.tomshardware.com/) 网站常常这样取笑Intel的说!呵!很好笑!</i>
这也是造成Linux成为最近几年来最受瞩目的操作系统之一,如前所述, 他会受到瞩目的原因主要是因为他是『free』的,就是可以自由取得的操作系统啦! 然后他是开放性的系统,也就是你可以随时的取得程序的原始码,这对于程序开发工程师是很重要的! 而且,虽然他是Free的自由软件,不过功能却很强大!另外, Linux对于硬件的需求是很低的,这一点更造成它流行的主因,因为硬件的汰换率太快了, 所以很多人手边都有一些很少在用的零件,这些零件组一组就可以用来跑Linux了, 反正做一个工作站又不用使用到屏幕(只要主机就可以啰),因此Linux就越来越流行啰!
**Tips:**
<i>也就是因为Linux具有 1.硬件需求低、 2.架构开放、 3.系统稳定性及保密性功能够强、 4.完全免费,所以造成一些所谓『反微软联盟』的程序设计高手不断的开发新软件!以与Microsoft进行抗衡!</i>
****
###Linux的优缺点
那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点:
- 稳定的系统:
Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Unix系统相似的程序接口跟操作方式, 当然也继承了Unix稳定并且有效率的特点。常听到安装Linux的主机连续运做一年以上而不曾当机、 不必关机是稀松平常的事;
- 免费或少许费用:
由于Linux是基于GPL授权下的产物,因此任何人皆可以自由取得Linux, 至于一些『安装套件』的发行者, 他们发行的安装光盘也仅需要些许费用即可获得!不同于Unix需要负担庞大的版权费用,当然也不同于微软需要一而再、 再而三的更新你的系统,并且缴纳大量费用啰!
- 安全性、漏洞的快速修补:
如果你常玩网络的话,那么你最常听到的应该是『没有绝对安全的主机』! 没错!不过Linux由于支持者日众,有相当多的热心团体、个人参与其中的开发, 因此可以随时获得最新的安全信息,并给予随时的更新,亦即是具有相对的较安全!
- 多任务、多使用者:
与Windows系统不同的,Linux主机上可以同时允许多人上线来工作, 并且资源的分配较为公平,比起Windows的单人多任务系统要稳定的多啰! 这个多人多任务可是Unix-Like上面相当好的一个功能,怎么说呢?你可以在一部 Linux主机上面规划出不同等级的用户,而且每个用户登入系统时的工作环境都可以不相同, 此外,还可以允许不同的使用者在同一个时间登入主机,同时使用主机的资源。
- 使用者与群组的规划:
在Linux的机器中,档案的属性可以分为『可读、可写、可执行』 等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类, 分别是『档案拥有者、档案所属群组、其他非拥有者与群组者』。 这对于项目计划或者其他计划开发者具有相当良好的系统保密性。
- 相对比较不耗资源的系统:
Linux只要一部P-III以上等级的计算机就可以安装并且使用愉快啰!还不需要到P-4或AMD K8 等级的计算机呢!不过,如果你要架设的是属于大型的主机(服务上百人以上的主机系统), 那么就需要比较好一点的机器了。不过,目前市面上任何一款个人计算机均可以达到这一个要求啰!
- 适合需要小核心程序的嵌入式系统:
由于Linux只要几百K不到的程序代码就可以完整的驱动整个计算机硬件并成为一个完整的操作系统, 因此相当适合于目前家电或者是小电子用品的操作系统呢!那就是当红炸子鸡『嵌入式』系统啦! Linux真的是很适合例如手机、数字相机、PDA、家电用品等等的微计算机操作系统呢! ^_^
- 整合度佳且多样的图形用户接口(GUI):
自从1994年Linux 1.0后就加入的X Window系统,在众多黑客的努力之下终于与Linux有高度整合, 且主要的绘图卡公司(Intel, NVidia, ATI等)都有针对Linux推出最新的驱动程序, 因此Linux的GUI已经有长足的进步了!另外,Linux环境下的图形接口不只有一种呢! 包括大家耳熟能详的KDE(http://www.kde.org/)以及GNOME(http://www.gnome.org)都是很常见的!
反正Linux好处说不完啦!不过虽然Linux具有这样多的好处,但是他先天上有一个足以致命的地方, 使他的普及率受到很大的限制,就是Linux需要使用『指令列』的终端机模式进行系统的管理! 虽然近年来有很多的图形接口开发使用在Linux上面,但毕竟要熟悉Linux还是以指令列来使用是比较好的, 因此要接受Linux的玩家必须比较要能熟悉对计算机下指令的行为,而不是用鼠标点一点icon就行了! Linux 还可以改进的地方:
- 没有特定的支持厂商:
因为在Linux上面的所有套件几乎都是自由软件,而每个自由软件的开发者可能并不是公司团体, 而是非营利性质的团体。如此一来,在你Linux主机上面的软件若发生问题,该如何是好? 好在由于目前Linux商业界的整合还不错,目前在台湾比较具名的Red Hat与SuSE 均有设立了服务点。你可以经由这个服务点来直接向他们购买/咨询相关的软硬件问题呢! 不过,如果你并非选择有专门商业公司的Linux distributions时?怎么办? 没有专人到府服务呢~这点倒是还不需要太担心, 因为拜网络风行之赐,你要问的问题几乎在网络上都可以找到答案喔!看你有没有用心去找就是了!
- 游戏的支持度不足:
在现代这个时候,敢说你们家的桌面计算机里面完全没有游戏的小朋友应该不多了! 游戏软件也是个应用程序,所以它与操作系统的关系就相当密切了。 可惜的是目前很多游戏开发商并没有在Linux平台上面开发大型游戏,这间接导致Linux无法进入一般家庭说。
- 专业软件的支持度不足:
这是鸟哥到学校教书后才发现的一件事,目前很多专业绘图软件公司所推出的专业软件并不支持Linux操作系统, 这让同学很难在不同的平台上面操作相同的软件!唉!很伤脑筋~
- 教育训练作的还不够好:
如果能够在国小就教导小朋友使用自由软件,那么长大自然就会使用自由软件了! 在台湾目前政策方面还是相当的摇摆不定,希望未来能够给自由软件一些机会。
老实说,这些缺点绝大部分都不是Linux本身的问题,倒是一些政策面与商业方面的考虑,才是最大的困扰。 不过,Linux与其他的操作系统一样,就是一个工具而已!希望大家能够在快乐中学习到Linux的精髓啦!^_^
****
###关于授权
现在市面上有好多的软件,有的是自由软件,有的是专利软件。有的专利软件免费,有的自由软件要钱~ 啊!好烦啊!怎么分辨这些东西?其实,鸟哥并不是律师,对于法律也不十分懂,不过, 还是有几个授权模式可以来谈一谈~
****
###Open Source (开放源码)
软件以Open Source的方式释出时,表示除了可执行的软件本身外,一定伴随着原始码的释出喔!通常Open Source的软件有几个好处:
1. 程序设计师通常会等到程序成熟之后才会释出(免得被笑,^_^),所以通常程序在雏形的时候,就已经具有相当的优良体质;
2. Open Source的精神,相信当程序原设计人将程序原始码释出之后,其他的程序设计师接受这份原始码之后, 由于需要将程序改成自己所需的样式,所以会经由本身的所学来加以改良,并从中加以改良与除虫, 所以程序的debug功能会比传统的close source来的快!
3. 由于程序是伴随原始码的,因此,系统将会不易存在鲜为人知的木马程序或一些安全漏洞, 相对而言,会比较更加的安全!
4.
Open source的代表授权为GNU的GPL授权及BSD等等,底下列出知名的Open Source授权网页:
- GNU General Public License:
http://www.gnu.org/licenses/licenses.html#GPL
目前有version 2, version 3两种版本,Linux使用的是version 2这一版。 鸟哥也有收集一份GPL version 2 的中文化条文,您可以参考:http://vbird.dic.ksu.edu.tw/linux_basic/1010appendix_A.php
- Berkeley Software Distribution (BSD):
http://en.wikipedia.org/wiki/BSD_license
使用BSD source code最常接触到的就是BSD授权模式了!这个授权模式其实与GPL很类似, 而其精神也与Open Source相呼应呢!
- Apache License, Version 2.0:
http://www.apache.org/licenses/LICENSE-2.0
Apache是一种网页服务器软件,这个软件的发布方式也是使用Open source的。只是在apache的授权中规定, 如果想要重新发布此软件时(如果你有修改过该软件),软件的名称依旧需要定名为Apache才行!
- Close Source
相对于Open Source的软件会释出原始码,Close source的程序则仅推出可执行的二进制程序(binary program)而已。 这种软件的优点是有专人维护,你不需要去更动他;缺点则是灵活度大打折扣,用户无法变更该程序成为自己想要的样式! 此外,若有木马程序或者安全漏洞,将会花上相当长的一段时间来除错!这也是所谓专利软件(copyright)常见的软件出售方式。
虽然专利软件常常代表就是需要花钱去购买,不过有些专利软件还是可以免费提供大众使用的! 免费的专利软件代表的授权模式有:
- - Freeware:
http://en.wikipedia.org/wiki/Freeware
不同于Free software,Freeware为『免费软件』而非『自由软件!』虽然它是免费的软件,但是不见得要公布其原始码, 端看释出者的意见啰!这个东西与Open Source毕竟是不太相同的东西喔!此外,目前很多标榜免费软件的程序很多都有小问题! 例如假藉免费软件的名义,实施用户数据窃取的目的! 所以『来路不明的软件请勿安装!』
- - Shareware:
http://en.wikipedia.org/wiki/Shareware
共享件这个名词就有趣了!与免费软件有点类似的是,Shareware在使用初期,它也是免费的,但是, 到了所谓的『试用期限』之后,你就必须要选择『付费后继续使用』或者『将它移除』的宿命~ 通常,这些共享件都会自行撰写失效程序,让你在试用期限之后就无法使用该软件。
- 第一部份 Linux 的规划与安装
- 第零章 计算机概论
- 1. 計算机:辅助人脑的好工具
- 2. 个人计算机架构与周边设备
- 3. 数据表示方式
- 4. 软件程序运作
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第一章 Linux是什么
- 1. Linux是什么
- 2. Torvalds的Linux发展
- 3. Linux的特色
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第二章 Linux如何学习
- 1. Linux当前的应用角色
- 2. 鸟哥的Linux苦难经验全都录
- 3. 有心朝Linux作业系统学习者的学习态度
- 4. 鸟哥的建议(重点在solution的学习)
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第三章 主机规划与磁盘分区
- 1. Linux与硬件的搭配
- 2. 磁盘分区
- 3. 安装Linux前的规划
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第四章 安装CentOS 5.x 与多重引导技巧
- 1. 本练习机的规划--尤其是分割参数
- 2. 开始安装CentOS 5
- 3. 安装后的首次设定
- 4. 多重开机安装流程与技巧
- 5. 关於大硬盘导致无法开机的问题
- 6. 重点回顾、本章习题、参考数据与延伸阅读
- 第五章 首次登陆与 在线求助 man page
- 1. 首次登陆系统
- 2. 文本模式下命令的下达
- 3. Linux系统的在线求助man page与info page
- 4. 超简单文书编辑器: nano
- 5. 正确的关机方法:sync,shutdown
- 6. 启动过程的问题排解
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第二部分 Linux 文件、目录与磁盘格式
- 第六章 Linux文件权限与 目录配置
- 1. 使用者与群组
- 2. Linux文件权限概念
- 3. Linux目录配置
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第七章 Linux文件与目录管理
- 1. 目录与路径
- 2. 文件与目录管理
- 3. 文件内容查阅
- 4. 文件与目录的默认权限与隐藏权限
- 5. 命令与文件的搜寻:
- 6. 极重要!权限与命令间的关系:
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第八章 Linux 磁盘与 文件系统管理
- 1. 认识 EXT2 文件系统
- 2. 文件系统的简单操作
- 3. 磁盘的分割、格式化、检验与挂载
- 4. 配置启动挂载:
- 5. 内存置换空间(swap)之建置:
- 6. 文件系统的特殊观察与操作
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第九章 文件的压缩与打包
- 1. 压缩文件的用途与技术
- 2. Linux 系统常见的压缩命令
- 3. 打包命令:
- 4. 完整备份工具:dump
- 5. 光盘写入工具
- 6. 其他常见的压缩与备份工具
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第三部分:学习 Shell 与 Shell scripts
- 第十章 vim程序编辑器
- 1. 为何要学 vim
- 2. vi 的使用
- 3. vim 的额外功能
- 4. 其他 vim 使用注意事项
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第十一章 认识与学习 BASH
- 1. 认识 BASH 这个 Shell
- 2. Shell 的变量功能
- 3. 命令别名与历史命令
- 4. Bash shell 的操作环境
- 5. 数据流重导向 (Redirection)
- 6. 管线命令 (pipe)
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第十二章 正规表示法与 文件格式化处理
- 1. 前言: 什么是正规表示法
- 2. 基础正规表示法
- 3. 延伸正规表示法
- 4. 文件的格式化与相关处理
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第十三章 学习 shell scripts
- 1. 什么是 Shell Script
- 2. 简单的 shell script 练习
- 3. 善用判断式
- 4. 条件判断式
- 5. 回圈 (loop)
- 6. shell script 的追踪与 debug
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第四部分:Linux 使用者管理
- 第十四章 Linux 账号管理与 ACL 权限控制
- 1. Linux 的账号与群组
- 2. 账号管理
- 3. 主机的细部权限规划:ACL 的使用
- 4. 使用者身份切换
- 5. 使用者的特殊 shell 与 PAM 模块
- 6. Linux 主机上的用户信息传递
- 7. 手动新增使用者
- 8. 重点回顾、本章习题、参考数据与延伸阅读
- 第十五章 磁盘配额(Quota)与 进阶文件系统管理
- 1. 磁碟配额 (Quota) 的应用与实作
- 2. 软件磁盘阵列 (Software RAID)
- 3. 逻辑卷轴管理员 (Logical Volume Manager)
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第十六章 例行性工作排程 (crontab)
- 1. 什么是例行性工作排程
- 2. 仅运行一次的工作排程
- 3. 循环运行的例行性工作排程
- 4. 可唤醒停机期间的工作任务
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第十七章 程序管理与 SELinux 初探
- 1. 什么是程序 (Process)
- 2. 工作管理 (job control)
- 3. 程序管理
- 4. 特殊文件与程序
- 5. SELinux 初探
- 6. 重点回顾、本章习题、参考数据与延伸阅读
- 第五部分:Linux 系统管理员
- 第十八章 认识系统服务 (daemon)
- 1. 什么是 daemon 与服务 (service)
- 2. 解析 super daemon 的配置文件
- 3. 服务的防火墙管理 xinetd, TCP Wrappers
- 4. 系统开启的服务
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第十九章 认识与分析登录档
- 1. 什么是登录文件
- 2. syslogd :记录登录文件的服务
- 3. 登录文件的轮替 (logrotate)
- 4. 分析登录文件
- 5. 本章习题练习、针对本文的建议
- 第二十章 启动流程、模块管理 与 loader
- 1. Linux 的启动流程分析
- 2. 核心与核心模块
- 3. Boot loader: Grub
- 4. 启动过程的问题解决
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十一章 系统配置工具(网络与 打印机)与硬件侦测
- 1. CentOS 系统配置工具: setup
- 2. 利用 CUPS 配置 Linux 打印机
- 3. 硬件数据收集与驱动,及 lm_sensors
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十二章 软件安装: 原始码与 Tarball
- 1. 开放源码的软件安装与升级简介
- 2. 使用传统程序语言进行编译的简单范例
- 3. 用 make 进行巨集编译
- 4. Tarball 的管理与建议
- 5. 函式库管理
- 6. 检验软件的正确性
- 7. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十三章 软件安装:RPM, SRPM 与 YUM 功能
- 1. 软件管理员简介
- 2. RPM 软件管理程序: rpm
- 3. SRPM 的使用: rpmbuild
- 4. YUM 线上升级机制
- 5. 管理的抉择:RPM 还是 Tarball
- 6. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十四章 X Window 配置介绍
- 1. 什么是 X Window System
- 2. X Server 配置档解析与配置
- 3. 显卡驱动程序安装范例
- 4. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十五章 Linux 备份策略
- 1. 备份要点
- 2. 备份的种类、频率与工具的选择
- 3. VBird 的备份策略与 scripts
- 4. 灾难复原的考量
- 5. 重点回顾、本章习题、参考数据与延伸阅读
- 第二十六章 核心编译
- 1. 编译前的任务:认识核心与取得核心原始码
- 2. 核心编译的前处理与核心功能选择
- 3. 核心的编译与安装
- 4. 额外(单一)核心模块编译
- 5. 重点回顾、本章习题、参考数据与延伸阅读