- 博客(21)
- 收藏
- 关注
原创 linux下禁止机箱蜂鸣方法
更改/etc/inputrc文件,找到set bell-style none这一行,把前面注释去掉,但这个只能解决控制台下命令补全或命令出错不发出蜂鸣声,要想完全不发出蜂鸣声,可以用下面的方法:加入xset b off于用户目下的.bashrc文件中。或者setterm -blength 0
2008-09-27 17:18:00 1106
原创 linux内核常用宏学习——BUILD_BUG_ON
/* Force a compilation error if condition is true */#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])如果条件为真则引起一个编译时错误。
2008-09-27 11:30:00 5815
原创 Linux代码阅读之header.S(一)
以下源代码来源于linux2.6.26.5的arch/x86/boot/header.S/* * header.S * * Copyright (C) 1991, 1992 Linus Torvalds * * Based on bootsect.S and setup.S * modified by more people than can be co
2008-09-24 17:07:00 3881 1
转载 one's complement & two's complement
一的补码(ones complement) 指的是:正数=原码,负数=反码 而二的补码(twos complement) 指的就是通常所指的补码
2008-09-24 09:37:00 6626 1
转载 The Kernel Boot Process
本文系转载,原文地址:http://duartes.org/gustavo/blog/post/kernel-boot-processThe previous post explained how computers boot up right up to the point where the boot loader, after stuffing the kernel image into
2008-09-23 14:44:00 2982
转载 How Computers Boot Up
本文系转载,原文地址:http://duartes.org/gustavo/blog/post/how-computers-boot-upThe previous post described motherboards and the memory map in Intel computers to set the scene for the initial phases of boot. B
2008-09-23 14:35:00 1537
转载 Motherboard Chipsets and the Memory Map
本文系转载,原文地址:http://duartes.org/gustavo/blog/post/motherboard-chipsets-memory-map I’m going to write a few posts about computer internals with the goal of explaining how modern kernels work. I hope
2008-09-23 10:10:00 2348 3
转载 INT 15h系列介绍
本文系转载,原文地址:http://www.uruk.org/orig-grub/mem64mb.htmlINT 15h, AX=E820h - Query System Address MapReal mode only.This call returns a memory map of all the installed RAM, and of physicalmemo
2008-09-22 16:33:00 10149 2
转载 e820简介
本文系转载,原文地址:http://wangcong.org/blog/?p=320,其中附录部分为本人所加... e820是和BIOS的一个中断相关的,具体说是int 0x15。之所以叫e820是因为在用这个中断时ax必须是0xe820。这个中断的作用是得到系统的内存布局。因为系统内存会有很多段,每段的类型属性也不一样,所以这个查询是“迭代式”的,每次求得一个段。 我们看内核源代
2008-09-22 15:54:00 16450 1
转载 Linux启动代码分析
本文系转载,原文地址:http://blog.chinaunix.net/u/6071/showart_205152.htmlLinux启动代码分析Kernel: 2.6.10-rc2Finished: 01/01/05/* * Activate the first processor. */asmlinkage void __init start_kernel
2008-09-22 15:00:00 3607 1
原创 Windows存储设备驱动程序结构简介
Windows存储设备驱动程序结构简介Windows中的存储驱动程序符合“类(Class)/端口(Port)/小端口(Miniport)”结构:microsoft提供一个存储类驱动程序,它实现了对于所有的存储设备都共同的功能;microsoft也提供了一个存储端口驱动程序,它实现了对于特定总线而言共同的功能;OEM厂商提供小端口驱动程序,它们插入到端口驱动程序中,将windows与特定的实现连
2008-09-22 08:58:00 3254 1
原创 Linux虚拟内存组织结构浅析(二)
Linux虚拟内存组织结构浅析(二)在前一篇文章中我们介绍了Linux虚拟内存在逻辑上的组织结构,现在就让我们从源代码入手,从程序级仔细看看各个数据结构体的内部组成如何,源代码来自于最新的kernel2.6.26.5,分析过程中主要参考了《Understanding the linux virtual memory》这本书,有兴趣的朋友可以去阅读一下。 一、节点的数据表示在内核中,
2008-09-21 17:19:00 4127
原创 Linux虚拟内存组织结构浅析(一)
众所周知,linux内核支持绝大多数体系结构,因此linux内核必须采取一种与具体体系结构无关的方法来描述物理内存的组织结构,这个问题就是本系列文章要讨论的话题。 要理解linux虚拟内存在逻辑上的组织结构,我们首先要明白两个概念:UMA(Uniform Memory Access)、NUMA(Non Uniform Memory Access)。UMA指一致性内存访问,这是单CPU机器常
2008-09-20 10:48:00 4812
转载 C语言编译过程
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件1.编译预处理读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理伪指令主要
2008-09-18 17:24:00 1162 2
转载 Pageable kernel-mode drivers
Pageable kernel-mode driversBy default, the kernel loader will load all driver executables and any global data that you may have defined in your driver into nonpaged memory. Therefore, if you want y
2008-09-18 09:08:00 1118
原创 Windows DDK中经典的宏——CONTAINING_RECORD
在windows ddk中提供了一个经典的宏,其定义如下:#define CONTAININT_RECORD(address, type, field) / ((type*)((PCHAR)(address) - (PCHAR)(&((type*)0)->field)))这个宏用于取得内存中任何结构体的首地址,要提供的参数是:结构体中某个成员(field)的地址addres
2008-09-17 20:47:00 5948 2
翻译 卷的挂载过程
卷的挂载过程原文:The volume mount process is typically triggered by a request to open a file on a logical volume (that is, a partition or dynamic volume) as follows: A user application calls CreateFil
2008-09-17 18:43:00 2163 1
原创 CreateFile打开文件执行流程浅析
CreateFile打开文件的执行流程浅析 分析CreateFile这个函数打开文件的执行流程有助于我们理解windows操作系统在接收到用户打开文件请求后都会做哪些工作、它是如何找到驱动程序的、以及有哪些windows核心部件参与了打开文件的操作,这对我们开发windows驱动程序十分有益。下面我们以CreateFile打开文件C:/MYFILE.CPP来浅析这一过程,系统对象参考图例
2008-09-17 18:35:00 5971 1
翻译 Timing of File Operations In WDM driver
原文:You’ll be likely to want to read a disk file in a WDM driver while you’re initializing your device in response to an IRP_MN_START_DEVICE request. Depending on where your device falls in the initi
2008-09-12 10:03:00 980
转载 利用IoBuildDeviceIoControlRequest构造irp获得存储设备总线类型源代码
本代码演示用IoBuildDeviceIoControlRequest向下层存储设备的DeviceObject发送一个代码为IOCTL_STORAGE_QUERY_PROPERTY的IRP_MJ_DEVICE_IO_CONTROL的Irp获取到存储设备所在的总线类型。此代码来源于互联网,所有权归原作者所有。ULONG GetStorageDeviceBusType(IN PDEVIC
2008-09-08 16:29:00 5499 1
原创 重要函数学习:IoBuildDeviceIoControlRequest
重要函数学习:IoBuildDeviceIoControlRequest这个函数主要用来构造一个用于设备i/o控制请求的irp包,该irp包将被同步处理,其原型如下: 参数解释: IoControlCode 提供i/o控制请求所需的i/o控制码。这个i/o控制码可以在msdn中查询到。 DeviceObj
2008-09-08 15:53:00 6905
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人