windows系统 ---启动篇
来源:互联网 发布:数据库概论百度云 编辑:程序博客网 时间:2024/05/16 10:07
学了两年的windows下的C/C++编程,感悟颇多!编程这种东西跟其他东西没啥两样,习惯成自然,你只有常年累月的练习,才能写出高质量的东西!在这里,我要记录我的程序员路。
工欲善其事必先利其器。既然学习编程,首先就必须对你所需要的工具了如指掌。编程的工具就是计算机。大家都知道,计算机并不单纯,它由计算机硬件和计算机软件构成。
现在想象一下,在你的面前就是一台没有启动的PC,你所能见到的部分是显示器,键盘,鼠标和机箱(当然笔记本内置了)。打开机箱,就能看到有很多插槽的主板还有连在主板上的一排排的总线。主板上是CPU(处理器)和各种接口卡(内存条,显卡,网卡等等)。这些就是硬件。
现在,按下启动键,显示器开始出现厂家标识了。按下F12(我的lenovo,其他机子可能不一样,F2,delete等),出现了蓝色屏幕,这就是BIOS(Basic Input Output System),这是计算机的硬件设置,计算机出厂前被写在了ROM中的一段代码。这是计算机系统启动前的硬件配置,对计算机输入输出进行设置,装系统时就能体现其重要性。按下F10后,开始进入计算机系统。计算机系统是软件,软件就是操作硬件的一段代码,那么,该如何执行这段代码呢?系统的启动分成4个部分。
1 预处理部分
主要是读取 BIOS (前面讲过),然后内存,CPU,硬盘,键盘等设备进行自检。这个阶段在屏幕上显示就是自检的那些打印信息。
然后根据 BIOS 指定的启动顺序,找到可以启动的优先启动设备,比如本地磁盘,CD Driver , USB 设备等等,然后准备从这些设备启动系统。
2 系统配置
从启动设备(最常见的是C盘)加载ntldr(ntloader 就是network system loader 系统加载器),开始配置系统
1.设置内存模式,如果是 x86 的处理器,并且操作系统是 32位,则设置为 32-bit flat memory mode,如果是 64 位操作系统 + 64位处理器,则设置为64位内存模式。
2.启动文件系统
3.读取 boot.ini 文件
然后,开始检测和配置硬件(键盘,鼠标,显示器等等)
3 加载系统(内核)
Ntldr 将首先加载Windows内核 Ntoskrnl.exe 和 硬件抽象层 (HAL). HAL 有点类似于嵌入式操作系统下的BSP(Borad support package),这个抽象层对硬件底层的特性进行隔离,对操作系统提供统一的调用接口,操作系统移植到不同硬件时只要改变相应的 HAL 就可以,其它的内核组件不需要修改,这个是操作系统通常的设计模式。
接下来Ntldr 从HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet 下读取这台机器安装的驱动程序,然后依次加载驱动程序。
驱动程序加载完成后,Windows做如下设置:
1. 创建系统环境变量
2. 启动 win32.sys ,这个是Windows子系统的内核模式部分。
3. 启动 csrss.exe,这个是Windows子系统的用户模式部分。
4. 启动 winlogon.exe
5. 创建虚拟内存页面文件
6. 对一些必要的文件进行改名,(主要是驱动文件,如果更新后,需要在下次重启前改名)
4 系统登录
1. 启动机器上安装的所有需要自动启动的Windows服务
2. 启动本地安全认证 Lsass.exe
3. 显示登录界面
输入用户名和密码后就进入系统了。好吧,面对着蓝天白云,我们能干什么呢?- windows系统 ---启动篇
- Windows系统mongoDB启动
- Windows 系统的启动参数
- Windows系统进程启动顺序
- windows 系统 工具栏 快速启动
- windows系统的启动过程
- windows系统的启动过程
- windows系统安装、启动memcached
- 命令行启动windows系统服务
- Windows系统获取系统的启动时间
- 计算机启动过程(windows XP 系统)
- Windows系统多重启动的重要文件
- windows系统 自动启动的各种目录
- 解压版tomcat windows系统自启动
- 解压缩tomcat windows系统中自启动
- 屏蔽WINDOWS系统自启动有感
- JBoss启动注册为Windows系统服务
- 使用grub命令启动Windows系统。。。
- 介绍Linux目录结构 & Linux分区大小、挂载点 和如何分区
- mysql数据库CRUD
- SecheduledExecutorService
- 黑马程序员4 -- os面向对象和三大特性
- Android 编程下两种方式注册广播的区别
- windows系统 ---启动篇
- Linux下Mongodb的主从配置
- mac上安装使用composer
- JSP9大内置对象
- 复杂Linq系列 一
- EditText的点击事件
- 高通要进军ARM服务器芯片市场
- Linux进程关于文件描述符的数量限制
- Android MediaPlayer基本使用方式