《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.3 Linux的特色

简介:

本节书摘来自异步社区《鸟哥的Linux 私房菜 基础学习篇(第三版)》一书中的第1章,第1.3节,作者:鸟哥著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.3 Linux的特色

鸟哥的Linux 私房菜 基础学习篇(第三版)
Linux是Torvalds先生所开发出来的,基于GPL的版权声明之下,可以在x86的架构下运行,也可以被移植到其他的大型主机上面。由于开发的相关理念与兼容的问题,因此,我们也可以称Linux为UNIX Like操作系统的一种。

其实UNIX Like可以说是目前服务器类型的操作系统的统称!因为不论是FreeBSD, BSD, Sun UNIX, HP UNIX, Red Hat Linux, Mandrake Linux等,都是由同一个祖先Thompson所写的“UNIX”来的,因此,这些都被统称为UNIX Like的操作系统!
1.3.1 Linux的特色
那么这个系统有什么特异功能呢?简单地说,有以下几点。

◆ 自由与开放的使用与学习环境

● 由于Linux是基于GPL的授权之下,因此它是自由软件,也就是任何人都可以自由使用或者是修改其中的源码的意思!这种开放性架构对科学界来说是相当重要的!因为很多的工程师由于特殊的需求,经常需要修改系统的源码,使该系统可以符合自己的需求。而这个开放性的架构将可以满足各不同需求的工程师。因此当然就有可能越来越流行。以鸟哥来说,目前环境工程界的空气质量模式最新版Models-3/CMAQ就是以Linux为基准平台设计的呢!

◆ 配备需求低廉

● Linux可以支持个人计算机的x86架构,系统资源不必像早先的UNIX系统那般,仅适合于单一公司所出产的设备。单就这一点来看,就可以造成很大的流行度。不过,如果你想要在Linux下执行X Window系统,那么硬件的等级就不能太低了!

◆ 内核功能强大而稳定

● 而且由于Linux功能并不会输给一些大型的UNIX工作站,因此,近年来越来越多的公司或者是团体、个人投入这一个操作系统的开发与整合工作。例如IBM与Sun公司都有推出x86的Linux服务器呢!

◆ 独立作业

● 另外,由于很多的软件套件逐渐被这套操作系统拿来使用,而很多套件软件也都在Linux这个操作系统上面进行开发与测试,因此,Linux近来已经可以独立完成几乎所有的工作站或服务器的服务了,例如Web, Mail, Proxy, FTP等。

目前Linux已经是相当成熟的一套操作系统!而且不耗资源又可以自由取得!可以说给微软造成相当大的压力!此外,由于它的系统硬件要求很低,加上目前很多的人由于“Intel的阴谋”而造成手边有相当多的淘汰掉的硬件配备,Linux在这些被淘汰的硬件中就可以执行得相当顺畅与稳定!因此也造成相当多朋友的关注!

这些造成Linux成为最近几年来最受瞩目的操作系统之一,如前所述,它会受到瞩目的原因主要是因为它是“Free”的,就是可以自由取得的操作系统!然后它是开放性的系统,也就是你可以随时取得程序的源码,这对于程序开发工程师是很重要的。而且,虽然它是Free的自由软件,不过功能却很强大!另外,Linux对于硬件的需求是很低的,这一点更是造成它流行的主因,因为硬件的更换率太快了,所以很多人手边都有一些很少在用的零件,这些零件组装一下就可以用来运行Linux了,反正做一个工作站又不使用到屏幕(只要主机就可以),因此Linux就越来越流行!

也就是因为Linux具有硬件需求低、架构开放、系统稳定性及保密性功能够强、完全免费的优点,所以造成一些所谓“反微软联盟”的程序设计高手不断开发新软件,以与微软进行抗衡!
1.3.2 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只要几百KB不到的程序代码就可以完整驱动整个计算机硬件并成为一个完整的操作系统,因此相当适合于目前家电或者是小电子用品的操作系统,即嵌入式系统。Linux真的是很适合例如手机、数字相机、PDA、家电用品等操作系统!

◆ 整合度佳且多样的图形用户界面(GUI)

● 自从1994年Linux 1.0后就加入的X Window系统,在众多黑客的努力之下终于与Linux有高度整合,且主要的显卡厂商(Intel, NVidia, ATI等)都有针对Linux推出最新的驱动程序,因此Linux的GUI已经有长足的进步了。另外,Linux环境下的图形界面不只有一种呢!包括大家耳熟能详的KDE以及GNOME都是很常见的!

反正Linux好处说不完啦!不过虽然Linux具有这样多的好处,但是它先天上有一个足以致命的地方,使它的普及率受到很大的限制,就是Linux需要使用“命令行”的终端机模式进行系统的管理!虽然近年来有很多的图形界面开发使用在Linux上面,但毕竟要熟悉Linux还是以命令行来使用是比较好的,因此要接受Linux的玩家必须比较要能熟悉对计算机下命令的行为,而不是用鼠标点一点图标(icon)就行了。Linux还可以改进的地方有以下几点。

◆ 没有特定的支持厂商

● 因为在Linux上面的所有套件几乎都是自由软件,而每个自由软件的开发者可能并不是公司团体,而是非营利性质的团体。如此一来,在你Linux主机上面的软件若发生问题,该如何是好?好在由于目前Linux商业界的整合还不错,目前在中国比较著名的Red Hat与SuSE均设立了服务点。你可以经由这个服务点来直接向他们购买/咨询相关的软硬件问题呢!不过,如果你没有选择有专门商业公司的Linux distributions时?怎么办?没有专人上门服务也不需要太担心,因为拜网络风行之赐,你要问的问题几乎在网络上都可以找到答案。看你有没有用心去找就是了!

◆ 游戏的支持度不足

● 在现代这个时候,敢说你们家的桌面计算机里面完全没有游戏的用户应该不多了!游戏软件也是个应用程序,所以它与操作系统的关系就相当密切了。可惜的是目前很多游戏开发商并没有在Linux平台上面开发大型游戏,这间接导致Linux无法进入一般家庭。

◆ 专业软件的支持度不足

● 这是鸟哥到学校教书后才发现的一件事,目前很多专业绘图软件公司所推出的专业软件并不支持Linux操作系统,这让同学很难在不同的平台上面操作相同的软件。很伤脑筋!

老实说,这些缺点绝大部分都不是Linux本身的问题,倒是一些商业方面的考虑才是最大的困扰。不过,Linux与其他的操作系统一样,就是一个工具而已!希望大家能够在快乐中学习到Linux的精髓。

1.3.3 关于授权
现在市面上有好多的软件,有的是自由软件,有的是专利软件。有的专利软件免费,有的自由软件要钱。好烦啊!怎么分辨这些东西?其实,鸟哥并不是律师,对于法律也不十分懂,不过,还是有几个授权模式可以来谈一谈。

◆ Open Source(开放源码)

● 软件以Open Source的方式发布时,表示除了可执行的软件本身外,一定伴随着源码的释出。通常Open Source的软件有几个好处:

1.程序员通常会等到程序成熟之后才会发布(免得被笑),所以通常程序在雏形的时候,就已经具有相当的优良体质。

2.Open Source的精神,相信当程序原设计人将程序源码释出之后,其他的程序员接受这份源码之后,由于需要将程序改成自己所需的样式,所以会经由本身的所学来加以改善,并从中加以改善与排错,所以程序的调试功能会比传统的Close Source来得快!

3.由于程序是伴随源码的,因此,系统将会不易存在鲜为人知的木马程序或一些安全漏洞,相对而言,会更加安全!

● Open Source的代表授权为GNU的GPL授权及BSD等,下面列出知名的Open Source授权网页:

■ GNU General Public License

■ Berkeley Software Distribution(BSD)

● BSD_license使用BSD Source Code最常接触到的就是BSD授权模式了!这个授权模式其实与GPL很类似,而其精神也与Open Source相呼应呢!

■ Apache License, Version 2.0

●LICENSE-2.0Apache是一种网页服务器软件,这个软件的发布方式也是使用Open Source的。只是在Apache的授权中规定,如果想要重新发布此软件时(如果你有修改过该软件),软件的名称依旧需要定名为Apache才行!

◆ Close Source

● 相对于Open Source的软件会释出源码,Close Source的程序则仅推出可执行的二进制程序而已。这种软件的优点是有专人维护,你不需要去改动它;缺点则是灵活度大打折扣,用户无法更改该程序成为自己想要的样式!此外,若有木马程序或者安全漏洞,将会花上相当长的一段时间来排错!这也是所谓商业软件(Copyright)常见的软件出售方式。

● 虽然商业软件常常代表就是需要花钱去购买,不过有些商业软件还是可以免费提供大众使用的。免费的商业软件代表的授权模式有:

■Freeware不同于Free Software,Freeware为“免费软件”而非“自由软件”!虽然它是免费的软件,但是不见得要公布其源码,得看发布者的意见!这是与Open Source不太相同的东西!此外,目前很多标榜免费软件的程序很多都有小问题!例如假借免费软件的名义,实施用户数据窃取的目的!所以来路不明的软件请勿安装!

■e共享软件这个名词就有趣了!与免费软件有点类似的是,Shareware在使用初期,它也是免费的,但是,到了试用期限之后,你就必须要选择付费后继续使用或者将它移除。通常,这些共享软件都会自行编写失效程序,让你在试用期限之后就无法使用该软件。

相关文章
|
1月前
|
Ubuntu 安全 Unix
【Linux学习】零基础学习Linux
【Linux学习】零基础学习Linux
|
1月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
1月前
|
Ubuntu Unix 大数据
为什么要学习 Linux ????
为什么要学习 Linux ????
30 0
|
2月前
|
Linux Shell 数据安全/隐私保护
【Linux】基础学习篇三:用户与权限(持续更新)
【Linux】基础学习篇三:用户与权限(持续更新)
|
1月前
|
Linux 编译器 开发工具
Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
|
2月前
|
Linux
【Linux】基础学习篇一:Linux初始设置(持续更新)
【Linux】基础学习篇一:Linux初始设置(持续更新)
|
3月前
|
监控 Linux Shell
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地定位和解决线上问题,提高系统的稳定性和性能。让我们一同进入这个学习过程吧!
43 0
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
|
11天前
|
Linux 应用服务中间件 网络安全
小白学习Linux的学习建议和阶段
【4月更文挑战第5天】小白学习Linux的学习建议和阶段
27 0
|
1月前
|
存储 消息中间件 网络协议
Linux 系统编程从入门到进阶 学习指南
本文旨在为初学者提供一个清晰的 Linux 系统编程入门指南,带你步入 Linux 系统编程的世界,从基本概念到实用技能,一步步建立起您的知识体系。
Linux 系统编程从入门到进阶 学习指南
|
1月前
|
存储 Linux 程序员
linux学习之虚拟地址
linux学习之虚拟地址