![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Operating System
littlehedgehog
软件就像性,还是免费的比较好.....
展开
-
保护模式下寻址
保护模式下寻址 刺猬@http://blog.csdn.net/littlehedgehog 网上看到的一强帖,不转不行了,牛人啊,把这段代码拿捏的相当到位 括号中是我的加注 段机制轻松体验[内存寻址]实模式下的内存寻址:让我们首先来回顾实模式下的寻址方式段首地址×16+偏移量 = 物理地址为什么要×16?因为在8086CPU中,地址线是20位,但寄存器是16位的,最高寻原创 2008-02-13 10:18:00 · 10916 阅读 · 11 评论 -
未雨绸缪——临界区中断处理
未雨绸缪——临界区中断处理刺猬@http://blog.csdn.net/littlehedgehog 为什么Linux 内核里面很多代码为了处理race condition(竞争条件),都加上了诸如cli sti这样的开关中断指令,这个问题貌似很不值得一提。在wait_on_buffer函数(如下代码所示)中,开关中断仅仅就是为了避免竞争条件和中断对临界代码的原创 2008-07-07 22:01:00 · 3811 阅读 · 9 评论 -
权衡利弊——记录内核buffer
权衡利弊刺猬@http://blog.csdn.net/littlehedgehog老规矩,先看代码:#define BADNESS(bh) (((bh)->b_dirtb_lock) (该宏)用户同时判断缓冲区的修改标志和锁定标志,并且定义修改标志的权重 要比锁定标志大 (摘自《剖析》P.531)我一直没读懂这句话究竟想要表达一个什么意思。还好,在赵博的oldlinux原创 2008-05-06 20:17:00 · 1031 阅读 · 0 评论 -
Linux 环境下文件写入.img
Linux 环境下文件写入.img刺猬@http://blog.csdn.net/littlehedgehog 下面我们先用bximage创建一个软盘映像。(当然 你也可以用其他的工具创建,比如windows平台上的VPC就有这个功能)$ bximage ====================================================原创 2008-07-14 12:07:00 · 10550 阅读 · 1 评论 -
Linux shellcode 编写入门 (转)
刺猬@http://blog.csdn.net/littlehedgehog无意当中在安全焦点上面看到的,很入门的一篇文章,不错:原文地址:http://www.xfocus.net/articles/200805/980.html一:什么是shellcode 话说某天某爱国黑客编译了一个Nday溢出利用程序来攻击CNN,输入IP并且enter之后发现目标服务器没有反应,于是拿出snif原创 2008-07-15 14:17:00 · 11303 阅读 · 4 评论 -
管中窥道——我看Linux内核管道
管中窥道——记录Linux内核管道(1)刺猬@http://blog.csdn.net/littlehedgehog 所谓管道么,想想家里的水管吧——自来水厂那头给我们送水,我们这头打开水龙头自来水就哗哗的流出来了,水怎么从自来水厂输送过来的?答案就是管道,当然我们这里通常称它为水管。所以由上面定义,什么叫管道?就是从一个进程里要传东西给另一个进程,类似我们的输送自来水了原创 2008-05-08 22:24:00 · 994 阅读 · 0 评论 -
管中窥道——我看Linux内核管道
管中窥道——记录Linux内核管道(2)刺猬@http://blog.csdn.net/littlehedgehog 上节说了我对Linux管道的一点儿小见解,这节来看看内核中关于管道的实现代码。 以下代码摘自 Linux/include/fs.h #define PIPE_HEAD(inode) ((inode).i_zone[0]) //这里定义了管道头原创 2008-05-11 10:05:00 · 1899 阅读 · 0 评论 -
电梯算法(1)
电梯算法(1)刺猬@http://blog.csdn.net/littlehedgehog 电梯算法主要用于磁盘寻道的优化。第一种是我们最为原始的先到先服务(first come first served)的算法,这个对于我们去下馆子撮一顿比较合适,先来就先吃,不然顾客有意见。不过对于磁盘寻道就不太合适了。如下图:注意这张图并不是解释的先到先服务算法,我们只是借用下而已原创 2008-05-12 21:46:00 · 8385 阅读 · 1 评论 -
浅评中断、陷阱、异常 (转)
浅评中断、陷阱、异常 刺猬@http://blog.csdn.net/littlehedgehog 前几天看的一篇好文,从另一个角度介绍了中断(interrupt)、陷阱(traps)、异常(exception)。 外部中断,就是我们通常所说的中断(interrupt)。对于执行的系统来说,这种中断发生完全是"异步"的,根本无法预测到此类中断原创 2008-07-30 15:53:00 · 4272 阅读 · 2 评论 -
左右法则
左右法则刺猬@http://blog.csdn.net/littlehedgehog关于Linux内核中有一个关于signal函数的声明,如下: void (*signal(int, void (*_func)(int)))(int); c语言声明繁杂一直被人认为是C的诟病,大家从这个函数可见一斑。还好有前辈专门针对此提出了个“左右法则”。大家不妨读读:原创 2008-05-18 15:26:00 · 1190 阅读 · 3 评论 -
Fork——分道扬镳的开始
Fork——分道扬镳的开始刺猬@http://blog.csdn.net/littlehedgehog在copy_process的函数中有这样一段代码:p->tss.eax = 0; 赵博注释道: 这就是当fork()返回时新进程会返回0的原因所在! 呃,很多人不明白这段注释含义,fork返回0?我怎么没看见fork在新进程返回了? 这里我介绍下我的看法权当是抛砖引玉原创 2008-05-24 21:32:00 · 1088 阅读 · 2 评论 -
伙伴算法(Buddy)
Hi, Buddy ! 刺猬@http://blog.csdn.net/littlehedgehog 关于位图Linux内核伙伴算法中每个order 的位图都表示所有的空闲块,比如我家的电脑内存256M(现在连上个qq主页都比较卡),理论上的order为0的bitmap有256M/(4K*2)块。为什么要除以二呢? 因为 位图的某位对应于两个伙伴块,原创 2008-08-18 17:30:00 · 11330 阅读 · 3 评论 -
Linux内核高端内存管理
HIGHMEM 刺猬@http://blog.csdn.net/littlehedgehog 原先一直都对Linux高端内存的管理认识模模糊糊的,可能主要是初次接触Linux kernel 是0.11版吧,当初的内存设计是16M,Linus对拥有32M的内存都是觊觎万分,1G内存恐怕是天方夜谭了。16M内存哪里还顾得上高端内存,脑子就一直没有这种原创 2008-08-19 16:28:00 · 12175 阅读 · 1 评论 -
schedule浪子何时回头?
schedule浪子何时回头?刺猬@http://blog.csdn.net/littlehedgehog schedule.c 给人最大的疑惑就是一旦把进程调度完成后切换到其他进程时,什么时候再返回执行呢? void schedule (void)...{ int i, next, c; struct task_struct **p; for (原创 2008-05-25 11:56:00 · 1425 阅读 · 1 评论 -
浅析整数溢出
overflow!刺猬@http://blog.csdn.net/littlehedgehog 在Linux 2.4内核版本中我们经常看见如下类似的判断: if ((offset + PAGE_ALIGN(len)) goto out;如果是第一次看到这段代码说不定就会联想到 难道len还是个负数? 回头看看这条语句的调用函数( do_m原创 2008-09-01 11:04:00 · 1251 阅读 · 0 评论 -
cool! 用sourcesight实现内核源码级调试
cool! 用sourcesight实现内核源码级调试刺猬@http://blog.csdn.net/littlehedgehog 无意间看到这么好的东西,不敢独享,稍微调整了下文字,另外把我遇到问题说下,免得后来的又来摸索。原帖:http://www.oldlinux.org/oldlinux/viewthread.php?tid=11074&extr原创 2008-06-30 20:28:00 · 2598 阅读 · 0 评论 -
Linux 内核小bug
Linux内核小bug刺猬@http://blog.csdn.net/littlehedgehog 今天读着读着代码,竟然无意中发现Linux 0.11内核有个小bug,呵呵,人非圣贤孰能无过。 // 在目录项数据块中搜索匹配指定文件名的目录项,首先让de 指向数据块,并在不超过目录中目录项数// 的条件下,循环执行搜索。 i = 0; de = (struct原创 2008-05-04 19:54:00 · 1206 阅读 · 0 评论 -
C数组另类表达
C数组另类表达刺猬@http://blog.csdn.net/littlehedgehog 直接来看代码:#define ACC_MODE(x) ("/000/004/002/006"[(x)&O_ACCMODE]) (摘自 Linux/fs/namei.c )这是个比较令人郁闷的宏,我初一看曾质疑过C里面有这种写法么?呵呵,说实话还真有,C里面数组还真有这样的写法,原创 2008-05-04 17:06:00 · 1454 阅读 · 0 评论 -
求余不用模
求余不用模刺猬@http://blog.csdn.net/littlehedgehog 我们先来看看这个问题如果要求 9除以4余数是多少? 可能大部分人都会直接用 6%4 这样的C语言表达式吧?平时用也倒是无妨,但是在系统内核这种对速度要求极为严格的地方,这种除法运算的花销可能就有点不太值得了。注意看下面的数学式子:9%4=2原创 2008-05-01 15:48:00 · 2957 阅读 · 0 评论 -
操作系统学习常见疑惑问与答
主要看了下特权级这块,和上次看的保护模式下寻址,发现于渊的书有个问题,很多地方为了回避繁杂的理论,反而把一些要点略去了,最后自己还是不得不到网上到处查资料~ 以下内容貌似是一个即将毕业的学长做毕设所总结的,转过来,学习一下操作系统学习常见疑惑问与答[接口规范部分]—问题1- 4 大三的时候已经学过了《操作系统原理》这门课,虽然学习过程中做过一些实验,但对操作系统的认识仍然停原创 2008-02-23 15:44:00 · 3947 阅读 · 10 评论 -
软盘结构(磁头号和起始扇区的计算方法)
软盘结构(磁头号和起始扇区的计算方法)刺猬@http://blog.csdn.net/littlehedgehog;----------------------------------------------------------------------------; 函数名: ReadSector;-------------------------------------原创 2008-03-04 20:14:00 · 12135 阅读 · 7 评论 -
曲径通幽处——记录MemCpy调用过程
曲径通幽处——记录MemCpy调用过程刺猬@http://blog.csdn.net/littlehedgehog 关于MemCpy C语言的调用问题,我在于渊的博客中也看到有读者提出过类似的问题。当时也没想明白,和天之痕仔细探讨了下,把得出的结论种种罗列下来. MemCpy声明: 摘自《自己动手》 P185PUBLIC void * memcpy(void *p原创 2008-03-20 16:08:00 · 1773 阅读 · 0 评论 -
一致代码段与非一致代码段
一致代码段与非一致代码段刺猬@http://blog.csdn.net/littlehedgehog网上转载的一篇文章, 字字珠玑、句句精华。之所以出现这个定义是因为系统要安全:内核要和用户程序分开,内核一定要安全. 不能被用户程序干涉.但是有时候用户程序也需要读取内核的某些数据,怎么办呢?于是os将内核程序开辟一些可以供用用户程序访问的段.但是不允许用户程序写入数据.1.内核原创 2008-03-25 20:27:00 · 1752 阅读 · 1 评论 -
函数指针
函数指针刺猬@http://blog.csdn.net/littlehedgehog 在《自己动手》P212 代码5-58 有如下代码: PRIVATE void init_idt_desc(unsigned char vector, t_8 desc_type, t_pf_int_handler handler, unsigned char privilege);原创 2008-03-27 15:48:00 · 1359 阅读 · 1 评论 -
似曾相识——记录NASM中的非、与、或
似曾相识——记录NASM中的非、与、或刺猬@http://blog.csdn.net/littlehedgehogNasm在一定程度上跟C是相似的。比如在预编译文件头%include,比如关键字extern等。这次的非与或也跟C大致相当。先贴上一些代码。(节选自《自己动手写操作系统》 P274 )in al, INT_M_CTLMASK or原创 2008-03-29 12:27:00 · 1598 阅读 · 0 评论 -
自己动手写操作系统读书笔记系列 导引
自己动手写操作系统读书笔记系列导引刺猬@http://blog.csdn.net/littlehedgehog自己动手读书笔记系列 本来只是些天之痕和我在这一个多月研究《自己动手写操作系统》时且看且记的小段笔记批注而已,文章里都是记录些环境搭建、编程所感的自娱自乐文字,没想过今天还会来整订成一个小系列。是时,天之痕还忙着添上他的《自己动手写操作系统 环境配置》,呵呵,很感谢有天之痕这样原创 2008-03-29 22:39:00 · 4886 阅读 · 16 评论 -
MakeFile罢工了?
MakeFile:couldnt open ? 刺猬@http://blog.csdn.net/littlehedgehog 新手用MakeFile时常都会有这样那样的问题。要么少包含了文件,要么忘了写上编译的附加信息。其实这些makefile用多了之后就习惯了这里介绍一个采用MakeFile时很容易出错的问题,顺便透露个用makefile不是技巧的技巧。在《自己动手写操作原创 2008-03-31 13:52:00 · 2965 阅读 · 5 评论 -
磨刀不误砍柴工 ——《自己动手写操作系统》入门导引
磨刀不误砍柴工 刺猬@http://blog.csdn.net/littlehedgehog 《自己动手写操作系统》其实阅读所需要的前提不过只是C和汇编了,里面涉及到很多操作系统的东西。于渊前辈大部分都已经阐释明白。特别是在很多与操作系统相关繁杂理论上面,于渊更是做到了"逢山开路、遇水搭桥"的,很大程度上回避了操作系统内部复杂深奥的枯燥理论。呵呵,做了这么多广告,只想表明一个意思:这原创 2008-04-04 16:33:00 · 3623 阅读 · 1 评论 -
编译出错 "undefined reference to"
编译出错 "undefined reference to" 刺猬@http://blog.csdn.net/littlehedgehog 终于在GCC里开始编译了,HoHo~ Make一下,刚刚才高兴了一阵子,又报错了 郁闷~ :klib.c:(.text+0xda): undefined reference to `__stack_chk_fail 貌似原创 2008-04-01 22:05:00 · 12621 阅读 · 0 评论 -
GCC内嵌汇编
GCC内嵌汇编刺猬@http://blog.csdn.net/littlehedgehog AT&T手册里面的,我整理了下,方便阅读 内核代码绝大部分使用C 语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码。GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计。 简单的内嵌汇编很容易理解 例原创 2008-04-08 09:45:00 · 16346 阅读 · 2 评论 -
Align 透明地提升效率
Align 透明地提升效率 刺猬@http://blog.csdn.net/littlehedgehog 关于Align的,网上摘录了下。主要不是说how ,而是为什么的问题——为什么要用align? align,一般多用于数据段,主要是为了提高cpu的访问效率,按照双字对齐 [这里引用的是原帖] 的访问效率最高。所谓数据对齐,是指数据所在的内存地址必须是该数据长原创 2008-04-09 22:19:00 · 2054 阅读 · 1 评论 -
使用VC进行项目组织
使用VC进行项目组织刺猬@http://blog.csdn.net/littlehedgehog 自己动手写操作系统 中内核到开始用C编码后,工程组织问题就开始日益突出了。越来越多的头文件、宏定义、全局变量,东添一句,西加一段的,到头来要找个变量定义可能就要花费我们大量的时间。我们不得不要用工具进行工程管理了。这里用大家最为熟悉的VC(6.0) 简述一下项目组织问题.VC原创 2008-04-13 10:53:00 · 1806 阅读 · 4 评论 -
收集的资料
收集的资料刺猬@http://blog.csdn.net/littlehedgehog 这些是我看《自己动手写操作系统》平时积攒下来的资料,共享出来吧,一时也想不完整,先贴到这儿吧: Intel汇编指令集 绝对好货,虽说是英文版,平时供查查还是很有用的~~ Intel 开发手册 于原创 2008-04-22 17:23:00 · 1552 阅读 · 1 评论 -
Intel手册申请攻略
Intel手册申请攻略刺猬@http://blog.csdn.net/littlehedgehog 上次无意中在一篇博客(点击看原帖) 看到Intel还会免费送书,转贴过来吧,不过反正我没申请成功,当时Intel公司给我回邮件说要发送过来了,现在要我的邮政编码,我后来把邮政编码补上去后就一直没有回音了........ 比较郁闷。强烈建议是不要用QQ邮箱,美国那边会拒收的!本来我有原创 2008-04-22 17:13:00 · 7357 阅读 · 11 评论 -
拥塞控制策略
拥塞控制策略 刺猬@http://blog.csdn.net/littlehedgehog 《TCP/IP v1》中TCP的超时和重传这章讲得实在凌乱无比,再加之我们亲爱的译者同志翻译的时候也按部就班地不幸地凑齐了字数,里面很多概念看起来特别的晦涩难懂。这里我参考了《TCP/IP簇》关于TCP的相关章节,稍稍总结了下,方便我后面回头看了。 讲拥塞控制前,我们起码原创 2009-04-02 11:28:00 · 7783 阅读 · 2 评论