第一章 绪论
- Linux是开源的
是一个真正的Unix内核,但不是一个完整的Unix操作系统
-源码获取:源码下载一般源代码安装在/usr/src/linux目录下
- 单块结构的内核(Monolithic kernal)
- 动态的装载和卸载部分内核代码
- 内核线程
- 多线程应用程序支持
- 抢占式(preemptive)内核
- 多处理器支持 (最优化的使用SMP)
- 文件系统
- 没有STREAMS I/O类似的子系统
硬件的依赖性
- alpha
- arm,arm26
- cris(Axis 在它的瘦服务器中使用的“代码精简指令集”CPU,用在诸如Web摄像机或者开发主板中)
- frv(嵌入式系统)
- h8300
- i386
- ia64
- m32r
- m68k,m68knommu
- mips(基于MIPS微处理器的工作站)
- parisc
- ppc,ppc64
- s390
- sh,sh64
- sparc,sparc64(基于Sun公司的SPARC和64位Ultra SPARC 微处理器的工作站)
- um(用户态的Linux)
- v850
- x86_64
版本号的意义
- 第三版基于Linux 2.6.11
操作系统基本概念
操作系统的基本程序集合中最重要的程序部分成为内核(kernal),系统启动时,内核被装入RAM中,内核中包含了运行所必须的核心过程。系统根本的样子和能力还是由内核决定的,经常把操作系统作为内核的同义词。
操作系统的两个主要目标:与硬件部分交互,为包含在硬件平台上的所有低层可编程部件提供服务;为运行在计算机系统上的应用程序(用户程序)提供运行环境。
两种执行模式:用户态(User Mode)和内核态(Kernal Mode)
多用户系统
-必须包含以下几个特点:- -核实用户身份的认证机制
- 防止有错误的用户程序妨碍其他应用程序在系统中的执行的保护机制
- 防止有恶意的用户程序干涉或者偷窥其他用户的活动的保护机制
- 限制分配给每个用户的资源数的计帐机制
用户和组
- User ID,UID
- user group ID
- root超级用户
进程
程序执行时的一个实例或者一个运行程序的执行上下文。
- 采用进程/内核模式。
- 每个进程都自认为是系统中的唯一的进程。
- 进程发出系统调用(对内核提出请求),硬件就会把特权模式由用户态变成内核态。
- 一旦请求完成,内核过程将迫使硬件返回到用户态,然后进程从系统调用的下一条指令继续执行。
内核体系结构
- Unix内核是单块结构
微内核操作系统只需要内核有一个很小的函数集
- 通常包括几个同步原语、一个简单的调度程序和进程间通信机制。
- 关于操作系统的学术研究都是面向微内核的
- 比单块内核的效率低
- 微内核采用模块化的方法
- 任何操作系统层都是一个相对独立的程序,必须定义明确而清晰的软件接口与其他层交互
- 更加充分利用RAM(因为暂且不需要执行的系统进程可以被调出或者撤销)
为了达到微内核的很多优点而又不影响性能,Linux内核提供了模块
- 模块是一个目标文件
- 可以在运行时链接到内核或者从内核接触链接
- 通常目标文件的代码由一组函数组成,用来实现文件系统、驱动程序或者其他内核上层的功能
- 模块并不是一个特殊的进程执行的(与微内核不同)
与其他静态链接的内核函数一样,代表当前进程在内核态下执行
- 模块化方法
- 平台无关
- 节省内存使用(小型嵌入式系统非常有用)
- 无性能损失
Unix文件系统概述
待续。。。。。。