## 1.3 Linux当前应用的角色
了解了什么是 Linux 之后,再来谈谈,那目前 Linux 用在哪里呢?由于Linux kernel实在是非常的小巧精致,可以在很多强调省电以及较低硬件资源的环境下面执行; 此外,由于Linux distributions整合了非常多非常棒的软件(不论是专利软件或自由软件), 因此也相当适合目前个人计算机的使用呢!传统上,Linux常见的应用可约略分为企业应用与个人应用两方面,但这几年很流行的云端运算机制中, 让 Linux 似乎又更有着力点啰!
### 1.3.1 企业环境的利用
企业对于数码化的目标在于提供消费者或员工一些产品方面的信息 (例如网页介绍),以及整合整个企业内部的数据统一性 (例如统一的帐号管理/文件管理系统等)。另外,某些企业例如金融业等,则强调在数据库、安全强化等重大关键应用。 学术单位则很需要强大的运算能力等。所以企业环境运用Linux作些什么呢?
* 网络服务器:
这是Linux当前最热门的应用了!承袭了Unix高稳定性的良好传统,Linux上面的网络功能特别的稳定与强大! 此外,由于GNU计划与Linux的GPL授权模式,让很多优秀的软件都在Linux上面发展, 且这些在Linux上面的服务器软件几乎都是自由软件!因此,做为一部网络服务器,例如WWW, Mail Server, File Server等等,Linux绝对是上上之选!当然,这也是Linux的强项!由于 Linux server 的需求强烈,因此许多硬件厂商推出产品时, 还得要特别说明有支持的 Linux distributions 呢!方便提供企业采购部门的规划喔!例如下面的链接可以瞧瞧:
* Dell 公司的 Server 对 OS 的支持度:
[http://www.dell.com/support/contents/tw/en/twbsd1/article/Product-Support/
Self-support-Knowledgebase/enterprise-resource-center/server-operating-system-support](http://www.dell.com/support/contents/us/en/04/article/Product-Support/Self-support-Knowledgebase/enterprise-resource-center/server-operating-system-support)
* HP 公司的支持:
[http://www8.hp.com/us/en/business-services/it-services.html?compURI=1078888#tab=TAB1](http://www8.hp.com/us/en/business-services/it-services.html?compURI=1078888#tab=TAB1)
* IBM 公司的支持:
[http://www-03.ibm.com/systems/hardware/browse/linux/](http://www-03.ibm.com/systems/hardware/browse/linux/)
* VMWare 的虚拟化支持:
[https://www.vmware.com/support/ws55/doc/intro_supguest_ws.html](https://www.vmware.com/support/ws55/doc/intro_supguest_ws.html)
从上面的几个大厂的 Linux 支持情况来看,目前 (2015) 支持度比较广泛的依旧是 Red Hat 以及 SuSU 两个大厂喔! 提估给企业采购的时候参考参考!
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 前一阵子参加一个座谈会,会上许多企业界的前辈们在聊,如果想要选择某个 Linux distribution 时,哪个 distribution 会是企业采购时的最爱呢? 与会的朋友说,要采购吗?看看服务器大厂对于该 distribution 的支持度就知道了!答案是什么?就是上面许多链接的结果啰! ^_^
* 关键任务的应用(金融数据库、大型企业网管环境):
由于个人计算机的性能大幅提升且价格便宜,所以金融业与大型企业的环境为了要精实自己机房的机器设备, 因此很多企业渐渐的走向Intel相容的x86主机环境。而这些企业所使用的软件大多使用Unix操作系统平台的软件, 总不能连过去发展的软件都一口气全部换掉吧!所以啰,这个时候符合Unix操作系统标准并且可以在x86上运行的Linux就渐渐崭露头角了!^_^
目前很多金融业界都已经使用Linux做为他们的关键任务应用。所谓的关键任务就是该企业最重要的业务啦! 举例来说,金融业最重要的就是那些投资者、帐户的数据了,这些数据大多使用数据库系统来作为存取接口, 这些数据很重要吧!很多金融业将这么重要的任务交给了Linux了!你说Linux厉不厉害啊?
* 学术机构的高性能运算任务:
学术机构的研究常常需要自行开发软件,所以对于可作为开发环境的操作系统需求非常的迫切!举例来说, 非常多技职体系的科技大学就很需要这方面的环境,好进行一些毕业专题的制作呢! 又例如工程界流体力学的数值模式运算、娱乐事业的特效功能处理、软件开发者的工作平台等等。 由于Linux的创造者本身就是个计算机性能癖,所以Linux有强大的运算能力;并且Linux具有支持度相当广泛的GCC编译软件, 因此Linux在这方面的优势可是相当明显的!
举个鸟哥自己的案例好了,鸟哥之前待的研究室有跑一套空气品质模式的数值仿真软件。 这套软件原本只能在Sun的SPARC机器上面跑。后来该软件转向Linux操作系统平台发展, 鸟哥也将自己实验室的数值模式程序由Sun的Solaris平台移植到Linux上面呢! 据美国环保署内部人员的测试,发现Linux平台的整体硬件费用不但比较便宜(x86系统嘛!)而且速度还比较快呢!
另外,为了加强整体系统的性能,丛集计算机系统(Cluster)的平行运算能力在近年来一直被拿出来讨论[[11]](#ps11)。 所谓的平行运算指的是“将原本的工作分成多份,然后交给多部主机去运算,最终再将结果收集起来”的一种方式。 由于通过高速网络使用到多部主机,将能够让原本需要很长运算时间的工作,大幅的降低等待的时间! 例如中央气象局的气象预报就很需要这样的系统来帮忙!而Linux操作系统则是这种架构下相当重要的一个环境平台呢!
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 由于服务器的 CPU 数量可以增加许多,而且也能够达到比较省电的功能,因此鸟哥最近更换了昆山科大资传系的模式运算服务器组, 通过 20 核心 40 超执行续的以及 12 核心 24 超执行续的两部系统,搭配 10G 网卡来处理模式的运行!用的是本书谈到的 CentOS Linux, 跑得模式是美国环保署公布,现行于世界最流行的 CMAQ 空品模式喔!
### 1.3.2 个人环境的使用
你知道你平时接触的电子用品中,哪些咚咚里面有Linux系统存在呢?其实相当的多呢!我们就来谈一谈吧!
* 桌面电脑:
所谓的桌面电脑,其实就是你我在办公室使用的计算机啦。一般我们称之为Desktop的系统。那么这个 Desktop 的系统平时都在做什么呢?大概都是这些工作吧:
* 上网浏览+实时通讯(Skype, FB, Google, Yahoo...);
* 文书处理;
* 网络接口之公文处理系统;
* 办公室软件(Office Software)处理数据;
* 收发电子邮件;
想进行这些计算机工作时,你的Desktop环境需要什么咚咚?很简单,“就是需要窗口”! 因为上网浏览、文书编排的所见即所得接口,以及电子公文系统等等, 如果没有窗口接口的辅助,那么将对使用者造成很大的困扰。而众所皆知的, Linux早期都是由工程师所发展的,对于窗口接口并没有很需要,所以造成Linux不太友好的印象。
好在,为了要强化桌面电脑的使用率,Linux与X Window System结合了! 要注意的是,X Window System仅只是Linux上面的一套软件, 而不是核心喔!所以即使X Window挂了,对Linux也可能不会有直接的影响呢! 更多关于 X window system 的详细信息我们留待[第二十三章](../Text/index.html)再来介绍。
近年来在各大社群的团结合作之下,Linux的窗口系统上面能够跑的软件实在是多的吓人!而且也能够应付的了企业的办公环境! 例如美观的KDE与GNOME窗口接口,搭配可相容微软Office的 OpenOffice / LibreOffice ([https://www.openoffice.org/zh-cn/](https://www.openoffice.org/zh-cn/), [https://zh-cn.libreoffice.org/](https://zh-cn.libreoffice.org/)) 等软件, 这些自由的办公室软件包含了文书处理、电子试算表、简报软件等等,功能齐全啊!然后配合功能强大速度又快的Firefox浏览器, 以及可下载信件的雷鸟(ThunderBird)软件(类似微软的Outlook Express),还有可连上多种实时通讯的Pidgin! Linux能够做到企业所需要的各项功能啦!
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 鸟哥真的垂垂老已~前一阵子 (2014) 上课时,跟学生说:“各位啊!你们考取的证照也转一份给老师来备份嘛!用 emai 寄给鸟哥喔!” 结果有几个学生竟然举手说:“老师!我知道 email 啊!不过,从来没有用过 email 寄附件耶!所以才没有传给你啊!”哇!! 瞎密?“那你们怎么传送文件啊?用 FTP 喔?”鸟哥问,他说“没啊!就用 FB 或者是 Line 啊!或者 dropbox!真没用过 email 耶!”...时代不同了...
* 手持系统(PDA、手机):
自从 iphone4 在 2010 年面世之后,整个手机市场开始大搬风!智能手机市场将原本商务用的 PDA 市场整个吃掉!然后原本在 2010 年前后很热门的小笔记本也被平板电脑打趴了!在这个潮流下,Google 成立了开放手机联盟 (Open Handset Alliance),并且推出 Android 手机专用操作系统! 而 Android 其实就是 Linux 核心的一支,只是专门用来针对手机/平板这类的 ARM 机器所设计的 [[12]](#ps12)!
2015 最新的 Android 系统 5.x 使用的就是 Linux kernel 3.4.x 版本,另外,调查中也显示,从 2013 年之后,Android 系统已经是全球最多人使用的手机系统。也就是说,现在手机市场的主流操作系统是 Linux 分支出来的 Android 喔! 那怎么能说 Linux 很少人用呢?哈哈!天天都在用耶各位!
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 如果你的手机是 Android 系统的话,请拿出来,然后点选“设置”--> “关于(手机)” --> “软件信息”,你就会看到 Android 版本,然后又点选“更多”, 这时你就会看到类似 3.4.10-xxx 的代号,那是什么?查一查上头提到的 Linux 版本,就知道那是啥鬼东西啰! ^_^
* 嵌入式系统:
在[第零章](../Text/index.html)当中我们谈到过硬件系统, 而要让硬件系统顺利的运行就得要撰写合适的操作系统才行。那硬件系统除了我们常看到的计算机之外, 其实家电产品、PDA、手机、数码相机以及其他微型的计算机配备也是硬件系统啦! 这些计算机配备也都是需要操作系统来控制的!而操作系统是直接嵌入于产品当中的,理论上你不应该会更动到这个操作系统, 所以就称为嵌入式系统啦!
包括路由器、防火墙、手机、IP分享器、交换器、机器人控制芯片、家电用品的微计算机控制器等等,都可以是Linux操作系统喔! [酷学园](http://phorum.study-area.org/)内的Hoyo大大就曾经介绍过如何在嵌入式设备上面载入Linux! 你桌面上用来备份的 NAS 说不定内部也是精简化过的 Linux 系统啊!
虽然嵌入式设备很多,大家也想要转而使用Linux操作系统,不过在台湾,这方面的人才还是太少了! 要玩嵌入式系统必须要很熟悉Linux Kernel与驱动程序的结合才行!这方面的学习可就不是那么简单喔! ^_^
### 1.3.3 云端运用
自从个人计算机的 CPU 内置的核心数越来越多,单一主机的能力太过强大,导致硬件资源经常闲置,这个现象让虚拟化技术得以快速发展! 而由于硬件资源大量集中化,然后行动办公室之类的需求越来越多,因此让办公数据集中于云程序中,让企业员工仅须通过端点设备连线到云去取用运算资源, 这样就变成无时无地都可以办公啦 (其实很惨...永远不得休息啊!真可怜~)!
这就是三国演义里面谈到的“天下大势,分久必合、合久必分”的名言啊! 从(1)早期的贵森森的大型主机分配数个终端机的集中运算机制,到 (2)2010 年前个人计算机运算能力增强后,大部分的运算都是在台式机或笔记本上自行达成, 再也不需要跑去大型主机取得运算资源了!到现在(3)由于行动设备的发达,产生的庞大数据需要集中处理,因而产生云端系统的需求!让信息/资源集中管理! 这不是分分合合的过程吗?^_^
* 云程序
许多公司都有将资源集中管理的打算,之前参与一场座谈会,有幸遇到阿里巴巴的架构师,鸟哥偷偷问他说,他们机房里面有多少计算机主机啊? 他说不多!差不多才 2 万部主机而已...鸟哥正在搞的可提供 200 个左右的虚拟机的系统,使用大约 7 部主机就觉得麻烦了,他们家至少有 2 万部耶! 这么多的设备底层使用的就是 Linux 操作系统来统一管理。
另外,除了公司自己内部的私有云之外,许多大型网际网络供应商 (ISP) 也提供了所谓的公有云来让企业用户或个人用户来使用 ISP 的虚拟化产品。 因此,如果公司内部缺乏专业管理维护人才,很有可能就将自家所需要的关键应用如 Web、Mail、系统开发环境等操作系统交由 ISP 代管, 自家公司仅须远端登陆该系统进行网站内容维护或程序开发而已。那这些虚拟化后的系统,也经常是 Linux 啊!因为跟上头企业环境利用提到的功能是相同的!
所以说云程序的底层就是 Linux ,而云程序搭建出来的虚拟机,内容也是 Linux 操作系统哩!用的越来越多啊!
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 所谓的“虚拟化”指的是:在一部实体主机上面仿真出多个逻辑上完全独立的硬件,这个假的虚拟出来的硬件主机,可以用来安装一部逻辑上完全独立的操作系统! 因此,通过虚拟化技术,你可以将一部实体主机安装多个同时运行的操作系统 (非多重开机),以达到将硬件资源完整利用的效果。 很多 ISP 就是通过贩售这个虚拟机的使用权来赚钱的喔!
* 端设备
既然运算资源都集中在云里面了,那我需要连线到云程序的设备应该可以越来越轻量吧?当然没错!所以智能手机才会这么热门啊! 很多时候你只要有智能手机或者是平板,连线到公司的云里面去,就可以开始办公了哩!
此外,还有更便宜的端点设备喔!那就是近年来很热门又流行的树莓派 (Raspberry Pi) 与香蕉派 (Banana Pi),这两个小东西售价都不到 50 美元, 有的甚至台币 1000 块有找!这个 Raspberry Pi 其实就是一部小型的计算机,只要加上 USB 键盘、鼠标与 HDMI 的屏幕,立刻就是可以让小朋友学习程序语言的环境! 如果加上通过网络去取得具有更强大运算资源的云端虚拟机,不就可以做任何事了吗?所以,端点设备理论上会越来越轻量化的!
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 鸟哥近几年来做的主要研究,就是通过一组没很贵的 server 系统达成打开多个虚拟机的环境,然后让学生可以在教室利用类似 banana pi 的设备来连线到服务器, 这时学生就可以通过网络来取得一套完整的操作系统,可以拿来上课、回家实作练习、上机考试等等!相当有趣!鸟哥称为虚拟计算机教室! 而 server 与 banana pi 的内部操作系统当然就是 Linux 啊!
- 鸟哥的Linux私房菜:基础学习篇 第四版
- 目录及概述
- 第零章、计算机概论
- 0.1 电脑:辅助人脑的好工具
- 0.2 个人电脑架构与相关设备元件
- 0.3 数据表示方式
- 0.4 软件程序运行
- 0.5 重点回顾
- 0.6 本章习题
- 0.7 参考资料与延伸阅读
- 第一章、Linux是什么与如何学习
- 1.1 Linux是什么
- 1.2 Torvalds的Linux发展
- 1.3 Linux当前应用的角色
- 1.4 Linux 该如何学习
- 1.5 重点回顾
- 1.6 本章习题
- 1.7 参考资料与延伸阅读
- 第二章、主机规划与磁盘分区
- 2.1 Linux与硬件的搭配
- 2.2 磁盘分区
- 2.3 安装Linux前的规划
- 2.4 重点回顾
- 2.5 本章习题
- 2.6 参考资料与延伸阅读
- 第三章、安装 CentOS7.x
- 3.1 本练习机的规划--尤其是分区参数
- 3.2 开始安装CentOS 7
- 3.3 多重开机安装流程与管理(Option)
- 3.4 重点回顾
- 3.5 本章习题
- 3.6 参考资料与延伸阅读
- 第四章、首次登陆与线上求助
- 4.1 首次登陆系统
- 4.2 文字模式下指令的下达
- 4.3 Linux系统的线上求助man page与info page
- 4.4 超简单文书编辑器: nano
- 4.5 正确的关机方法
- 4.6 重点回顾
- 4.7 本章习题
- 4.8 参考资料与延伸阅读
- 第五章、Linux 的文件权限与目录配置
- 5.1 使用者与群组
- 5.2 Linux 文件权限概念
- 5.3 Linux目录配置
- 5.4 重点回顾
- 5.5 本章练习
- 5.6 参考资料与延伸阅读
- 第六章、Linux 文件与目录管理
- 6.1 目录与路径
- 6.2 文件与目录管理
- 6.3 文件内容查阅
- 6.4 文件与目录的默认权限与隐藏权限
- 6.5 指令与文件的搜寻
- 6.6 极重要的复习!权限与指令间的关系
- 6.7 重点回顾
- 6.8 本章习题:
- 6.9 参考资料与延伸阅读
- 第七章、Linux 磁盘与文件系统管理
- 7.1 认识 Linux 文件系统
- 7.2 文件系统的简单操作
- 7.3 磁盘的分区、格式化、检验与挂载
- 7.4 设置开机挂载
- 7.5 内存交换空间(swap)之创建
- 7.6 文件系统的特殊观察与操作
- 7.7 重点回顾
- 7.8 本章习题 - 第一题一定要做
- 7.9 参考资料与延伸阅读
- 第八章、文件与文件系统的压缩,打包与备份
- 8.1 压缩文件的用途与技术
- 8.2 Linux 系统常见的压缩指令
- 8.3 打包指令: tar
- 8.4 XFS 文件系统的备份与还原
- 8.5 光盘写入工具
- 8.6 其他常见的压缩与备份工具
- 8.7 重点回顾
- 8.8 本章习题
- 8.9 参考资料与延伸阅读
- 第九章、vim 程序编辑器
- 9.1 vi 与 vim
- 9.2 vi 的使用
- 9.3 vim 的额外功能
- 9.4 其他 vim 使用注意事项
- 9.5 重点回顾
- 9.6 本章练习
- 9.7 参考资料与延伸阅读
- 第十章、认识与学习BASH
- 10.1 认识 BASH 这个 Shell
- 10.2 Shell 的变量功能
- 10.3 命令别名与历史命令
- 10.4 Bash Shell 的操作环境:
- 10.5 数据流重导向
- 10.6 管线命令 (pipe)
- 10.7 重点回顾
- 10.8 本章习题
- 10.9 参考资料与延伸阅读
- 第十一章、正则表达式与文件格式化处理
- 11.1 开始之前:什么是正则表达式
- 11.2 基础正则表达式
- 11.3 延伸正则表达式
- 11.4 文件的格式化与相关处理
- 11.5 重点回顾
- 11.6 本章习题
- 11.7 参考资料与延伸阅读
- 第十二章、学习 Shell Scripts
- 12.1 什么是 Shell scripts
- 12.2 简单的 shell script 练习
- 12.3 善用判断式
- 12.4 条件判断式
- 12.5 循环 (loop)
- 12.6 shell script 的追踪与 debug
- 12.7 重点回顾
- 12.8 本章习题
- 第十三章、Linux 帐号管理与 ACL 权限设置
- 13.1 Linux 的帐号与群组
- 13.2 帐号管理
- 13.3 主机的细部权限规划:ACL 的使用
- 13.4 使用者身份切换
- 13.5 使用者的特殊 shell 与 PAM 模块
- 13.6 Linux 主机上的使用者讯息传递
- 13.7 CentOS 7 环境下大量创建帐号的方法
- 13.8 重点回顾
- 13.9 本章习题
- 13.10 参考资料与延伸阅读
- 第十四章、磁盘配额(Quota)与进阶文件系统管理
- 14.1 磁盘配额 (Quota) 的应用与实作
- 14.2 软件磁盘阵列 (Software RAID)
- 14.3 逻辑卷轴管理员 (Logical Volume Manager)
- 14.4 重点回顾
- 14.5 本章习题
- 14.6 参考资料与延伸阅读
- 第十五章、例行性工作调度(crontab)
- 15.1 什么是例行性工作调度
- 15.2 仅执行一次的工作调度
- 15.3 循环执行的例行性工作调度
- 15.4 可唤醒停机期间的工作任务
- 15.5 重点回顾
- 15.6 本章习题
- 第十六章、程序管理与 SELinux 初探
- 16.1 什么是程序 (process)
- 16.2 工作管理 (job control)
- 16.3 程序管理
- 16.4 特殊文件与程序
- 16.5 SELinux 初探
- 16.6 重点回顾
- 16.7 本章习题
- 16.8 参考资料与延伸阅读
- 第十七章、认识系统服务 (daemons)
- 17.1 什么是 daemon 与服务 (service)
- 17.2 通过 systemctl 管理服务
- 17.3 systemctl 针对 service 类型的配置文件
- 17.4 systemctl 针对 timer 的配置文件
- 17.5 CentOS 7.x 默认启动的服务简易说明
- 17.6 重点回顾
- 17.7 本章习题
- 17.8 参考资料与延伸阅读
- 第十八章、认识与分析登录文件
- 18.1 什么是登录文件
- 18.2 rsyslog.service :记录登录文件的服务
- 18.3 登录文件的轮替(logrotate)
- 18.4 systemd-journald.service 简介
- 18.5 分析登录文件
- 18.6 重点回顾
- 18.7 本章习题
- 18.8 参考资料与延伸阅读
- 第十九章、开机流程、模块管理与 Loader
- 19.1 Linux 的开机流程分析
- 19.2 核心与核心模块
- 19.3 Boot Loader: Grub2
- 19.4 开机过程的问题解决
- 19.5 重点回顾
- 19.6 本章习题
- 19.7 参考资料与延伸阅读
- 第二十章、基础系统设置与备份策略
- 20.1 系统基本设置
- 20.2 服务器硬件数据的收集
- 20.3 备份要点
- 20.4 备份的种类、频率与工具的选择
- 20.5 鸟哥的备份策略
- 20.6 灾难复原的考虑
- 20.7 重点回顾
- 20.8 本章习题
- 20.9 参考资料与延伸阅读
- 第二十一章、软件安装:源代码与 Tarball
- 20.1 开放源码的软件安装与升级简介
- 21.2 使用传统程序语言进行编译的简单范例
- 21.3 用 make 进行宏编译
- 21.4 Tarball 的管理与建议
- 21.5 函数库管理
- 21.6 检验软件正确性
- 21.7 重点回顾
- 21.8 本章习题
- 21.9 参考资料与延伸阅读
- 第二十二章、软件安装 RPM, SRPM 与 YUM
- 22.1 软件管理员简介
- 22.2 RPM 软件管理程序: rpm
- 22.3 YUM 线上升级机制
- 22.4 SRPM 的使用 : rpmbuild (Optional)
- 22.5 重点回顾
- 22.6 本章习题
- 22.7 参考资料与延伸阅读
- 第二十三章、X Window 设置介绍
- 23.1 什么是 X Window System
- 23.2 X Server 配置文件解析与设置
- 23.3 显卡驱动程序安装范例
- 23.4 重点回顾
- 23.5 本章习题
- 23.6 参考资料与延伸阅读
- 第二十四章、Linux 核心编译与管理
- 24.1 编译前的任务:认识核心与取得核心源代码
- 24.2 核心编译的前处理与核心功能选择
- 24.3 核心的编译与安装
- 24.4 额外(单一)核心模块编译
- 24.5 以最新核心版本编译 CentOS 7.x 的核心
- 24.6 重点回顾
- 24.7 本章习题
- 24.8 参考资料与延伸阅读