Linux简介:从Unix到Linux的发展与核心体系

Linux简介:从Unix到Linux的发展与核心体系

前言

Linux作为当下最主流的开源操作系统之一,广泛应用于服务器、嵌入式设备、云计算等领域,其发展根源可追溯到经典的Unix系统。本文将从Unix&Linux的发展历史Linux发行版本Linux体系结构三个核心维度,全面讲解Linux的起源与基础架构,为Linux入门学习打下基础。

一、Unix & Linux 的发展历史

Linux并非凭空诞生,其发展建立在Unix系统的技术积累之上,背后是数十年的操作系统技术迭代,以下为关键时间节点和核心事件梳理:

1969年以前:Multics计划的探索

早期操作系统为批处理操作系统 ,存在多任务排队等待的缺陷,计算资源利用率极低。

1960年初,MIT开发CTSS兼容分时系统 ,实现多任务切换,让用户感觉独享主机资源,但仅支持30个左右终端。

1965年,贝尔实验室、MIT、通用电器公司联合发起Multics计划,目标是让大型主机支持300+终端,提升资源利用率。1969年,因进度落后、资金短缺,贝尔实验室退出该计划。

1969年:Ken Thompson发明Unics

贝尔实验室退出Multics后,Ken Thompson为运行自制游戏《太空旅行》,在闲置的PDP-7小型机上,结合Multics的设计灵感,用1个月时间简化开发出简易分时系统,被同事戏称为Unics

Unics设计的两大核心思想,成为后续Unix哲学的基础:

  • 一切皆文件:所有程序或系统设备都以文件形式呈现
  • KISS原则(Keep it simple stupid):程序仅专注于高效完成单一目标

巧合 :1969年,Linux创始人Linus Torvalds在芬兰诞生。

1973年:Unix内核正式诞生

早期Unics由汇编语言编写,高度依赖硬件,可移植性差。Ken Thompson与Dennis Ritchie为解决该问题,自研出C语言 ,并在1973年用C语言重写Unics内核,正式发布Unix

此次重写并非简单的语言翻译,还新增了管道(pipe) 等核心功能,成为Unix的重要优势。

1977年:Unix重要分支BSD诞生

AT&T对早期Unix采取开放态度,加州大学伯克利分校(UC Berkeley)的Bill Joy基于Unix源码修改优化,增加工具软件与编译程序,推出BSD(Berkeley Software Distribution) ,成为Unix最核心的分支之一。
补充:Bill Joy也是Sun Microsystems公司的创办者之一。

1979年:AT&T发布System V第七版(带商业版权)

Unix的高可移植性和强性能吸引了众多商业公司,各公司基于自身硬件移植开发专属Unix系统(如IBM AIX、HP HP/UX)。

1979年,AT&T推出System V第七版 ,首次支持x86架构个人计算机,让个人电脑能运行Unix。但AT&T为商业利益,声明不再向学生提供源码,引发Unix业界版权纠纷,也为后续开源系统的诞生埋下伏笔。

1984年:Minix系统与GNU项目诞生

System V的版权限制严重影响操作系统教学,1984年Andrew Tanenbaum(谭宁邦)教授为教学目的,完全独立开发出Minix(迷你版Unix),1986年完成编写,随书附带源码(需低价购买)。但Minix仅定位教育用途,作者无意愿持续优化功能。

同年,MIT的Richard Mathew Stallman(RMS)发起GNU项目 ,目标是创建一套完全自由的Unix操作系统 ,GNU是"Gnu is Not Unix"的递归缩写。

1985年,为保护自由软件,GNU制定GPL通用公共许可证 (copyleft),防止自由软件被私有化。

GNU项目开发出大量优质自由软件(Emacs、Bash Shell、GCC编译器、GDB调试器等),但始终缺少自由的Unix内核,成为其实现目标的关键短板。

1988年:POSIX标准发布

为解决各Unix衍生系统的兼容性问题,1985年启动POSIX标准制定项目,1988年发布首个版本。

  • POSIX:Portable Operating System Interface的缩写,继承Unix API,规定了操作系统的通用接口标准
  • 核心作用:遵循该标准的系统,可实现软件跨平台运行
  • 兼容情况:Linux逐步实现POSIX兼容(未正式认证);Windows NT声称部分实现。

1991年:Linux 0.0.2版正式发布

1988年,Linus Torvalds进入赫尔辛基大学计算机系,因学校Unix终端资源紧张,接触并使用Minix系统,通过其源码学习内核设计。

由于Minix功能受限且作者无优化意愿,Linus借助GNU项目的Bash Shell、GCC等工具,在1991年开发出可运行在Intel 386计算机上的内核,上传至网络免费下载,因存放于Linux目录,被命名为Linux ,并发布0.0.2版本。

后续Linus参考POSIX标准优化Linux,大幅提升与Unix的兼容性。

Linux成功的核心因素

  1. 继承Minix系统,无版权纠纷,开发基础干净
  2. 依托GNU项目,获得Bash、GCC、GDB等全套工具软件支持
  3. 坚持开源原则,免费下载并通过互联网快速传播
  4. 遵循POSIX标准,兼容Unix系统,降低软件移植成本
  5. Linus Torvalds的核心领导与社区的持续贡献

二、Linux 发行版本

核心概念

严格来说,Linux仅指操作系统的内核 ,负责管理硬件和提供运行接口;而日常所说的Linux,是指基于Linux内核的完整发行版,即Linux内核+各类支撑软件(编译器、Shell、应用程序等)的组合。

主流发行版本分类

主流Linux发行版主要分三大体系,各体系有免费版/收费版之分,且配套不同的包管理器(用于软件安装、管理),核心信息如下表:

体系 免费版 收费版 包管理器
Debian Ubuntu、Debian 原生版 - apt
RedHat CentOS RedHat yum
SuSE 开源SuSE 商业SuSE zypper

补充:包管理器是Linux发行版的核心工具,用于快速安装、卸载、更新软件,不同体系的包管理器不兼容。

三、Linux 体系结构

Linux的体系结构源自Unix,采用分层设计,从内到外依次为内核层系统调用层应用层,各层分工明确、层层封装,核心架构如下:

复制代码
应用层(applications)
├─ Shell / 库函数(library routines)
├─ 系统调用(system calls)
└─ 内核层(kernel)

1. 内核(kernel):系统核心

Linux内核是整个系统的底层核心,直接与硬件交互,核心两大功能:

  • 管理计算机硬件资源:包括CPU、内存、外部设备(硬盘、网卡、打印机等)
  • 为上层应用程序提供稳定的运行环境

内核包含多个核心模块,负责具体功能实现:

  • 文件管理:管理文件系统、文件的创建/读写/删除
  • 进程调度:分配CPU资源,管理进程的启动/运行/结束
  • 内存管理:分配和释放内存空间,防止内存泄漏
  • 网络通信:实现网络数据的收发和协议解析
  • 设备驱动:为各类硬件提供驱动程序,实现内核与硬件的交互

2. 系统调用(system calls):内核与上层的接口

系统调用是内核为上层应用程序提供的底层接口 ,应用程序通过系统调用向内核发出请求,由内核完成具体的硬件操作(如读写文件、申请内存)。
特点:设计简洁、偏底层,直接对接内核功能,无多余封装。

3. 库函数(library routines):系统调用的封装

库函数是对系统调用的上层封装 ,将繁琐、复杂的系统调用组合成简单、友好的接口,供程序员直接使用。
举例 :C语言中的malloc/free(内存申请/释放)、printf/scanf(输入/输出),都是对底层系统调用的封装。
核心作用:降低程序员的开发成本,无需关注内核底层实现,只需调用库函数即可完成功能。

4. Shell:命令行解释器

Shell是运行在应用层的命令行解释器,是用户与Linux内核交互的桥梁,核心工作流程为无限循环:

c 复制代码
for(;;) {
    read(cmd);  // 读取用户输入的命令
    execute(cmd);  // 执行命令
}
核心概念
  • 命令:Linux中可直接执行的简易程序(如lscdpwd
  • 脚本:多个命令的有序集合,可批量执行(如Shell脚本)
主流Shell版本

Linux有多种Shell版本,最常用的是Bash(Bourne-again shell) ,默认存放在/bin/bash,是绝大多数Linux发行版的默认Shell。

总结

  1. Linux的发展源于Unix,从1969年Unics的诞生,到1991年Linux内核的发布,历经数十年技术积累,核心继承了Unix的"一切皆文件"和KISS设计原则。
  2. GNU项目为Linux提供了全套工具软件,POSIX标准保证了Linux的兼容性,开源免费的特性让Linux快速传播,成为其成功的关键。
  3. 日常使用的Linux是发行版,由Linux内核+支撑软件组成,主流分Debian、RedHat、SuSE三大体系,各有专属包管理器。
  4. Linux采用分层体系结构,内核是核心,系统调用是底层接口,库函数封装系统调用,Shell作为用户交互桥梁,各层分工明确,构成完整的操作系统。

标签 :Linux入门、Unix历史、Linux体系结构、操作系统基础
声明:本文为Linux基础学习整理,基于经典Linux教程资料编写,适合Linux初学者快速了解核心基础。

相关推荐
袁煦丞 cpolar内网穿透实验室4 小时前
Portainer可视化玩转 Docker 全流程。cpolar 内网穿透实验室第 737 个成功挑战
运维·docker·容器·远程工作·内网穿透·cpolar
广州服务器托管4 小时前
WIN11中将控制面板固定到开始菜单的方法
运维·开发语言·windows·计算机网络·可信计算技术
每日学点SEO4 小时前
如何判断网站质量低 & 遭受机器人流量攻击
运维·人工智能·深度学习·机器学习·搜索引擎
暴力求解4 小时前
Linux---磁盘与文件系统(三)
linux·运维·服务器
deng-c-f4 小时前
Linux C/C++ 学习日记(80):Kafka(八):topic会自动创建吗?
linux·c++·学习·karfka
低保和光头哪个先来4 小时前
TinyEditor 篇3:拖拽图片到编辑器并同步上传至服务器
运维·服务器·编辑器
rain_in_spring4 小时前
十、项目:营销中心
linux·运维·服务器
csdn_life184 小时前
# Debian 10 升级到 Debian 13 指南
运维·debian·php
U盘失踪了4 小时前
Debian 使用 Xfce 桌面
linux·运维
k7Cx7e4 小时前
Debian安装 curl 时提示插入 DVD 光盘
运维·windows·debian