在学习Linux系统之前,我们先来了解以下UNIX系统。

(一)UNIX系统介绍

在介绍Linux系统之前,我们先来了解以下UNIX系统。

1、UNIX系统发展历史

  • 1965年美国麻省理工学院(MIT)通用电气公司(GE)AT&T的贝尔实验室联合开发Multics工程计划,其目标是开发一种交互式的具有多道程序处理能力的分时操作系统,但因Multics追求的目标过于庞大复杂,项目进度远远落后于计划,最后贝尔实验室宣布退出。
  • 1969年,美国贝尔实验室的肯·汤普森DEC PDP-7机器上(性能低)开发出了UNIX系统。
  • 1971年,肯·汤普森的同事丹尼斯·里奇发明了C语言;1973年,UNIX系统的绝大部分源代码用C语言重写,这为提高UNIX系统的可移植性打下基础。

左边:肯·汤普森

右边:丹尼斯·里奇

2、UNIX 主要发行版本

目前最主流的三款发行版本如下:

操作系统 公司 硬件平台
AlX IBM PowerPC
UX HP PA-RISC
Solaris SUN SPARC

说明:

  1. AIX最为普及(数量最多),因为IBM的服务器买的最多,但是AIX有一个巨大的问题就是,它只能在IBM的服务器硬件平台安装(PowerPC)。

    换句话说,我们自己用的普通电脑,装不了这个系统。想要学习AIX系统,就需要买一台IBM的服务器。
  2. HP-UX也同样是上边的问题,必须在PA-RISC平台的服务器上安装。
  3. Solaris具有支持微机的版本。可以在我们自己普通的电脑上安装,不需要在单独购买服务器。

    这就变成你学习UNIX系统成本最低的一个选择了,而我们到市面上买一些UNIX的书籍,可以发现,反而Solaris系统的书籍最多。

补充:

Linux和BSD这样的系统,称为类UNIX系统。命令上基本上大致一样,文件系统结构基本一样,区别就是有个别命令,有个别文件保存的位置或者文件名不一样。但是深入到底层的内容,确实是有很多很多的内容是不一样的。

(二)GNU计划

1、GNU计划介绍

Richard Mathew Stallman(史托曼)在1984年发起的GNU计划,对于现今的自由软件风潮,有不可磨灭的地位!目前我们所使用的很多自由软件或开源软件,几乎均直接或间接受益于GNU这个计划。GNU计划对于整个自由软件与开放原始码软件来说,是占有非常重要的角色!

2、为何Stallman会发起这个GNU计划呢?

史托曼开始GNU计划的目的是:建立一个自由、开放的Unix操作系统(Free Unix)

Tips:

其实GNU是GNU'sNot Unix的缩写,意思是说,GNU并不是Unix!

因为当下并没有自由的Unix核心存在,所以这些开源的软件仍只能在那些有专利的Unix平台上工作。

3、GNU的通用公共许可证:

到了1985年,为了避免GNU所开发的自由软件被其他人所利用,而成为专利软件,所以Stallman与律师草拟了有名的通用公共许可证(General Public License,GPL)。

(1)那么这个GPL(GNU General Public License)是什么?

Stallman对GPL一直是强调Free的,这个Free的意思是这样的:大意是说,Free Software(自由软件)是一种自由的权力,并非是价格。也就是说,自由软件的重点并不是指免费的,而是指具有自由度(freedom)的软件。

举例来说,你可以拥有自由呼吸的权力、你拥有自由发表言论的权力,但是,这并不代表你可以到处喝免费的啤酒(free beer)。

史托曼进一步说明了自由度的意义是:使用者可以自由的执行、复制、再发行、学习、修改与强化自由软件。

GPL是站在互助互利的角度上去开发的,你不应该将大家的成果占为己有。

(2)为什么要将自由软件挂上GPL的【版权宣告】呢?

因为如此一来,你所拿到的软件可能原先只能在Unix上面跑,但是经过原始码的修改之后,你将可以拿他在Linux或者是Windows上面来跑!总之,一个软件挂上了GPL版权宣告之后,他自然就成了自由软件!这个软件就具有底下的特色:

  • 取得软件与原始代码:你可以根据自己的需求来执行这个自由软件;
  • 复制:你可以自由的复制该软件;
  • 修改:你可以将取得的原始代码进行程序修改工作,使之适合你的工作;
  • 再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突;
  • 回馈:你应该将你修改过的程序代码回馈于社群。

Tips:

总体概括的说,你用我的开源软件可以修改,在你修改开发之后你发布出去的软件,必须也是开源的。

(3)这个版权宣告对于作者有何好处?

因为是提供原始代码的自由软件,那么你的程序代码将会有很多人帮你查阅,如此一来,程序的漏洞与程序的优化将会进展的很快!所以,在安全性与效能上面,自由软件一点都不输给商业软件。

此外,因为GPL授权当中,修改者并不能修改授权,因此,你如果曾经贡献过程序代码,你将名留青史。

对于程序开发者来说,GPL是一个非常好的授权,因为大家可以互相学习对方的程序撰写技巧,而且自己写的程序也有人可以帮忙除错。

对于广大的终端用户,或许自己不会编译程序代码或者是帮人家除错,但是终端用户使用的软件绝大部分就是GPL的软件。

大致的优点总结:

  • 软件安全性较佳;
  • 软件执行效能较佳;
  • 软件除错时间较短;
  • 贡献的原始码永远都存在。

Tips1:

GNU的通用公共许可证(GPL),随着时间的推移,也相继出现了第二版GPLv2,和第三版GPLv3,这个可以自己再扩展下。

Tips2:

在这里必须要说明的是由于有GNU所开发的几个重要软件,如:

软件
Emacs
GNUC(GCC)
GNU C Library(glibc)
Bash shell
  • GCC说明

    不论是什么软件,都得要进行编译成为二进制文件(binary program)后才能够执行,说明软件的能见度还是不够。因此他便开始撰写C语言的编译程序,那就是现在相当有名的GNUCCompiler(gcc)
  • Emacs 编辑器、函式库(GNU C library),以及可以被使用来操作操作系统的基本接口BASH shell,这些都在1990年左右完成的。

4、自由软件的活动

1984年创立GNU计划的Stallman先生认为,写程序最大的快乐就是让自己开发的良好的软件让大家使用起来!

如果使用方撰写程序的能力比自己强,那么当对方修改完自己的程序,并且回传修改后的程序代码给自己,那自己的程序撰写功力无形中就更往上爬了!

而既然程序是想要分享给大家使用的,不过每个人所使用的计算机软硬件并不相同,既然如此的话,那么该程序的原始码(Source code)就应该要同时释出,这样才能方便大家修改而适用于每个人的计算机中。这个将原始代码连同软件程序释出的举动,在GNU计划的范畴之内就称为自由软件(Free Software)运动

此外,史托曼同时认为,如果你将你程序的Source code分享出来时,若该程序是很优秀的,那么将会有很多人使用,而每个人对于该程序都可以查阅Source code,无形之中就会有一票人帮你除错,你的程序将会越来越壮大,越来越优秀。

Tips:

什么是Open Source呢?

所谓的Source code是程序发展者写出的源代码,Open Source就是,软件在发布时,同时将作者的原始码一起公布的意思!

5、自由软件与商业行为

有人会说,目前不是有很多Linux开发商贩卖Linux这个GPL授权的软件。原因很简单,因为他们大多都是贩卖的是售后服务。

比如你可以购买他们的Linux光盘,如果你购买了光盘,他们会提供相关的手册说明文件,同时也会提供你数年不等的咨询、售后服务、软件升级与其他协力工作等等的附加价值!

通过服务来收费,自由软件确实还是具有商业空间的。

『学了就忘』Linux基础 — 1、UNIX系统介绍的更多相关文章

  1. 『学了就忘』Linux基础 — 6、VMware虚拟机安装Linux系统(超详细)

    目录 1.打开VMware虚拟机软件 2.选择Linux系统的ISO安装镜像 3.开启虚拟机安装系统 (1)进入Linux系统安装界面 (2)硬件检测 (3)检测光盘 (4)欢迎界面 (5)选择语言 ...

  2. 『学了就忘』Linux基础命令 — 25、文件基本权限的管理

    目录 1.文件和目录的默认权限 2.umask默认权限 (1)查看系统的umask权限 (2)用八进制数值显示umask权限 (3)umask权限的计算方法 (4)注意:umask默认权限的计算绝不是 ...

  3. 『学了就忘』Linux基础 — 5、使用VMware创建虚拟机

    目录 1.在VMware中创建虚拟机 (1)点击[创建新的虚拟机]. (2)选择系统安装方式 (3)选择客户机操作系统 (4)自定义虚拟机的名称和安装位置. (5)指定系统硬盘容量 (6)完成创建 2 ...

  4. 『学了就忘』Linux基础 — 7、补充:安装Linxu系统时设置硬盘挂载说明

    目录 (1)新建一个/home分区 (2)再创建一个/boot分区. (3)创建一个swap分区 (4)最后剩余的空间全部分给根目录 (5)总结 上一篇在VMwar虚拟机中安装Linux操作系统中ht ...

  5. 『学了就忘』Linux基础 — 9、虚拟机中快照的使用

    目录 1.快照的含义 2.快照的使用 步骤一:创建拍摄快照 步骤二:填写快照信息并创建 步骤三:查看快照 步骤四:操作快照 3.管理虚拟机小技巧 4.关于快照说明 快照和克隆是VMware中两个非常实 ...

  6. 『学了就忘』Linux基础 — 10、VMware虚拟机中克隆的使用

    目录 1.什么是克隆 2.克隆的两种类型 (1)完整克隆 (2)链接克隆 3.克隆操作 步骤一:克隆虚拟机 步骤二:进行克隆导向 3.快照与克隆的区别 4.镜像的管理 快照和克隆是VMware中两个非 ...

  7. 『学了就忘』Linux基础 — 11、通过setup工具配置Linux系统IP地址

    目录 1.setup命令介绍 2.使用setup命令配置IP (1)执行setup命令 (2)进入图形化配置界面 (3)选择配置IP还是DNS (4)选择要配置的网卡 (5)进入IP地址配置页面 (6 ...

  8. 『学了就忘』Linux基础 — 13、Linux系统的分区和格式化

    目录 1.Linux系统的分区 (1)磁盘分区定义 (2)两种分区表形式 (3)MBR分区类型 2.Linux系统的格式化 (1)格式化定义 (2)格式化说明 1.Linux系统的分区 (1)磁盘分区 ...

  9. 『学了就忘』Linux基础 — 14、Linux系统的设备文件名和挂载

    目录 1.设备文件名 (1)为什么需要设备文件名 (2)硬件设备文件名命名规则 2.挂载点 3.挂载 (1)什么是挂载 (2)挂载前的分区要求 (3)小结(重点) 1.设备文件名 (1)为什么需要设备 ...

随机推荐

  1. Linux_搭建Samba服务(匿名访问)

    [RHEL8]-SMBserver:[RHEL7]-SMBclient !!!测试环境我们首关闭防火墙和selinux(SMBserver和SMBclient都需要) [root@localhost ...

  2. KVM虚拟化存储管理(4)

    一.KVM存储虚拟化介绍 KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的. Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种型: Vol ...

  3. EasyUI_使用datagrid分页 (Day_28)

    本次分页涉及技术点 SSM+PageHelper+DatagrId 先来看下效果: 这是无条件分页,下一篇博客我们将讲有条件分页. 无论你是使用js加载table 还是直接使用标签. 使用datagr ...

  4. C语言编译器开发之旅(开篇)

    编译器写作之旅   最近在Github上看到一个十分有趣的项目acwj(A Compiler Writing Journey),一个用C语言编写编译器的项目.身为一个程序员,这在我看来是一件十分酷的事 ...

  5. MySQL next-key lock 加锁范围是什么?

    前言 某天,突然被问到 MySQL 的 next-key lock,我瞬间的反应就是: 这都是啥啥啥??? 这一个截图我啥也看不出来呀? 仔细一看,好像似曾相识,这不是<MySQL 45 讲&g ...

  6. 一探即将到来的 C# 10

    前言 本来因为懒不想写这篇文章,但是不少人表示有兴趣,于是最后决定还是写一下. .NET 6 最近几个预览版一直都在开发体验(如 hot reload.linker 等).平台支持(如 Android ...

  7. Echarts的柱状统计图出现x轴统计时间出现间隔显示的问题

    今天在使用Echarts的柱状统计图出现x轴统计时间出现间隔显示的问题: 数据都拿到了,放到Json数组都是完整的, 展现是时候 如下图:

  8. 降维-基于RDD的API

    降维-基于RDD的API Singular value decomposition (SVD) Performance SVD Example Principal component analysis ...

  9. TensorFlow实现超参数调整

    TensorFlow实现超参数调整 正如你目前所看到的,神经网络的性能非常依赖超参数.因此,了解这些参数如何影响网络变得至关重要. 常见的超参数是学习率.正则化器.正则化系数.隐藏层的维数.初始权重值 ...

  10. mybatis在动态 SQL 中使用了参数作为变量,必须要用 @Param 注解

    如果在动态 SQL 中使用了参数作为变量,那么就要用 @Param 注解,即使你只有一个参数.如果我们在动态 SQL 中用到了 参数作为判断条件,那么也是一定要加 @Param 注解的,例如如下方法: ...