上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 45 下一页

2011年3月19日

摘要: rename 'y/A-Z/a-z/' * 阅读全文
posted @ 2011-03-19 22:09 yming0221 阅读(807) 评论(0) 推荐(0)
摘要: <!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } --> 启动搬迁过程: 1、BIOS将磁盘引导块程序bootsect读入到内存0x7c00,开始执行指令; 2、bootsect将自己搬迁到内存0x90000,跳到该段中的自己的下一条指令执行; 3、bootsect将设备检测安装程序setup读入到0x90200; 4、bootsect将内核映像system读入到0x10000,跳到setup头部0x90200执行指令; 5、setup获取系统参数,依次保存在0x90000; 6、setup将system... 阅读全文
posted @ 2011-03-19 19:10 yming0221 阅读(327) 评论(0) 推荐(0)
摘要: <!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } H4 { margin-bottom: 0.08in } H4.cjk { font-family: "AR PL UMing HK" } H4.ctl { font-family: "Lohit Hindi" } --> 1. 实模式,又叫实地址模式,CPU完全按照8086的实际寻址方法访问从00000h--FFFFFh(1MB大小)的地址范围的内存,在这种模式下,CPU只能做单任务运行;寻址公式为:物理地址=左移4位的段地址 阅读全文
posted @ 2011-03-19 18:46 yming0221 阅读(319) 评论(0) 推荐(0)

2011年3月18日

摘要: 在工作中关于 Linux系统中的堆栈问题一直是工程师们很头疼的问题,尤其出现一些新的版本,下面就与大家一起分享以下 Linux0.11 系统中堆栈的使用方法。一、系统引导初始化临时使用的堆栈。二、进入保护模式后提供内核程序始化使用的堆栈,该堆栈也是后来任务0使用的用户态堆栈。三、每个任务通过系统调用,执行内核程序时使用的堆栈,称之为任务的内核态堆栈,每个任务都有自己独立的内核态堆栈。四、任务在用户态执行的堆栈,位于任务(进程 )逻辑地址空间近末端处。使用多个栈或在不同情况下使用不同栈的主要原因首先,由于从实模式进入保护模式,使得CPU对内存寻址访问方式发生了变化,因此需要重新设置堆栈区域;其次 阅读全文
posted @ 2011-03-18 09:37 yming0221 阅读(190) 评论(0) 推荐(0)

2011年3月17日

摘要: Linux0.11内核中有很多函数都是在C语言里面声明,然后通过汇编来实现。例如/kernel/blk_drv/hd.c中函数中声明extern void hd_interrupt (void); 但是其他C代码中没有实现,找了好久,终于知道它在汇编代码中实现了。 下面自己写了个简单的实例来证实 test.c代码#include<stdio.h> extern void test1(void); extern void test2(void); extern void test3(void); int main(void) { printf("0x%x/n",t 阅读全文
posted @ 2011-03-17 22:22 yming0221 阅读(263) 评论(0) 推荐(0)
摘要: #define DEVICE_REQUEST do_hd_request // 设备请求函数do_hd_request()。#define MAJOR_NR 3 // 硬盘主设备号是3。//kernel/blk_drv/blk.hstruct blk_dev_struct { //块设备结构体 void (*request_fn)(void);// 请求操作的函数指针。 struct request * current_request;// 请求信息结构。};//kernel/blk_drv/hd.cvoid hd_init(void){ blk_dev[MAJ... 阅读全文
posted @ 2011-03-17 13:00 yming0221 阅读(232) 评论(0) 推荐(0)

2011年3月14日

摘要: init/main.c部分代码 memory_end = (1<<20) + (EXT_MEM_K<<10); memory_end &= 0xfffff000; if (memory_end > 16*1024*1024) memory_end = 16*1024*1024; if (memory_end > 12*1024*1024) //内存>12M 设置高速缓冲区大小4M buffer_memory_end = 4*1024*1024; else if (memory_end > 6*1024*1024) // 内存>6M 阅读全文
posted @ 2011-03-14 21:21 yming0221 阅读(218) 评论(0) 推荐(0)
摘要: void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /*不过不能pint= pvoid; */如果要将pvoid赋给其他类型指针,则需要强制类型转换如:pint= (int *)pvoid;②在ANSIC标准中,不允许对void指针进行算术运算如pvoid++或pvoid+=1等,而在GNU中则允许,因为在缺省情况下,GNU认为void *与char *一样。sizeof(* 阅读全文
posted @ 2011-03-14 20:07 yming0221 阅读(235) 评论(0) 推荐(0)

2011年3月13日

摘要: <!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } H1 { margin-bottom: 0.08in } H1.western { font-family: "Times New Roman", serif } H1.cjk { font-family: "AR PL UMing HK" } H1.ctl { font-family: "Lohit Hindi" } -->在我刚接触电脑的时候,无论AT&T的Unix、微软的Windows还是国内的 阅读全文
posted @ 2011-03-13 22:29 yming0221 阅读(286) 评论(0) 推荐(0)
摘要: <!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } -->今天,我们的话题是:基于ARM处理器的“云计算”(即互联网的大型“计算节点”)可能存在吗?为何?根据何在?凡去过算机中心机房的人,均能够感受到各种空调风扇发出的嗡嗡响声,......一句话,计算中心就是一个名副其实的“电老虎”,把强电转换成了弱电,支持大量CPU处理器的运行。据有关方面统计,计算中心的耗电成本占该计算中心总运行成本的40%以上,这个数字确实相当惊人。我们要问,能否把计算中心变成一个不须照明的无声世界,就像墓地一样寂静(刮风下雨打雷不算)?总之,所 阅读全文
posted @ 2011-03-13 22:13 yming0221 阅读(211) 评论(0) 推荐(0)
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 45 下一页

导航