From 7e033c815202316464931aca57c885b7caf126e4 Mon Sep 17 00:00:00 2001 From: 7Wate Date: Fri, 5 Aug 2022 17:58:03 +0800 Subject: [PATCH] =?UTF-8?q?Linux=EF=BC=9ALinux=20=E6=98=AF=E4=BB=80?= =?UTF-8?q?=E4=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wiki/ops/Linux/哲学/_category_.json | 8 + wiki/ops/Linux/基础/_category_.json | 8 + wiki/ops/Linux/{ => 基础}/常用命令.md | 0 .../{ => 基础}/管道符、重定向与环境变量.md | 0 wiki/ops/Linux/文化/Linux 是什么.md | 152 ++++++++++++++++++ wiki/ops/Linux/文化/_category_.json | 8 + 6 files changed, 176 insertions(+) create mode 100644 wiki/ops/Linux/哲学/_category_.json create mode 100644 wiki/ops/Linux/基础/_category_.json rename wiki/ops/Linux/{ => 基础}/常用命令.md (100%) rename wiki/ops/Linux/{ => 基础}/管道符、重定向与环境变量.md (100%) create mode 100644 wiki/ops/Linux/文化/Linux 是什么.md create mode 100644 wiki/ops/Linux/文化/_category_.json diff --git a/wiki/ops/Linux/哲学/_category_.json b/wiki/ops/Linux/哲学/_category_.json new file mode 100644 index 00000000..85cf4658 --- /dev/null +++ b/wiki/ops/Linux/哲学/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "哲学", + "position": 2, + "link": { + "type": "generated-index", + "title": "哲学" + } +} \ No newline at end of file diff --git a/wiki/ops/Linux/基础/_category_.json b/wiki/ops/Linux/基础/_category_.json new file mode 100644 index 00000000..b9523b30 --- /dev/null +++ b/wiki/ops/Linux/基础/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "基础", + "position": 3, + "link": { + "type": "generated-index", + "title": "基础" + } +} \ No newline at end of file diff --git a/wiki/ops/Linux/常用命令.md b/wiki/ops/Linux/基础/常用命令.md similarity index 100% rename from wiki/ops/Linux/常用命令.md rename to wiki/ops/Linux/基础/常用命令.md diff --git a/wiki/ops/Linux/管道符、重定向与环境变量.md b/wiki/ops/Linux/基础/管道符、重定向与环境变量.md similarity index 100% rename from wiki/ops/Linux/管道符、重定向与环境变量.md rename to wiki/ops/Linux/基础/管道符、重定向与环境变量.md diff --git a/wiki/ops/Linux/文化/Linux 是什么.md b/wiki/ops/Linux/文化/Linux 是什么.md new file mode 100644 index 00000000..c2cb8826 --- /dev/null +++ b/wiki/ops/Linux/文化/Linux 是什么.md @@ -0,0 +1,152 @@ +--- +id: Linux 是什么 +title: Linux 是什么 +sidebar_position: 1 +data: 2022年8月5日 +--- + +Linux 是一个开源操作系统和 IT 基础架构平台。它由 Linus Torvalds 于 1991 年构思设计而成,最初这只是他的一项兴趣爱好。如今,它不仅是公共互联网服务器上最常用的操作系统,还是速度排名前 500 的超级电脑上使用的唯一一款操作系统;同时,它也广泛地运用在智能移动设备和嵌入式终端上。 + +Linux 也是自由软件和开放源代码软件发展中最著名的例子。只要遵循 GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用 Linux 的所有底层源代码,也可以自由地修改和再发布。大多数 Linux 系统还包括像提供 GUI 的 X Window 之类的程序。 + +## 历史 + +**提及 Linux 就不得不了解 UNIX 与 GUN 计划,以及它们之间是如何相爱相杀、互相成就的。** + +### UNIX + +UNIX(非复用信息和计算机服务,英语:Uniplexed Information and Computing Service,UnICS)操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由肯·汤普逊、丹尼斯·里奇和道格拉斯·麦克罗伊于 1969 年在 AT&T 的贝尔实验室开发。 + +目前它的**商标权由国际开放标准组织所拥有,只有符合单一 UNIX 规范的 UNIX 系统才能使用 UNIX 这个名称,否则只能称为类 UNIX(UNIX-like)。** + +1965 年贝尔实验室计划要创建一套多用户、多任务、多层次(multi-user、multi-processor、multi-level)的 MULTICS 操作系统。贝尔实验室参与了这个操作系统的研发,但因为开发速度太慢,1969 年贝尔实验室决定退出这个计划。**贝尔实验室的工程师,肯·汤普逊和丹尼斯·里奇,在此时自行开发了 Unix**。 + +此后的10年,Unix 在学术机构和大型企业中得到了广泛的应用,当时的 UNIX 拥有者 **AT&T 公司以低廉甚至免费的许可将 Unix 源码授权给学术机构做研究或教学之用**,许多机构在此源码基础上加以扩展和改进,形成了所谓的“Unix变种”,这些变种反过来也促进了 Unix 的发展,其中最著名的变种之一是由**加州大学柏克莱分校开发的伯克利软件套件(BSD)产品**。 + +后来 AT&T 意识到了 **Unix 的商业价值,不再将 Unix 源码授权给学术机构**,并对之前的 Unix 及其变种声明了著作权权利。故开始了一场持久的著作权官司,直至 AT&T 将自己的 Unix 系统实验室卖掉。 + +新接手的 Novell 采取了一种比较开明的做法,允许柏克莱分校自由发布自己的 Unix 变种,但是前提是必须将来自于 AT&T 的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,**4.4 BSD Lite成为了现代柏克莱软件包的基础版本。**所以从这个角度上,4.4 BSD 又是所有自由版本 Unix 的基础, + +后续 BSD 在发展中也逐渐派生出 3 个主要的分支:[FreeBSD](https://zh.wikipedia.org/wiki/FreeBSD)、[OpenBSD](https://zh.wikipedia.org/wiki/OpenBSD)和[NetBSD](https://zh.wikipedia.org/wiki/NetBSD)。 + +外部链接:[UNIX的完整历史](http://www.levenez.com/unix/) + +![Unix_history-simple](https://static.7wate.com/img/2022/08/05/e52dd5d5baf26.svg) + +### GUN + +1983 年,AT&T 发布了 Unix 最新版 system V,这是一个商业化版本,付费才能使用,并且不得传播源码。正是因为看到了 Unix 被商业化,所以 **1983 年 9 月 27 日由理查德·斯托曼在麻省理工学院公开发起 GNU 计划。** + +GNU 的基本目标和一贯目标是提供一个和 Unix 兼容的 100% 自由软件的操作系统。不是 95%、也不是 99.5%、而是 100% 自由。这个系统的名字叫 **GNU,是 GNU's Not Unix 的首字母递归缩写**——这是对 Unix 的技术思想致敬的一种方法,同时表达 GNU 有所不同。从技术上说,GNU 很像 Unix。但是它不同于 Unix,GNU 给予其用户自由。 + +>关于自由软件,开源软件,商业软件究竟有什么区别? +> +> - 自由软件:反对脑力劳动成果私有化、反知识产权的左翼运动。 +> - 商业软件:支持脑力劳动成果私有化,支持知识产权的右翼运动。 +> - 开源软件:保护脑力劳动成果私有化,保护支持产权同时有条件的开放软件版权的左倾运动。 + +1985 年,理查德·斯托曼创立了自由软件基金会来为 GNU 计划提供技术、法律以及财政支持。到了 1990 年,GNU 计划已经开发出的软件包括了一个功能强大的文字编辑器 Emacs、C 语言编译器 GCC 以及大部分 UNIX 系统的程序库和工具。**唯一依然没有完成的重要组件,就是操作系统的内核(称为HURD)。** + +**1991 年,Linus Torvalds 编写出了与 UNIX 兼容的 Linux 操作系统内核并在 GPL 下发布。**Linux 之后在网上广泛流传。1992 年,Linux 与其他 GNU 软件结合,完全自由的操作系统正式诞生。许多程序员参与了 Linux 的开发与修改,也经常将 Linux 当成开发 GNU 计划软件的平台。该操作系统往往被称为“GNU/Linux”或简称 Linux。 + +**但 Linux 本身不属于 GNU 计划的一部分,GNU 计划自己的内核 Hurd 依然在开发中,目前已经发布 Beta 版本。** + +### Linux + +1991 年,Linus Torvalds 在赫尔辛基大学上学时,对操作系统很好奇。他对 MINIX 只允许在教育上使用很不满(在当时 MINIX 不允许被用作任何商业使用),于是他便开始写他自己的操作系统,这就是后来的 Linux 内核。 + +> Linus Torvalds 曾笑言:我要是知道有 BSD,那我就不开发 Linux 了。 + +Linux 的标志和吉祥物是一只名字叫做 Tux 的企鹅,标志的由来有一说是因为 Linus 在澳洲时曾被一座动物园里的企鹅咬了一口,便选择企鹅作为 Linux 的标志,但更容易被接受的说法是:**企鹅代表南极,而南极又是全世界所共有的一块陆地**。这也就代表 Linux 是所有人的 Linux。 + +#### 发展现状 + +1994 年 3 月,Linux1.0 版正式发布,Marc Ewing 成立 **Red Hat 软件公司**,成为最著名的 Linux 经销商之一。 + +今天由 Linus Torvalds 带领下,众多开发人员共同参与开发和维护 Linux 内核。理查德·斯托曼领导的自由软件基金会,继续提供大量支持 Linux 内核的 GNU 组件。一些个人和企业开发的第三方的非 GNU 组件也提供对 Linux内核的支持,这些第三方组件包括大量的作品,有内核模块和用户应用程序和库等内容。 + +#### 发行版本 + +Linux 发行版指的就是通常所说的”Linux操作系统”,它一般是由一些组织、团体、公司或者个人制作并发行的。 + +Linux 内核主要作为 Linux 发行版的一部分而使用。通常来讲,一个 Linux 发行版包括 Linux 内核,以及将整个软件安装到电脑上的一套安装工具,还有各种 GNU 软件,和其他的一些自由软件,在一些 Linux 发行版中可能会包含一些专有软件。 + +发行版为许多不同的目的而制作,包括对不同电脑硬件结构的支持,对普通用户或开发者使用方式的调整,针对实时应用或嵌入式系统的开发等等。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十多个。较为**知名的有 Debian、Ubuntu、Fedora、CentOS、Arch Linux 和 openSUSE 等**。 + +![Linux_Distribution_Timeline_Dec._2020](https://static.7wate.com/img/2022/08/05/681bed08d91c5.svg) + +## Linux 的优点 + +### 跨平台的硬件支持 + +由于 Linux 的内核大部分是用 C 语言编写的,并采用了可移植的 Unix 标准应用程序接口,所以它支持如 i386、Alpha、AMD 和 Sparc 等系统平台,以及从个人电脑到大型主机,甚至包括智能移动设备和嵌入式设备在内的各种硬件。 + +外部链接:[开源操作系统比较](https://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%AF%94%E8%BE%83) + +#### 支持的平台 + +![支持平台](https://static.7wate.com/img/2022/08/05/3ac589a4a9444.png) + +#### 支持的硬件 + +![支持的硬件](https://static.7wate.com/img/2022/08/05/99141213ed014.png) + +#### 支持的网络 + +![支持的网络](https://static.7wate.com/img/2022/08/05/0d5bf7fcba21d.png) + +#### 网络技术 + +![网络技术](https://static.7wate.com/img/2022/08/05/9321661071d84.png) + +#### 支持的文件系统 + +![支持的文件系统](https://static.7wate.com/img/2022/08/05/c5ab5a8d2f42d.png) + +#### 支持的文件系统特性 + +![支持的文件系统特性](https://static.7wate.com/img/2022/08/05/8e7bf47cc06e2.png) + +#### 安全特性 + +![安全特性](https://static.7wate.com/img/2022/08/05/b2398297dbecd.png) + +### 低资源占用下良好的稳定性 + +Linux 内核的源代码是以标准规范位数的计算机来做的最佳化设计,既可确保其系统的稳定性,也能使在系统上运行的要求比 Windows 或 macOS 低。有些发行版适用于可追溯到 Pentium 系列的 CPU,另一些发行版则仅需要 1 GB 以下的 RAM。正因为 **Linux 的低资源占用和稳定**,才使得一些安装 Linux 的主机像 Unix 机一样常年不关而不曾宕机。 + +### 高效的文件系统 + +**Linux 秉持了「一切皆文件」的 Unix 哲学**,几乎兼容了所有市面上主流的文件系统;它们不但可以对文件设置权限,实施完全的保护,而且可以达到「越用越整齐」,「越用碎片越少」;使用 Linux 完全不需要什么「管家」或者「大师」。 + +### 可靠的安全性 + +Linux 系统的**核心代码是开源的,对用户完全透明**,这意味着你的 Linux 系统漏洞更少。同时,由于 Linux 有着各种各样的不同版本,这也提高了被攻击的难度。你可以在选择更新时通过签名检查进行严格的细粒度控制,大多数的发行版在系统更新时都默认强制安全检查。 + +此外,它采取了很多包括读写权限控制、带保护的子系统、审计跟踪、核心授权的安全措施,这为网络环境中的用户提供了安全保障。当一个病毒在 Linux 下被恶意发布,几个小时后所有的发行版都已经接种了疫苗。你可能很难找到那些每天都提供更新的单一主流操作系统,但是这样的 Linux 发行版却有很多。 + +### 完善纯净的软件包管理机制 + +大部分 Linux 发行版都具有特定的软件包管理工具(类似于无需注册帐号的 App Store),具有易于安装,更新和卸载的特性;并起到了保护配置文件的作用,不需要处理依赖关系也不容易对系统造成污染。同时由于其开源的特点,相较 Windows 和 macOS 里你那些平时用不到却会在每次大版本升级后「卷土重来」的预置应用,在 Linux 里你可以**卸载一切不想安装在系统里的预置应用。** + +### 随心所欲定制 UI + +在 Linux 系统中,你可以对系统功能进行任意更改。 Linux 生态系统中的核心项目之一就是桌面环境——它是一些由基础的用户程序和可视化元素组成的一个集合,比如状态栏和启动器,这些元素构成了用户与计算机的一个交互界面。在 Linux 系统中,用户都可以随意更换他们喜欢的桌面环境。 + +### 社区的支持 + +Linux 系统拥有一个团结且友好型的社区。由于 Linux 在桌面系统是一个相对小众的桌面操作系统,仅占有 3% 左右的市场份额,因此,Linux 社区更希望有更多的潜在用户加入进来。Linux 系统有很多的用户论坛,尤其是对新手比较友好的论坛,它包括非常丰富且全面的知识来帮助用户解决一些基本的系统问题。很多高级用户更倾向于定制 Linux 系统,因此那些 Linux 发行版都拥有非常非常详尽维基文档,以指导用户完成高级的系统应用项目。 + +### 开源 + +因为开源的特性,多数 Linux 发行版都会去中心化在全球部署镜像,平时在 Windows 和 macOS 的更新下载不稳定?在 Linux 设置中更换为本地的镜像源便无须担心。 + +## Linux 的缺点 + +### 游戏绝缘体 + +请去隔壁 Windows,Linux 基本和游戏无缘。 + +### 不支持部分商业应用 + +微信、QQ 等等这些生活中常见的商业软件,虽然 Wine 可以支持 Windows 应用的运行,但是没有 Windows 和 Mac 好用。 diff --git a/wiki/ops/Linux/文化/_category_.json b/wiki/ops/Linux/文化/_category_.json new file mode 100644 index 00000000..aa0aa574 --- /dev/null +++ b/wiki/ops/Linux/文化/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "文化", + "position": 1, + "link": { + "type": "generated-index", + "title": "基础" + } +} \ No newline at end of file