Linux 的发展历史,设计哲学和一些常用的术语介绍

简介: Linux 的发展历史,设计哲学和一些常用的术语介绍

1991 年,Linus Torvalds 还是芬兰赫尔辛基的一名学生,当时他开始了一个项目:编写自己的操作系统内核。 他还收集和开发了构建以他的内核为中心的整个操作系统所需的其他基本要素。 不久之后,它就被称为 Linux 内核。


1992 年,Linux 使用通用公共许可证 (GPL) 由 GNU(自由软件基金会或 FSF 的一个项目,促进免费提供的软件)重新获得许可,这使得建立全球开发人员社区成为可能。 通过将内核与 GNU 项目的其他系统组件相结合,许多其他开发人员在 90 年代中期创建了称为 Linux 发行版的完整系统。


image.png


Linux 的历史

90 年代中期创建的 Linux 发行版为完全免费(在自由的意义上,而不是零成本)计算提供了基础,并成为开源软件运动的推动力。 1998 年,IBM 和 Oracle 等大公司宣布支持 Linux 平台,并开始了重大的开发工作。


今天,Linux 为互联网上超过一半的服务器、大多数智能手机(通过建立在 Linux 之上的 Android 系统)以及世界上所有最强大的超级计算机提供支持。


每个成功的项目或组织都需要一种隐含或显式的哲学来确定其目标并规划其成长路径。


image.png


Linux 由来自世界各地的开发人员组成的网络不断增强和维护,这些开发人员通过 Internet 协作,以 Linus Torvalds 为首。 技术技能、贡献的愿望以及与他人合作的能力是参与的唯一资格。


Linux 大量借鉴了完善的 UNIX 操作系统。 它被编写为一个免费的开源系统,用于代替 UNIX,当时 UNIX 是为比 PC 更强大的计算机设计的,而且非常昂贵。 文件存储在分层文件系统中,系统的顶部节点是根或简单的“/”。 只要有可能,Linux 就会通过文件或看起来像文件的对象来提供其组件。 进程、设备和网络套接字都由类文件对象表示,并且通常可以使用与常规文件相同的实用程序来使用。 Linux 是一个完全多任务处理(即同时执行多个线程)、多用户操作系统,具有在 UNIX 世界中称为守护进程的内置网络和服务进程。


在开始使用 Linux 之前,您需要了解一些基本术语,例如内核、发行版、引导加载程序、服务、文件系统、X Window 系统、桌面环境和命令行。这些在 Linux 社区中非常常用。


内核被认为是 Linux 操作系统的大脑。它控制硬件并使硬件与应用程序交互。内核的一个例子是 Linux 内核。可以在 kernel.org 网站上找到最新的 Linux 内核以及过去的 Linux 内核。


发行版也称为 Distros,是与 Linux 内核结合构成基于 Linux 的操作系统的程序集合。发行版的一些常见示例是 Red Hat Enterprise Linux、Fedora、Ubuntu 和 Gentoo。

引导加载程序,顾名思义,是一个引导操作系统的程序。引导加载程序的两个示例是 GRUB 和 ISOLINUX。


服务是作为后台进程运行的程序。该服务的一些示例是 httpd、nfsd、ntpd、ftpd 和 named。


文件系统是一种在 Linux 中存储和组织文件的方法。文件系统的一些示例是 ext3、ext4、FAT、XFS 和 Btrfs。


X Window 系统提供了标准工具包和协议,用于在几乎所有 Linux 系统上构建图形用户界面。


桌面环境是操作系统之上的图形用户界面。 GNOME、KDE、Xfce 和 Fluxbox 是桌面环境的一些示例。


命令行是用于在操作系统之上键入命令的界面。


Shell 是命令行解释器,它解释命令行输入并指示操作系统执行任何必要的任务和命令。例如,bash、tcsh 和 zsh。


Linux distribution 和 kernel 的关系

Linux内核是操作系统的核心。完整的 Linux 发行版由内核和许多其他用于文件相关操作、用户管理和软件包管理的软件工具组成。这些工具中的每一个都提供了完整系统的一部分。每个工具通常都是自己独立的项目,有自己的开发人员致力于完善系统的这一部分。


虽然最新的 Linux 内核(和更早的版本)总是可以在 Linux 内核档案中找到,但 Linux 发行版可能基于不同的内核版本。例如,非常流行的 RHEL 7 发行版是基于 3.10 内核的,它不是新的,但非常稳定。其他发行版可能会更快地采用最新的内核版本。需要注意的是,内核并不是一个全有或全无的主张,例如,RHEL 7/CentOS 7 已将许多较新的内核改进合并到其旧版本中,Ubuntu、openSUSE、SLES 等也是如此。


image.png


发行版提供的其他基本工具和成分的示例包括 C/C++ 编译器、gdb 调试器、应用程序需要链接才能运行的核心系统库、用于在屏幕上绘制图形的低级接口,以及更高级别的桌面环境,以及用于安装和更新各种组件(包括内核本身)的系统。并且所有发行版都带有已经安装的相当完整的应用程序套件。


发行版及关联的服务

各种各样的 Linux 发行版旨在迎合许多不同的受众和组织,根据他们的特定需求和品味。但是,大型组织,例如公司和政府机构以及其他实体,倾向于选择来自 Red Hat、SUSE 和 Canonical (Ubuntu) 的主要商业支持发行版。


CentOS 是 Red Hat Enterprise Linux (RHEL) 的流行免费替代品,经常被那些在没有付费技术支持的情况下轻松操作的组织使用。 Ubuntu 和 Fedora 被开发人员广泛使用,在教育领域也很受欢迎。 Scientific Linux 因其与科学和数学软件包的兼容性而受到科学研究界的青睐。 CentOS 和 Scientific Linux 都与 RHEL 二进制兼容;即在大多数情况下,二进制软件包将在各个发行版中正确安装。


许多商业发行商,包括 Red Hat、Ubuntu、SUSE 和 Oracle,为其发行版提供长期收费支持以及硬件和软件认证。所有主要分销商都提供更新服务,使您的系统保持最新的安全和错误修复以及性能增强,并提供在线支持资源。

image.png

相关文章
Linux Ctrl r 快速查询历史命令并查找符合条件的多条命令
Linux Ctrl r 快速查询历史命令并查找符合条件的多条命令
|
存储 Linux
Linux重新执行某个历史命令
Linux重新执行某个历史命令
89 0
Linux重新执行某个历史命令
|
Linux 开发工具 芯片
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十八)驱动设计的思想:面向对象/分层/分离
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十八)驱动设计的思想:面向对象/分层/分离
124 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十八)驱动设计的思想:面向对象/分层/分离
|
Ubuntu Linux 数据安全/隐私保护
ZYNQ - 嵌入式Linux开发 -06- petalinux设计流程
ZYNQ - 嵌入式Linux开发 -06- petalinux设计流程
523 0
ZYNQ - 嵌入式Linux开发 -06- petalinux设计流程
|
存储 测试技术 Linux
软件测试面试题:linux下的CP命令设计测试用例?
软件测试面试题:linux下的CP命令设计测试用例?
139 0
|
Shell Linux 数据安全/隐私保护
30道linux操作系统shell程序综合设计题
30道linux操作系统shell程序综合设计题
253 0
|
Shell Linux
Linux—history命令 –– 查看与操纵历史命令
history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。
496 0
|
程序员 Linux
程序员之路:Linux历史命令
程序员之路:Linux历史命令
191 0
|
存储 设计模式 运维
Linux文件系统设计简单了解
Linux文件系统设计简单了解
222 0