Linux内核简介-Unix介绍

建议点击这里查看个人主页上的最新原文

点击这里在哔哩哔哩bilibili在线观看配套的教学视频

点击这里在哔哩哔哩bilibili在线观看配套的加餐视频(就是一些补充)

点击跳转到内核课程所有目录

在讲具体的技术点之前,我们先来讲一些Linux内核相关的小故事。我们都有过这种经历,如果我们对一件事很感兴趣,那我们就会很投入做这件事,做再久也就不会感觉到累;而如果我们对一件不感兴趣,那让我们多做一分钟估计都会感到难受。比如对于喜欢玩游戏的朋友,你们可以玩几个小时,甚至通宵玩游戏;而我不喜欢玩游戏,让我多玩一分钟我都感觉难受;但我喜欢写博客,周末我可以把全部时间都花在写博客上。所以我们讲这些Linux内核的小故事,目的是让各位朋友对学习Linux内核产生兴趣,然后全身心的投入学习,接着能力就提升得很快,再涨很多工资,最后走上人生巅峰。当然Linux内核快速发展的30几年时间(截止到2024年),有趣的故事多到数不过来,这里只列出一小部分,感兴趣的朋友以后可以自己继续探索。

Unix的历史

Linux的诞生和Unix密不可分,我们来看看关于Unix的一些有趣的故事。Unix这个操作系统的起源很有意思,它是起源于一个失败的操作系统MULTICS,这个MULTICS操作系统计划可厉害了,参与开发的公司和学校有贝尔实验室、麻省理工学院及美国通用电气公司,1964年开始开发。但是5年后1969年时因开发进度太慢,贝尔实验室决定退出这个计划。贝尔实验室里有两个很厉害的人,肯·汤普逊(老K)和丹尼斯·里奇(老R),也许你一时间想不起来他们是谁,但你肯定知道c语言吧,没错,他们就是c语言的作者。这两个厉害的人为什么要开发Unix呢,原因很有意思的,就是老K想玩一个他自己开发的叫“星际旅行”(Space Travel)游戏,之后老R也加入进来了,这系统的功能越来越完善,1970年时取名为Unix。

接下来的10年左右,Unix的拥有者AT&T公司(贝尔实验室就是这家公司的)以很便宜甚至不要钱将Unix源码给了学术机构用来研究或教学,这些学术机构经过扩展和改进,形成了所谓的“Unix变种”,其中最著名的是由加利福尼亚大学伯克利分校开发的伯克利软件套件(Berkeley Software Distribution,BSD)产品。后来AT&T公司发现Unix可以卖很多钱,就后悔了,不想把源码给学术机构了,还对Unix及其变种声明了著作权权利。但BSD已经被很多商业厂家采用了,AT&T就开始了一场持久的著作权官司。1984年时Unix的免费发行结束,斯托曼在1983年9月27日就发起的GNU计划着手使用免费分发给任何人的软件重新构建Unix,还将计划命名为GNU is Not Unix。

Minix操作系统

Minix是一个迷你版本的类Unix操作系统,名字就是Mini Unix的简称,作者是安德鲁·斯图尔特·特南鲍姆,最初只用于他的教学,采用的是微内核的设计,没有使用任何的Unix代码,最初在1987年发布,最初只有约12,000行。2000年4月,重新以BSD许可协议发布,成为自由软件。在今天看来,这个Minix的最大价值在于启发了Linux内核的创作。

Linux内核刚发布时,使用的就是Minix文件系统,现在2024年的Linux内核源码中,还能看到Minix文件系统的代码,当然现在Minix文件系统并没有用于商业用途,仅仅只是用于学习的demo吧。还有Linux内核刚开发时,也是在Minix上编写代码和编译的。

宏内核和微内核

我们要学习的Linux内核是宏内核,也叫集成式内核、单体式内核,就是很多功能都放在内核中。除了Linux内核外,宏内核的操作系统还有: 传统Unix内核(BSD、Solaris),类Unix系统的内核(FreeBSD、OpenBSD、NetBSD、LynxOS、Syllable Desktop),磁盘操作系统Disk Operating System(DR-DOS、MS-DOS、Microsoft Windows 9x系列(95、98、98SE、Me)、FreeDOS),Mac OS(从最初版到Mac OS 8.6版),OpenVMS,XTS-400。

刚刚说到的Minix和GNU计划的Hurd是微内核,提倡内核中的功能尽可能的少,只保留一些最核心的功能,其他的功能都放到用户空间中,是特殊的用户进程。其他的微内核的操作系统还有: QNX(在黑莓手机BlackBerry 10系统中被采用),L4微内核系列。

需要注意的是,微软Windows系统和苹果电脑的Mac OS X虽然说自己使用的是微内核架构,但为了追求性能,将很多功能放到了内核空间,实际上这已经违反了微内核的基本设计原则,更像是宏内核的设计方式,所以一般被称为混合内核。

POSIX标准

POSIX的全称是Portable Operating System Interface,中文翻译为可移植操作系统接口,其中X的意思是对Unix API的传承。这个名称是自由软件之父斯托曼应IEEE的要求而提议的一个易于记忆的名称。

POSIX标准的目的是为了在各种Unix操作系统上定位API(应用程序接口)的标准,通俗的讲就是,你在BSD操作系统上写的源代码,拿到Solaris操作系统上也能编译运行。Linux虽然没有参加正式的POSIX认证,但基本上逐步实现了POSIX兼容。还有一个我们开始接触电脑就会用到的微软的Windows系统也部分实现了POSIX标准。所以现在你在Windows系统上编写的源代码,拿到Linux上也能编译运行通过了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值