Linux核心体系结构简介
Linux核心体系结构简介
Linux的历史 Unx:1969 Thompson& Ritchie at&TBl|实验室 BSD: 1978 Berkeley Software Distribution 商业版本:Sun,HP,BM,SGl,DEC GNU: 1984 Richard Stallman FSF Minix: 1987 Andrew Tannen baum Linux: 1991 Linux Torvalds intel 386 SUSE 1992. Redhat 1993 Kerne|20支持 Alpha,1996 Kerne22支持 Sparc, PowerPC..199 Kernel24支持 Compaq Alpha AXP, Sun SPArc和 UltraS PARo, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH IBM S/390, MIPS FH MIPS64, HP PA-RISC, Intel IA-64, DEC VAX AMDx86-64和cRs. Kerne|26支持 Motorola m68k, AMD Opteron,NcR的 Voyager, NEC PC-9800
2 Linux 的历史 ▪ Unix: 1969 Thompson & Ritchie AT&T Bell 实验室 ▪ BSD: 1978 Berkeley Software Distribution ▪ 商业版本:Sun, HP, IBM, SGI, DEC ▪ GNU: 1984 Richard Stallman, FSF ▪ Minix: 1987 Andrew Tannenbaum ▪ Linux: 1991 Linux Torvalds intel 386 ▪ SuSE 1992. RedHat 1993 ▪ Kernel 2.0 支持Alpha, 1996 ▪ Kernel 2.2 支持Sparc,PowerPC… 1999 ▪ Kernel 2.4 支持Compaq Alpha AXP, Sun SPARC 和UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, IBM S/390, MIPS 和 MIPS64, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64 和 CRIS… ▪ Kernel 2.6 支持 Motorola m68k, AMD Opteron, NCR的Voyager, NEC PC-9800
Linux的特性 类Unⅸx的操作系统 特征 有优先权的多任务系统 虚拟内存 共享库 动态加载内核模块 TcP/P网络 SMP支持 开放源代码 NUMA(非一致存储访问体系结构 无MMU系统支持
3 Linux 的特性 ▪ 类Unix的操作系统 ▪ 特征: ► 有优先权的多任务系统 ► 虚拟内存 ► 共享库 ► 动态加载内核模块 ► TCP/IP网络 ► SMP支持 ► 开放源代码 ► NUMA (非一致存储访问体系结构 ) ► 无MMU系统支持
Linux系统结构 User Applications O/S Services Linux Kernel Hardware Controllers User Applications:用户应用程序,比如字处理和浏览器等 O/S Services:作为操作系统一部分的服务(窗口,命令行等)和对 内核的编程接口 Linux kernel:抽象和协调对硬件资源的访问,包括cPU,内存,外 设等 Hardware Controllers:系统中所有的物理设备,如CPU,内存,硬 盘,网卡等等
4 Linux 系统结构 ▪ User Applications: 用户应用程序,比如字处理和浏览器等 ▪ O/S Services: 作为操作系统一部分的服务(窗口,命令行等)和对 内核的编程接口 ▪ Linux kernel: 抽象和协调对硬件资源的访问,包括CPU,内存,外 设等 ▪ Hardware Controllers: 系统中所有的物理设备,如CPU,内存,硬 盘,网卡等等 User Applications Hardware Controllers Linux Kernel O/S Services
个标准 Kernel的图例 Applications System Libraries(libc) System Call Interface 1/O Related Process Related 003o2 File Systems Scheduler Networking Memory management Device Drivers IPC Architecture-Dependent Code Hardware
5 一个标准Kernel的图例
Linux Kernel的结构 内存管理 硬件独立模块 硬件依赖模块 虚拟文件系统VFS 逻辑文件系统 进程调度 内部进程通讯 硬件驱动 网络 网络协议 硬件驱动
6 Linux Kernel的结构 虚拟文件系统VFS 逻辑文件系统 硬件驱动 内存管理 硬件独立模块 硬件依赖模块 网络 网络协议 硬件驱动 进程调度 内部进程通讯
Linux Kernel的结构 Linux kernel由五个主要的子系统组成: 进程调度( SCHED) 内存管理(MM) 虚拟文件系统(vFS) 网络接口(NET) 内部进程通讯(PC)
7 Linux Kernel的结构 ▪ Linux Kernel由五个主要的子系统组成: ► 进程调度(SCHED) ► 内存管理(MM) ► 虚拟文件系统(VFS) ► 网络接口(NET) ► 内部进程通讯(IPC)
进程调度子系统 编程调度接口 O/S Services Process scheduler 内存管理 「系统调用接口 IPC 体系结构独立的 进程调度 Network 文件系统 体系结构相关的 进程调度 调度策 Kerne CPU Hardware
8 进程调度子系统
进程调度子系统模块 调度策略模块 判断哪个进程有权访问cPU,使进程能够公平的访问cPU 体系结构相关模块 提供一个通用的接口,屏蔽对特定体系结构访问的细节。负责和cPU通 信来决定暂停和恢复进程运行。 体系结构无关模块 》和策略模块交互来决定哪个进程运行,然后调用体系结构相关模块来恢 复进程运行。调用内存管理模块来保证该进程的内存被恢复。 系统调用接口 Kerne提供的接口允许用户访问
9 进程调度子系统模块 ▪ 调度策略模块 ► 判断哪个进程有权访问CPU,使进程能够公平的访问CPU ▪ 体系结构相关模块 ► 提供一个通用的接口,屏蔽对特定体系结构访问的细节。负责和CPU通 信来决定暂停和恢复进程运行。 ▪ 体系结构无关模块 ► 和策略模块交互来决定哪个进程运行,然后调用体系结构相关模块来恢 复进程运行。调用内存管理模块来保证该进程的内存被恢复。 ▪ 系统调用接口 ► Kernel提供的接口允许用户访问
内存管理子系统 编程接口 O/S Services 内存管理 系统调用接口 文件系统 体系结构独立管理 进程调度 体系结构相关管理 Kernel 内存硬件 Hardware
10 内存管理子系统