kernel and Architecture
文章平均质量分 65
Tive_Liu
做flash cache的
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
不用操作系统写HelloWorld
原因是前些天在杨老师的讨论课上杨老师提出了这个问题:没有操作系统的光板机器,要写一个HelloWorld怎么办?有一个哥们提出了可以用bios的中断写,我也记得于渊的《自己动手写操作系统》一书中提到过,但是忘了具体要怎么办。回到宿舍找到于渊的书,看到了如下的代码,并按书上的方法实验了一下,运行成功了。代码如下:org 07c00hmov ax,csmov ds,axmov es原创 2010-02-05 18:50:00 · 1016 阅读 · 1 评论 -
Linux的引导启动程序
离上一篇日志很长时间了,中间当然是因为过年,事情很多,书没看多少,现在有时间了,再发一篇笔记存档,是关于系统启动过程的: 一切从加电开始。加电以后,所有的寄存器清0,只有CS寄存器为全1,于是指针指向了0xffff:0, 这个地址是 ROM-BIOS地址, 在此放置和程序开始做的事情是执行一些系统检测,并在物理地址0处开始初始化中断向量,这个时候初始化的中断向量,就是在上一篇日志中打印“H原创 2010-02-23 22:48:00 · 545 阅读 · 0 评论 -
块设备与软中断
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->块设备层无非两件事情,一件是下发,即submit,一件是返回,即callback。下发过程举个例子:在进程上下文,用户通过系统调用向文件系统层写数据。文件系统层向下到pagecache层封装成bio发下来,submit_bio调用g原创 2011-06-22 09:40:00 · 1503 阅读 · 0 评论 -
why vfree() must not be called in interrupt context?
Q: Why vfree must not be called in interrupt context?A: the tlb flushing can deadlock with IRQs disabled as it relies on IPIssuppose two cpus are in interrupt context (with interrupts disabled转载 2011-11-01 16:41:13 · 557 阅读 · 0 评论 -
Back Trace 的原理
最近做的项目在windows和Linux两种平台上运行,调试分别使用windbg和gdb,虽然平台不同,使用的工具不同,但思路都是一样的,都是先从call trace中查看当前运行到哪了。每当看到call trace一行行的打出来,就觉得先成功一半了。总结了一下call trace是如何实现的,放上来备忘。 从函数调用的过程开始说。每次函数调用都会产生一个栈帧,%ebp寄存器指向,原创 2013-09-03 23:23:35 · 1872 阅读 · 0 评论 -
大话中断
中断过程可以说几乎是每次面试都会被问到的问题,而且在平时工作中也是经常遇到的点。这里把相关的问题一起列出来,省得以后再找。同步与异步首先说为什么要用中断,中断是外部设备和CPU交互的方式,相比轮询来说CPU可以解放出来了。但因此带来的问题是,中断可能会在任何时候发生,所以说"中断是异步的"。与之相对应,异常就是同步的。怎么理解这个异步和同步呢?这是指的事件和引起这个事件的程序之间的关系。原创 2013-10-16 22:51:03 · 703 阅读 · 0 评论 -
The end of block barriers
最近工作中涉及,也有很多人问我journal和barrier的问题,我都推荐他们去看这篇文章,今天把这篇文章翻译出来,方便自己,也方便他人。原文地址:https://lwn.net/Articles/400541/以下是正文: 在刚刚结束的Linux Storageand Filesystem 峰会上通过了一个影响很大的决定:在内核的存储子系统中废除对barrier 的支持。这是个很受翻译 2017-05-01 10:51:58 · 421 阅读 · 0 评论
分享