计算机操作系统读书笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个Windows进程由以下几个元素构成:
一个私有的虚拟地址空间
一个可执行的程序
一个已打开句柄的列表,这些句柄指向各种系统资源
一个被称为访问令牌的安全环境,它标识了与该进程相关的用户、安全组和特权。
一个被称为进程ID的唯一标识符
至少一个执行线程
每个进程也指向它的父进程或者创建者进程,但是,如果父进程推出的话,子进程中的父进程信息并不会被更新,因此,一个进程有可能指向一个已经不存在的父进程。
Windows API:Windows应用编程接口是针对Microsoft Windows操作系统家族的系统编程接口,每个操作系统实现了Windows API不同的子集。
Windows API可以分成以下几个大类:
基本服务
组件服务
用户界面服务
图形和多媒体服务
消息和协作
网络
Web服务
程序和进程的关系:程序是指一个静态的指令序列,而进程则是一个容器,其中包括了当执行一个程序的特定实例时所使用的各种资源。
服务一般有三个名称:你在系统中看到的正在运行的进程名、注册表中的内部名称和在Services管理工具中给出的显示名。
在Windows操作系统中,对象指某一个静态定义的对象类型的单个运行时的实例,对象类型包含了一个系统定义的数据类型、在该数据类型的实例上进行操作的一些函数,以及一组对象属性,在Windows中,任何一个进程都是进程对象类型的一个实例。
对象属性是对象中的数据域,每个对象属性定义了对象的一部分状态。
对象和普通数据结构之间最根本的区别:对象的内部结构是被隐藏的,必须调用一个对象服务才能获得对象内部的数据,或者把数据置到对象内部,这样很好的将对象的底层实现和哪些仅仅使用该对象的代码隔离开。
特权访问控制。即使无法联系到对象的所有者,某些人也可以访问被保护的对象。
Windows操作系统区别与其他大多数操作系统的特点之一是它的大多数内部文本串是以16为宽度的Unicode字符来存储和处理的。接受字符串参数的Windows函数一般都有两个入口点:一个Unicode和一个ANSI。如果你调用一个Windows的窄字符版本,则输入的字符串参数在被系统处理之前,先转成Unicode,而输出的参数则在被返回给应用程序之前,从Unicode转成ANSI字符串。
Windows NT系列和Windows 95系列的区别:
Windows NT支持多处理器,Windows 95不支持。
Windows NT文件系统支持安全性(例如自主访问控制),Windows 95不支持。
Windows NT是完全32位,而Windows 95从Windows 3.1和MS-DOS继承了大量的16位代码。
为了避免用户应用程序访问或者修改关键的操作系统数据,Windows使用了两种处理器访问模式:用户模式和内核模式。用户程序代码运行在用户模式下,而操作系统代码运行在内核模式下。内核模式允许访问所有的系统内存和所有的CPU指令,处理器让操作系统软件比应用软件有更高的特权级,从而为操作系统设计者提供了一层保护的基础,确保一个行为不正常的应用程序不会破坏系统整体的稳定性。
Windows NT是完全可重入的,Windows 95有一部分是不可重入的。
Windows NT可以让16位应用程序运行在它们自己的地址空间中,而Windows 95总是在一个共享的地址空间中运行16位Windows应用程序,在这个共享的地址空间中,这些程序相互影响,甚至一个程序破坏(或挂起)别的程序。
Winlogon不仅当用户登录和注销时是活动的,而且无论合适,当它截取到键盘上的SAS(Ctrl + Alt + Del)时也是活动的。
Windows中的“服务”既可以指一个服务器进程,也可以指一个设备驱动程序。
服务控制管理器是一个特殊的系统进程,它运行的影响文件是\Windows\System32\Services.exe,它负责启动、停止服务进程,也负责与这些服务进程进行交互,所谓服务程序,实际上只是调用了一些特殊Windows函数的Windows映像。
Windows核心安全功能包括
针对所有可共享对象的自主保护
安全审计
登录时口令认证
一个用户释放了某一资源后,另一个用户无法通过访问未初始化的资源的方法来看到前一个用户留下的资源。
Windows提供了两种访问控制机制
自主访问机制。由对象的所有者授权或者拒绝其他人访问这些对象。当用户登录到系统中,他们会得到一组安全凭证,或者一个安全环境,当他们视图访问对象的时候,系统会将他们的安全环境与他们要访问的对象上的访问控制列表进行比较,以确定他们是否允许执行锁清秋的操作。
过滤型驱动程序。它用来为某一设备增加新的功能,或者修改来自其他设备的I/O请求或应答,过滤型驱动程序是可选的,可以有任意数目。
在WDM驱动环境中,对于一个设备来说,并不是由单个驱动程序来控制它的所有方面:一个总线型驱动程序负责向PnP管理器报告其总线上的设备,而一个功能型驱动程序操纵该设备。
在大多数情况下,低层次的过滤型驱动程序改变设备硬件的行为,上层的过滤型驱动程序为一个设备提供一些增值特性。
本地安全认证服务器(Lsass.exe)。
System进程是一个特殊线程的母体,这种特殊线程只能在内核模式下运行,称为内核模式系统线程。系统线程具备普通用户模式线程的所有属性和环境,但是不同的地方在于,他们只在内核模式下运行系统空间中加载的代码,无论这些代码是在Ntoskrnl.exe中,还是在任何其他加载进来的设备驱动程序。
一个被称为线程ID的唯一标识符
有时线程也有他们自己的安全环境,如果多线程服务器应用程要模拟其客户的安全环境,则往往可以利用线程的安全环境。
寄存器、栈和私有的存储区域合在一起被称为线程的环境
纤程与线程:纤程使得一个应用程序可以调度它自己的“线程”的执行过程,而不必依赖于Windows内置的基于优先级的调度机制。纤程常常被称为轻量级的线程。从调度的角度来看,它们对于内核是不可见的,因为它们是在用户模式下实现的。
设备驱动程序可以分为以下几类:
硬件设备驱动程序。
文件系统驱动程序。
文件系统过滤器驱动程序。
网络重定向和服务器。
协议驱动程序。
内核流式过滤器驱动程序。
要想在系统中添加用户编写的内核模式代码,安装驱动程序是唯一的方法,所以有些程序员把编写设备驱动程序当做是一种访问操作系统内部函数和数据结构的渐变方法。
目前,新的驱动程序模型是WDM(Windows Driver Model),从WDM的角度来看,驱动程序可以分为以下三种:
一个进程内的所有线程可以读或者写另一个线程的内存,然而,一个进程中的线程是不可能直接引用另一个进程的地址空间的。
虚拟地址描述符(VAD,virtual address descriptor)是指一些数据结构,内存管理区利用这些数据结构来记录一个进程所使用的虚拟地址。
Windows实现了一个基于线性地址空间的虚拟内存系统,每个进程感觉自己独立拥有一个很大的私有地址空间。虚拟内存提供了一个内存逻辑视图,它可能并不对应于内存的物理布局。在运行的时候,内存管理器借助于硬件的支持,将虚拟地址翻译或者映射成真正存放数据的物理地址。操作系统通过控制这一层保护或者映射机制,可以保证一个进程不会闯入另一个进程中,也不会改写操作系统的数据。
内核会创建一个称为平衡集管理器的系统线程,它美妙被唤醒一次,从而有可能发出各种与调度和内存管理相关的事件。
会话管理器是系统中第一个创建的用户模式进程,负责完成执行体和内核初始化工作的内核模式系统线程在最后阶段创建了实际的Smss进程。
进入Windows系统的过程:首先启动Winlogon进程,等待输入用户名和密码或者其他输入;然后通过LSASS调用适当的认证包以执行实际的验证操作;在成功验证后,LSASS调用安全引用监视器中的一个函数,以生成一个访问令牌对象,该对象包含了当前用户的安全轮廓,接着,Winlogon利用次访问令牌来创建该用户会话中的初始进程;Userinit执行该用户环境中的一些初始化工作,然后在注册表中查找shell值,并且创建一个进程来运行系统定义的外壳程序(默认是Explorer.exe);最后Userinit退出,这也就说明了为什么Explorer.exe在进程树中没有父进程的原因。
Windows NT进程共享的内存只对哪些影射了这一共享内存的进程才是可见的,在Windows 95上,所有的共享内存都是可见的,而且在任何一个进程内都可以写这些内存,因此任何一个进程都可以改写或者破坏其他协作进程所使用的共享内存。
在Windows 95中,有一些关键的操作系统页面在用户模式下是可写的,从而允许一个用户程序破坏系统,或者使系统崩溃。
操作系统读书报告
课题:<<解析Windows操作系统>>读书笔记
院系:_______
班级:____
姓名:___________________
学号:_______________
指导老师:___________________
2011年10月18日
<<解析Windows操作系统>>读书笔记
这段时间读了<<解析windows操作系统>>这本书。学到了很多知识。总结了如下笔记。
总线型驱动程序。它为总线控制器、适配器、桥或者任何带有子设备的设备提供服务。总线驱动程序是必需的驱动程序,通常Microsoft会提供此类驱动程序。
功能型驱动程序。它是主要的设备驱动程序,为相应的设备提供了可操作的接口,功能型驱动也是必需的,它最了解某一特定的设备,而且它往往是唯一能访问与该设备相关的寄存器的驱动程序。
线程是一个进程内的实体,也是Windows执行此进程时的调度实体。如果没有线程,进程的程序是不可能运行的。
一个线程包括以下内容:
一组代表处理器状态的CPU寄存器中的内存
两个栈,一个用于当前线程在内核模式下执行的时候,一个用户线程在用户模式下执行的时候。
一个被称为线程局部存储区(TLS)的私有存储区域,各个子系统、运行库和DLL都会用到该存储区域。
设备驱动程序是可加载的内核模式模块,它们在I/O管理器和ቤተ መጻሕፍቲ ባይዱ应的硬件之间建立起链接。
设备驱动程序运行在内核模式下,位于以下三种执行环境之一:
在发起I/O功能的用户线程的环境中。
在内核模式的系统线程的环境中。
作为一个中断的结果。
Windows中的设备驱动程序并不直接维护硬件,而是调用HAL中函数与硬件进行交互。
Intel x86处理器的体系结构定义了四种特权级,Windows使用特权级0(或者0环)作为内核模式,特权级3(或者3环)作为用户模式。
虚拟内存中的每一个页面都被标记了处理器必须在什么访问模式下才可以读和/或写该页面,系统空间中的页面只能在内核模式下才可以访问,而用户地址空间中的所有页面在用户模式下都是可以访问的,只读页面在任何模式下都是不可写的。
以下的系统进程会出现在每一个Windows系统中:
空闲进程(Idle)。
会话管理器(Smss.exe)。
Windows子系统(Csrss.exe)。
登陆进程(Winlogon.exe)。
服务控制管理器(Services.exe)和它创建的子服务进程(例如系统提供的通用服务宿主进程Svchost.exe)。
从用户模式到内核模式的转换本身并不会影响线程的调度——模式转换并不是环境切换。因此对于一个用户线程来说,它的一部分时间在用户模式下执行,令部分时间在内核模式下运行,这是很正常的。
终端服务是指Windows为了在单个系统中支持多个可交互的用户会话而提供的能力。利用Windows终端服务,一个远程用户可以在另一个机器上建立一个会话,并且登陆进去,在该服务器上运行应用程序,服务器把图形界面传送到客户机,客户机把用户的输入传回到服务器上。
相关文档
最新文档