Loading...
墨滴

FlowPractitioner

2021/09/01  阅读:37  主题:默认主题

Linus Torvalds起心动念开发LINIX

这是查尔斯的第 * 篇文章
# 极简版本的Linux

Linus 一开始是开发Sinclair QL 的各种程序,直到发现有一个程序居然无法使用,于是他的操作系统的代码进行了反向的汇编,发现了操作系统的BUG,但是操作系统不可以修改。

后来,他遇到了一个书《操作系统:设计和实现》

在书里,Tanenbaum 实现了一个Unix的小型翻版,Minix.

丹尼斯·里奇和肯·汤普森真是天才,他们俩设计的Unix非常精妙,它仅仅用几个简单的系统调用(open, close, read, write, fork...)就可以完成非常复杂的任务。

在MINIX上我玩得很高兴,但是却没法通过电话线连到大学的电脑,因为它没有一个好用的终端仿真程序。

不过,我决定玩一把大的:我的终端仿真程序应该是个独立王国,不依赖于Minix, 一开机就可以运行!

从这里开始,Linux 开始走向了操作系统

BIOS:写好引导分区,写好实模式,保护模式,让程序在一些内存地址中跳来跳去。

键盘输入: 读取键盘的输入,显示到屏幕上;

调制解调器:读写调制解调器;

多任务处理机制:实现多任务,一个任务从“猫”里面读取数据,显示到屏幕上,另一个任务从键盘读取任务,然后写入猫/

下载任务:磁盘驱动程序和文件系统;

操作系统 = 开机能运行 + 管理键盘 + 猫 + 显示器 + 磁盘 + 支持多任务;

这个样子的系统离操作系统就很近了;

用户界面接口: shell:bash

Shell:bash 是一个业界通用的用户操作接口,bash 需要open, close, read,write 等基本的操作;

需要实现POSIX 系统调用

1991年8月,我决定公开我的操作系统 Linux 0.01版;

# 各种修修补补工作

Tanenbaum 教授是微内核的支持者,而Linux 采用的是宏内核;

Minix 限制了人们对他的修改和功能增强,Tanenbaum 说这是为了教学,防止过度复杂化;

而Linux 则完全开放;

《大教堂与集市》

  1. 好软件都源自解决开发者的切身之痛。

  2. 把用户当作开发伙伴,是快速改进代码和有效调试的不二法门。

  3. 早发布,常发布。并听取用户意见。

  4. 有这么多双眼睛看着,Bug无处可藏。

  5. 精巧的数据结构即使搭配笨拙的程序代码,也比精巧代码加笨拙结构的组合要强得多。

  6. 保持项目的简单性。设计达到完美的时候,不是无法再增加东西了,而是无法再减少东西了。

这篇就此停笔
Cheers
Charles🦁

FlowPractitioner

2021/09/01  阅读:37  主题:默认主题

作者介绍

FlowPractitioner