概念与工具内容总结


概念与工具重难点笔记:

操作系统的基本概念与术语
Windows API:Windows 32和64位编程接口
Windows API函数:指 API中已被文档化的、可被调用的子例程,例如 CreateProcess、 CreateFile和 GetMessage
原生的系统服务(或者系统调用):指操作系统中未文档化的、可在用户模式下调用的底层服务。例如, NiCreateUserProcess是一个内部系统服务, Windows的CreateProcess函数调用该服务来创建新的进程有关系统调用的定义。
内核支持函数(或例程):指位于Windows操作系统内部且只能在内核模式下调用的子例程。
Windows服务:指由 Windows服务控制管理器启动的进程。
DLL(动态链接库):指一组可调用的子例程,合起来被链接成一个二进制文件,使用这些子例程的应用程序可以动态地加载此二进制文件。

进程:一个包含了执行一个程序的特定实例所用到的各种资源的容器,由以下元素构成
1.一个私有的虚拟地址空间
2.一个可执行的程序,它定义了初始的代码和数据,并且被映射到该进程的虚拟地址空间
3.一个已打开的句柄列表,该进程内所有的县城都可以访问这些系统资源
4.一个称谓访问令牌的安全环境,表示了与该进程关联的用户、安全组和特权
5.一个被称为进程ID的唯一标识
6.至少一个执行线程

线程:一个进程内部的实体,包括以下一些最基本的部件
1.代表处理器状态的一组CPU寄存器的内容
2.一个线程在内核模式下执行时候的栈和一个线程在用户模式下执行时候的栈
3.TLS(线程局部存储区),各个子系统、运行库和DLL都会用到该存储区域
4.一个称为线程ID的唯一标识符,在内部被称为客户ID
5.线程自己的安全环境

纤程:因为将CPU的执行从一个线程切换到另一个线程,将不可避免地涉及内核调度器,所以,这可能是一个开销昂贵的操作,如果两个线程经常频繁地来回切换则尤其如此。 Windows实现了两种机制来降低这一开销:纤程( fiber和用户模式调度(ums,user- mode scheduling)纤程使得一个应用程序可以调度它自己的“线程”的执行过程,而不必依赖于Windows内置的基于优先级的调度机制。纤程也常被称为“轻量”线程:从调度的角度来看,它们对于内核是不可见的,因为它们是在用户模式下在 Kernel132.dl中实现的。为了使用纤程,首先要调用 WindowsConvertThread的 ToFiber函数。该函数将当前线程转变成一个正在运行的纤程。之后,在转变得到的纤程中,通过调用 CreateFiber函数,又可以创建额外的纤程(每个纤程可以有它自己的一组纤程)。然而,与线程不同的是,纤程不会自动执行,它必须由 SwitchToFiber函数手工选中,然后才能执行。新的纤程会一直运行,直到退出,或者调用 SwitchToFiber再次选择运行另一个纤程。

虚拟内存:
虚拟内存中,允许将一个作业分多次调入内存。釆用连续分配方式时,会使相当一部分内存空间都处于暂时或“永久”的空闲状态,造成内存资源的严重浪费,而且也无法从逻辑上扩大内存容量。因此,虚拟内存的实需要建立在离散分配的内存管理方式的基础上。虚拟内存的实现有以下三种方式:
• 请求分页存储管理。
• 请求分段存储管理。
• 请求段页式存储管理。
不管哪种方式,都需要有一定的硬件支持。一般需要的支持有以下几个方面:
• 一定容量的内存和外存。
• 页表机制(或段表机制),作为主要的数据结构。
• 中断机构,当用户程序要访问的部分尚未调入内存,则产生中断。
• 地址变换机构,逻辑地址到物理地址的变换。

用户模式与内核模式
从Intel80386开始,出于安全性和稳定性的考虑,该系列的CPU可以运行于ring0~ring3从高到低四个不同的权限级,对数据也提供相应的四个保护级别。运行于较低级别的代码不能随意调用高级别的代码和访问较高级别的数据,而且也只有运行在ring0层的代码可以直接对物理硬件进行访问。由于WindowsNT是一个支持多平台的操作系统,为了与其他平台兼容,它只利用了CPU的两个运行级别。一个被称为内核模式,对应80x86的ring0层,是操作系统的核心部分,设备驱动程序就是运行在该模式下;另一个被称为用户模式,对应80x86的ring3层,操作系统的用户接口部分(就是我们通常所说的win32 API)以及所有的用户应用程序都运行在该级别。

终端服务及多个会话
终端服务指的是在单个系统中, Windows于多个可交互用户会话的支持。利用 Windows的终端服务,一个远程用户可以在另一台机器上建立一个会话,并且登录进去,在该服务器上运行应用程序。在机器的物理控制台上的第一个登录会话为一号会话,而其他的会话可以通过远程桌面连接程序(Mtsc.exe)来建立,或者通过使用快速用户切换来建立。 Windows Media Center在内的 Windows版本允许一个交互会话和多达四个 Windows Media Center Extender会话。Windows服务器系统支持两个并发的远程连接(这是为了方便远程管理,以及两个以上的远程会话(只需经过适当的授权许可,并且系统被配置为终端服务器)。

对象和句柄
在 Windows操作系统中,内核对象是指某个静态定义的对象类型的单个运行时实例。对象类型由系统定义的数据类型、在该数据类型的实例上进行操作的一组函数,以及一组对象属性构成。如果你编写Windows应用程序,那么,你可能会遇到进程、线程、文件和事件对象,在Windows中,任何进程都是进程对象类型的实例,文件是文件对象类型的实例,如此等等。对象属性是对象中的数据域,每个对象属性定义了对象的一部分状态。对象和普通数据结构之间最根本的区别是,对象的内部结构是不透明的。你必须调用一个对象服务才可以获得对象内部的数据,或者把数据放到对象内部。
Windows中的对象提供了一种便捷的途径来实现下列四个重要的操作系统任务:
1. 为系统资源提供可供人读的名称。
2. 在进程之间共享资源和数据。
3. 保护资源,避免未授权的访问。
4. 引用跟踪,这使得系统能够知道一个对象何时不再有用,从而可以被自动释放。
并非 Windows操作系统中的所有数据结构都是对象。只有确实需要被共享、保护、命名或
者让用户模式程序看得到(通过系统服务)的数据才被放到对象中。

安全性:
Windows的核心安全功能包括:针对所有可共享系统对象(比如文件、目录、进程、线程,等等)的自主保护(need-to-know)和强制完整性保护,安全审计(针对主体或者用户和他们发起的动作的记录),登录时候的用户认证,以及禁止用户通过访问未初始化资源的做法来访问其他用户已释放的资源(比如空闲内存或磁盘空间)
注册表
注册表是系统数据库,它包含了引导和配置系统所必需的信息、全系统范围内控制 Windows操作的软件设置,安全数据库,以及针对每个用户的配置设置(比如使用哪个屏幕保护程序)。同时,注册表也是一个反映内存中易失数据的窗口,比如系统的当前硬件状态(哪些设备驱动程序已经加载了,它们用到了哪些资源,等等)以及 Windows的性能计数器。它包含了许多会影响系统性能和行为的设置。

Unicode
Windows区别于大多数其他操作系统的一个方面是,它的大多数内部文本串是以16位宽度的 Unicode字符来存储和处理的。 Unicode是一个国际字符集标准,它为世界上绝大多数已知的字符集定义了唯一的16位值。因为许多应用程序只处理8位(单字节)ANI字符串,所以,接受字符串参数的 Windows函数都有两个入口点:一个 Unicode(宽字符,16位)版本和一个ANS(窄字符,8位)版本。

知识来源:《深入解析Windows操作系统》

深入解析Windows操作系统之第一章:概念与工具相关推荐

  1. 《深入解析Windows操作系统》--第一章 概念和工具

          这一章似乎本来不用怎么说的,没什么大不了的东西,还是微软出书的一贯风格,先做一番广告而已.但是作为开篇第一章,也起到了给全书定基调的作用,所以还是说说吧.       1.1Windows ...

  2. 《深入解析Windows操作系统》--第二章 系统结构

    这一章主要是讲Windows的总体结构--关键的部件.其实说白了就是内核里那些玩意.     2.1 需求和设计目标     软件工程的老规矩,上来先要来个需求分析.作者说NT的设计目标是 扩展性(E ...

  3. 《深入解析Windows操作系统》笔记第1章

    在看第一章,做了几个实验,书上的东西我就不copy了 实验1 查看进程树 用tlist工具(在Windows调试工具箱中) 在命令行下打开tlist工具 E:\Program Files\Debugg ...

  4. 【王道考研】操作系统 笔记 第一章

    特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道考研]操作系统 笔记 第二章上 进程调度 ...

  5. 【现代操作系统】第一章:引论

    [现代操作系统]第一章:引论∑ 标签(空格分隔):[现代操作系统] 第一章:引论 操作系统:为用户程序提供一个更清晰的计算机模型,并管理输入/输出设备. 用户与之交互的程序,如果基于文本通常称为she ...

  6. 操作系统习题——第一章

    操作系统习题--第一章 1.设计现代OS的主要目标是什么? 答:(1)有效性 ( 2)方便性 ( 3)可扩充性 ( 4)开放性 2. OS 的作用可表现在哪几个方面? 答:(1) OS 作为用户与计算 ...

  7. 《深入解析Windows操作系统》之系统机制

    内容总结: 重难点笔记: 陷阱分发: 中断和异常是导致处理器转向正常控制流之外代码的两种操作系统条件.硬件或者软件都可以检测到这两种条件.术语陷阱(trap)指的是这样一种机制,当异常或者中断发生时, ...

  8. 《深入解析Windows操作系统》安全性

    内容总结: 安全系统组件 以下是实现 Windows安全性的核心组件和数据库. 1. 安全引用监视器(SRM) 2. 本地安全权威子系统(LSASS) 3. LSASS策略数据库 4. 安全账户管理器 ...

  9. 六年前开始的等待——写在潘爱民译《深入解析Windows 操作系统,第4版》出版之际

    按: 这是我给潘爱民老师翻译的<深入解析Windows 操作系统,第4版>一书写的出版人感言.这本书很厚,将近1000页,潘老师用了一年半的时间翻译并反复修订.润色,编辑们用了数月的时间排 ...

  10. 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(二)

    1.2   基础概念和术语(续) 内核模式和用户模式 l         内核模式和用户模式是处理器的概念,而不是操作系统的概念. l         用户代码运行在用户模式下,操作系统代码运行在内核 ...

最新文章

  1. 部署zabbix企业监控平台
  2. mysql 过滤相同数据库_MySQL数据库查询中的重复记录过滤
  3. python中mako中loop_python中Mako库实例用法
  4. django mysql 2059_Django mysqlclient后端生成django.db.utils。操作错误:(2059,NULL)在Windows中...
  5. [转]【建议收藏】优秀实用的OpenCV开源项目汇总
  6. [Python] L1-022. 奇偶分家-PAT团体程序设计天梯赛GPLT
  7. android 圆形自定义进度条,自定义Android圆形进度条(附源码)
  8. 六、银行会计核算(全是重点)
  9. Linux安全原理简介
  10. C语言 字符串解析strchr/strrchr/strtok//strtok_r函数使用
  11. vue项目中汉字转拼音
  12. 利用pandas将Excel分组比较获取差集并
  13. mac m1上esc键失灵不能退出vi解决方法
  14. 计算机术语bootstrap,Bootstrap及jackknife刀切法中文讲义.pdf
  15. 专业放心的python入门视频_手把手教你掌握学习Python方法,让你不再从入门到放弃...
  16. Module use of python36.dll conflicts with this version of Python
  17. android app代码审计,常规漏洞/缺陷整理(持续更新)
  18. 使用vue+zrender绘制体温单 三测单(2)
  19. Linux下实现自动登录网络设备,免账号密码登录
  20. html5教程鼠标,利用HTML5 Canvas制作键盘及鼠标动画的实例分享

热门文章

  1. JAVA语言程序设计
  2. 概括计算机程序启动过程,计算机启动过程详解
  3. 《天下3》幻化:剧情任务
  4. hmcl手机版下载_最新HMCL下载地址
  5. 《上海交通大学饮水思源paper(论文)板实用手册(第二版)》出炉
  6. 计算机仿真技术物流,基于计算机仿真技术的物流实验室建设
  7. 使用Fiddler4抓取微信小程序请求
  8. Keli μVision中 STR指令写入内存无效
  9. Android开发:关于高德地图轨迹纠偏,只显示两个点问题的整体概述
  10. HTML 转义字符表