手机版
热门标签
站点地图
我要投稿
广告合作
联系我们
搜 索
广告位招租
广告位招租
切换导航
首页
人工智能
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
网络运维
技术频道
▸ 编程语言
▸ 前端开发
▸ 移动开发
▸ 开发工具
▸ 程序设计
▸ 行业应用
▸ CMS系统
▸ 服务器
▸ 数据库
公众号推荐
微信公众号搜
"智元新知"
关注
微信扫一扫可直接关注哦!
操作系统
操作系统专题提供操作系统的最新资讯内容,帮你更好的了解操作系统。
reactos操作系统实现(45)
怎么样从一个延迟就绪队列里选择合适的线程运行呢?下面就来分析这段代码,如下: #001 // #002 // This routine scans for an appropriate ready thread to select at the #003 // given priority and for the given CPU. #004 // #005 FORCEINLINE #
作者:佚名 时间:2020-05-20
reactos操作系统实现(46)
在线程调度里可以看到,需要调用函数KiSwapContext来进行运行环境切换,由于每个CPU都是只能运行一个线程,而多个线程在运行过程中被中断了,那么就需要保存CPU所有寄存器,以便下一次恢复线程时可以接续运行。现在就来分析这个函数是怎么样实现这些工作的,代码如下: #001 /*++ #002 * KiSwapContext #003 * #004 * The KiSwa
作者:佚名 时间:2020-05-20
reactos操作系统实现(47)
当光盘变成记录数据以后,就开始使用光盘来分发操作系统了。毕竟光盘有着储存数据量大,成本便宜的优势。下面就来分析Reactos是怎么样通过光盘的格式来引导操作系统的。 现今的计算机BIOS,会在开机时根据El Torito规格,查找光盘上的开机代码。若该光盘具有开机代码,则BIOS会指配一个磁盘驱动器代号给该光驱。磁盘驱动器代号通常为80(模拟硬盘)或是00(模拟软盘)等。借由模拟成硬盘或软盘,可让
作者:佚名 时间:2020-05-20
reactos操作系统实现(48)
每当安装到一个全新的电脑时,都需要使用安装程序来把系统安装到电脑的硬盘里面,这个过程其实是一个极其重要的过程,如果用户不容易安装系统的话,那么这个系统也是很难使用的系统,不利于系统广泛使用和推广。下面就来了解Reactos是怎么实现整个安装过程的。 当使用make bootcd的编译命令时,就是编译一个可以启动并安装系统的光盘文件。这个光盘文件,就是使用上面介绍的ISOBOOT的方式实现系统引
作者:佚名 时间:2020-05-20
reactos操作系统实现(49)
前面已经介绍怎么样从ISOBOOT里加载SETUPLDR.SYS,下面来分析一下这个程序与一般硬盘引导程序freeldr.sys有什么区别。 在文件freeldr.c里是这样这样调用安装函数的: #001 VOID BootMain(LPSTR CmdLine) #002 { #003 CmdLineParse(CmdLine); #004 #005 MachInit
作者:佚名 时间:2020-05-20
reactos操作系统实现(50)
当运行到内核函数Phase1Initialization里,就是进行内核第一阶段初始化了,这时在这个函数又调用函数Phase1InitializationDiscard进行复杂的处理,在这里有一个重要的步骤,就是打开内核应用程序smss.exe来运行。具体代码如下: #001 /* Update progress bar */ #002 InbvUpdateProgressBar(
作者:佚名 时间:2020-05-20
reactos操作系统实现(51)
从前面的分析可以知道,安装Reactos到硬盘里的过程,是由程序usetup.exe来实现的,那么下面就来分析这个程序的实现过程,了解操作系统的安装过程。打开Reactos源码的目录reactos/base/setup/usetup,就可以看到相关工程的代码。 在仔细分析代码之前,我们需要了解什么是内核应用程序。从前面可以知道ntoskrnl.exe内核运行最后,就调用应用程序usetup.e
作者:佚名 时间:2020-05-20
reactos操作系统实现(52)
接着下来分析具体实现安装过程的函数RunUSetup代码,如下: #001 VOID #002 RunUSetup(VOID) #003 { #004 INPUT_RECORD Ir; #005 PAGE_NUMBER Page; #006 LARGE_INTEGER Time; #007 NTSTATUS Status; #008 查询系统时间
作者:佚名 时间:2020-05-20
reactos操作系统实现(53)
在前面的代码分析里,发现创建一个线程,而这个线程运行的主函数是PnpEventThread。那么创建这个线程是用来做什么事情的呢?那就得去分析文件reactos/base/setup/usetup/interface/devinst.c里的代码,如下: #001 DWORD WINAPI #002 PnpEventThread(IN LPVOID lpParameter) #003 { #0
作者:佚名 时间:2020-05-20
reactos操作系统实现(54)
从函数RunUSetup的循环处理里,可以看到第一个应处理,就是启动页面,也就是调用函数SetupStartPage,它的代码如下: #001 /* #002 * Start page #003 * RETURNS #004 * Number of the next page. #005 */ #006 static PAGE_NUMBER #007 SetupStart
作者:佚名 时间:2020-05-20
reactos操作系统实现(55)
在语言选择里,倒底做了什么样的事情,让ROS系统可以选择不同的语言?ROS系统又是怎么样实现不同的语言支持的呢? #001 static PAGE_NUMBER #002 LanguagePage(PINPUT_RECORD Ir) #003 { 初始化语言列表。 #004 /* Initialize the computer settings list */ #005
作者:佚名 时间:2020-05-20
reactos操作系统实现(56)
在Reactos安装过程里,会出现下面的界面,如下: 上面的界面就是创建磁盘分区显示的内容,那么这个界面下面主要做了那些工作呢?磁盘又是怎么样分区的呢?分区后的数据怎么样保存到磁盘里的呢?接着下来,就分析创建磁盘分区的代码,才能知道整个实现过程,如下: #001 static PAGE_NUMBER #002 CreatePartitionPage (PINPUT_RECORD Ir)
作者:佚名 时间:2020-05-20
reactos操作系统实现(57)
当分区好后,就需要选择这些分区使用什么样的文件系统,目前主要支持FAT,FAT32,EXT2,NTFS等文件系统。这些功能是通过下面的函数实现的,如下: #001 static PAGE_NUMBER #002 SelectFileSystemPage (PINPUT_RECORD Ir) #003 { #004 PDISKENTRY DiskEntry; #005 PP
作者:佚名 时间:2020-05-20
reactos操作系统实现(58)
格式化磁盘主要做什么样的工作呢?根据用户选择的文件系统,把格式化的数据和分区表写到磁盘,然后判断引导分区,写入引导代码到引导分区。具代实现代码如下: #001 static ULONG #002 FormatPartitionPage (PINPUT_RECORD Ir) #003 { #004 WCHAR PathBuffer[MAX_PATH]; #005 PDISK
作者:佚名 时间:2020-05-20
reactos操作系统实现(59)
当用户安装ReactOS系统时,需要选择合适的安装目录,因为同一个类型的操作系统,可以安装多次,可以选择不同的目录来安装,以便在同一台电脑,同一个磁盘分区里安装不同的系统。如下图: 选择系统目录的实现代码如下: #001 static PAGE_NUMBER #002 InstallDirectoryPage(PINPUT_RECORD Ir) #003 { #004 PDIS
作者:佚名 时间:2020-05-20
reactos操作系统实现(60)
在拷贝文件到磁盘之前,需要把压缩包的文件解压,然后才能拷贝文件到安装目录里,它的代码如下: #001 static PAGE_NUMBER #002 PrepareCopyPage(PINPUT_RECORD Ir) #003 { #004 HINF InfHandle; #005 WCHAR PathBuffer[MAX_PATH]; #006 INFCONT
作者:佚名 时间:2020-05-20
reactos操作系统实现(61)
前面准备好文件后,就需要从光盘里拷贝文件到安装目录,下面就是这个过程的界面: 实现这个过程的代码如下: #001 static #002 PAGE_NUMBER #003 FileCopyPage(PINPUT_RECORD Ir) #004 { #005 COPYCONTEXT CopyContext; #006 显示拷贝文件的标题。 #007 MUIDispl
作者:佚名 时间:2020-05-20
reactos操作系统实现(62)
当文件拷贝完成后,主要就是把已经拷贝的文件进行注册表登记,还需要把用户在安装过程里选择的配置保存到注册表,同时也需要把检查到的硬件保存到注册表里。其实注册表,就是保存一些配置信息,这样下一次启动时,就可以直接把这些信息加载到内存就行了,不需要用户重新选择,也不需要重新搜索硬盘配置。代码如下: #001 static PAGE_NUMBER #002 RegistryPage(PINPUT_RE
作者:佚名 时间:2020-05-20
reactos操作系统实现(63)
前面把注册表初始化完成之后,就开始进行安装引导程序了。这里安装的引导程序是分区引导程序,或者安装到软盘引导程序。当然也可以选择跳过不安装它,界面如下: 这个函数的代码如下: #001 static PAGE_NUMBER #002 BootLoaderPage(PINPUT_RECORD Ir) #003 { #004 UCHAR PartitionType; #005
作者:佚名 时间:2020-05-20
reactos操作系统实现(64)
在安装一个操作系统时,绝大多数都是把引导程序安装在硬盘里,下面就来了解安装到硬盘里具体过程,实现代码如下: #001 static PAGE_NUMBER #002 BootLoaderHarddiskPage(PINPUT_RECORD Ir) #003 { #004 UCHAR PartitionType; #005 NTSTATUS Status; #006
作者:佚名 时间:2020-05-20
上一页
29
30
31
32
33
34
35
36
下一页
小编推荐
苹果市值2025年有望达4万亿美元
• iPadOS 18来了,iPad现在真的有“生产力
• 谷歌日本整活:打造莫比乌斯外形键盘 正
• 天玑9400核心配置曝光,OV米均已采购,
• iPad和安卓Pad有什么区别?不用这三项功
• 松下全画幅镜头便携长焦70-300mm F4.5-
• 停产Quest Pro、力推Quest 3S,Meta要让
• RTX 4080/90要说再见!消息称英伟达11月
热门标签
更多
python
JavaScript
java
HTML
PHP
reactjs
C#
Android
CSS
Node.js
sql
r
python-3.x
MysqL
jQuery
c++
pandas
Flutter
angular
IOS
django
linux
swift
typescript
路由器
JSON
路由器设置
无线路由器
h3c
华三
华三路由器设置
华三路由器
电脑软件教程
arrays
docker
软件图文教程
C
vue.js
laravel
spring-boot