E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
REACTOS
代码分析: Wine HeapAllocate 函数
HeapAllocate()wine-1.0+
ReactOS
[email protected]
这里是对堆函数进行一些分析,阅读代码时最好参考wine源码阅读,可以在www.winehq.org
hongmy525
·
2009-04-09 00:00
数据结构
编程
windows
list
null
代码分析
漫谈兼容内核之十一:Windows DLL的装入和连接
在
ReactOS
中则同样也是L
zytju1983
·
2009-03-13 00:00
数据结构
windows
image
Module
dll
import
漫谈兼容内核之七:Wine的二进制映像装入和启动
我们这样来考虑:在Windows或
ReactOS
中,创建进程是由CreateProcessW()完成的,系统中的“始祖”进程就是个Windows进程,代代
zytju1983
·
2009-03-13 00:00
漫谈兼容内核之二十四:Windows的结构化异常处理(一)
在
ReactOS
内核的源代码中,特别是在实现系统调用的代码中,读者已经看到很多类似于这样的代码: if(MaximumSize!=NULL&&PreviousMode!
zytju1983
·
2009-03-13 00:00
reactos
操作系统实现(31)
下面来分析保存数据时缺页中断函数,它的代码如下:#001 NTSTATUS#002 NTAPI#003 MmpAccessFault(KPROCESSOR_MODEMode,#004 ULONG_PTRAddress,#005 BOOLEANFromMdl)#006 {#007 PMM_AVL_TABLEAddress
caimouse
·
2009-03-05 23:00
null
table
System
Access
reactos
操作系统实现(30)
对无效页面的一次访问称为“缺页错误”。对于这类错误都会导致中断处理函数MmAccessFault。那么什么样的情况才叫做无效页面呢?主要有下面几种情况:l 所有访问的页面不存内存里,而是磁盘里。l 访问的页面在后备列表里。l 访问的页面没有提交写操作。l 从用户态访问核心态的页面。l 对只读页面产生写操作。l 非
caimouse
·
2009-03-01 10:00
优化
Access
磁盘
reactos
操作系统实现(29)
内存大小好像永远追不上人们的需求,以前以为512K就很大了,到现在内存已经是4G,8G内存了,但还是不能满足人们的需求。因为目前的系统都是多进程运行,每个进程都需要占用4G的内存,那么10个进程,就占用相当可观的内存了。这时就需要把进程不经常使用的内存数据切换到硬盘里,需要时再换回来。如果一个进程的内存已经换到硬盘上,而这个进程又想访问那些在硬盘的内存数据时,就会产生一个缺页中断。这个中断是CP
caimouse
·
2009-02-25 21:00
thread
exception
less
System
Access
byte
reactos
操作系统实现(28)
在内存管理里,绝大部份内存都是分页内存。分页内存就是把内存分成4K页大小的内存块,这些内存块不但可以在物理内存里,也可以切换时保存到硬盘里。这些内存管理里是通过下面的代码进行的,如下:#001 VOID#002 INIT_FUNCTION#003 NTAPI#004 MmInitializePagedPool(VOID)#005 {#006 /*#007 *Wearestill
caimouse
·
2009-02-19 22:00
数据结构
cache
less
alignment
reactos
操作系统实现(27)
下面接着来分析EiAllocatePool函数,这个函数要传入使用者内存类型、内存大小、内存标记和调用者地址。#001 staticPVOIDNTAPI#002 EiAllocatePool(POOL_TYPEPoolType,#003 ULONGNumberOfBytes,#004 ULONGTag,#005
caimouse
·
2009-02-15 17:00
Algorithm
c
session
存储
reactos
操作系统实现(26)
在
ReactOS
内存管理里,有一块内存区是非分页内存,也就是这块内存始终保持在系统物理内存里面,不会换到磁盘上。那为什么需要这样做呢?全部使用分页内存不是更简单,更方便吗?
caimouse
·
2009-02-04 23:00
reactos
操作系统实现(25)
在操作系统里,有时候需要从保护模式转换为实模式来调用BIOS一些功能。因此在硬件抽象层里,就需要提供这样的函数支持,这个函数代码如下:#001 BOOLEAN#002 NTAPI#003 HalpBiosDisplayReset(VOID)#004 {#005 ULONGFlags=0;#006 保存CPU所有状态寄存器,然后关闭中断。#007 /*Disableinterru
caimouse
·
2009-02-02 22:00
reactos
操作系统实现(24)
在很早的电脑里,就带有一个小喇叭,可以发出不同频率的声音。主要用来判断系统是否有问题使用,比如BIOS检查硬有问题时,就会发出不同的声音,提醒用户是那里出问题了。在操作系统里,也经常使用这个小喇叭来提醒用户是什么问题,比如输入非法的按键时,就响一声。在早期的五笔输入法时,输入的字不对,就会用这个小喇叭提醒,让忘打的操作人员回到屏幕上选择所需要的字。那么这个小喇叭的驱动是怎么样进行的呢?这里就来研
caimouse
·
2009-01-22 22:00
编程
timer
工作
输入法
reactos
操作系统实现(22)
从Boot.S文件里初始化系统基本组件后,就跳到空闲函数处理,就成为一个空闲处理的线程,其实也是一个管理系统的任务。下面就来分析KiIdleLoop函数的代码,如下:#001 .globl@KiIdleLoop@0#002 .func@KiIdleLoop@0,@KiIdleLoop@0#003 @KiIdleLoop@0:#004 获取KPCR的指针地址,这样就可以方便访问KPCR里的成员。
caimouse
·
2009-01-18 22:00
reactos
操作系统实现(21)
初始化NLS代码表。#124 /*InitializetheNLSTables*/#125 RtlInitNlsTables((PVOID)((ULONG_PTR)ExpNlsTableBase+#126 ExpAnsiCodePageDataOffset),#127 (PVOID
caimouse
·
2009-01-14 21:00
reactos
操作系统实现(20)
下面来了解内核执行体的处理,它是在初始化内核线程后运行的,代码如下:#001 /*SetuptheIdleThread*/#002 KeInitializeThread(InitProcess,#003 InitThread,#004 NULL,#005
caimouse
·
2009-01-12 00:00
reactos
操作系统实现(19)
由于CPU是多种多样,具备能力也是不一样的,并且不同厂家都会创新不同的功能。下面就来了解CPU特征识别,如下:/*GettheprocessorfeaturesfortheCPU*/ FeatureBits=KiGetFeatureBits();这里是通过函数KiGetFeatureBits来获取CPU特征位,它的代码如下:#001 ULONG#002 NTAPI#003 KiGetFeatu
caimouse
·
2009-01-07 22:00
对"中国计算机技术只落后美国2年"一点看法
nbsp; 今天在CSDN一则新闻上看到的:中科院计算所所长李国杰院士说:中国计算机软硬件技术跟美国相比只相差2年,并举出了龙芯和我国开发的Linux和
reactos
xinglongbing
·
2009-01-07 21:00
linux
reactos
操作系统实现(18)
在X86的体系架构里,整数运算和浮点运算是分开的。算术逻辑单元(ArithmeticLogicUnit,ALU)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"与门"和"或门"构成的算术逻辑单元,主要功能是进行二进制的算术运算,如加减乘(不包括整数除法)。基本上,在所有现代CPU体系结构中,二进制都以二补数的形式来表示。浮点运算器(floatingpointunit,缩写FP
caimouse
·
2009-01-04 00:00
reactos
操作系统实现(17)
从上面分析可以看到,主要调用函数KiInitializeKernel来初始化内核,这个函数传送的参数与函数KiSetupStackAndInitializeKernel的参数是一样的,如下:#001 VOID#002 NTAPI#003 KiInitializeKernel(INPKPROCESSInitProcess,#004 INPKTHREADInitT
caimouse
·
2009-01-01 12:00
reactos
操作系统实现(16)
下面仔细分析这个函数的代码:#001 /*Switchtonewkernelstackandstartkernelbootstrapping*/#002 KiSetupStackAndInitializeKernel(&KiInitialProcess.Pcb,#003 InitialThread,#004
caimouse
·
2008-12-30 21:00
reactos
操作系统实现(15)
在
ReactOS
里有这么一段初始化代码,如下:#001 AppCpuInit:#002 /*Loopuntilwecanreleasethefreezelock*/#003 do#004
caimouse
·
2008-12-27 23:00
reactos
操作系统实现(14)
下面来分析一下系统任务是怎么样初始化的,先来看这行代码:/*SetuptheTSSdescriptorsandentries*/ Ki386InitializeTss(Tss,Idt,Gdt);在这个Ki386InitializeTss函数里就是进行初始化系统任务的工作,因此要分析这个函数的代码,才可以理解系统任务的工作。#001 VOID#002 FASTCALL#003 Ki386Init
caimouse
·
2008-12-24 00:00
reactos
操作系统实现(13)
从
ReactOS
看到下面这行代码:/*GetGDT,IDT,PCRandTSSpointers*/ KiGetMachineBootPointers(&Gdt,&Idt,&Pcr,&Tss);它是代表什么意思呢
caimouse
·
2008-12-22 22:00
reactos
操作系统实现(12)
有了上面的知识,就来分析
ReactOS
里引导任务是怎么样设置全局描述符表。其工作过程如下图所示:由于CPU初始化运行后,就当作为一个任务在运行。
caimouse
·
2008-12-21 10:00
reactos
操作系统实现(11)
在IA-32的CPU架构里,采用了中断寄存器和中断描述符来判断中断的来源,如下图所示:在
ReactOS
里使用下面这行代码来设置IDTR寄存器的值:Ke386SetInterruptDescriptorTable
caimouse
·
2008-12-18 22:00
exception
api
service
table
System
callback
reactos
操作系统实现(10)
看到下面的语句,你能看得懂吗?/*LoadtheGDTandIDT*/ Ke386SetGlobalDescriptorTable(*(PKDESCRIPTOR)&KiGdtDescriptor.Limit);如果没有去看INTEL的文档,是看不懂的。因为它是跟INTEL的CPU架构密切相关的。现在就去解一下什么叫做全局描述符。先来看看下图的结构:上面红色的框内就是GDTR了,它的描述可以从I
caimouse
·
2008-12-17 23:00
struct
table
文档
byte
Descriptor
initialization
reactos
操作系统实现(9)
在
reactos
初始化代码里,经常看到ACPI的缩写,那么它是表示什么意思呢?现在就来解决这个问题,它就是电源管理方面的。
caimouse
·
2008-12-16 13:00
reactos
操作系统实现(8)
通过上面引导程序初始化后,引导程序就把控制权交给ntoskrnl.exe运行,在内核里需要进一步初始化,这个过程大体如下: 上面是最基本的流程,在这个过程里,还会调用很多函数来设置各种各样的功能。通过上面的流程,就可以了解引导CPU第一个进程,就是IdleLoop进程。
caimouse
·
2008-12-15 00:00
reactos
操作系统实现(7)
l FreeLoader内存布局0000:0000-0000:0FFF: 中断向量表和BIOS数据0000:1000-0000:6FFF: 实模式的栈内存0000:7000-0000:7FFF: 命令行(multiboot)0000:8000-xxxx:xxxx:FreeLoader程序和数据xxxx:xxxx-7000:7FFF: 随机分配的堆内存7000:8000
caimouse
·
2008-12-13 22:00
dll
reactos
操作系统实现(6)
主引导代码(MasterBootRecord(MBR)code),主要寻找活动分区,然后读入引导扇区代码16位执行代码
reactos
/boot/freeldr/bootsect/dosmbr.asm2.
caimouse
·
2008-12-11 22:00
c
工作
活动
System
reactos
操作系统实现(5)
一般的电脑都是使用硬盘来引导操作系统,由于硬盘是电脑的最常用的存储媒介,在
ReactOS
里,它会把一个硬盘划分成如下的形式: 通过安装程序把扇区引导程序写到硬盘分区引导记录扇区,然后当BIOS加电后,就会先加载硬盘的主引导扇区
caimouse
·
2008-12-11 00:00
活动
存储
任务
reactos
操作系统实现(4)
由于近来家里的电脑坏了,老是上网就死机,也上不了网发贴。近来也是经济危机到来的时候,事情还是比较多。本来不太打算更换电脑的,等到明年电脑降价了,再去买的。但这台电脑也用了四年了,又急着想上网,就下定决心去买了一台电脑回来。当然,这次配置的电脑,就不能太差了,以往都最便宜的就买。主机至少也配置4000元的,有了这个预算之后,就开始选择配置。是选择双核,还是四核呢?比较了一下,发现我往往是编译程序比较
caimouse
·
2008-12-05 13:00
多线程
Google
华硕
reactos
操作系统实现(3)
有人说,
reactos
不是实时操作系统,不能做嵌入式系统,难道真的不能做嵌入式系统吗?其实不是这样的,嵌入式系统本来就包括有两类系统,一种是要求实时性强,一种是要求实时性弱的。这两种都是嵌入式系统。
caimouse
·
2008-11-21 13:00
gcc
嵌入式
工具
平台
产品
X86
类似Windows的开源操作系统 -
ReactOS
介绍
可能真是李马孤陋寡闻,直到2006年的时候才知道了
ReactOS
这么个操作系统,更是直到2007年的时候才把它成功地安装在了VMware虚拟机上。——什么?你说你也不知道这个操作系统?
gk23
·
2008-11-15 13:00
vmware
windows
虚拟机
XP
网络应用
类似Windows的开源操作系统 -
ReactOS
介绍
可能真是李马孤陋寡闻,直到2006年的时候才知道了
ReactOS
这么个操作系统,更是直到2007年的时候才把它成功地安装在了VMware虚拟机上。——什么?你说你也不知道这个操作系统?
gk23
·
2008-11-15 13:00
vmware
虚拟机
windows
网络应用
XP
[转]类似Windows的开源操作系统 -
ReactOS
介绍
action=show&id=188可能真是李马孤陋寡闻,直到2006年的时候才知道了
ReactOS
这么个操作系统,更是直到2007年的时候才把它成功地安装在了VMware虚拟机上。——什么?
wapysun
·
2008-11-14 21:00
windows
[转]类似Windows的开源操作系统 -
ReactOS
介绍
action=show&id=188 可能真是李马孤陋寡闻,直到2006年的时候才知道了
ReactOS
这么个操作系统,更是直到2007年的时候才把它成功地安装在了VMware虚拟机上。——什么?
heiyeshuwu
·
2008-11-14 21:00
vmware
windows
虚拟机
XP
Microsoft
tools
[转]类似Windows的开源操作系统 -
ReactOS
介绍
action=show&id=188可能真是李马孤陋寡闻,直到2006年的时候才知道了
ReactOS
这么个操作系统,更是直到2007年的时候才把它成功地安装在了VMware虚拟机上。——什么?
varsoft
·
2008-11-14 21:00
vmware
windows
虚拟机
XP
网络应用
[转]类似Windows的开源操作系统 -
ReactOS
介绍
action=show&id=188可能真是李马孤陋寡闻,直到2006年的时候才知道了
ReactOS
这么个操作系统,更是直到2007年的时候才把它成功地安装在了VMware虚拟机上。——什么?
txf2004
·
2008-11-14 21:00
vmware
windows
虚拟机
XP
网络应用
reactos
操作系统实现(2)
目前
reactos
是基于C来开发的,那么对于C的语法是要了解的,并且熟练地使用C来开发软件。由于在一堆没有什么功
caimouse
·
2008-11-14 13:00
c
工作
SVN
汇编
工具
磁盘
reactos
操作系统实现(1)
reactos
是什么操作系统呢?它是一个开源的操作系统,并且是兼容WindowsXP的应用程序和驱动程序的操作系统。
caimouse
·
2008-11-13 13:00
windows
XP
嵌入式
文档
微软
Linux兼容内核的三个重要源泉
除Linux本身以外,兼容内核主要的源泉有三个,那就是Wine、NdisWrapper、以及
ReactOS
。
yasa98
·
2008-08-31 15:30
linux
职场
兼容
休闲
内核的
zz Windows体系结构
内核模式的构成文件是系统的核心文件她包含:hal.dllntoskrnl.exe设备驱动文件系统驱动图形设备驱动win32k.sys1.首先来看第一层HAL(硬件抽象层) HAL使得
reactOS
内核可以运行在不同的
strollerV
·
2008-05-02 14:00
windows
配置管理
System
存储
图形
硬件驱动
在ubuntu7.10上的virtualbox里安装
ReactOS
这几天,有点不务正业,在sourceforge上闲逛看到了一个叫
ReactOS
的东西,起初以为是给windows做的壳(英语太差),后来又找相关资料才知道是一个仿WindowsNT的操作系统,现在最新是
Game?Life?
·
2008-04-16 02:00
漫谈兼容内核:
ReactOS
怎样实现系统调用http://www.linuxsir.org/bbs/showthread.php?t=232200
linux.insigma.com.cnLinux兼容内核项目自由论坛:http://linux.insigma.com.cn/devbbs/index.aspLinux兼容内核项目QQ讨论群:15340505漫谈兼容内核之一:
ReactOS
ydfok
·
2008-02-25 22:00
thread
数据结构
windows
exception
linux
linux内核
NT / Subsystem
Recently I discovered a bug of CPL(Control Panel) in
reactos
.
DavidL
·
2007-07-12 18:00
C++
c
linux
C#
这半年成绩
被迫研究Windows,
ReactOS
,wine和linux的源代码,挖得有点感觉了3。写了一堆范型的概念实现(typeof,multib
shifan3
·
2007-02-04 15:00
感受200万行源程序
感受200万行源程序 昨天有朋友提起
reactos
,问我怎么样调试它,幸好我还能记得起,也许是因为我对它的理解得太深了,到现在还没有忘记。
caimouse
·
2006-07-21 19:00
windows
image
File
OS
Build
编译器
一些内核研究的经典电子书籍
Linux兼容内核相关下载: 实现系统调用进入/退出机制的源代码 Kernel-win32在兼容内核上移植的源代码 技术资料参考: Linux-2.6.13源代码 wine的2005-07-25发布版本
ReactOS
chenhu_doc
·
2006-06-01 23:00
windows
linux
Microsoft
chm
reference
linux内核
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他