聊聊Linux的前世今生_linux的创始人是谁?

聊聊Linux的前世今生_linux的创始人是谁?

精选文章moguli202025-02-08 10:17:2617A+A-

1 Unix 概述

1.1 Unix发展历史

  • 1969年,贝尔实验室的Ken Thompson使用汇编语言和B语言开发和改进了UNICS
  • 1973年,贝尔实验室的Dennis Ritchie使用C语言重新编写实现,并正式命名Unix,从此Unix和C语言成为CP
  • 1977年,伯克利大学开发基于Unix的BSD系统,自此以后各大公司针对自身硬件架构开发了互不兼容的各种版本的Unix,例如SUN公司的Solaris、HP公司的HP UNIX以及IBM公司的AIX
  • 1979年贝尔实验室发表了System V架构 版权声明,HP UNIX、IBM AIX宣布“不对学生提供源码” 并且收回版权
  • 1984年 Andrew S. Tanenbaum荷兰阿姆斯特丹自由大学计算机科学的教授开发了可运行在x86 PC平台的Minix操作系统用于教学。


Unix的发展路线以及各个分支

1.2 Unix系统特点

  • 技术成熟、可靠性高:通常超大型银行、金融公司等可靠性要求性极高的公司会采用Unix作为服务器操作系统,但是Unix通常是随着硬件捆绑销售的,价格特别昂贵,例如IBM的小型机。
  • 支持主流CPU的架构:Intel/AMD,PowerPC,UltraSPARC
  • 支持主流的数据库:Oracle,DB2,Informix
  • 强大的开发功能:Unix促使C语言的诞生,而TCP/IP,XML,WWW都是诞生在Unix之上


2 GUN与开源软件

2.1 GUN概述

由于Unix面临商业化版权制约以及源码面临闭源的问题,1984年Richard Stallman发起了开发自由软件的运动,

并成立自由软件基金会(Free Software Foundation)和GNU(GUN is Not Unix)项目以及GPL(General Public License)协议,目标是编写大量兼容于Unix系统的自由软件。

GNU项目最终产出了Linux系统的重要组件,包括GCC编译器、Emacs编辑器、Bash命令解释程序和编程语言以及gawk。

自由不代表免费,例如RedHat的RHEL是自由但是不免费的操作系统,提供的服务收费。


GPL是保证任何人有共享和修改自由软件的自由,任何人有权获取、修改、发布自由软件的源代码的权利,但同时给出具体的修改的源码。
LGPL(Lesser General Public License)相对于GPL较为宽松,允许不公开全部源代码。

2.2 开源软件

开源指的是软件和源码提供给所有人,同时能够自由分发软件和源代码,能够自由的修改和创建其衍生品。

而目前软件类型可以分为商业软件共享软件以及自由软件

  • 商业软件就是使用收费,例如Window11企业版,Office365,亿图图示等等都是商业软件,其特点就是收费并且不开放源代码。
  • 共享软件就是免费,但是不开放源码,功能会有所局限,相当于免费版,例如微信、QQ 、钉钉
  • 自由软件是开放源码,并且能够自由修改、分发,但是自由不一定意味着免费,典型的RedHat公司发行的REHL就是自由,但是提供的服务是收费的。

2.3 开源协议

目前世界上开源软件有不同的开源许可证,常见的有Apache,MIT,LGPL等等。

  • Apache协议指的是他人修改源码后能够闭源,但是每一个修改过的文件,必须要放置版权说明
  • MIT协议在Apache协议的基础之上,每个修改的文件不需要放置版权说明,并且衍生软件的广告,还可以用你的名字促销,应该是最宽松的开源许可协议
  • LGPL协议指的是他人修改软件的源码之后不能闭源,同时新增的代码也不能采用同样的许可证,但是修改源码的地方不需要提供说明文档
  • Mozila协议是需要提供说明文档

Rocky Linux 系列都是遵守GPLv2协议,如果你安装了 Rocky Linux 后可以使用rpm -qi kernel命令查看

[guanglei@rockylinux9-1 ~]$ rpm -qi kernel

Ansible是GPL-3.0协议

3 Linux概述

3.1 Linux发展历史

我们通常所说的Linux通常指的是内核(kernel)

1991年的10月5日Linus Benedict Torvalds在comp.os.minix 新闻组上发布消息,正式向外宣布他自行 编写的完全自由免费的内核诞生(Freeminix-like kernel sources for 386-AT)— FREAX,含义是怪诞 的、怪物、异想天开类Unix的内核,在GPL下发布

Linux内核官网是 https://www.kernel.org/ , 目前(2024/12/16)Linux内核的最新版本是 6.12.5,不过Linux的发行版(例如 Rocky Linux9、Ubuntu Server 24.04)通常不会立即采用最新的内核版本。

使用uname -r命令查看Linux发行版使用的内核版本

rocky linux 9.4 使用的内核版本是 5.14.0

[guanglei@rockylinux9-1 ~]$ uname -a
Linux rockylinux9-1.ittimeline.net 5.14.0-362.8.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 8 17:36:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

ubuntu 24.04 使用的内核版本是 6.8.0

guanglei@ubuntu2404-1:~$ uname -a
Linux ubuntu2404-1 6.8.0-39-generic #39-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul  5 21:49:14 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

早期Linux内核源码:
https://mirrors.edge.kernel.org/pub/linux/kernel/Historic/
,如果大家对操作系统源码感兴趣的可以研究Linux内核的实现。


3.2 Linux 系统组成(掌握)

而最早期的Linux内核是由Linus Torvalds在大学教授Andrew Tanenbaum开发的Minix基础之上开发的,1991年年底发布了Linux内核的0.02版本。

如果只有内核,就不是一个完整的操作系统,还需要许多能够解决实际问题的应用程序,自那以后全世界的开源爱好者们共同推进着Linux系统的发展,使其在服务器端,嵌入式和PC桌面得到了广泛的运用。

Linux系统=Linux内核+GNU项目组件+各种应用程序(Firefox,Nginx,Zabbix,MySQL)

  • 内核主要是实现硬件驱动管理、进程管理、内存管理、文件管理、安全管理、网络管理
  • GNU组件主要包含处理文件(gawk)、操作文本、管理进程的工具以及 Shell、GCC编译器等等
  • 常见的应用程序包含不同的图形化界面(KDE、GNOME、XFace),运行于桌面端的Firefox,Chrome和运行于服务端Nginx,MySQL,MongoDB,Redis、RocketMQ 等等。


3.3 Linux系统特点

  • 开放源代码、自由传播的类Unix
  • 基于Intel X86系列CPU
  • 支持多任务、多线程、多CPU、多用户
  • 完善的图形用户界面:GNOME、KDE、XFace
  • 完善的开发平台:Java/C/C++/Python/Go/Rust
  • 支持主流数据库:MySQL,Oracle,PostgreSQL
  • 完善的网络服务:HTTP,WWW,SFTP,DNS,SSH等等


3.4 Linux系统应用领域

经过20多年的发展,如今的Linux在服务器领域、桌面领域、移动嵌入式领域和云计算、大数据领域占据了广阔的市场。

  • 其中服务器领域在全球占据了75%的市场份额
  • 而Ubuntu也作为国内最流行的桌面版Linux,基本可以满足日常办公需要,但是在国内普及远远不及Windows。
  • 通过Linux系统架构图可以得知手机操作系统Android的内核就是基于Linux修改而来的。


3.5 Linux主流发行版

为了便于Linux系统的安装和使用,诞生了诸如RedHat公司的Linux发行商,将Linux内核和各种系统组件以及各种应用组件组合成一个完整的操作系统。
目前主流的Linux发行版主要有三大分支,分别是Debian系列、RedHat系列和Slackware系列


Linux 主流分支发行版:
https://github.com/FabioLolix/LinuxTimeline/releases/

  • Debian
    • Ubuntu(Ubuntu Server、Ubuntu Desktop)
    • Mint
  • Slackware
    • SUSE Linux Enterprise Server (收费)
    • Open SUSE
  • RedHat
    • RHEL (RedHat Enterprise Linux)(收费)
    • CentOS(免费开源,没有技术支持,完全兼容 RHEL)
    • RockyLinux(免费开源,没有技术支持,完全兼容 RHEL),替代CentOS


如果想要尝试桌面版的Linux,可以尝试去下载和安装Ubuntu Desktop



如果想要从事Linux运维与架构(SRE 运维),在服务器上基于Linux部署各种服务,例如MySQL,Redis、RabbitMQ、RocketMQ、ELK、Docker、Kubernetes等等,可以尝试去安装和使用 RockyLinux 或者是 Ubuntu Server


国内一些互联网大厂(阿里、华为、腾讯)会根据自身的业务场景定制 Linux

  • 国产
    • Alibaba Cloud Linux
    • 华为 OpenEuler
    • 腾讯 TencentOS Server

Alibaba Cloud LinuxOpenElulerTencentOS Server 也都是基于 CentOS 改进而来。

3.6 Linux 版本选型

选择Linux版本时为了稳定,应该尽量选择LTS版本

为了学习SRE运维我们使用 Linux 版本是 CentOS、RockyLinux 和 Ubuntu Server,一共五个版本

  • CentOS
    • CentOS7.9
  • Ubuntu Server
    • Ubuntu Server 22.04
    • Ubuntu Server 24.04
  • RockyLinux
    • RockyLinux8.10
    • RockyLinux9.5


大家在购买云服务器时也可以选择CentOSRockyLinux 或者 Ubuntu Server

以后在中小型互联网公司工作时一般也是使用云服务器,只有在大型公司(百度、腾讯、阿里、字节跳动、美团、蚂蚁)才会自建数据中心。


3.7 Unix/Linux 哲学思想(了解)

  • 一切皆文件:普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。
  • 小型,单一用途的程序:程序和可执行文件不要太复杂,这样才能保证了Linux内核的高效运行。
  • 链接程序,共同完成复杂的任务:复杂的任务可以通过连接多个简单的程序实现复杂的功能。对于复杂的功能Linux通过许多简单程序的组合等方式实现,也就是后期学习的Shell编程,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的。
  • 避免令人困惑的用户界面:如Windows那样出了问题一般人选择的会是重启,实在是不行的话就是重新安装系统了,因为对于Windows那样不是开源的,并且用户界面比较复杂操作系统出了问题,一般的人是根本没有办法解决的。但是linux就不一样了,Linux是开源的,无论什么问题都可以通过简洁的命令行实现排错,修改系统的配置,一切都是简洁明了为基础。
  • 配置数据存储在文本中:Linux所有的配置文件都存放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可而不是类似于Windows那样将保存在注册表中,并且Windows的注册表需要专门的二进制或十六进制的编辑器才可编辑,修改比较复杂。




点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2