【Linux基础】Linux发展史

news2024/9/21 12:31:53

👉系列专栏:【Linux基础】

🙈个人主页:sunny-ll


一、前言

本篇主要介绍Linux的发展历史,这里并不需要我们掌握,但是作为一个合格的Linux学习者与操作者,这些东西是需要了解的,而且对于我们之后的学习与感悟是必不可少的。读史以明智,通过了解Linux的历史,相信你会收获不小!

二、Linux发展史 

💦 在这里简要介绍Linux的发展史。要说Linux,还得从UNIX说起。

🍎UNIX的发展史

💦 UNIX的诞生

        UNIX 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。

        可惜,由于 Multics 工程计划所追求的目标太庞大、太复杂,以至于它的开发人员都不知道要做成什么样子,最终以失败收场。

        以肯•汤普森为首的贝尔实验室研究人员吸取了 Multics 工程计划失败的经验教训,于 1969 年实现了一种分时操作系统的雏形,1970 年该系统正式取名为 UNIX。

想一下英文中的前缀 Multi 和 Uni,就明白了 UNIX 的隐意。Multi 是大的意思,大而且繁;而 Uni 是小的意思,小而且巧。这是 UNIX 开发者的设计初衷,这个理念一直影响至今。
 

💦C语言对UNIX的影响 

        自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。1971-1972 年,肯•汤普森的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。

        到了 1973 年,UNIX 系统的绝大部分源代码都用C语言进行了重写,这为提高 UNIX 系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与C语言是一对孪生兄弟,具有密不可分的关系。

        图 1 为肯•汤普森与丹尼斯•里奇的合影,天才都是不修边幅的……

        随后出现了各种版本的 UNIX 系统,目前常见的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX 等。

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

🍐Linux 的诞生 

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

 💦Linux概述

        Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

        Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。

 💦Linux开源的优势

        林纳斯•托瓦兹没有保留 Linux 源代码的版权,而是公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。

        为了吸引更多的有志之士加入开发据估计,现在只有 2% 的 Linux 核心代码是由林纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由林纳斯•托瓦兹和后来陆续加入的众多 Linux 爱好者共同开发完成的,当然也有黑客。

        相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX 大部分都是收费的,小公司和个人都难以承受。
 

        林纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,他还搞出了世界上最先进的分布式版本控制系统Git 。

        Linux的Logo 是一只企鹅。

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

🍉Linux系统结构 

         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% 的功能,而且因为不使用图形环境还会节省大量的系统资源。(这里才是重点)

🍓Linux应用领域

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

💦服务器领域

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

 💦嵌入式应用领域

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

💦个人桌面领域

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

 💦Linux在云计算/大数据领域的发展

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

🍌Linux的发行版本 

💦CentOS

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

💦Ubuntu 

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

 💦Fedora

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

 💦Kali Linux

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

 💦Debian

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

四、共勉 

        通过上面的介绍,想必你对Linux有了更加深入的了解也了解到了它的重要性,这可以使以后Linux的学习目标更加明确,同时我还会继续更新对 Linux基础的讲解,请持续关注我哦!!! 

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

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

相关文章

线程的概述

#include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); 功能&#xff1a;创建一个子线程 参数&#xff1a; -thread:传出参数&#xff0c;线程创建成功后&#xff0c;子线程的ID被写到…

SSRF+redis未授权漏洞复现

1.SSRF漏洞简介 SSRF&#xff08;Server-Side Request Forgery&#xff09;即服务器端请求伪造&#xff0c;是一种由攻击者构造攻击链传给服务器&#xff0c;服务器执行并发起请求造成安全问题的漏洞&#xff0c;一般用来在外网探测或攻击内网服务。当网站需要调用指定URL地址…

Inno Setup新手使用教程

1.编写脚本.iss文件 2.使用Inno Setup打开脚本 3.点击运行 4.打包好的文件在output文件夹下 注&#xff1a;运行不通过可能是文件不存在或者路径错误 推荐一个零声学院项目课&#xff0c;个人觉得老师讲得不错&#xff0c;分享给大家&#xff1a; 零声白金学习卡&#xff08;含…

重生奇迹MU刷装备注意事项

在打斗游戏里面装备的作用非常巨大&#xff0c;较好的武器装备可以为玩家带来不错的体验&#xff0c;很多玩家甚至不惜花重金打造属于好装备。那么游戏中刷装备需要注意什么。 一、对武器装备的认识 对于玩家来说需要对武器装备有一定的认识&#xff0c;连基本的武器装备分类都…

# Flink的状态

1.什么是时状态(state)&#xff1f; 有状态的计算是流处理框架要实现的重要功能&#xff0c;因为稍复杂的流处理场景都需要记录状态&#xff0c;然后在新流入数据的基础上不断更新状态。 例如以下状态都需要使用流处理的状态功能&#xff1a; 数据流中的数据有重复&#xff0c…

1.springcloudalibaba nacos2.2.3部署

前言 nacos是springcloudalibaba体系的注册中心&#xff0c;演示如何搭建最新稳定版本的linux搭建。 前置条件&#xff0c;安装好jdk1.8 一、二进制压缩包下载 1.1 下载压缩包 nacos下载 点击下载下载后得到二进制包如下 nacos-2.2.3.tar.gz二、安装步骤 2.1.解压二进制…

十、2023.10.4.计算机网络(one).10

文章目录 1、简述静态路由和动态路由&#xff1f;2、说说有哪些路由协议&#xff0c;都是如何更新的&#xff1f;3、简述域名解析过程&#xff0c;本机如何干预域名解析&#xff1f;4、简述 DNS 查询服务器的基本流程是什么&#xff1f;DNS 劫持是什么&#xff1f;5、简述网关的…

Lwip的接收邮箱大小的影响

LwIP&#xff08;Lightweight IP&#xff09;是一个用于嵌入式系统的轻量级的TCP/IP协议栈&#xff0c;它支持UDP和其他网络协议。 接收邮箱大小 在LwIP中&#xff0c;UDP接收邮箱的大小对系统性能和可靠性有一定影响。 首先&#xff0c;UDP接收邮箱的大小决定了可以同时接收…

如何去占用windows端口

一、问题: 测试的服务使用的端口号范围为6881~6888&#xff0c;一般使用6881&#xff0c;如果该端口被占用&#xff0c;应该去使用其他端口&#xff0c;验证是不是真的这样 二、占用windows端口号方法 1、修改注册表 修改window现有远程连接服务的端口号&#xff08;可能有其他…

计算机中的进制转换

在计算机软件中&#xff0c;经常需要进行进制转换&#xff0c;这包括二进制、八进制、十进制和十六进制之间的转换。以下是一些常见的转换方法&#xff1a; 二进制转十进制&#xff1a;这是最直接的转换&#xff0c;基本上不需要什么特别的算法。你只需要按照二进制的权值进行…

MacBook 录制电脑内部声音

MacBook 录制电脑内部声音 老妈喜欢跳广场舞&#xff0c;现在广场舞音频下载都收费了&#xff01;没办法&#xff0c;只能自己录歌了&#xff0c;外录有杂音大家也都知道&#xff0c;所以就只能采用内录的方式然后再用 Audition 调整一下音量大小。 一、&#xff08;前置条件&a…

【计算机网络】高级IO——select

文章目录 1. select函数介绍为什么要有select&#xff1f;select 接口第一个参数 nfds的理解什么是 输入 输出型参数最后一个参数 timeout 的理解readfds writefds exceptfds 参数的理解select的返回值 2. select的使用SelectServer_v1start 最初版本start 最终版本HandlerEven…

【成像光敏描记图提取和处理】成像-光电容积描记-提取-脉搏率-估计(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Apollo Planning2.0决策规划算法代码详细解析 (2): vscode gdb单步调试环境搭建

前言: apollo planning2.0 在新版本中在降低学习和二次开发成本上进行了一些重要的优化,重要的优化有接口优化、task插件化、配置参数改造等。 GNU symbolic debugger,简称「GDB 调试器」,是 Linux 平台下最常用的一款程序调试器。GDB 编译器通常以 gdb 命令的形式在终端…

C/C++进程超详细详解【下部分】(系统性学习day8)

目录 前言 一&#xff0c;有名管道通信 1 .概念 2 .创建有名管道 实例代码如下&#xff1a; 二、信号通信 1 .概念 2 .用户进程对信号的响应方式 3. 用户进程对常用信号的缺省操作 4. 信号处理流程 5. 信号相关函数(系统调用) 5.1 kill - 给指定进程发送信号 实例代…

使用云服务器部署SpringBoot+Vue项目

一、购买云服务器并配置安全组 二、准备好前后端项目并先打包好 对于前端文件。新建文件 .env.development VUE_APP_BASEURLhttp://localhost:9090 还有新建文件 .env.production VUE_APP_BASEURLhttp://:9090 main.js 设置全局变量 $baseUrl Vue.prototype.$baseUrlproc…

mysql面试题18:MySQL中为什么要用 B+树,为什么不用二叉树?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL中为什么要用 B+树,为什么不用二叉树? MySQL数据库索引是一种数据结构,用于提高数据查询的效率。在MySQL中,常用的索引类型包括B+树索引…

LLMs 奖励模型 RLHF: Reward model

在这个阶段&#xff0c;您已经拥有了训练奖励模型所需的一切。虽然到目前为止&#xff0c;已经付出了相当多的人力&#xff0c;但在训练奖励模型完成后&#xff0c;您将不需要再涉及更多的人类。相反&#xff0c;奖励模型将在强化学习微调过程中代替人类标记者&#xff0c;自动…

(五)正点原子STM32MP135移植——烧录

一、概述 这里用的烧录方式是使用STM32CubeProgrammer USB方式烧录 二、文件准备 还记得FIP_artifacts文件夹吗&#xff0c;里面存放了TF-A、optee、u-boot编译输出的东西&#xff0c;以及最后的fip-stm32mp135-atk-optee.bin文件 烧写程序需要准备这些&#xff1a; 1. …

网站强制跳转至国家反诈中心该怎么办?怎么处理?如何解封?

在互联网环境中&#xff0c;网站安全是非常重要的。然而&#xff0c;在实际操作过程中&#xff0c;不少网站可能因内容问题、技术安全漏洞等原因被迫下线甚至跳转至国家反诈骗中心网址。面对这一严峻问题&#xff0c;我们如何有效解决&#xff0c;让网站恢复运行并解除强制跳转…