【Linux基础】Linux 发展史

news2024/11/24 12:06:49

转载于 https://blog.csdn.net/weixin_45031801/article/details/133551510

文章目录

  • 1、前言
  • 2、Linux 发展史
    • 2.1 UNIX 发展史
      • 2.1.1 C 语言对 UNIX 的影响
    • 2.2 Linux 的诞生
      • 2.2.1 概述
      • 2.2.2 开源的优势
      • 2.3.3 系统结构
        • 内核层
        • Shell层
        • 应用层
  • 3、Linux 应用领域
    • 3.1 服务器领域
    • 3.2 嵌入式应用领域
    • 3.3 个人桌面领域
    • 3.4 云计算/大数据领域
  • 4、Linux 的发行版本介绍
    • 4.1 CentOS
    • 4.2 Ubuntu
    • 4.3 Fedora
    • 4.4 Kali Linux
    • 4.5 Debian
  • 5、总结

1、前言

 本文主要是介绍 Linux 的发展情况以及代表人物,这里并不需要掌握,熟悉即可,这是作为一个合格的 Linux 学习者,这些东西是需要了解的,而且对于之后的学习与感悟是必不可少的。通过了解Linux的历史,相信你会收获不小!

2、Linux 发展史

 在介绍Linux之前,先来看一下它的前身:UNIX

2.1 UNIX 发展史

 UNIX 操作系统由 肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明的。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由 贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。
  值得可惜的是,由于 Multics 工程计划所追求的目标太庞大,过于复杂,以至它的开发人员都不知道要目标工程需要做到什么样子,最终以失败收场。
 以 肯•汤普森 为首的贝尔实验室研究人员吸取了 Multics 工程计划失败的经验教训,并于 1969 年实现了一种分时操作系统的雏形,1970 年该系统正式取名为 UNIX。想一下英文中的前缀 Multi 和 Uni,就明白了 UNIX 的隐意。Multi 是大的意思,大而且繁;而 Uni 是小的意思,小而且巧。这是 UNIX 开发者的设计初衷,这个理念一直影响至今。

2.1.1 C 语言对 UNIX 的影响

 自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。1971-1972 年,肯•汤普森的同事 丹尼斯•里奇 发明了传说中的 C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。
到了 1973 年,UNIX 系统的绝大部分源代码都用 C 语言进行了重写,这为提高 UNIX 系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与 C 语言是一对孪生兄弟,具有密不可分的关系。
在这里插入图片描述
                 图为 肯•汤普森 与 丹尼斯•里奇 的合影,天才都是不修边幅的……

 随后出现了各种版本的 UNIX 系统,目前常见的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX 等。
20 世纪 70年代初,计算机界还有一项伟大的发明——TCP/IP 协议,这是当年美国国防部接手 ARPAnet 后所开发的网络协议。美国国防部把 TCP/IP 协议与 UNIX 系统、C语言捆绑在一起,由 AT&T 发行给美国各个大学非商业的许可证,这为 UNIX 系统、C语言、TCP/IP 协议的发展拉开了序幕,它们分别在操作系统、编程语言、网络协议这三个领域影响至今。肯•汤普森和丹尼斯•里奇因在计算机领域做出的杰出贡献,于 1983 年获得了计算机科学的最高奖——图灵奖。

2.2 Linux 的诞生

 Linux 内核最初是由 林纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他只是觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,也可能是出于英雄主义。于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10000 行代码。
在这里插入图片描述

2.2.1 概述

 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,它是一个性能稳定的多用户网络操作系统。
Linux 操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux 存在着许多不同的版本,但相同的是它们都使用了 Linux 内核。Linux 可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux 这个词本身只表示 Linux 内核,但实际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核,并且使用 GNU 工程各种工具和数据库的操作系统。

2.2.2 开源的优势

 林纳斯•托瓦兹没有保留 Linux 源代码的版权,而是公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。
 同时吸引了更多的有志之士加入开发,现在只有 2% 的 Linux 核心代码是由 林纳斯•托瓦兹 自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由林纳斯•托瓦兹和后来陆续加入的众多 Linux 爱好者共同开发完成的,当然也有黑客。相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX 大部分都是收费的,小公司和个人都难以承受。
林纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,他还搞出了世界上最先进的分布式版本控制系统 Git

在这里插入图片描述
 Linux 的 Logo 是一只企鹅。企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,任何国家都无权将南极洲纳入其版图。Linux 选择企鹅图案作为 Logo,其含义是:开放源代码的 Linux 为全人类共同所有,可公司无权将其私有。

2.3.3 系统结构

 Linux 系统可以抽象为 3 个层次,如下图所示。底层是 UNIX / Linux 操作系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层。
在这里插入图片描述

内核层

 内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。

Shell层

 Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。

应用层

 应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),任何系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。现在大多数的 UNIX 系统上(包括 Solaris、HP-UX、AIX 等)都可以运行 CDE (Common Desktop Environment,通用桌面环境,是运行于 UNIX 的商业桌面环境)的用户界面;而在 Linux 上广泛应用的有 Gnome、KDE 等。

X Window 与微软的 Windows 图形环境区别就在于:

① Linux 系统与 X Window 没有必然捆绑的关系,也就是说,Linux 可以安装 X Window,也可以不安装;而微软的 Windows 图形环境与内核捆绑密切。
② Linux 系统不依赖图形环境,依然可以通过命令行完成 100% 的功能,而且因为不使用图形环境还会节省大量的系统资源。(这里才是重点)

3、Linux 应用领域

 自诞生至今,Linux 系统经过无数人的开发与完善,逐渐发展成了与 Unix、Windows 并列的操作系统,且应用于人类生活的诸多领域,包括服务器领域、嵌入式领域和桌面应用领域等。

3.1 服务器领域

 Linux 系统最显著的优点便是稳定,这是企业服务器对系统的首要要求。此外,Linux 系统是自由软件,还具备体积小、价位低、可定制等优点,可用于搭建 Web、数据库、邮件、DNS、FTP 等各种服务器。总的来说,使用 Linux 搭建的服务器不仅功能齐全、稳定性高、运营成本小,还无需考虑版权问题,因此 Linux 系统逐渐渗入到了电信、政府、教育、银行、金融等各个行业,在服务器领域的应用也越来越广泛。

3.2 嵌入式应用领域

 由于具有成本低廉、可设定性强的特点,Linux 在嵌入式应用领域的使用也极其广泛,从路由器、交换机、防火墙等因特网设备,到冰箱、空调等各种家用电器,以及自动贩卖机等专用的控制系统都有 Linux 系统的身影。此外,Linux 也是目前移动设备上常用的操作系统之一。

3.3 个人桌面领域

 近年来,特别在国内市场,Linux 桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推出的 Linux 桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。

3.4 云计算/大数据领域

 互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。

4、Linux 的发行版本介绍

4.1 CentOS

CentOS 是一款企业级 Linux 发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS 值得一试。此外,CentOS 的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS 使用 YUM 来管理软件包。

4.2 Ubuntu

 Ubuntu 是 Debian 的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu 侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行 Ubuntu Linux 的移动设备上很常见。Ubuntu 是新手用户肯定爱不释手的一款操作系统。
红帽企业级Linux 这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。

4.3 Fedora

 小巧的 Fedora 适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。

4.4 Kali Linux

 Kali Linux 是 Debian 的一款衍生版。Kali 旨在用于渗透测试。Kali 的前身是 Backtrack。用于 Debian 的所有 Binary 软件包都可以安装到 Kali Linux上,而 Kal i的魅力或威力就来自于此。此外,支持 Debian 的用户论坛为 Kali 加分不少。Kali 随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(不谈论恶意黑客)青睐的操作系统。

4.5 Debian

 Debian 运行起来极其稳定,这使得它非常适合用于服务器。 debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。

5、总结

 通过上面对linux的发展历程、应用领域,包括对各个版本的介绍,相信大家对Linux系统有了外观上的了解,之后还会更新一些比较技术性的博文,大家一起讨论学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1100578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python算法练习 10.16

leetcode 437 路径总和III 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的&#xff…

SpringBoot集成Dubbo

1. 构建SpringBoot环境 1.1 创建一个duubo-spring-boot-demo项目 duubo-spring-boot-demo:是父工程,方便依赖管理duubo-spring-boot-demo-consumer:是服务消费方,继承父工程duubo-spring-boot-demo-provider:是服务提…

数据结构 2 第二章 线性结构 代码实现

头文件 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdlib.h>//malloc函数头文件 #include <time.h> #include <string.h> #include <limits.h> #include <ctype.h> #include <math.h> # include <stdio.h> 一、单链表 1.单链…

Segment Anything(论文解析)

Segment Anything 摘要1.介绍2 SAM任务SAM模型 摘要 我们介绍了“Segment Anything” (SA) 项目&#xff1a;这是一个新的任务、模型和数据集对于图像分割。使用我们高效的模型进行数据收集&#xff0c;我们构建了迄今为止最大的分割数据集&#xff08;远远超过其他数据集&…

C语言进行实验:通过程序实现线算图取值【支持VC++ 6.0编辑器环境运行】

背景&#xff1a; 一、实验目的和要求 1、能描述数据基本类型及其常量的表示方法&#xff1b; 2、会对变量进行定义及初始化&#xff1b; 3、能使用运算符与表达式对变量赋值&#xff1b; 4、会描述C语句的概念及种类、C语言常用的输入/出方式&#xff1b; 5、会设计顺序…

typora主题切换与推荐主题

在这篇博文中&#xff0c;我将向你展示如何给typora更换主题&#xff0c;并推荐几款出色的主题。通过这些主题的使用&#xff0c;你可以为你的typora编辑器增添一抹别样的风采&#xff0c;让你的写作体验更加美好、舒适。 typora替换主题的步骤非常简单&#xff0c;只需按照以…

科技资讯|苹果Vision Pro可通过手势ID检测不同用户

近日&#xff0c;美国专利局公布了苹果公司的一项专利申请&#xff0c;该专利申请涉及基于手部特征验证用户身份的技术。苹果指出&#xff0c;可能是多个家庭成员都想使用 Apple Vision Pro&#xff0c;系统必须识别不同的手势以控制 visionOS。在另一个示例中&#xff0c;苹果…

无频闪护眼灯哪个好?五款无频闪护眼台灯推荐

青少年的近视率持续升高&#xff0c;保护眼睛非常重要。台灯是用眼环境的必备品&#xff0c;而市面上款式多样不知如何购买。这期就来聊聊护眼台灯的选购问题&#xff01; 都说成人的世界不容易&#xff0c;社交网络上时常有人吐槽996工作制&#xff0c;但要知道的是现在的学生…

(vue)el-descriptions 描述列表无效

(vue)el-descriptions 描述列表无效 原因&#xff1a;element 的版本不够 解决&#xff1a;运行下面两个命令 npm uninstall element-ui //卸载之前安装的版本 npm i element-ui -S //重新安装解决参考&#xff1a;https://blog.csdn.net/weixin_59769148/article/details/1…

vector+算法sort与list+sort的效率比较,容易写错的地方原因探析

我写的代码&#xff1a; #include <iostream> using namespace std; #include <vector> #include <list> #include <algorithm> int main() {const int N 10000000;vector<int> v;list<int> l;for (int i 0; i < N; i){v.push_back(…

SpringCloud Gateway网关梳理

前言 在中大型系统中&#xff0c;Gateway网关发挥着关键的作用&#xff0c;Gateway可以运用在许多应用场景&#xff0c;如接口限流、日志监控、授权认证等等。下面对过往的Gateway知识做一个归纳与总结。 一、路由 路由是Gateway网关中的基础组件&#xff0c;它由一个org.sp…

C#开发的OpenRA游戏之金钱系统(2)

C#开发的OpenRA游戏之金钱系统(2) 在我们玩这个游戏时,就会发现每当创建一个新精炼工厂,就会带有一台采矿车,这是怎么样实现的呢? 这个就需要查看建筑物下面这个字段: FreeActor: Actor: HARV SpawnOffset: 1,2 Facing: 256 FreeActor就是标记为免费的物品,在这里

xdma axi-stream

xdma 回环 vivado 里有官方示例 fpga&#xff1a;pcie rx – axi-stream master – axi-stream slave – pcie tx 流程&#xff1a;电脑启动读取&#xff0c;然后电脑再在超时时间内写入。或者电脑启动写入&#xff0c;然后电脑再在超时时间内读出。只读取或只写入会报超时&am…

小程序开发平台源码系统+活动在线报名小程序功能 带完整的搭建教程

今天来给大家分享一下小程序开发平台源码系统的活动在线报名小程序功能。活动在线报名小程序是一种方便快捷的活动报名方式&#xff0c;可以通过小程序进行宣传和报名&#xff0c;让参与者可以方便快捷地进行报名和参加活动。小程序有完整的搭建教程&#xff0c;以下是部分功能…

【14】基础知识:React - redux

一、 redux理解 1、学习文档 英文文档&#xff1a;https://redux.js.org/ 中文文档&#xff1a;http://www.redux.org.cn/ Github: https://github.com/reactjs/redux 2、redux是什么 redux 是一个专门用于做状态管理的 JS 库(不是 react 插件库)。 它可以用在 react&am…

记一次MySQL5初始化被kill的问题排查 | 京东云技术团队

写在前面 由于测试环境JED申请比较繁琐&#xff0c;所以Eone提供了单机版Mysql供用户使用&#xff0c;近期Eone搭建Mysql5的时候发现莫名被kill了&#xff0c;容器规格是4C8G&#xff0c;磁盘30G 这不科学&#xff0c;之前都是可以的&#xff0c;镜像没变&#xff0c;配置没变…

分享大数据培训班班型

泰迪大数据培训班有VIP就业保障班&#xff0c;项目实战班&#xff0c;技能进阶班&#xff0c;技能提升班。不同班型对应不同学习服务。 一、VIP 就业保障班 二、大数据分析/开发项目实战班 三、技能进阶班 四、技能提升班

RabbitMQ 安装和使用Demo

同步是阻塞 MQ&#xff1a;消息队列&#xff0c;基础数据结构中"先进先出"的数据结构。用来解决应用解耦&#xff0c;异步消息&#xff0c;流量消峰等问题。 RabbitMQ、RocketMQ、Kafka RocketMQ 是阿里的 应用层开发使用RabbitMQ 大数据开发Kafka MQ是不是微服务都…

【MATLAB源码-第49期】基于蚁群算法(ACO)算法的栅格路径规划,输出最佳路径图和算法收敛曲线图。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蚁群算法是一种模拟自然界蚂蚁觅食行为的启发式优化算法。在蚁群系统中&#xff0c;通过模拟蚂蚁之间通过信息素沟通的方式来寻找最短路径。 在栅格路径规划中&#xff0c;蚁群算法的基本步骤如下&#xff1a; 1. 初始化: …

【Redis】Redis持久化策略

目录 策略RDBbgsave执行流程RDB效果演示RDB优缺点 AOFAOF缓冲区刷新策略AOF的重写机制AOF重写机制的触发机制AOF重写流程 混合持久化同时存在aof和rdb快照&#xff0c;以谁为主&#xff1f;信号 策略 RDB > Redis DataBase 相当于定期的方式实现持久化AOF > Append Only…