930 likes | 1.06k Views
Linux 操作系统. linux 操作系统简介 操作系统基本概念和基本操作. 什么是操作系统. 从虚拟机的观点,操作系统是一台在硬件之上构造的虚拟机,它比底层硬件更容易编程和使用。 从资源管理的观点,操作系统是管理计算机系统中资源的资源管理器,操作系统跟踪资源的使用状况、满足资源请求、提高资源利用率、以及协调各程序和用户对资源的使用冲突。. 什么是操作系统. 操作系统专指在核心态( kernel mode )或称管态 (supervisor mode) 下运行的软件,它受硬件的保护而免遭用户的窜改。. 操作系统内核:核心态和用户态. 操作系统分为核内和核外两部分
E N D
Linux操作系统 linux操作系统简介 操作系统基本概念和基本操作
什么是操作系统 • 从虚拟机的观点,操作系统是一台在硬件之上构造的虚拟机,它比底层硬件更容易编程和使用。 • 从资源管理的观点,操作系统是管理计算机系统中资源的资源管理器,操作系统跟踪资源的使用状况、满足资源请求、提高资源利用率、以及协调各程序和用户对资源的使用冲突。
什么是操作系统 操作系统专指在核心态(kernel mode)或称管态(supervisor mode)下运行的软件,它受硬件的保护而免遭用户的窜改。
操作系统内核:核心态和用户态 • 操作系统分为核内和核外两部分 • 核内部分运行时处理机处于核心态 • 核外部分运行时处理机处于用户态
处理机状态:核心态和用户态 这是处理机的两个状态,当处理机运行时,必居其中之一。当处理机处于核心态,可以执行任何指令。当处理机处于用户态,仅仅可以执行普通指令,不能执行特权指令。
处理机状态:核心态和用户态 只有执行操作系统的代码时,处理机才处于核心态 ,只有操作系统才可以执行特权指令。 在操作系统之上运行的应用程序不能执行特权指令。
处理机状态:核心态和用户态 把处理机状态划分为核心态和用户态的目的是为了实施保护,其机制是: • 把具有安全隐患的指令定义为特权指令 • 把具有安全隐患的操作全部放在操作系统中 • 操作系统通过执行安全检查保证系统的安全性 • 应用程序只有系统功能调用,通过调用操作系统,才能执行具有安全隐患的操作,而操作系统能够保证其安全性
处理机状态:核心态和用户态 典型的特权指令: • 开关中断 • 停机 • 输入输出
处理机状态:核心态和用户态 假设在一个系统中,多个用户同时使用一台打印机,想象一下如果输入输出指令不是特权指令的情形!
处理机状态:核心态和用户态 判断特权指令的方法:执行该指令的应用程序是否影响到其它应用程序的运行?是--特权指令,不是--不是特权指令。
1.2操作系统的发展史简介 • (1945-1955):真空管和插板 • (1955-1965):晶体管和批处理系统 • ( 1965-1980):集成电路芯片和多道程序 • (1980-现在):个人计算机
Linux操作系统的历史 • 第一个分时系统CTSS由M.I.T在一台改装过的7094机上开发成功,开发者Corbato • 在CTSS研制成功之后,M.I.T、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统” - MULTICS(MULTiplexed Information and Computing Service),
贝尔实验室一位曾参加过MULTICS研制的计算机科学家Ken Thompson,在一台无人使用的PDP-7机器上开发了一个简化的单用户版MULTICS,他的工作导致了后来UNIX操作系统的诞生。
在UNIX的早期,源代码可以免费获得并被人们加以广泛的研究。许多大学的操作系统课程就采用UNIX源码作为教材。在UNIX的早期,源代码可以免费获得并被人们加以广泛的研究。许多大学的操作系统课程就采用UNIX源码作为教材。 • 在AT&T发布版本7时,禁止在课程中研究其源代码以免其商业利益受到损害。许多学校只好只讲操作系统理论。
坦尼鲍姆决定编写一个在用户看来与UNIX完全兼容,然而内核全新的操作系统 - MINIX 。 • Linus Torvalds决定编写一个类似MINIX的系统,但是它特征繁多、面向实用而非教学,这就是LINUX。
自由软件但不是免费软件 • 整个系统的原代码可以自由获得,并且在GPL许可的范围内自由修改、传播
操作系统的接口 • 程序员接口 • 用户级接口
操作系统的功能 • 处理机管理 • 存储器管理 • 设备管理 • 文件系统 • 网络管理
进程和程序 • 进程就是程序的一次执行过程 • 程序就是外部存储设备上的可执行文件 • 进程是动态的,暂时的 • 程序是静态的,永久性的 • 进程和程序之间不存在一一对应关系
线程 • 线程是进程内的基本调度单位,一个线程就是一个执行流,拥有自己的状态和运行现场的少量数据,但是没有单独的代码和数据,而是和其它线程共享
文件和设备 • 在linux操作系统中,各种资源被抽象为文件,而不仅仅是狭义的正规文件,文件分为以下几种类型:
文件类型 • 正规文件 • 目录文件 • 字符设备文件 • 块设备文件 • 管道 • 网络Socket接口
正规文件和目录文件 • 操作系统中的文件系统利用块设备,也就是存储设备,构造文件抽象,使应用程序通过文件的方式使用存储设备。 • 通过文件的方式使用存储设备:使用方便、性能提高、提高安全性和可靠性、也提高了存储设备的利用率。 • 正规文件就是在块设备上构造的文件,目录文件就是用于存储和访问文件名的一种特殊文件。
设备是文件 • 在所有的UNIX操作系统中,设备都是文件,通过访问文件的方式访问设备。 • 在操作系统内核中,每个设备对应一个设备驱动程序。 • 应用程序向操作系统提出的设备请求由文件系统转交给设备驱动程序。
地址空间和地址影射 • 所有程序在一个虚拟地址空间中运行。 • 只有当虚拟地址空间中一段区域影射到物理地址空间时才是有效的,程序才能够访问该区域中的数据。
缺页中断 • 无效的虚拟地址空间中一段区域并不一定是错误。 • 当应用程序访问无效区域是,处理机产生一个异常(缺页中断)。 • 缺页中断处理程序触发操作系统实现虚拟存储和内外存对换。
各种地址空间 • 进程地址空间 • 核心地址空间 • 总线地址空间 • 外设地址空间 • DMA地址空间 • 低端地址空间和高端地址空间问题
用户和用户组 • 在系统运行的任何一个程序(进程)都是以某个用户和某个用户组的身份存在和运行的 • 在系统中的每个文件都属于某个用户,也同时属于某个用户组 • 当进程访问文件时,根据二者的用户和用户组进行权限检查
超级用户root • 在Linux操作系统中,存在一个超级用户root ,超级用户可以做任何事情,其用户标识数和组标识数都是0。 • 用户可以通过su命令转换成超级用户身份 • 有些命令只有超级用户才可以执行,例如shutdown
文件访问权限 • 在每个文件的i-结点中,存在9位权限位,分别对应 • 文件所有者的可读、可写、可执行权限 • 同组用户的可读、可写、可执行权限 • 组外用户的可读、可写、可执行权限
管道和重定向 • 标准输入/输出设备:用户在哪个链路上登录,其标准输入设备就是哪个链路的输入,输出设备就是哪个设备的输出。 • 在PC机上,标准输入设备就是键盘,而标准输出设备是显示器
当创建子进程时,子进程继承了父进程的标准输入输出设备,因此二者将把相同的设备作为标准设备当创建子进程时,子进程继承了父进程的标准输入输出设备,因此二者将把相同的设备作为标准设备 • 设备就是文件抽象,标准输入设备对应0号文件描述符,标准输出设备对应1号文件描述符,标准出错设备对应2号文件描述符
管道 • 管道是一种进程之间的通讯机制,通过管道,一个进程可以把标准输出送入另一个进程的标准输入 • 管道的一个典型应用是编译器的开发,词法分析的结果送入语法分析器中
重定向 • 通过输入重定向,一个进程可以不再从键盘上输入命令,而是从文件中输入命令 • 通过输出重定向,一个进程可以把程序的执行结果直接输出到文件中,而不是从屏幕上显示出来
文件系统 • 在Linux操作系统中,没有盘的概念,而称之为文件系统 • Linux文件名不包含盘符 • 在Window环境下,a:abc表示a盘上的abc文件 • 在Linux环境下,a:abc表示当前目录下的a:abc文件
路径./和../ • ./表示当前目录 • ../表示父目录
文件连接 • 在Linux操作系统中,同一个文件可以有多个路径名,也就是多个文件名,每个路径名成为一个连接 • 文件连接分为两种:硬连接和符号连接
硬连接和符号连接 • 执行硬连接时,文件的两个路径名必须存在于相同的文件系统上 • 当执行文件断开连接操作时,当文件的连接数为零时,删除文件 • 符号连接是一种特殊的文件类型,在该文件中存放着被连接文件的路径名
系统启动(一) • 开机加电 • BIOS启动,系统自检,读入引导区 • 执行引导区代码,装入操作系统内核图象 • 初始化操作系统
系统启动(二) • 操作系统构造的抽象开始出现 • 创建第一个进程,执行进程的初始化 • 进程转换进程图象,执行第一个程序(init) • Init执行RC脚本,初始化各个终端
系统启动(三) • 终端上出现login,等待用户登录 • 用户输入口令和帐号,启动shell处理程序 • Shell等待用户输入的命令,解释执行用户输入的命令
Linux操作系统 linux操作系统环境下 经常使用的基本命令
进入和退出系统 • 开机后,出现login:,输入用户名 • 出现:password: • 输入口令(口令内容不回显) • 进入系统,可以开始执行命令
Linux命令格式 • 格式:命令名 <选择项> <参数> • 命令名一般对应某个可执行文件(具有x权限的正规文件),shell解释程序在解释命令时,利用环境变量PATH中指定的目录找到相应的字符串
在一个命令行执行多个命令 • 格式:<命令1>;<命令2>;…<命令n> • 通过;把各个命令连接起来,shell解释程序从左向右执行各个命令
管道和从定向 • 管道格式:命令1|命令2|…命令n • 利用|把各个命令连接起来,前一个命令的输出将作为后一个命令的输入 • 输入重定向格式:命令<filename • 把文件filename中的内容作为输入而不再把键盘作为输入 • 输出重定向格式:命令>filename • 把程序的输出结果送入文件filename中而不再从显示器上打印出来 • 出错重定向格式:命令2>filename • 把程序的输出的错误信息送入文件filename中而不再从显示器上打印出来
基本命令(一) • 1 pwd 显示当前目录 • 2 date 显示和设置当前的时间和日期 • 3 who 和whoami以及who am I • 4.echo 输出显示信息 格式:echo <字符串>
基本命令(二) • 5.man 命令:查询显示命令参考手册 格式:man <命令> • 6.logout命令:退出系统 • 7.reboot:重新启动系统 • 8.shutdown:关机