UNIX操作系统的早期发展 第一版∪ni系统最早于1971年11月安装在DEC PDP-1/45机器上 ·第一份有关Unx的论文发表于1973年 ·UnⅸV6手册于1975年发布 ·此后,Unⅸ发展成好多个分支,而且越来越复 杂
2 • 第一版Unix系统最早于1971年11月安装在DEC PDP-11/45机器上 • 第一份有关Unix的论文发表于1973年 • Unix v6 手册于1975年发布 • 此后,Unix发展成好多个分支,而且越来越复 杂… UNIX 操作系统的早期发展
UNIX操作系统演进史 v6(1975) PWB BSD (1977) (1978) Xenix v7(1979) (1979 UNX的历史开始于1969年 ken Thompson, Dennis ritchie(即著名的K&G,C语言的发明人)与一群 人在一部PDP7上进行的一些工作,后来这个系统变成了UNX。它主要的几个版本为 2w1(19):第一版的UNDX,以PDP120的汇编语言写成。包括文件系统,t水、m、等软件 3.V4(193):以C语言从头写过,这使得UNX修改容易,可以在几个月内移植到新的硬件平台上。 最初C语言是为UNX设计的,所以C与UNX间有紧密的关系 4.V6(1975):第一个在贝尔实验室外(尤其是大学中)广为流传的UNX版本。这也是UNX分支的 起点与广受欢迎的开始。1.xBSD(PDP-)就是由这个版本衍生出来的 V7(1979):在许多UNX玩家的心目中,这是“最后一个真正的UNX”,这个版本包括一个完整 的K&RC编译器, Bourne shell。V7移植到VAX机器后称为32V。 A6.目前开发UNX( System V)的公司是 Unix System Laboratories (USL)。USL本为AT&T所有,199年③x 初被 Novell收购。Nove于手1993年末将UNX这个注册商标转让给 X/Open组织 7.目前为止,UNX有两大流派:那就是AT&T发布的UNX操作系统 System V与美国加州大学伯克利分 校发布的UNX版BSD( Berkeley Software Distribution)。SVR4是两大流派融合后的产物。1991年底 与 System V针锋相对的开放软件基金会( Open Software Foundation推出了OSF/1
3 UNIX 操作系统演进史 1. UNIX的历史开始于1969年ken Thompson,Dennis Ritchie(即著名的K&G,C语言的发明人)与一群 人在一部PDP-7上进行的一些工作,后来这个系统变成了UNIX。它主要的几个版本为: 2. V1(1971):第一版的UNIX,以PDP-11/20的汇编语言写成。包括文件系统,fork、roff、ed等软件 3. V4(1973):以C语言从头写过,这使得UNIX修改容易,可以在几个月内移植到新的硬件平台上。 最初C语言是为UNIX设计的,所以C与UNIX间有紧密的关系。 4. V6(1975):第一个在贝尔实验室外(尤其是大学中)广为流传的UNIX版本。这也是UNIX分支的 起点与广受欢迎的开始。1.xBSD (PDP-II)就是由这个版本衍生出来的。 5. V7(1979):在许多UNIX玩家的心目中,这是“最后一个真正的UNIX”,这个版本包括一个完整 的K&RC编译器,Bourne shell。V7移植到VAX机器后称为32V。 6. 目前开发UNIX(System V)的公司是Unix System Laboratories (USL)。USL本为AT&T所有,1993年 初被Novell收购。Novell于1993年末将UNIX这个注册商标转让给X/Open组织 7. 目前为止,UNIX有两大流派:那就是AT&T发布的UNIX操作系统System V与美国加州大学伯克利分 校发布的UNIX版BSD(Berkeley Software Distribution)。SVR4是两大流派融合后的产物。1991年底 ,与System V针锋相对的开放软件基金会(Open Software Foundation)推出了OSF/1
UNIX操作系统分类 Mach BSD System V3 OSF/ System V 4 NEXT STER SCO BSD UNⅨX BSD/ IRIX ns SunOS Solaris Linux HP-UX -UNIX definion DEC 10 0sF/1 AIX UNiX implementation NEXTSTEP is derived from BS043 4
4 UNIX 操作系统分类
当前主流的UNX系统 1.HP/UX、ATX等等一从早期SYSV和部分BSD系统发 展而来的商用操作系统 2. Solaris-从 SunOs系统发展而来,并借鉴了一些 BSD规则 3. Linux-是几乎所有um系统发展而来的“混血儿”, 但看起来更像 SYSV-ish 4. FreeBsD、 NetBsD、 OpenBSD-完全从主流BSD 发展而来的分支
5 当前主流的UNIX 系统 1. HP/UX、AIX等等– 从早期SYSV和部分BSD系统发 展而来的商用操作系统 2. Solaris– 从SunOS系统发展而来,并借鉴了一些 BSD规则 3. Linux– 是几乎所有unix系统发展而来的“混血儿”, 但看起来更像SYSV-ish 4. FreeBSD、 NetBSD、OpenBSD– 完全从主流BSD 发展而来的分支
提纲 原理篇 实践篇 UNIX/LINUX系统概述 UNIX/LINUX下第三方安全工具 系统体系结构 ■SSH ■系统服务与进程 ■ TCP WRAPPER 系统启动过程 ■ TRIPWIRE ■系统的安全级别 ■ NON-EXEC STACK UNIX/LINX系统安全特性 UNIX/LINUX系统入侵分析 物理安全 ■特征 常用命令介绍 处理方法 用户环境变量介绍 啼UNIX/ LINUX系统配置经验 文件系统安全 ■分区划分 账号安全 ■机器的启动密码 ■日志记录 ■用户管理 ■安全配置 ■系统文件安全 ■ APACHE服务器配置要点 ■网络服务响应 ■FTP服务器配置要点 ■DNs服务器配置要点
6 UNIX/LINUX 系统概述 系统体系结构 系统服务与进程 系统启动过程 系统的安全级别 UNIX/LINUX 系统安全特性 物理安全 常用命令介绍 用户环境变量介绍 文件系统安全 账号安全 日志记录 安全配置 APACHE 服务器配置要点 FTP 服务器配置要点 DNS 服务器配置要点 提 纲 UNIX/LINUX 下第三方安全工具 SSH TCP_WRAPPER TRIPWIRE NON-EXEC STACK UNIX/LINUX 系统入侵分析 特征 处理方法 UNIX/LINUX 系统配置经验 分区划分 机器的启动密码 用户管理 系统文件安全 网络服务响应 原 理 篇 实 践 篇
计算机系统结构 日一般情况下,我们不能直接操作裸机,必须通过一个 叫做基本输入输出系统的软件系统(英文为 Basic Input/Output System,简称BIOS),才能操作控制 应用程序 裸机,之所以这样称呼它,是因为它提供了最基本的 操作系统 计算机操作功能,如在屏幕上显示一点,接收一个键 盘字符的输入等。 基本输入输出系统(BOS) 日在基本输入输出系统的外面是操作系统( Operating System):专门负责管理计算机的各种资源,并提供 底层硬件设备 操作电脑所需的工作界面。有了它们,人们才可以方 便自如地使用电脑。 日应用软件一般都运行在操作系统之上,由专业人员 根据各种需要开发。我们平时见到和使用的绝大部分 软件均为应用软件,如杀毒软件,文字处理软件,学 习软件,游戏软件,上网软件等等 具体结构图如右图所示: 7
7 底层硬件设备 基本输入输出系统(BIOS) 操 作 系 统 应用程序 计算机系统结构 一般情况下,我们不能直接操作裸机,必须通过一个 叫做基本输入输出系统的软件系统(英文为Basic Input/Output System,简称BIOS),才能操作控制 裸机,之所以这样称呼它,是因为它提供了最基本的 计算机操作功能,如在屏幕上显示一点,接收一个键 盘字符的输入等。 在基本输入输出系统的外面是操作系统(Operating System):专门负责管理计算机的各种资源,并提供 操作电脑所需的工作界面。有了它们,人们才可以方 便自如地使用电脑。 应用软件一般都运行在操作系统之上,由专业人员 根据各种需要开发。我们平时见到和使用的绝大部分 软件均为应用软件,如杀毒软件,文字处理软件,学 习软件,游戏软件,上网软件等等 具体结构图如右图所示:
Linux操作系统结构 用户进程 系统调用接口 LINUX内核 硬件:CPU、内存、硬盘、网络硬件等 日用户进程:用户应用程序是运行在LⅠNUX操作系统最高层的一个庞大的软件集合,当一个用户 程序在操作系统之上运行时,它就成为操作系统中的一个进程。 日系统调用接口:在应用程序中,可通过系统调用来调用操作系统内核中特定的过程,以实现特 定的服务,比如创建一个新进程等。由若干条指令构成的过程: SHELL、WHO等 内核:操作系统的灵魂,它负责管理磁盘上的文件、内存,负责启动并运行程序,负责从网络 上接收和发送数据包等。内核实际是抽象的资源操作到具体硬件操作细节之间的接口。 日硬件:这个子系统包括了LNUX安装时需要的所有可能的物理设备,如CPU、内存、硬盘、网 络硬件等
8 硬件:CPU、内存、硬盘、网络硬件等 LINUX 内核 系统调用接口 用户进程 Linux 操作系统结构 用户进程:用户应用程序是运行在LINUX操作系统最高层的一个庞大的软件集合,当一个用户 程序在操作系统之上运行时,它就成为操作系统中的一个进程。 系统调用接口:在应用程序中,可通过系统调用来调用操作系统内核中特定的过程,以实现特 定的服务,比如创建一个新进程等。由若干条指令构成的过程:SHELL、WHO等 内核:操作系统的灵魂,它负责管理磁盘上的文件、内存,负责启动并运行程序,负责从网络 上接收和发送数据包等。内核实际是抽象的资源操作到具体硬件操作细节之间的接口。 硬件:这个子系统包括了LINUX安装时需要的所有可能的物理设备,如CPU、内存、硬盘、网 络硬件等
Linux内核的构成 内存管理子系统 日内存管理子系统:允许多 个进程安全地共享主内存 区域,支持虚拟内存 虚拟文件系统 日进程调度控制着进程对CPU uwy 日虚拟文件系统隐藏了各种不同… 的访问,当需要选择下一个 进程间通信 硬件的具体细节,为所有设备 进程运行时,由调度程序选 择最值得运行的进程 日进程间通信支持进程 提供了统一的接口,V支持wrro 间各种通信机制 几十种不同的文件系统 w 网络接口 日网络接口提供了对各种网 络标准的存取和各种网络 硬件的支持
9 Linux 内核的构成 进程调度 (SCHED) 硬件驱动程序 逻辑文件系统 虚拟文件系统 (VFS) 进程间通信 (IPC) 硬件相关 硬件无关 内存管理子系统 (MM) 硬件驱动程序 网络协议 网络接口 (NET) 进程调度控制着进程对CPU 的访问,当需要选择下一个 进程运行时,由调度程序选 择最值得运行的进程 内存管理子系统:允许多 个进程安全地共享主内存 区域,支持虚拟内存 虚拟文件系统隐藏了各种不同 硬件的具体细节,为所有设备 提供了统一的接口,VFS支持 几十种不同的文件系统 网络接口提供了对各种网 络标准的存取和各种网络 硬件的支持 进程间通信支持进程 间各种通信机制
Linux进程调度子系统 进程调度子系统完成的主要功能: ☆允许进程建立自己的拷贝 令决定哪一个进程将占用CPU,使得可运行进程之间进行有效地转移 接受中断并把他们发送到合适的内核子系统 在屏幕上的不同位置分别显示 令发送信号给用户进程 各自的计数器值(16进制) 令管理定时器硬件 令当进程结束后,释放进程所占用的资源 NET 令支持动态装入模块,这些模块代表着内核启动以后所增加的新功能 task task2 task3 ,这种可装入的模块将由虚拟文件系统和网络接口使用 系统调 用接口 进程调度进程 Scheduler内核任务调度程序 定时器管理调度 模块管理 「几时钟中断(m次/秒) 3、进程调度示意图 2、进程调度的结构图 结构特定 的模块
10 Linux 进程调度子系统 FS IPC MM NET 结构特定 的模块 进程调度 定时器管理 模块管理 进程 调度 系统调 用接口 Scheduler内核任务调度程序 时钟中断(182次/ 秒) task1 task2 task3 在屏幕上的不同位置分别显示 各自的计数器值(16 进制) 3、进程调度示意图 2、进程调度的结构图 1、进程调度与其他子系统的依赖关系 SCHED 进程调度子系统完成的主要功能: ❖ 允许进程建立自己的拷贝 ❖ 决定哪一个进程将占用CPU,使得可运行进程之间进行有效地转移 接受中断并把他们发送到合适的内核子系统 ❖ 发送信号给用户进程 ❖ 管理定时器硬件 ❖ 当进程结束后,释放进程所占用的资源 ❖ 支持动态装入模块,这些模块代表着内核启动以后所增加的新功能 ,这种可装入的模块将由虚拟文件系统和网络接口使用
Linux内存管理子系统 中央处理单元(CPU) 昂贵 功能单元 快速 日小容量 寄存器 内部 cache 内部 cache 8a便宜 8日低速 1大容量 主存 内存管理是Iinm内核最复杂的任务之 主要包括地址映射、请页、交换 磁盘 内存分配、内存回收、缓存、刷新、共 享等机制 存储器的层次结构 日程序的创建和执行以及内存的初始化
11 中央处理单元(CPU) 功能单元 寄存器 内部cache 内部cache 磁盘 主存 存储器的层次结构 Linux 内存管理子系统 昂贵 快速 小容量 便宜 低速 大容量 内存管理是Linux内核最复杂的任务之 一:主要包括地址映射、请页、交换、 内存分配、内存回收、缓存、刷新、共 享等机制 程序的创建和执行以及内存的初始化