1.3 Linux当前应用的角色

了解了什么是 Linux 之后,再来谈谈,那目前 Linux 用在哪里呢?由于Linux kernel实在是非常的小巧精致,可以在很多强调省电以及较低硬件资源的环境下面执行; 此外,由于Linux distributions整合了非常多非常棒的软件(不论是专利软件或自由软件), 因此也相当适合目前个人计算机的使用呢!传统上,Linux常见的应用可约略分为企业应用与个人应用两方面,但这几年很流行的云端运算机制中, 让 Linux 似乎又更有着力点啰!

1.3.1 企业环境的利用

企业对于数码化的目标在于提供消费者或员工一些产品方面的信息 (例如网页介绍),以及整合整个企业内部的数据统一性 (例如统一的帐号管理/文件管理系统等)。另外,某些企业例如金融业等,则强调在数据库、安全强化等重大关键应用。 学术单位则很需要强大的运算能力等。所以企业环境运用Linux作些什么呢?

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)的平行运算能力在近年来一直被拿出来讨论。 所谓的平行运算指的是“将原本的工作分成多份,然后交给多部主机去运算,最终再将结果收集起来”的一种方式。 由于通过高速网络使用到多部主机,将能够让原本需要很长运算时间的工作,大幅的降低等待的时间! 例如中央气象局的气象预报就很需要这样的系统来帮忙!而Linux操作系统则是这种架构下相当重要的一个环境平台呢!

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 的详细信息我们留待第二十三章再来介绍。

近年来在各大社群的团结合作之下,Linux的窗口系统上面能够跑的软件实在是多的吓人!而且也能够应付的了企业的办公环境! 例如美观的KDE与GNOME窗口接口,搭配可相容微软Office的 OpenOffice / LibreOffice (https://www.openoffice.org/zh-cn/, https://zh-cn.libreoffice.org/) 等软件, 这些自由的办公室软件包含了文书处理、电子试算表、简报软件等等,功能齐全啊!然后配合功能强大速度又快的Firefox浏览器, 以及可下载信件的雷鸟(ThunderBird)软件(类似微软的Outlook Express),还有可连上多种实时通讯的Pidgin! Linux能够做到企业所需要的各项功能啦!

Tips 鸟哥真的垂垂老已~前一阵子 (2014) 上课时,跟学生说:“各位啊!你们考取的证照也转一份给老师来备份嘛!用 emai 寄给鸟哥喔!” 结果有几个学生竟然举手说:“老师!我知道 email 啊!不过,从来没有用过 email 寄附件耶!所以才没有传给你啊!”哇!! 瞎密?“那你们怎么传送文件啊?用 FTP 喔?”鸟哥问,他说“没啊!就用 FB 或者是 Line 啊!或者 dropbox!真没用过 email 耶!”…时代不同了…

  • 手持系统(PDA、手机): 自从 iphone4 在 2010 年面世之后,整个手机市场开始大搬风!智能手机市场将原本商务用的 PDA 市场整个吃掉!然后原本在 2010 年前后很热门的小笔记本也被平板电脑打趴了!在这个潮流下,Google 成立了开放手机联盟 (Open Handset Alliance),并且推出 Android 手机专用操作系统! 而 Android 其实就是 Linux 核心的一支,只是专门用来针对手机/平板这类的 ARM 机器所设计的!

2015 最新的 Android 系统 5.x 使用的就是 Linux kernel 3.4.x 版本,另外,调查中也显示,从 2013 年之后,Android 系统已经是全球最多人使用的手机系统。也就是说,现在手机市场的主流操作系统是 Linux 分支出来的 Android 喔! 那怎么能说 Linux 很少人用呢?哈哈!天天都在用耶各位!

Tips 如果你的手机是 Android 系统的话,请拿出来,然后点选“设置”—> “关于(手机)” —> “软件信息”,你就会看到 Android 版本,然后又点选“更多”, 这时你就会看到类似 3.4.10-xxx 的代号,那是什么?查一查上头提到的 Linux 版本,就知道那是啥鬼东西啰! ^_^

  • 嵌入式系统: 在 第零章、计算机概论 当中我们谈到过硬件系统, 而要让硬件系统顺利的运行就得要撰写合适的操作系统才行。那硬件系统除了我们常看到的计算机之外, 其实家电产品、PDA、手机、数码相机以及其他微型的计算机配备也是硬件系统啦! 这些计算机配备也都是需要操作系统来控制的!而操作系统是直接嵌入于产品当中的,理论上你不应该会更动到这个操作系统, 所以就称为嵌入式系统啦!

包括路由器、防火墙、手机、IP分享器、交换器、机器人控制芯片、家电用品的微计算机控制器等等,都可以是Linux操作系统喔! 酷学园内的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 操作系统哩!用的越来越多啊!

Tips 所谓的“虚拟化”指的是:在一部实体主机上面仿真出多个逻辑上完全独立的硬件,这个假的虚拟出来的硬件主机,可以用来安装一部逻辑上完全独立的操作系统! 因此,通过虚拟化技术,你可以将一部实体主机安装多个同时运行的操作系统 (非多重开机),以达到将硬件资源完整利用的效果。 很多 ISP 就是通过贩售这个虚拟机的使用权来赚钱的喔!

  • 端设备 既然运算资源都集中在云里面了,那我需要连线到云程序的设备应该可以越来越轻量吧?当然没错!所以智能手机才会这么热门啊! 很多时候你只要有智能手机或者是平板,连线到公司的云里面去,就可以开始办公了哩!

此外,还有更便宜的端点设备喔!那就是近年来很热门又流行的树莓派 (Raspberry Pi) 与香蕉派 (Banana Pi),这两个小东西售价都不到 50 美元, 有的甚至台币 1000 块有找!这个 Raspberry Pi 其实就是一部小型的计算机,只要加上 USB 键盘、鼠标与 HDMI 的屏幕,立刻就是可以让小朋友学习程序语言的环境! 如果加上通过网络去取得具有更强大运算资源的云端虚拟机,不就可以做任何事了吗?所以,端点设备理论上会越来越轻量化的!

Tips 鸟哥近几年来做的主要研究,就是通过一组没很贵的 server 系统达成打开多个虚拟机的环境,然后让学生可以在教室利用类似 banana pi 的设备来连线到服务器, 这时学生就可以通过网络来取得一套完整的操作系统,可以拿来上课、回家实作练习、上机考试等等!相当有趣!鸟哥称为虚拟计算机教室! 而 server 与 banana pi 的内部操作系统当然就是 Linux 啊!