在学习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. MySQL 查询操作

    目录 基本语法 查询常量 查看表达式 查询函数 查询指定字段 查询所有列 列别名 表别名 条件查询 条件查询运算符 逻辑查询运算符 排序与分页 排序查询(order by) 排序方式 limit 分组 ...

  2. 057.Python前端Django模型ORM多表查询

    一 基于对象的查询 1.1 一对多查询 设计路由 from django.contrib import admin from django.urls import path from app01 im ...

  3. mysql基础之mariadb概念

    一.数据库介绍 什么是数据库(Database)? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库 ...

  4. Python3统计gitlab上的代码量

    import threading import gitlab import xlwt #获取所有的user def getAllUsers(): usersli = [] client = gitla ...

  5. Docker的镜像理解以及容器的备份、恢复和迁移操作

    Docker的镜像理解以及容器的备份.恢复和迁移操作 这篇文章主要介绍了Docker的镜像理解以及容器的备份.恢复和迁移操作,覆盖很多原理知识以及容器的重要操作步骤,极力推荐!需要的朋友可以参考下 D ...

  6. IDEA 配置 Tomcat(详细)(Day_12)

    如果这世界上真有奇迹,那只是努力的另一个名字.生命中最难的阶段,不是没有人懂你,而是你不懂你自己. 运行环境 AND 版本 JDK8 + IntelliJ IDEA 2018.3  +   Tomca ...

  7. C语言编程 菜鸟练习100题(01-10)

    [练习1]输出 "Hello, World!" 0. 题目: 输出 "Hello, World!" 1. 分析: 使用 printf() 输出 "He ...

  8. 【无人机航空摄影测量精品教程】目录:摄影测量、Pix4d、EPS、CC、PhotoScan项目化作业流程及注意事项汇总

    目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 该专栏为目前最为热门的无人机航测内外业项目,主要内容包括:无人机航测外业作业流程(像控点布设.航线规划.仿地飞行.航拍)和内业数据 ...

  9. ISP_DPC坏点矫正

    ISP_DPC坏点矫正 1. 坏点介绍 图像坏点(Bad pixel) : 图像传感器上光线采集点(像素点)所形成的阵列存在工艺上的缺陷,或光信号进行转化为电信号的过程中出现错误,从而会造成图像上像素 ...

  10. C ++变量,文字和常量

    C ++变量,文字和常量 本文将借助示例来学习C ++中的变量,文字和常量. C ++变量 在编程中,变量是用于保存数据的容器(存储区). 为了指示存储区域,应该为每个变量赋予唯一的名称(标识符).例 ...