1.商用Unix操作系统包括:
- AT&T公司开发的(System V Release 4) SVR4、
- 加州伯克利分校发布的4.4BSD
- Dec公司(现属于HP)的Digital Unix
- IBM公司的AIX
- HP公司的HP-UX
- Sun公司的Solaris - Apple公司的Mac OS X
所有商业版本都是SVR4或4.4BSD的变体,并且都趋向于遵循某些通用标准:如IEEE的POSIX(Portable Operating Systems based on Unix)和X/Open的CAE(Common Application Environment)。
2.除了Linux外,还有一些其他的类Unix也是开放源码的,如FreeBSD,NetBSD, OpenBSD.
3.Linux可以运行的平台,处x86外,还有HP的Alpha,Intel的Itanium,AMD的AMD64,Power PC以及IBM的zSeries.
4.用户态和内核态:
当一个应用程序在用户态下执行时,它不能直接访问内核数据结构或内核的程序。然而,当应用程序在内核态下运行时,这些限制不再有效。有以下几种方式激活内核例程:
- 进程调用系统调用。
- 正在执行进程的CPU发出一个异常(exception),内核代表产生异常的进程处理异常。
- 中断信号
- 内核线程被执行。
5.当内核暂停一个进程的执行时,就把几个相关处理器寄存器的内容保存在进程描述符中。
- 程序计数器(PC)和栈指针(SP)寄存器
- 通用寄存器
- 浮点寄存器
- 包含CPU状态信息的处理器控制寄存器(处理器状态字,Processor Status Word)
- 用来跟踪进程对RAM访问的内存管理寄存器。
6.可重入内核:如果一个硬件中断发生,可重入内核能挂起当前正在执行的进程,即使这个进程处于内核态。
提供可重入的一种方式是编写函数,以便这些函数只能修改局部变量,而不能改变全局数据结构,这样的函数叫可重入函数。但是可重入内核不仅仅局限于这样的可重入函数,可重入内核可以包含非重入函数,并且利用锁机制保证一次只有一个进程执行一个非重入函数。
我的理解:所谓可重入,指的就是在内核态执行了一半,被打断,完了又可以继续执行。
7.单块结构内核和微内核
大部分Unix内核是单块结构:每一个内核层都被集成到整个内核程序中,并代表当前进程在内核态下运行。
相反,微内核操作系统只需要内核有一个很小的函数集,通常包括几个同步原语、一个简单的调度程序和进程间通信机制。运行在微内核之上的几个系统进程实现从前操作系统级实现的功能,如内存分配程序、设备驱动程序、系统调用处理程序等等。
【深入理解Linux内核】《第一章 绪论》笔记