linux内核设计与实现读书笔记第一次

时间:2022-09-07 20:48:33

一、linux历史

20世纪60年代,MIT开发分时操作系统(Compatible TIme-Sharing System),支持30台终端访问主机;

1965年,Bell实验室、MIT、GE(通用电气公司)准备开发Multics系统,为了同时支持300个终端访问主机,但是1969年失败了;
~刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过;
~Multics:Multiplexed Information and Computing Service

1969年,Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型)
因为汇编语言对于硬件的依赖性,因此只能针对特定硬件;
只是为了移植一款“太空旅游”的游戏;

1973年,Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核
将B语言改成C语言,由此产生了C语言之父;
90%的代码是C语言写的,10%的代码用汇编写的,因此移植时只要修改那10%的代码即可;

1977年,Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution)
Bill Joy是Sun公司的创始人;

1979年,Unix发布System V,用于个人计算机;

1984年,因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学;

1984年,Stallman开始GNU(GNU's Not Unix)项目,创办FSF(Free Software Foundation)基金会;
产品:GCC、Emacs、Bash Shell、GLIBC;
倡导“*软件”;
GNU的软件缺乏一个开放的平台运行,只能在Unix上运行;
*软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着GPL的版权;
*软件是可以卖的,但是不能只卖软件,而是卖服务、手册等;

1985年,为了避免GNU开发的*软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明;

1988年,MIT为了开发GUI,成立了XFree86的组织;

1991年,芬兰赫尔辛基大学的研究生Linus Torvalds基于gcc、bash开发了针对386机器的Lniux内核;

1994年,Torvalds发布Linux-v1.0;

1996年,Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅;

二、linux的优缺点

  1. linux的优点

    开放的学习环境

    漏洞快速修补

    因为内核只有几百k,因此适合嵌入式系统。
  2. linux的缺点:

    有些专业软件没有Linux版本,导致有时工作进展不顺利。

三、关于内核

  1. git

    git实际上是一种开源的分布式版本控制工具,可以使用git对内核进行下载或管理。
  2. 使用make配置内核

  3. linux没有内存保护机制

    内核中发生内存错误,会导致opps。风险会比外面要大一些。
  4. 不要轻易在内核中使用浮点数

    内核并不能完美地执行浮点操作,因此最好不要使用浮点操作。
  5. 容积小而固定的栈

    内核栈的准确大小随体系结构而变。