自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

转载 linux字符cdev和inode的联系

<br />最近在看Android移植,因此需要了解Linux的设备驱动模型,觉得应该和windows的驱动模型差不多吧,所以按照自己的对windows驱动的认识看了一下,发现Linux和Windows的驱动模型差别还是比较大的,linux中设备、驱动标准比较多,感觉不像Windows设备驱动中那么统一,下面是一篇关于关于字符类型设备驱动的分析,它从原理的方式来叙述,而且还有图片,百文不如一图嘛,写得的却很不错。<br /> <br /> <br />作者:贝壳汉姆   出处:IT实验室系统管理 <br /

2011-05-17 09:44:00 342

转载 Writing the first ReactOS application

 Im going to explain how to build your own ReactOS application using ROSBE the examples works without changes, if source code was located in c:/ReactOS-SRC and ROSBE is installed correctly.all the

2010-04-01 20:41:00 136

转载 2006年100款最佳安全工具

 在 2000 和 2003 年非常成功的推出了安全工具调查后, Insecure.Org 非常高兴为大家带来 2006 年度的安全工具调查。我( Fyodor )对 nmap-hackers 邮件列表中的用户进行了调查,让大家来分享他们最喜欢用的工具,结果有 3243 名用户提供了反馈信息。我从反馈信息中选取了大家最喜欢的前 100 种工具,并将它们进行了分类。   建议安全界人士仔细阅

2009-11-16 15:28:00 215

转载 HTTP协议基础

HTTP协议基础 要很好地领会Ajax技术的关键是了解超文本传输协议(HTTP),该协议用来传输网页、图像以及因特网上在浏览器与服务器间传输的其他类型文件。只要你在浏览器上输入一个URL,最前面的http://就表示使用HTTP来访问指定位置的信息。(大部分浏览器还支持其他一些不同的协议,其中FTP就是一个典型例子。)  注意:本文中只涉及HTTP协议,这是Ajax开发人员关心的方面,它可

2009-07-07 21:10:00 707

原创 Debugging with com0com and QEmu

All you must do is: 1) Get QEMU. If you have not it yet, my suggestion is to download Qemu Manager, it already includes a recent build of QEMU and it it helps you to configure virtual machines. 2) Get

2009-06-03 15:35:00 110

转载 Implementing dprintf() without __VA_ARGS

Implementing dprintf() without __VA_ARGS__Posted in C/C++, Programming by jeffhung @ January 29th, 2008 | 本系列共有三篇文章,以及一篇补充数据,建议依照以下顺序阅读: Race condition in C wrapper of mutex class (补充资料)  Implementi

2009-06-01 16:49:00 908

转载 编译选项

优化 选项 作用 /O1 创建小代码 /O2 创建快速代码 /Oa 假设没有别名 /Ob 控制内联展开 /Od 禁用优化 /Og 使用全局优化 /Oi 生成内部函数 /Op 改善浮点数一致性 /Os 代码大小优先 /Ot 代码速度优先 /Ow 假定在函数调用中使用别名 /Ox 使用最大优化 (/Ob1gity /Gs) /Oy 省略框架指针  代码生成 选项 作用 /clr 启用

2009-06-01 13:48:00 605

转载 dll与lib简介

 dll与lib简介什么是lib文件,lib和dll的关系如何(1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有 dll文件,那么对应

2009-04-01 20:09:00 478

原创 win32k 子系统的窗口对象,GDI对象存放位置

win32k在被载入内存后,执行DriverEntry的入口函数NTSTATUS STDCALLDriverEntry (  IN PDRIVER_OBJECT DriverObject,  IN PUNICODE_STRING RegistryPath){    ......    GlobalUserHeap = UserCreateHeap(&GlobalUserHeapSection,  

2009-01-24 20:26:00 239

原创 分页机制启动后Freeldr的全局变量地址变化

[分析环境reactos0.3.5 ,i386体系] 分页机制启动后Freeldr的全局变量地址变化在Freeldr中存在很多全局变量,他们在分页机制启动前后,地址有什么样的变化?比如Freeldr在启动保护模式后设置的堆栈地址,以及引导参数块LoaderBlock,当然还有很多,之所以讨论这两个是因为他们有着特殊的意义。这个特殊的意义是因为在启动分页前后都必须使用,并且在权利移交过程

2008-11-30 20:14:00 563

转载 CMOS Memory Map

 CMOS  ------------------------------------------------------------------------CMOS Memory Map         Release 50                      Last change 5/12/96Compiled from multiple sources by Padgett Pete

2008-11-30 19:55:00 1429

转载 调试信息的输出

调试信息的输出 在程序编写的过程中,通常我们会需要输出一些信息,方便我们了解程序的运行情况,以便查错。因为这些信息,对程序的真正使用者,也就是我们开发者的客户,并没有意义。于是,通常我们会将程序分成测试版 (debug version 或 debug mode) 或发布版 (release version 或 release mode),然后只在测试版里输出这些信息,而在发布版里完全禁止这

2008-10-31 10:02:00 803

原创 Freeldr分页机制的启动

 [分析环境reactos0.3.4 ,i386体系] Freeldr分页机制的启动在引导扇区将freeldr载入内存,并跳转到0000:8000这个地址处开始执行,该地址其实就是RealEntryPoint这个所谓的函数地址该函数位于(arch.S (reactos-0.3.5/boot/freeldr/freeldr/arch/i386)) 在freeldr中存在两个堆栈,

2008-10-27 17:10:00 629 1

转载 Bios 提供的物理内存检测中断参考

INT 15h, AX=E820h - Query System Address MapReal mode only. This call returns a memory map of all the installed RAM, and of physical memory ranges reserved by the BIOS. The address map is return

2008-10-16 17:04:00 995

转载 内存管理内幕

 内存管理内幕动态分配的选择、折衷和实现2004 年 11 月 29 日本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存,以及如何使用垃圾收集自动管理内存。为什么必须管理内存内存管理是计算机编程最为

2008-10-09 17:05:00 663 1

转载 Nt vs. Zw - Clearing Confusion On The Native API

  The NT native API is nothing new. It’s been discussed ad nauseum, it’s been exploited by umpteen different utilities, and portions of it have even migrated into the realm of the fully documented and

2008-09-15 09:02:00 714

转载 System Call Optimization with the SYSENTER Instruction

System Call Optimization with the SYSENTER InstructionBy John Gulbrandsen 9/16/[email protected] Is SYSENTER Faster?As explained in my previous article, the in

2008-09-15 09:01:00 932

原创 新线程的内核态开始函数KiThreadStartup的执行过程

[分析环境reactos0.3.4 ,i386体系]  新线程首次运行时是如何启动内核态的线程启动函数KiThreadStartup呢? 当新线程建立好后,它的内核堆栈中会首先包含一个CtxSwitchFrame框架如下,在它的上面还有StartFrame当然在它的上面还有其他框架,不过现在仅仅关心的是CtxSwitchFrame和StartFrame Us

2008-09-12 17:14:00 1216

原创 系统时钟中断服务例程的建立

[分析环境reactos0.3.4 ,i386体系] 时钟中断初始化的准备工作当硬件抽线层的在初始化可编程间隔定时器 PIT后,硬件就会按照某个时间间隔值产生一次时钟中断,(感觉好像心脏开始跳动)硬件开始了时钟的中断,不过当时钟中断产生时硬件如何进入中断服务函数呢? 要完成这一功能还必须完成两个任务:1.对中断控制器进行编程,就I386体系结构来说就是(PIC或APIC)最

2008-09-04 15:19:00 2228 3

原创 Reactos V0.3.5 中文版

前天编译了Reactos-0.3.5,编译后发现安装时选择中文后,smss.exe(即usetup.exe会被kill掉)后来发现是usetup更新后出现的问题。以下是Reactos-0.3.5 中文版的截图: 中文版的菜单有点问题,问题表现如下图,而且好像仅仅是File菜单:如果有需要的,留下email,我把0.3.5 的压缩包发给你。压缩包包含:QEMU模拟器和

2008-07-09 18:38:00 5179 106

原创 ReactOS,硬件抽象层,可编程间隔定时器 PIT

分析环境reactos0.3.4 ,i386体系] 修订 v0.1  2008-06-10   文件:timer.c(/hal/halppc/generic) 可编程间隔定时器 PIT 系统实现抢占式多任务的根本!线程的命运掌握在系统手中,系统每隔15ms检测一次,如果当前线程时间配额结束,就会执行一次线程切换。对于I386体系结构的计算机中有一个PIT

2008-05-27 08:26:00 1049 4

原创 ReactOS,硬件抽象层,访问CMOS寄存器

  分析环境reactos0.3.4 ,i386体系] 在HAL级所提供的针对CMOS功能在硬件抽象层中,主要的功能是隐藏具体的硬件细节,向上层提供读取以及设置CMOS信息的相关函数,当然还有读取和设置时钟信息的相关函数,这些函数的接口对于上层是一致的,对于下层来说只有实现上的不同,因为不同体系结构不同的芯片也许端口地址或寄存器会有所不同,但是上层并不知道,应为HAL的函数接口是一致的

2008-05-05 22:45:00 488

原创 ReactOS,硬件抽象层,HAL概述

分析环境reactos0.3.4 ,i386体系]  ReactOS的硬件抽象层 HAL(Hardware Abstraction Layer)位于OS与硬件的中间,和windows的hal原理基本一致,硬件抽象层隐藏特定平台的硬件接口细节,为上层的系统提供标准的稳定的虚拟硬件平台,使商城系统具有与硬件无关的特性,从而达到可在多种平台上进行移植的目的。 既然硬件抽象层的功能是隐

2008-05-05 22:33:00 856

原创 reactos中涉及的GNU gas 汇编

分析环境reactos0.3.4 ,i386体系]Reactos中涉及的汇编这几天在看HAL中关于IRQL的实现部分基于PIC(8259a)的,相关文件位于hal/halx86/generic/irq.s,这个文件是用汇编语言写的。一开始以为是用nasm来编译的,后来打开makefile.auto才发现也是用GCC来编译的。大概看了看这个文件中的语法格式,有个疑问,感觉这个文件很像inte

2008-04-09 11:50:00 805

原创 IRQL

IRQLIRQL是Interrupt ReQuest Level,中断请求级别。一个由windows虚拟出来的概念,划分在windows下中断的优先级,这里中断包括了硬中断和软中断,硬中断是由硬件产生,而软中断则是完全虚拟出来的。处理器在一个IRQL上执行线程代码。IRQL是帮助决定线程如何被中断的。在同一处理器上,线程只能被更高级别IRQL的线程能中断。每个处理器都有自己的中断IRQL。

2008-03-26 14:33:00 108

原创 I386常用I/O端口地址空间

I386常用I/O端口地址空间  地址 功能 描述 0x000 0x00F I

2008-03-26 09:54:00 739

原创 windows 内核同步措施

自旋锁一个自旋锁是一个互斥对象, 只能有 2 个值:"上锁"和"解锁". 它常常实现为一个整数值中的一个单个位. 想获取一个特殊锁的代码测试相关的位. 如果锁是可用的, 这个"上锁"位被置位并且代码继续进入临界区. 相反, 如果这个锁已经被别人获得, 代码进入一个紧凑的循环中反复检查这个锁, 直到它变为可用. 这个循环就是自旋锁的"自旋"部分.当然, 一个自旋锁的真实实现比上面描述的复杂一

2008-03-24 16:42:00 218

转载 VGA Hardware

VGA HardwareThe VGA is a complex piece of hardware. Even though its old, many modern graphics cards are compatible with it, including NVidia and ATI cards. This can make writing an VGA driver rather

2008-03-22 21:44:00 719

原创 ReactOS 对多种语言支持

ReactOS 对多种语言支持多语言支持对于windows来说其实就是National Language Support既(NLS)本地化语言支持。那么如何来支持呢?这里其实主要是想知道如何对中文的支持。不过中文是建立在这个之上的,因此干脆就了解一下NLS吧。 本地化语言到底需要解决那些问题 给用户提供一个符合本地区语言习惯和其他一些本地化的环境,用户可以在这个环境中,使用自己

2008-03-12 22:23:00 1222

原创 原子操作

分析环境reactos0.3.1 ,i386体系]今天在看HAL时看到一段关于初始化CPU的代码,在Processor.c (hal/halx86/generic)文件中,如下:VOIDNTAPIHalInitializeProcessor(IN ULONG ProcessorNumber,                       IN PLOADER_PARAMETER_BL

2008-02-20 21:53:00 3837 3

原创 Windows 的体系结构

分析环境reactos0.3.1 ,i386体系]了解了windows的体系结构才知道reactos到底要干什么,以及如何干,因为reactos的目标是兼容windows。下面是windows的体系结构: 这是整个windows的体系结构的总览。从图上可以看出系统被分成内核模式和用户模式。内核模式的构成文件是系统的核心文件她包含: hal.dll

2008-01-29 11:22:00 1601

原创 freeldr 如何调用_BootMain的

 分析环境reactos0.3.1 ,i386体系]函数调用规则在arch.S (boot/freeldr/freeldr/arch/i386)这个文件中,由汇编代码调用了一个C函数BootMain(LPSTR CmdLine)而且还传递了一个字符串指针给BootMain那么汇编语言是如何调用C语言的函数呢?汇编语言如何调用c写的函数,汇编语言与C语言之间如何传递参数,这就需要知道

2008-01-10 15:45:00 575

原创 freeldr 主引导阶段

分析环境reactos0.3.1 ,i386体系] freeldr 主引导阶段进入freeldr的主引导函数后,freeld会做些什么工作呢?前期的有个疑问,就是在arch.s中包含了打开I386的A20地址总线功能的函数(标签)_EnableA20,但是在切换成保护模式时没有调用这个函数(标签)记得在 《80x86汇编语言程序设计教程》里说过打开A20地址总线和是否切换到保护模式没有

2008-01-10 10:45:00 505

原创 freeldr引导的最初阶段

分析环境reactos0.3.1 ,i386体系] freeldr多系统引导程序 freeldr是一个多操作系统的引导程序,在reactos中是如何工作的?一开始当然是MBR(主引导记录,位于磁盘0柱面、0磁头、1扇区),freeldr也有自己的MBR,在安装的时候会安装到指定硬盘的MBR处。BIOS将MBR读取放到内存的0000:7C00处,然后BIOS释放控制权计算机转入这

2008-01-08 16:13:00 951 1

原创 freeldr引导Reactos的最后阶段

[分析环境reactos0.3.1 ,i386体系] freeldr引导的最后阶段freeldr简直就是ntoskrnl的先锋部队,他为ntoskrnl做好了充分的环境准备,ntoskrnl必须工作在保护模式下,并提供分页机制。不过ntoskrnl并不完全依赖于freeldr提供的GDT,IDT和分页机制,在ntoskrnl接管计算机并初始化自己时他会改变这些设置。而freeldr

2008-01-07 17:01:00 565

原创 PAE 模式

[分析环境reactos0.3.1,i386体系结构 ] 什么是PAE PAE 是物理地址扩展 (PAE)的缩写,物理地址扩展 (PAE) X86 允许软件使用地址窗口扩展 (AWE) API 集并在具有 Intel Pentium Pro 或更高版本处理器的计算机上运行,而 4 GB 以上物理内存允许将更多物理内存映射为应用程序的虚拟地址空间。不使用 AWE API 集的应用程序

2008-01-07 15:42:00 1121

转载 PE文件格式”1.9版 完整译文

PE文件格式引言分析内核版本是v0.3.1内核ntoskrnl.exe是一个可执行的文件即PE文件,freeldr在引导时候将这个文件读入到物理内存的0x200000处,整个读取过程采用了可执行文件加载器类是的方式,因此要搞清楚加载器如可工作,首先是要搞清楚PE文件格式。以下是PE文件格式的转贴标 题: 【翻译】“PE文件格式”1.9版 完整译文(附注释)作 者: ah00

2008-01-04 08:37:00 672

转载 Windows应用程序捆绑核心编程

Windows应用程序捆绑核心编程

2007-08-01 19:53:00 509

原创 ReactOS v0.3.3 中文版

[分析环境reactos0.3.1 ,i386体系] ReactOS v0.3.3 中文版ReactOS小组近日发布了ReactOS0.3.3-RC1,就我目前对ReactOS的认识发现0.3.3-RC1,在多字节字符方面主要体现在增加了多字节字符到unicode的转换,前期的v0.3.2 还被  /* FIXME*/ 的/* multi-byte code page*/的转换在该版本

2007-07-28 11:10:00 3872

原创 ReactOS的中文本地化

  [分析环境reactos0.3.1 ,i386体系]ReactOS的中文本地化(类似Windows操作系统源代码分析)1 什么是ReactOS1996年,一群开源软件开发者启动了一个名为 FreeWin95 的项目,旨在实现一个 Windows 95 的克隆操作系统。这个项目当时只停留在关于系统实现的讨论上。到了1997年末,项目依旧没有进展。开发成员呼吁重新开始这个项目,而实现的目标也改

2007-07-22 13:36:00 2910

深入解析Windows操作系统第5版[英文版].PDF.2.RAR

深入解析Windows操作系统第5版[英文版].PDF.2.RAR

2010-09-07

win2kDDK4图形驱动程序设计指南

win2kDDK4图形驱动程序设计指南pdf格式

2009-07-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除