自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cybertan的专栏

激情,梦想

  • 博客(20)
  • 资源 (6)
  • 收藏
  • 关注

原创 关于jffs2文件系统如何掉电保护

因为jffs2文件系统可以掉电保护,看了下大概原理,原因:它提供的垃圾回收机制,使得我们不需要马上对擦写越界的块进行擦写,而只需要将其设置一个标志,标明为脏块。当可用的块数不足时,垃圾回收机制才开始回收这些节点。同时,由于JFFS2基于日志结构,在意外掉电后仍然可以保持数据的完整性,而不会丢失数据。JFFS2是将节点信息保存在内存中Flash上日志型文件系统的资料,了解到传统的基于闪存转换层(FLT)的文件系统存在的主要问题:1. 效率低。因为每次都要把要修改的数据所在擦写块放入内存,产生了

2010-06-30 23:15:00 4503

原创 关于时钟(2)以及定时器精度问题

<br />在应用层,使用timeout是做不到延迟微秒级别,甚至在很多架构上,连ms都做不多,为什么这样说,线索如下:<br /><br /><br />            timeout = ROUND_UP(usec, 1000000/HZ);<br />            timeout += sec * (unsigned long) HZ;<br /><br /><br />#define ROUND_UP(x,y) (((x)+(y)-1)/(y)),这里假设sec为0。<br /

2010-06-26 11:21:00 1753

原创 关于时钟(1)

最近工作中,同事问我,linux如何实现us的delay,认为:x86的hz定义为100,所以具体时间间隔应该是(1000ms/HZ)=10ms,然后调度的时候是以这个10ms为单位,实现不了微秒的delay。关于这个问题,我们要首先了解linux的时钟:时钟的硬件如下:RTC(real time clock):一种时钟芯片,pc掉电后,继续工作,保持时间I/0端口: 0x70 寄存器地址索引端口   0x71 数据端口Linux内核对RTC的唯一用途就是把RTC用作“离线”或“后台”的时间与日期维

2010-06-25 21:44:00 927

转载 linux的调度分析(转)

<br />调度<br /><br />公平调度(fair-share scheduling)的进程调度算法:<br /><br />一、公平分享的调度策略<br />   Linux 的调度算法是相对独立的一个模块,而且较容易理解。因此很多系统高手都爱对调度算法做改进。但是可以说调度器是一个非常神秘,难以捉摸的精灵。可能通过改变一个关键参数你就可以大大提高系统的效率。<br />   对于一般进程,CPU的使用时间都是系统平均分配给每一个进程的,因此这种公平分享都是从进程的角度出发的。Bach在1986

2010-06-22 14:30:00 3349

原创 数据包的分类收--通过socket

<br />关于如何收数据包:<br />1. socket(AF_INET, SOCK_RAW, IPPROTO_UDP);<br />能:该套接字可以接收协议类型为(tcp udp icmp等)发往本机的ip数据包,从上面看的就是20+8+100.<br />不能:不能收到非发往本地ip的数据包(ip软过滤会丢弃这些不是发往本机ip的数据包).<br />不能:不能收到从本机发送出去的数据包.<br />发送的话需要自己组织tcp udp icmp等头部.可以setsockopt来自

2010-06-15 11:41:00 1802

转载 linux内核ip分片函数ip_fragment解析(转贴)

int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))  {      struct iphdr *iph;      int raw = 0;      int ptr;      struct net_device *dev;      struct sk_buff *skb2;      unsigned int mtu, hlen, left, len, ll_rs, pad;      int offset;   

2010-06-14 17:34:00 1986

原创 life小语10

   人非得走过夜晚,否则无法抵达黎明。                                                 --纪伯伦:《沙与泡沫》ps:这句话太容易明白和认同,但也很容易在关键的时候被忘记。    真的,很多时候,我们只需要,再坚持一下,就可以看见曙光。

2010-06-12 11:59:00 1064

原创 life小语9

    我们忙于思考人生意义的时候,往往淡漠了每一件小事的意义。<br /><br />                                                         --《士兵》<br /><br />ps:《士兵突击》的原著小说

2010-06-12 11:56:00 1124

原创 life小语8

“许多人都不能根据现实生活随时调整自己,而生活往往比我们设想的更丰富<br />和复杂。不能及时去调整,也就无法学习。要想真正地学习和成长,我们就必须去<br />遵守现实的规则。”

2010-06-12 11:37:00 979

原创 重读页面的回收处理笔记2

在跟踪代码的过程中,我们可以看到alloc-page就是分配一个page。我们在接着看代码:函数:__alloc_pages_internal,我们可以看到注释:/* * This is the 'heart' of the zoned buddy allocator. */从上面知道这个函数的地位了。首先会去唤醒kswapd的内核线成。wakeup_kswapd。接着:unsigned long try_to_free_pages(struct zonelist *zonelist, int or

2010-06-11 16:56:00 1449

原创 重读页面的回收处理笔记1

<br />除了slab分配器,系统中所有正在使用的页面都存放在页面高速缓存中,并且通过page结构体的lru链表在一起,<br />所以很容易去扫描并替换他们。slab页面没有放在page cache中。<br />对于每一个zone:都有下面几个参数<br />    struct list_head    active_list;<br />    struct list_head    inactive_list;<br />    unsigned long        nr_scan_

2010-06-11 16:25:00 839

原创 oabi/eabi

ABI(Application Binary Interface)或EABI(Extend ABI)通常是处理器体系结构的一部分,它与平台是紧密相连的。 我们可以把ABI理解为一套规则,这套规则一般包括定义了以下内容: 1。应用程序如何发出系统调用来trap到内核态。 2。如何使用机器的寄存器。比如,RISC处理器的ABI就要规定用那个通用寄存器来作stack pointer和frame pointer。 3。规定如何进行procedure call。 那么eabi和oabi

2010-06-10 18:24:00 3818

原创 kdump如何转储原理分析

<br />关于kdump如何设置,可以看其他的文章。<br />他的实现原理其实很简单,详细代码可以看linux-2.6.16/fs/proc/vmcore.c<br /><br />通过kexec启动新的内核,因为在第一个内核(也就是crash掉的kernel)在设置kdump的时候,<br />通过配置文件,分了一部分内存给新的内核做启动用,这部分内存在crash的kernel是不会用到。<br />在重起的过程中,因为没有断电,所以在内存中保存了crash时候的数据信息,在新kernel启动的时候,

2010-06-10 17:38:00 3821

转载 Kdump如何配置

<br />kexec是一个快速启动机制,允许通过已经运行的内核的上下文启动一个Linux内核,不需要经过BIOS。BIOS可能会消耗很多时间,特别是带有众多数量的外设的大型服务器。这种办法可以为经常启动机器的开发者节省很多时间。<br />kdump是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capturekernel),以很小内存

2010-06-10 16:20:00 23431

转载 kdump的出现(基于嵌入式Linux的内核错误跟踪技术)

<br /> 随着嵌入式Linux系统的广泛应用,对系统的可靠性提出了更高的要求,尤其是涉及到生命财产等重要领域,要求系统达到安全完整性等级3级以上[1],故障率(每小时出现危险故障的可能性)为10-7以下,相当于系统的平均故障间隔时间(MTBF)至少要达到1141年以上,因此提高系统可靠性已成为一项艰巨的任务。对某公司在工业领域14 878个控制器系统的应用调查表明,从2004年初到2007年9月底,随着硬软件的不断改进,根据错误报告统计的故障率已降低到2004年的五分之一以下,但查找错误的时

2010-06-10 16:19:00 4374

转载 kdump转储的内核实现(转)

<br />先转几篇文章,然后仔细去分析分析。<br /> <br />前面一篇文章介绍了kexec和kdump的思想,本文着重讲它们的另一个方面,就是kdump到底是如何转储垮掉内核的内存映像的。首先定义一个链表,它很重要。<br />static LIST_HEAD(vmcore_list);<br />unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX; //一个重要变量记录内核装载的位置,用以判断是正常启动还是kdump启动。<br />str

2010-06-10 16:10:00 1692

转载 使用 kexec 快速重启 Linux(转)

<br />Hariprasad Nellitheertha (nharipra@in.ibm.com), 软件工程师, IBM India Software Labs<br />2004 年 5 月 01 日即使您的工作不要求您每天多次重新启动您的 Linux 机器,等待系统启动也实在是一件枯燥的事情。因而有了 kexec。本质上讲,kexec是一个让您可以重新启动到一个新 Linux 内核的快速重新引导功能部件 --不必通过引导装载程序。更快速的重新启动即使对于正常运行时间并不是

2010-06-10 15:55:00 1948

转载 ABI/EABI/OABI

ABI/EABI/OABI <br />(..............................)<br />Terminology<br /><br />Strictlyspeaking,both the old and new ARM ABIs are subsets of the ARM EABIspecification, but in everyday usage the term "EABI" is used to meanthe new one descr

2010-06-10 11:12:00 975 2

转载 EABI (Extended Application Binary Interface)

<br />下面的代码大家可以在entry-common.S中找到。<br /><br />在2.6.21中,认真研究大家会发现,你回避不了这样一个概念,EABI是什么东西?<br /><br />内核里面谈EABI,OABI,其实相对于系统调用的方式,当然我们所说的系统限于arm系统。<br />EABI (Extended ABI),说的是这样的一种新的系统调用方式<br /><br />mov r7, #num<br />swi 0x0<br /><br />原来的系统调用方式

2010-06-10 11:11:00 619

原创 最近空闲时间安排

<br />最近有空的时候需要去研究的东西<br /><br /><br />1:研究kernel的方式 kdump <br />2:ABI/EABI/OABI <br /><br /><br />最近被别人问到swappiness<br />实在很让人抱歉,自己平时研究过内存管理,但是从来,也没有去注意到这个变量。<br /><br /><br />wappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swa

2010-06-10 11:08:00 1170 3

xshell字体颜色文件

该文件适用于xshell, 进行字体,颜色的设置

2015-01-06

设计模式精解分析非常详细

关于设计模式的讲解,自己目前还没仔细研究,以后有空要多研究,提高软件设计的优雅

2010-06-17

isos关于如何添加一个module

关于isos的基本结构的笔记,包括如何添加一个module。希望对有需要的朋友有帮助

2010-06-17

ARM MMU详细图解.pdf

本文描述基于存储器管理单元的系统结构, 包含以下内容: · 关于存储器管理单元的结构 · 存储器访问的顺序 · 转换过程 · 访问权限 · 域 · 异常 · CP15 寄存器

2009-07-03

elf文件格式分段详细分析

elf文件格式说明: The Executable and Linking Format was originally developed and published by UNIX System Laboratories (USL) as part of the Application Binary Interface (ABI). The Tool Interface Standards committee (TIS) has selected the evolving ELF standard as a portable object file format that works on 32-bit Intel Architecture environments for a variety of operating systems. The ELF standard is intended to streamline software development by providing developers with a set of binary interface definitions that extend across multiple operating environments. This should reduce the number of different interface implementations, thereby reducing the need for recoding and recompiling code.

2009-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除