从开机加电到实行main函数之前的过程分为三步,目的是实现从启动盘加载操作系统程序,完成实现main函数的准备工作启动BLOS,准备是模式下的中断向量表和中断服务程序从启动盘加载操作系统程序到内存。加载操作系统程序就是靠第一步实现的为实现32位的main函数做过度工作1.1启动blos,准备实模式下...
分类:
系统相关 时间:
2014-05-06 00:41:20
阅读次数:
375
1.bootm地址和load address一样 此种情况下,bootm不会对uImage
header后的zImage进行memory move的动作,而会直接go到entry point开始执行。因此此时的entry point必须设置为load
address + 0x40。如果ker...
分类:
系统相关 时间:
2014-05-04 20:14:20
阅读次数:
501
在memory.c里面有这么一段代码。为了其中的一句话,让我内牛满面啊!
dir = (unsigned long *) ((from>>20) & 0xffc)
int free_page_tables(unsigned long from,unsigned long size)
{
unsigned long *pg_table;
unsigned long...
分类:
系统相关 时间:
2014-05-04 18:22:41
阅读次数:
459
#define PAGE_SIZE 4096
/* these are not to be changed without changing head.s etc */
#define LOW_MEM 0x100000
extern unsigned long HIGH_MEMORY;
#define PAGING_MEMORY (15*1024*1024)
#define PAGING_PAG...
分类:
系统相关 时间:
2014-05-04 18:15:51
阅读次数:
441
Linux的内核和System Call不好调试,参考这里:
http://stackoverflow.com/questions/5999205/cannot-step-into-system-call-source-code
简单来说,如果想在本机调试system call,那么当你进入system call时,系统已经在挂起状态了,那么它又怎样能响应用户的输入?
所以,有一个UML...
分类:
数据库 时间:
2014-05-04 09:28:22
阅读次数:
463
最近重新看鸟哥,准备装CentOs,一看最新版本是6.5,书上是5.X的,略有点不同,二话不说,搞起~
我的VMware版本是10.0.1 build-1379776
先新建一个虚拟机,挂上iso文件(两个iso挂第一个就行了,另一个放在同一目录下)
启动,出现以下画面
Install or upgrade an existing system 安装或升级现有的系统
install...
分类:
其他好文 时间:
2014-05-04 09:04:44
阅读次数:
376
linux内核调试指南一些前言作者前言知识从哪里来为什么撰写本文档为什么需要汇编级调试***第一部分:基础知识***总纲:内核世界的陷阱源码阅读的陷阱代码调试的陷阱原理理解的陷阱建立调试环境发行版的选择和安装安装交叉编译工具bin工具集的使用qemu的使用initrd.img的原理与制作x86虚拟调...
分类:
系统相关 时间:
2014-05-03 22:53:53
阅读次数:
754
一直有看linux内核的冲动,内核有些部分是汇编编写的,无奈汇编不大懂,所以利用五一三天假期大概走了一边8086CPU架构的汇编,8086CPU还是16位的,我们现在都进入64位时代了,这两者之间有很大的区别,但是看看16位的CPU汇编还是很重要的,这有助于理解32位的80386CPU。这篇文章来分析下80386的内存管理的一些基础知识,包括实模式、保护模式和内存寻址等等。
1.实模式...
分类:
其他好文 时间:
2014-05-03 20:50:08
阅读次数:
410
设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一个时刻只有几十个或几百个TCP连接时活跃的(接收到TCP包),也就是说,在每一时刻,进程值需要处理这100万连接中的一小部分连接。那么,如何才能高效地处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux内核2.4版...
分类:
其他好文 时间:
2014-05-02 23:11:18
阅读次数:
311
从Linux2.5开始Linux实现了0(1)调度算法, 算法的思想要点在于设定动态的nice值确定优先级, 在优先级数组调度(数组最大长度是固定常数) 简而言之,不管系统中有多少进程需要调度都可以在o(1)的时间复杂度内完成调度,是不是很吊啊?但是实践证明(我没证明,文献说的) o(1)对i/o交互型的调度体验上表现很差 轮转周期很不灵活,主要原因在于调度出发点采用粒度很大时间片进行轮换,诚然整体负载会比较好,但是对于i/o交互型的,我们理想的调度策略是采用处理器使用比而不是时间片来分配, ...
分类:
系统相关 时间:
2014-05-02 21:18:41
阅读次数:
460