• Windows Internals 6th chap2


    Page 33 扩展性 -- wdm支持过去,现在,将来的设备

    移植性 -- 支持各种架构,x86/x64/arm。 HAL

    可靠性,鲁棒性 -- 安全设施

    兼容性 -- 历史包袱

    性能 -- ETW。xperf!

    Page 34 用户程序和操作系统运行于不同的特权级别。操作系统和驱动的代码均处于kernelmode,可以访问任意资源, mitigation: patch guard & kmcs

    Page 37 Windows可以运行于x86/x64/arm/mips/alpha axp/powerpc

    Page 38 可移植的主要原因有二:1)层次化设计,处理器架构和平台相关部分被封装与某些独立的模块中。处理器相关部分(线程上下文切换,陷阱分发)被封装于ntoskrnl.exe。平台相关部分被封装于HAL。2)大部分为C代码

    Page 43 客户端和服务器版本的core files是相同的,区别是服务器版本针对吞吐量,而客户端针对响应时间分别做了优化。

    Page 45 可以替换正式发行版中的ntoskrnl和hal为checked-build,从而充分利用checked build内置的各项严格检查。详细步骤:http://msdn.microsoft.com/en-us/library/windows/hardware/ff547188%28v=vs.85%29.aspx

    Page 57 两种内核对象 1) control objects: DPC, APC, Interrupt etc. 2) dispatcher objects 主要用于同步,比如File,Process,Thread,Mutex,Timer etc.

    Page 63 驱动代码主要运行于三种上下文:

    1) 发起i/o操作的用户线程上下文

    2)系统线程上下文

    3)中断上下文(任意上下文,取决于中断发生时的当前进程/线程)

    Page 70 系统线程默认属于system进程,但驱动程序可以在任意进程中创建系统线程,比如win32k在csrss中创建系统线程,这样可以直接访问csrss用户态地址空间的数据

    Page 72 session manager (smss.exe) --第一个真正的用户态进程

    主smss.exe的主要工作:1)创建全局环境变量 2)创建设备符号链接 3)运行boot execute程序 4) 执行pendingfilerenameoperations 以上操作所需信息都在ccscontrolsession manager键下

    5)初始化paging file 6)初始化HKLMSoftware, SAM, and Security hives 7) 打开knowndlls并把它们map为section

    8)创建smss去初始化session 0 9)创建smss去初始化session 1 10)等待session 0 csrss直到关机

    session instance of smss.exe的工作:

    1)创建session wide数据

    2)创建csrss.exe

    3)创建winlogon(交互式session)或者wininit (session 0)

    4) 退出

    Page 74 wininit运行SCM,运行Lsass,运行Lsm

    Page 77 WinLogon 通过LogonUI去得到credentials,然后送Lsass做认证,Lsass通过Srm得到Token, UAC enabled会另外创建restricted token。然后运行userinit, userinit会运行logon脚本和应用group policy,然后运行shell (explorer.exe)

  • 相关阅读:
    对单片机存储分配新的认识
    超简单的word转swf 实现
    纯真IP数据库
    webservice 特殊字符处理
    QQ输入法导致win8 x64 装不上vs11,打不开记事本,等各种变态问题
    时间戳转换
    Remote Desktop Organizer 1.4.5
    Xcdoe 4.6 dbank下载
    链接复用
    Visual Studio 2012 序列号
  • 原文地址:https://www.cnblogs.com/littledot/p/3452347.html
Copyright © 2020-2023  润新知