13 thewayma

尚未进行身份认证

我要认证

i am always low profile with MS degree !!!

等级
TA的排名 4w+

I2C总线协议学习笔记

1.I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL。   SDA传输数据是大端传输,每次传输8bit,即一字节。   支持多主控(multimastering),任何时间点只能有一个主控。   总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.   系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,看datasheet。1.1 I2C位传输   数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit;   若SDA发生

2011-05-23 09:52:00

I2C总线协议学习笔记

1.I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL。   SDA传输数据是大端传输,每次传输8bit,即一字节。   支持多主控(multimastering),任何时间点只能有一个主控。   总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.   系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,看datasheet。1.1 I2C位传输   数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit;   若SDA发生

2011-05-23 09:50:00

Linux 引导解析(使用bootsect.s+setup.s方式)

<br /><br />我详细解析了bootsect.s,同时阅读了setup.s。其中bootsect.s存放于磁盘的主引导扇区,bios-startup程序加载该程序(bootsect.s)到内存0x700处,并由此执行bootsect.s来引导Linuxkernel。在bootsect.s中加载setup.s至内存中,并在执行完它自身后,jump跳至刚刚已读入的setup部份,继续执行。 <br />  Linux Kernel Image 生成过程:   一.引导扇区汇编代码bo

2010-06-29 20:57:00

elinks应用

参考Lynx、elinks、w3m命令<br /><br /><br />elinks2010-02-20 09:37<br /><br /><br />使用w3m效果:<br />w3m

2010-06-29 20:55:00

文本模式浏览器

参考Lynx、elinks、w3m命令 elinks2010-02-20 09:37使用w3m效果:w3m

2010-02-22 10:14:00

Linux Anticipatory I/O 调度算法分析笔记

Linux Anticipatory (预测)I/O 调度算法分析笔记as_add_reques是调度算法的入口。AS和Deadline比较类似,都是先把request加入sector排序的红黑树,然后再把requst加入fifo。只不过AS因为加入了预测,需要在加入requst时,调用as_update_

2010-02-06 21:32:00

linux deadline I/O调度算法分析笔记

linux deadline I/O调度算法分析笔记deadline算法的核心就是在传统的电梯算法中加入了请求超时的机制,该机制主要体现在两点:(1)请求超时时,对超时请求的选择。(2)没有请求超时时,当扫描完电梯最后一个request后,准备返回时,对第一个request的选择。基于以上两点,平衡了系统i

2010-02-06 21:31:00

剖析一个由sendfile引发的linux内核BUG

之前看了《新爆内核高危漏洞sock_sendpage的利用分析的讨论》这篇帖子,在九贱兄和诸位CUer的指引下,大致弄清了整个漏洞的始末。现与大家分享(引用自我的空间)。有什么不足之处还望多多指教~内核的BUG这个BUG首先得从sendfile系统调用说起。考虑将一个本地文件通过socket发送出去的问题。我们通常的做法是:打开文件fd和一个socket

2010-01-16 16:48:00

文件读写(3)

2、读入操作。完成了上面的准备工作,下一步就是执行读操作的核心函数do_generic_mapping_read,这是一个比较复杂的函数,里面有大量的goto跳转,但还是比较清晰的。       它工作过程可以描述如下:a.       如果所要读取的文件在页面缓存中,则跳转到步骤d。b.       文

2009-12-20 10:58:00

文件读写(2)

二、文件读过程我们先看标准的读过程。1、准备工作。通过VFS层,及一些初始化操作,为真正的读操作做准备。首先是用户进程通过read系统调用发出一个读请求:asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count){      

2009-12-20 10:56:00

文件读写(1)--页面缓冲(Page Cache)的管理

文件读写(1)--页面缓冲(Page Cache)的管理R.wen 一、本文分析文件的读写过程。当用户进程发出一个read()系统调用时,它首先通过VFS从disk cache中去查找相应的文件块有没有已经被缓存起来,如果有,则不需要再次从设备中去读,直接从CACHE中去拷贝给用户缓冲区就可以了,否则它就要先分配一个缓冲页面,

2009-12-20 10:55:00

2.4.18预读算法详解

  琢磨ULK2时的一些个人理解。参考了WFG的这篇文章: http://os.51cto.com/art/200711/60574.htm 如果觉得有必要,以后会写写其他版本预读算法的实现分析及改进逻辑。 一 为什么需要预读 1 I/O合并 2 延迟隐藏 参见上述链接。 二 预读算法初步设计 设read系统调用的内核实现函数为do_gene

2009-12-18 11:01:00

binary search tree

Binary Search Treeregarding with the action : search , search_min , search_max ,search_predecessor , search_successor.Data structure of the treestruct tree_node{       unsigned int data;  

2009-10-11 17:26:00

linux2.6 的 slab alloctor 结构分析

To solve the external fragementation, Linux just implemneted the Buddy Algorithm Allocator.But what if we want to allocate the small or tiny memory(file descriptor, struct inode, struct task_sturct,

2009-10-03 17:50:00

CPU缓存——L1+L2详解

  CPU缓存(CacheMemory)是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。

2009-10-03 15:46:00

Linux内核代码分析 slab.c

slab.c来自linux内核2.4.22版,本文件按照GNU协议发布。一、准备知识:slab的概念:提出的原因:由于操作系统在运行中会不断产生、使用、释放大量重复的对象,所以对这样的重复对象的生成进行改进可以大大提高效率 解决buddy system造成的内存浪费问题最早由sun的工程师提出(1994

2009-10-01 22:18:00

Linux slab 分配器剖析

良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux® 内核使用了源自于 Solaris的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab分配器背后所采用的思想,并介绍这种方法提供的接口和用法。动态内存管理

2009-10-01 22:05:00

linux内核内存管理的伙伴算法

1.     Linux 内核对各个zone都有一个buddy system.2.     数据结构:mem_map:一个Struct page数组,对应系统中所有的物理内存页。而每一个zone结构里都有一个zone_mem_map域指向这个zone的第一个page 在mem_m

2009-10-01 19:14:00

Grub for dos bootloader 分析

概述一下:Grubfordos0.4.4的主题为三部分:MBR,bootloader,kernel1:MBR对应的文件为stage1目录下的stage1.S  .S后缀为GAS汇编源文件Stage1:大小512字节,编译后的结构为DBR结构,这样的优点是,无论你将GRUB安装在MBR还是分区的DBR中,都能正常引导,如果安装在硬盘的MBR中,那么bios的int19号中断会MBR中

2009-09-28 22:32:00

grub----Stage1.s源代码分析

Stage1.s源文件是用古老的at&t汇编编写而成,是大名鼎鼎的unix家族操作系统引导程序GRUB中的第一个文件。它编译后产生的二进制代码正好是512字节(故意的,也是必须的),刚好填充满硬盘初始的一个扇区,也即0柱面、0磁道、1扇区。人们称之为MBR——主引导记录。它的作用是载入stage2文件。   阅读本段代码,gemfield建议你首先具备以下能力:cpu寄存器

2009-09-28 22:00:00

查看更多

勋章 我的勋章
    暂无奖章