windows系统工作的简单介绍

windows系统是如何工作的以WINDOWS NT为例:
在刚开机加电时,根据X386CUP的特性,代码段(CS,CODE SEGMENT)寄存器的值为全1,指令计数器(IP,INSTRUCTION POINTER)的值为全0,既CS=FFFF、IP=0000 。这时CPU根据CS和IP 的值执行FFFF0H处的指令 。由于FFFF0H已经到了基本内存的高地址顶端,所以,FFFF0H处的指令一般总是一个JMP指令,jump到另一个位於ROM BIOS中的位置(就是执行BIOS中的系统测试代码,随着制作BIOS厂商的不同而会有些许差异 )它负责开机自检 。如检查内存 , 键盘等 。在自检过程中,ROM BIOS会在上位内存(UMB,UPPERMEMORY BLOCK)中进行扫描,看看是否存在合法的设备控制卡ROM BIOS(如:SCSI卡上的ROM),如果有,就执行其中的一些初始化代码 。紧接着系统测试码之后,控制权会转移给ROM中的启动程序(ROM bootstrap routine),这个程序会将磁盘上的第零轨第零扇区读入内存中(这就是一般所谓的boot sector,如果你曾接触过电脑病毒,就大概听过它的大名 。假定硬盘是系统的启动磁盘 。硬盘的第一扇区称为主引导记录(MBR , MASTER BOOTRECORD) 。MBR 的长度为512字节 。可分为两部分:第一部分为引导(PRE-BOOT)区 , 占了446个字节;第二部分为分区表(PARTITION PABLE),共有66个字节 , 记录硬盘的分区信息 。预引导区的作用之一是找到标记为活动(ACTIVE)的分区 , 并将活动分区的引导区读入内存 。如果用软盘启动计算机,ROM BIOS 读入的是软盘的引导区,既软盘的第一个扇区 。),至於被读到内存的哪里呢? --绝对位置07C0:0000(即07C00h处),这是IBM系列PC的特性 。经过一系列复杂操作后 , 最后将控制权转移给操作系统 。
对于linux而言,开机磁盘的boot sector上的正是linux的bootsect程序,也就是说 , bootsect是第一个被读入内存中并执行的程序 。(鉴于大家研究linux不多 , linux有源代码可参,bootsect.S-setup.S-head.S -main.c,所以我就将linux以后的启动略去,主要看Windows的启动 , 且主要对于NT而言,2k类似 。--因为9X已成为历史)对于NT而言 , boot sector上的正是Windows引导扇的引导代码(他是在Windows安装时被写入的).当引导扇区被引导后,他首先查找NTLDR.(该文件必须存在于根目录下,否则系统提示:
BOOT:Couldn‘t find NTLDR.或A kernel file is missing from the disk.NT.接着该死机了)NTLDR首先将CPU从实模式转换到保护模式下.当NTLDR将所有的1M以下的内存页描述符创建好后,NTLDR再开启页映射功能,现在NT可以访问4G内存了.然后,NTLDR通过内建的文件系统代码来查找根目录下的BOOT.INI并根据BOOT.INI(这也是我们可以修改启动选项的地方)的内容提示用户可选的操作系统.当用户在缺省的时间内没有选择.NTLDR就引导缺省的操作系统.然后NTLDR加载NTDECT.COM.调用INTxx来执行一大堆的BIOS系统调用.用来进行系统配置的检测.所有检测到的东西将被存到系统注册表的HKLMHARDWAREDESCRIPTION项下.接下来被加载的2个文件组成了WINDOWS NT的核心.那就是:HAL.DLL,NTOSKRNL.EXE.这2个文件在装载时将被检测PE校验和,如果有问题或找不到.NT又要死机了.加载完这2个文件后,NTLDR再加载所有引导必须的驱动程序,然后加载HKEY_LOCAL_MACHINESYSTEMServices里的值SERVICE_BOOT_S 。
在windows系统中所有文件和文件夹的管理工作都可在什么中资源管理器 。在windows系统中所有文件和文件夹windows系统工作的管理工作都可在资源管理器中 。“资源管理器”是Windows系统提供的资源管理工具windows系统工作,可以查看本台电脑的所有资源windows系统工作 , 特别是提供的树形的文件系统结构,使能更清楚、更直观地认识电脑的文件和文件夹 。另外,在“资源管理器”中还可以对文件进行各种操作 , 如windows系统工作:打开、复制、移动等,windows的所有对文件和文件夹的管理工作可以在资源管理器中完成 。
Win10系统Windows任务的主机进程已停止工作怎么办【windows系统工作的简单介绍】Win10系统使用某个程序的过程中会出现“Windows任务的主机进程已停止工作”的窗口 , 关闭程序后这个窗口还在,这是怎么回事呢?最主要是系统输入法的冲突,那么Win10系统弹出“Windows任务的主机进程已停止工作”窗口怎么办呢?下面我就为大家介绍一下具体的解决方法把,欢迎大家参考和学习 。
具体的故障现象如下图所示:
具体的解决方法:
1、卸载系统出问题前所安装的应用程序,大多数冲突是输入法不兼容所引起;
2、卸载所安装的第三方输入法,使用自带微软拼音输入法;
3、如果问题依然存在 , 那么点击开始菜单—设置—更新和安全—恢复—重置此电脑—开始;
4、选择“保留我的文件”,下一步 , 点击重置,恢复到系统初始状态 。
以上就是我为大家整理的Win10系统弹出“Windows任务的主机进程已停止工作”窗口的解决方法了,用户可以先使用微软拼音输入法一段时间,等问题不出现了,再换新的输入法也可以,希望对大家有所帮助 。
哪位高手跟我详细解释一下,windows操作系统工作的大概构架,嗯,流程一、Windows系统的启动过程
预了解Windows系统的工作原理,我们先从Windows的启动过程来讲解 。同样 , 我们还是以windows XP为例 。首先,从我们按下计算机电源开关,到正式登入到桌面 , 完成启动 , 一共需要经历以下5个阶段windows系统工作:
1. 预引导(Pre-Boot)阶段windows系统工作;
2. 引导阶段;
3. 加载内核阶段;
4. 初始化内核阶段;
5. 登陆 。
下面,就每个启动阶段 , 我一一的给大家讲解一下:
1、预引导阶段
预引导(Pre-Boot)阶段是指,在按下计算机电源使计算机启动,并且在Windows XP专业版操作系统启动之前这段时间,在这个阶段里,计算机首先运行Power On Self Test(POST),POST检测系统的总内存以及其他硬件设备的现状 。如果计算机系统的BIOS(基础输入/输出系统)是即插即用的,那么计算机硬件设备将经过检验以及完成配置 。计算机的BIOS定位计算机的引导设备,然后MBR(Master Boot Record)被加载并运行 。在预引导阶段,计算机要加载Windows XP的NTLDR(NTLoader)文件 。
2、引导阶段
Windows XP 专业版引导阶段包含4个小的阶段 。
首先,计算机要经过初始引导加载器阶段,在这个阶段里,NTLDR将计算机微处理器从“实模式”转换为“32位平面内存模式” 。在实模式中,系统为MS-DOS保留640kb内存,其余内存视为扩展内存,而在32位平面内存模式中,系统(Windows XP)视所有内存为可用内存 。接着,NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区,以便发现以及加载Windows XP,到这里,初始引导加载器阶段就结束了 。
接着系统来到了操作系统选择阶段 , 如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了boot.ini使系统提供操作系统选择的条件下 , 计算机显示器会显示一个操作系统选单,这是NTLDR读取boot.ini的结果 。如果在boot.ini中只有一个操作系统选项 , 或者把timeout值设为0 , 则系统不出现操作系统选择菜单 , 直接引导到那个唯一的系统或者默认的系统 。在选择启动Windows XP后 , 操作系统选择阶段结束,硬件检测阶段开始 。
在硬件检测阶段中,ntdetect.com将收集计算机硬件信息列表并将列表返回到NTLDR,这样做的目的是便于以后将这些硬件信息加入到注册表HKEY_LOCAL_MACHINE下的hardware中 。
硬件检测完成后,进入配置选择阶段 。如果计算机含有多个硬件配置文件列表,可以通过按上下按钮来选择 。如果只有一个硬件配置文件,计算机不显示此屏幕而直接使用默认的配置文件加载Windows XP专业版 。
3、加载内核阶段
在加载内核阶段,NTLDR加载Windows XP内核的 。系统加载了Windows XP内核但是没有将它初始化 。接着NTLDR加载硬件抽象层,然后,系统继续加载HKEY_LOCAL_MACHINE\system键,NTLDR读取键值来决定哪一个Control Set将被加载 。控制集中包含设备的驱动程序以及需要加载的服务 。NTLDR加载HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层设备驱动 。当作为Control Set的镜像被加载时,NTLDR传递控制给内核 , 初始化内核阶段就开始了 。
4、初始化内核阶段
在初始化内核阶段开始的时候 , 彩色的Windows XP的logo以及进度条显示在屏幕中央,在这个阶段,系统完成了启动的4项任务:
内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINE\HARDWARE键 。
内核通过引用HKEY_LOCAL_MACHINE\system\Current的默认值复制Control Set来创建了Clone Control Set 。Clone Control Set配置是计算机数据的备份,不包括启动中的改变,也不会被修改 。
系统完成初始化以及加载设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...下start键值为1的设备驱动程序 。这些设备驱动程序在加载的时候便完成初始化 。
Session Manager启动了Windows XP高级子系统以及服务 , 启动控制所有输入、输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕 。
5、登陆
Winlogon.exe启动LSA,同时Windows XP欢迎屏幕或者登陆对话框显示,这时候,系统还可能在后台继续初始化刚才没有完成的驱动程序 。如果设有密码,提示输入有效的用户名或密码 。
二、应用程序、系统、输入输出设备的关系
首先,我们来看计算机操作系统跟硬件设备的交互关系,操作系统可以操纵输出设备 , 以执行特定的的功能 。例如让声卡发出声音,让显卡发出图形 。当然操作系统也可以感知输入设备的状态变化,如鼠标移动、键盘按下 , 并且能够知道鼠标移动的具体位置、键盘按下的是哪一个字符 。
其次,我们来看计算机操作系统跟应用程序之间的交互关系,应用程序可以通知操作系统执行某个具体的动作,例如操作系统能够让声卡发出声音 , 但它并不知道何时让声卡发出何种声音,需要应用程序告诉操作系统何时发出何种声音 。我来为大家举个例子:这种关系好比有个机器人能够完成行走功能,但它并不知道何时往哪个方向走 , 需要人来告诉它往哪里走,这里机器人就好比操作系统、人就好比应用程序 。那么应用程序是如何通知操作系统执行某个功能的呢?有过编程经验的人都知道,在应用程序中要完成某个功能 , 都是以函数调用的形式实现的 。同样,应用程序也是通过函数调用的形式来通知操作系统的 。操作系统所能完成的每一个功能,通常有一个特定函数与其对应,也就是说操作系统把它所能完成的功能以函数的形式提供给应用程序使用 。应用程序对这些函数的调用就叫做系统调用 。而这些函数的集合,就是windows操作系统提供给应用程序编程的接口,称为windows API。这里,我再来简要的介绍下windows API,windows API是微软公司随Windows操作系统发布的应用程序接口,是Windows系统为其下运行的各类应用程序提供的重要服务功能 。微软的所有Win32平台都支持统一的API调用 , 包括函数、结构、消息、宏及接口 。通过Windows系统提供的API服务功能,应用程序可以充分挖掘Windows系统的潜力 。API的核心是一组用C语言编写的供外部应用程序调用的函数过程 , 这些函数封装在Windows系统的一系列DLL动态库文件中 。通过调用动态库文件中的函数 , 程序员可以在自己开发的应用中方便地向系统请求或执行更低级的设备访问,利用和控制系统资源,实现与系统相同或相似的功能 。由此可以降低应用系统开发的复杂性,提高开发效率,并且无论是应用供应商还是最终用户都无需支付额外的费用 。如Create windows 就是一个API函数 , 应用程序中调用这个函数,操作系统就会按照该函数提供的参数信息产生一个相应的窗口 。同样,操作系统也能将输入设备的变化上传给应用程序 。如用户在某个程序活动时按了一下键盘,操作系统马上能够感知到这一事件,并且能够知道用户按下的是哪个键 , 操作系统并不决定这一事件如何作出反应,而是将这一事件转交给相应应用程序,由应用程序来决定如何对这一事件作出反应 。好 , 这里我再为大家举一个形象的例子:好比有一只蚊子叮了我们一口,我们的神经末梢,就相当于操作系统,马上感知到这一事件,它不做什么决定,而是马上将这一事件传递给大脑,大脑在这里就相当于应用程序 。我们的大脑最终决定如何对这一事件作出反应 , 如将蚊子赶走,或是将蚊子拍死 。对事件作出反应的过程就是消息响应 。
那么操作系统是怎样将感知到的事件传递给应用程序的呢?这是通过消息机制(message)来实现的 。操作系统将每一个事件都包装成一个称为消息的结构体MSG来传递给应用程序的 。
下面详解windows内存数据加载(比较复杂):
以WINDOWS NT为例:
在刚开机加电时,根据X386CUP的特性,代码段(CS , CODE SEGMENT)寄存器的值为全1,指令计数器(IP,INSTRUCTION POINTER)的值为全0,既CS=FFFF、IP=0000 。这时CPU根据CS和IP 的值执行FFFF0H处的指令 。由于FFFF0H已经到了基本内存的高地址顶端 , 所以,FFFF0H处的指令一般总是一个JMP指令,jump到另一个位於ROM BIOS中的位置(就是执行BIOS中的系统测试代码,随着制作BIOS厂商的不同而会有些许差异 )它负责开机自检 。如检查内存,键盘等 。在自检过程中,ROM BIOS会在上位内存(UMB,UPPERMEMORY BLOCK)中进行扫描,看看是否存在合法的设备控制卡ROM BIOS(如:SCSI卡上的ROM),如果有,就执行其中的一些初始化代码 。紧接着系统测试码之后,控制权会转移给ROM中的启动程序(ROM bootstrap routine),这个程序会将磁盘上的第零轨第零扇区读入内存中(这就是一般所谓的boot sector,如果你曾接触过电脑病毒,就大概听过它的大名 。假定硬盘是系统的启动磁盘 。硬盘的第一扇区称为主引导记录(MBR , MASTER BOOTRECORD) 。MBR 的长度为512字节 。可分为两部分:第一部分为引导(PRE-BOOT)区,占了446个字节;第二部分为分区表(PARTITION PABLE),共有66个字节 , 记录硬盘的分区信息 。预引导区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存 。如果用软盘启动计算机,ROM BIOS 读入的是软盘的引导区 , 既软盘的第一个扇区 。) , 至於被读到内存的哪里呢? --绝对位置07C0:0000(即07C00h处),这是IBM系列PC的特性 。经过一系列复杂操作后,最后将控制权转移给操作系统 。
对于linux而言 , 开机磁盘的boot sector上的正是linux的bootsect程序,也就是说 , bootsect是第一个被读入内存中并执行的程序 。(鉴于大家研究linux不多,linux有源代码可参,bootsect.S-setup.S-head.S -main.c,所以我就将linux以后的启动略去 , 主要看Windows的启动,且主要对于NT而言,2k类似 。--因为9X已成为历史)对于NT而言,boot sector上的正是Windows引导扇的引导代码(他是在Windows安装时被写入的).当引导扇区被引导后,他首先查找NTLDR.(该文件必须存在于根目录下,否则系统提示:
BOOT:Couldn‘t find NTLDR.或A kernel file is missing from the disk.NT.接着该死机了)NTLDR首先将CPU从实模式转换到保护模式下.当NTLDR将所有的1M以下的内存页描述符创建好后,NTLDR再开启页映射功能,现在NT可以访问4G内存了.然后,NTLDR通过内建的文件系统代码来查找根目录下的BOOT.INI并根据BOOT.INI(这也是我们可以修改启动选项的地方)的内容提示用户可选的操作系统.当用户在缺省的时间内没有选择.NTLDR就引导缺省的操作系统.然后NTLDR加载NTDECT.COM.调用INTxx来执行一大堆的BIOS系统调用.用来进行系统配置的检测.所有检测到的东西将被存到系统注册表的HKLMHARDWAREDESCRIPTION项下.接下来被加载的2个文件组成了WINDOWS NT的核心.那就是:HAL.DLL,NTOSKRNL.EXE.这2个文件在装载时将被检测PE校验和,如果有问题或找不到.NT又要死机了.加载完这2个文件后,NTLDR再加载所有引导必须的驱动程序,然后加载HKEY_LOCAL_MACHINESYSTEMServices里的值SERVICE_BOOT_S
关于windows系统工作和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读