大坡3D软件开发

关注3D软件技术

文章列表

原创 reactos操作系统实现(33)


当Reactos在系统初始化时,就会调用进程管理初始化函数PsInitSystem来进行初始化。只有把进程管理初始化后,才可以创建进程,这样才可运行各种各样的任务。下面就来分析进程管理器初始化函数:
#001  BOOLEAN
#002  NTAPI
#003  PsInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
#004  {
在参数里把系统引导参数传递进来,以便根据不同的配置选择不同的进程管理方案。

#005      /* Check the initialization phase */
#006      switch (ExpInitializationPhase)
#007      {
#008      case 0:
#009 

这里进行第0阶段的进程管理器初始化。
#010          /* Do Phase 0 */
#011    阅读全文>

发表于 @ 2009年07月02日 20:50:00|评论(loading...)|举报|收藏

原创 reactos操作系统实现(32)


这个函数主要功能就是实现访问不存在的页面。
#001  NTSTATUS
#002  NTAPI
#003  MmNotPresentFault(KPROCESSOR_MODE Mode,
#004                             ULONG_PTR Address,
#005                             BOOLEAN FromMdl)
#006  {
#007     PMM_AVL_TABLE AddressSpace;
#008     MEMORY_AREA* MemoryArea;
#009     NTSTATUS Status;
#010     BOOLEAN Locked = FromMdl;
#011     PFN_TYPE Pfn;
#012 
#013     DPRINT("MmNotPresentFault(Mode %d, Address %x)\n", Mo阅读全文>

发表于 @ 2009年07月01日 21:19:00|评论(loading...)|举报|收藏

原创 我有一个梦想--3G时代

随着通讯技术的发展,3G时代快要来临了。在这里我来谈谈对3G的基本需求,以便广大服务商适应我的需求。目前,移动的3G是自主3G技术TD-SCDMA,联通的3G是WCDMA,电信的3G是CDMA2000,其实不管是那种技术,对我来说,都是无所谓的。我主要体现在下面几点需求上:阅读全文>

发表于 @ 2009年05月19日 12:51:00|评论(loading...)|举报|收藏

原创 最差的产品是马桶还是Outlook

一年的时间过得还真快,去年的英雄大会场景还沥沥在目,今年的英雄会轰隆隆地上演了。在北京2009年的英雄会三天里,留在脑海里有CSDN自己搭建的办公室,有CSDN热烈欢迎场景,有CSDN办公室里运动场所,还有喝酒的激情场面。阅读全文>

发表于 @ 2009年04月22日 23:50:00|评论(loading...)|举报|收藏

原创 听得见炮声的软件开发

2009年是不平凡的一年,金融海啸肆虐不可避免地冲击着软件行业。面对经济危机下的挑战,以往的高额利润在缩水,以往的大手大脚的花费在缩减,以往的高薪激励在降低。在目前这种情况下,我们更加需要打造高效软件开发的团队,以便在经济危机里度过艰难的日子,取得以往的战果,开拓新的市场。阅读全文>

发表于 @ 2009年03月27日 00:06:00|评论(loading...)|举报|收藏

原创 reactos操作系统实现(31)

先判断缺页内存地址在系统空间,还是在用户空间,然后再在相应的空间里查找地址所有内存块。如果找到内存,就在函数MmAccessFaultSectionView里处理相应的功能。阅读全文>

发表于 @ 2009年03月05日 23:08:00|评论(loading...)|举报|收藏

原创 reactos操作系统实现(30)

对无效页面的一次访问称为“缺页错误”。对于这类错误都会导致中断处理函数MmAccessFault。那么什么样的情况才叫做无效页面呢?主要有下面几种情况: l 所有访问的页面不存内存里,而是磁盘里。 l 访问的页面在后备列表里。 l 访问的页面没有提交写操作。 l 从用户态访问核心态的页面。 l 对只读页面产生写操作。 l 非法访问其它进程的页面。 可见,缺页中断处理函数不仅要处理大部份换页的情况,还需要处理非法访问其它页面的情况,因此这个函数的代码也是很复杂的。现在就来分析函数的代码,如下:阅读全文>

发表于 @ 2009年03月01日 10:12:00|评论(loading...)|举报|收藏

原创 reactos操作系统实现(29)

内存大小好像永远追不上人们的需求,以前以为512K就很大了,到现在内存已经是4G,8G内存了,但还是不能满足人们的需求。因为目前的系统都是多进程运行,每个进程都需要占用4G的内存,那么10个进程,就占用相当可观的内存了。这时就需要把进程不经常使用的内存数据切换到硬盘里,需要时再换回来。如果一个进程的内存已经换到硬盘上,而这个进程又想访问那些在硬盘的内存数据时,就会产生一个缺页中断。这个中断是CPU产生的,并且进入操作系统的中断门处理函数里,那么ReactOS是怎么样处理的呢?其实它是调用下面的函数来处理这个中断的,如下:阅读全文>

发表于 @ 2009年02月25日 21:32:00|评论(loading...)|举报|收藏

原创 用wxWidgets开发应用程序

wxWidgets是一个很大的、扩展了的C++类层次结构,它能使开发Windows应用程序变得更加容易。wxWidgets封装了SDK结构、功能及应用程序框架内部技术,隐藏了过去许多Windows和Linux程序不得不处理的许多重复工作。阅读全文>

发表于 @ 2009年02月20日 23:19:00|评论(loading...)|举报|收藏

原创 reactos操作系统实现(28)

在内存管理里,绝大部份内存都是分页内存。分页内存就是把内存分成4K页大小的内存块,这些内存块不但可以在物理内存里,也可以切换时保存到硬盘里。这些内存管理里是通过下面的代码进行的,如下:阅读全文>

发表于 @ 2009年02月19日 22:14:00|评论(loading...)|举报|收藏

原创 reactos操作系统实现(27)

下面接着来分析EiAllocatePool函数,这个函数要传入使用者内存类型、内存大小、内存标记和调用者地址。阅读全文>

发表于 @ 2009年02月15日 17:24:00|评论(loading...)|举报|收藏

原创 Visual C++ 2008 Express Edition开发SDK应用程序

许多从来没有编写过Windows应用程序的人可能会认为这是一件很费力的事情,但是选择正确的编程工具可以让我们的工作变得简单一些。在这里我们选择VC++2008,同时又采用开源的wxWidgets库来开发程序,这是非常强大的库,会使我们编写Windows程序更加简单。特别在跨平台设计也会更方便。朋友们得多花一些时间来学习Visual C++的基本知识,磨刀不误砍柴功。阅读全文>

发表于 @ 2009年02月10日 23:02:00|评论(loading...)|举报|收藏

原创 VC++ 2008 Express的wxWidgets培训班

掌握VC++ 2008 Express开发软件。掌握Windows SDK程序设计方法。掌握wxWidgets类库在Windows平台的使用。学习跨平台的wxWidgets类库。阅读全文>

发表于 @ 2009年02月09日 23:26:00|评论(loading...)|举报|收藏

原创 reactos操作系统实现(26)

在ReactOS内存管理里,有一块内存区是非分页内存,也就是这块内存始终保持在系统物理内存里面,不会换到磁盘上。那为什么需要这样做呢?全部使用分页内存不是更简单,更方便吗?肯定不行的,因为IA86的内存管理就决定它不能这样做了,当CPU缺页中断时,就需要操作系统把分页内存换到磁盘上,再把加载数据从磁盘读取回来。如果操作系统使用的内存都是分页内存,那么操作系统就没有办法运行了,因为所需要运行的代码都在磁盘上。阅读全文>

发表于 @ 2009年02月04日 23:22:00|评论(loading...)|举报|收藏

原创 reactos操作系统实现(25)

在操作系统里,有时候需要从保护模式转换为实模式来调用BIOS一些功能。因此在硬件抽象层里,就需要提供这样的函数支持,这个函数代码如下:阅读全文>

发表于 @ 2009年02月02日 22:38:00|评论(loading...)|举报|收藏

第 1/47 页(共693篇)   1 2 3 4 5 下一页 ... 末页
Csdn Blog version 3.1a
Copyright © 蔡军生