自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (9)
  • 收藏
  • 关注

原创 (RAID原理)RAID0

在JBOD的场景中,数据会在JBOD的磁盘组中,依次写入(或读出)磁盘,每一时刻只会对一个磁盘进行读写访问。RAID0将磁盘的空间进行了条带化的逻辑抽象,使得逻辑上连续的磁盘空间布局,分布在不同的磁盘中,如下图所示:经过RAID0处理,block在物理磁盘上的管理依次分布呈条带状。相较于JBOD的方式,在多于1个block的数据需要读写时,RAID0可以同时访问多个磁盘,由于多磁盘并行处理,且总线...

2022-01-23 15:00:13 1186

原创 (RAID原理)JBOD

JBOD(just a bunch of disks),就是一组磁盘的集合,将多个独立的磁盘,组合成一个磁盘组,从逻辑上看,将一组物理上小容量的磁盘,组成了一个大容量的逻辑磁盘。这一组磁盘的使用是顺序的,即一个磁盘从头访问到尾后,再从第二块磁盘开始,依次使用磁盘组中的每一块磁盘。 JBOD每次都会操作一块磁盘,因此JBOD的数据读写性能主要受限于单块磁盘的读写性能。由于没有冗余的数据备份或校验,JBOD的容量就是所有磁盘容量的总和,JBOD的磁盘利用率要比RAID高,但是在性...

2022-01-23 13:57:49 1443

原创 (RAID原理)RAID 基本概念

单个磁盘容量小,容量大的磁盘价格高,为了能够提高磁盘使用的容量和性能,RAID技术就诞生了,RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列,也称为(Redundant Array of Independent Disks)独立磁盘冗余阵列。RAID技术通过将多个独立的磁盘组成阵列,结合RAID算法,使得磁盘阵列能够比单个磁盘,达到更大的容量、更优的性能和可靠性。RAID除了依赖磁盘的组合,还需要配合数据和磁盘管理的...

2022-01-23 13:45:45 584

原创 linux内核并发情景

通过《linux内核并发基本概念》,我们看到了,对于并发访问共享资源,造成的运行结果与预期的不一致问题,这样的结果是软件设计者不能允许的。我们知道,我们编写一个软件一定是需要软件实现特定的功能,如果我们在设计的时候,期望得到结果A,但实际软件运行中却得到的结果B,那么这个软件是相当糟糕的,因此,对于并发引起的竞态,是我们在设计内核和驱动软件时,必须要留意的。在《linux内核并发基本概念》中,

2014-11-30 21:42:59 796

原创 linux内核并发基本概念

在讨论linux内核并发之前,我们先来分享一个情景。字符数组array是一个内核全局数组,执行函数ArrayWrite_A的线程称为线程A,执行函数ArrayWrite_B的线程称为线程B。线程A和线程B均可访问全局数组array,ArrayWrite_A函数实现的功能是将数组成员依次从0递增赋值到9,ArrayWrite_B函数实现的功能是将数组成员全部赋值为1。假设此时

2014-11-27 23:59:15 1183

原创 5-寄存器与BIOS中断

在计算机系统中,数据存储采用三级存储架构——寄存器,内存和硬盘。寄存器在CPU的芯片内,其访问速度和CPU的计算速度差不多,但成本比较高,而且CPU的体积也决定了寄存器不可能有较大的容量。在编写focus系统的启动代码部分,因为要使用汇编语言,因此,就需要直接操作寄存器。那么我们就先了解下CPU内部的一些寄存器。这里andrew感到很抱歉,因为没有办法深入的去介绍细节性的东西了,如果andre

2014-05-31 19:13:52 1305

原创 在字符串中找出第一个只出现一次的字符

/*题目描述:在字符串中找出第一个只出现一次的字符。例如字符串"abaccdeff",则输出'b'。*/#include #define CHAR_SIZE 256#define NONE -1 //字符没有出现过#define MORE -2 //字符出现2次及2次以上int main(void){ int i; int index = 9999; //记录第一个出

2013-04-18 17:06:17 717

原创 素数查找——另一种方法

#include int main(void){ int n = 1000; int i; int j; int array[1000] = {0}; printf("1000以内的素数有:\n"); printf("2"); /* *2是最小的素数,且是唯一的偶数,提前输出 *素数不可能是偶数,除2外 *3是最小的奇素数,从3开始依次排除其倍数 */ for(i

2013-04-18 17:00:02 526

原创 素数的查找

/**************************************************************************************file: Prime.c*data: 2013/3/10*description: (1)2是最小的素数,且是唯一的偶素数,故单独列出 (2-被除数)偶数必然能够被2整除,因此被除数只判断奇数(2单独处理)

2013-03-11 11:18:44 884

原创 系统调用和API

系统调用与API        在开发应用程序的时候,应用程序的功能实现经常需要使用操作系统提供的服务,以及需要操作相关硬件,比如我们听音乐用的QQ music,QQ music就属于应用程序,当我们运行QQ music的时候,其首先要通过调用相应的API(应用程序编程接口)库函数,来使用操作系统提供的服务,linux操作系统提供的API遵循的是POSIX标准。API函数封装了系统调用,系

2012-11-22 14:31:20 3394

转载 bochs调试指令

一:配置bochs.exe是执行模式,不能调试的。Bochs的调试工具是Bochsdbg.exe。同样,调试的时候你仍然需要进行配置。此时如果我们还使用双击.bxrc配置文件的方法显然是不行的(因为此时会运行Bochs.exe而不是Bochsdbg.exe)。所以我copy了《自己动手写操作系统》作者于渊的方法——使用bat批处理文件。新建一个批处理文件然后进行编辑。以下内容为我的bat文

2012-07-08 19:46:02 573

原创 操作系统学习笔记——保护模式——中断和异常(1)

中断和异常:        中断通常分为同步中断和异步中断。        同步中断:当指令执行时由CPU控制单元产生的,称为同步,是因为只有当一条指令终止执行后CPU才会发出中断。        异步中断:由其他硬件设备依照CPU时钟信号随机产生的。        在inter微处理器手册上,将同步中断称为异常;将异步中断称为中断。 异常和中断向量:      每

2012-07-06 15:05:52 975

原创 操作系统学习笔记——保护模式——分页机制

在保护模式下,提供了分段和分页两种内存管理机制。这两种机制的内存寻址方式,都可以归结为查表。 如何开启分页机制:        通过设置CR0寄存器的PG位(即第31位),来启用分页机制。注意:启用分页机制之前,CPU必须已经进入到保护模式下,如果CPU仍工作在实模式下,开启分页机制是无效的。 分页机制:       开启分页机制后,分页机制会将线性地址空和物理地址空间都划

2012-07-06 10:11:30 1284

原创 操作系统学习笔记——保护模式——分段机制

以前学习微机原理的时候,接触到的是8086/8088处理器,这些处理器都是16位的,地址线为20位,共可寻址1MB的内存空间,即它们都工作在实模式下。        1985年,IBM公司引入AT机时,使用的是INTER80286CPU,具有24根地址线,可寻址16MB的地址空间,并且保留了实模式来向下兼容。直到今天的32位/64位的CPU,上电后CPU的初始模式仍然是实模式。

2012-07-05 20:09:32 2641

转载 内联函数的优缺点

在C++语言的设计中,内联函数的引入可以说完全是为了性能的考虑。因此在编写对性能要求比较高的C++程序时,非常有必要仔细考量内联函数的使用。所谓“内 联”,即将被调用函数的函数体代码直接地整个插入到该函数被调用处,而不是通过call语句进行。当然,编译器在真正进行“内联”时,因为考虑到被内联函 数的传入参数、自己的局部变量,以及返回值的因素,不仅仅只是进行简单的代码拷贝,还需要做很多细致的工作

2012-06-24 11:34:22 16808

转载 内联函数详解

什么是内联性和外联函数类的成员函数可以分为内联函数和外联函数。内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。而说明在类体内,定义在类体外的成员函数叫外联函数。外联函数的函数体在类的实现部分。 内联函数在调用时不是像一般的函数那样要转去执行被调用函数的函数体,执行完成后再转回调用函数中,执行其后语句,而是在调用函数处用内联函数体的代码来替换,这样将会节省调用开销

2012-06-24 11:31:48 1054 1

转载 bochs在windows下的使用

Bochs是由Kevin Lawton 于1994年开始开发的一个用于完全模拟Intel的x86模拟器。开始它仅仅是一个商业产品,不过您可以购买到它的源程序。在2000年3月这个时刻,Mandrakesoft买下了Bochs,并把它置于GNU LGPL下使之成为一个开源程序。在2001年3月,Kevin把Bochs的家从bochs.com移到了bochs.sourceforge.net,到现在为止

2012-06-11 18:15:32 12822

原创 linux启动流程

前一阶段在学习linux的过程中,启动过程这一块比较繁琐,涉及到的流程和系统文件比较多,于是就自己做了下面这个图,整个过程就比较直观了,由于学识尚浅,其中可能有不对或有待完善的地方,而且不同版本的操作系统所用的配置文件也可能不同,这个图所表示的内容是以Centos为参考的,根据鸟哥私房菜的讲解完成的,大部分linux的发行版本也是这种启动流程,我用的Ubuntu里面死活找不到图中init进程调用的

2012-01-18 15:55:44 348

转载 11 Things every Software Developer should be doing in 2012

Introduction2011 is winding down and 2012 is upon us. Have you set any goals for 2012 both professionally/personally? Regardless of the answer, I’m sure one or two of the items listed below can help

2012-01-18 15:49:56 403

转载 Five Pervasive Myths About Older Software Developers

I recently celebrated my 40th birthday.  A friend joked to me, “Hey, guess that means you’re too old to program anymore!”  I laughed on the outside, but it gave me pause.  Age discrimination is nothin

2012-01-18 15:48:14 723

IA-32架构软件开发人员手册

详细介绍了32bit架构的InterCPU的技术细节,很有参考价值。

2014-05-31

GNUMakefile手册

详细介绍了Makefile的使用细节,很有参考价值。

2014-05-31

BIOS中断大全

BIOS中断大全详细的介绍了BIOS中断的使用细节,很实用。

2014-05-31

bochs虚拟机

bochs2.5虚拟机源代码,bochs完全通过软件来模拟计算机的各种硬件资源。

2014-05-15

NAND Flash 硬件编程详解

该文档详解的解析了NAND Flash的编程细节,从NAND Flash 的datasheet分析,包括硬件工作原来、操作时序讲解,到最后NAND Flash读写函数的实现,都是本人在实践中的学习和总结,与大家分享,希望能够提供一些帮助。

2012-11-04

嵌入式词汇

嵌入式开发工程师必知的嵌入式专业词汇。。。嵌入式开发工程师必知的嵌入式专业词汇

2012-01-19

linux常用命令全集

linux常用命令全集

2012-01-19

C语言资料大全

详细讲述C语言的基本知识,非常适合初学者的资料,还有丰富的例程供大家参考

2012-01-19

GCC中文手册

gcc 完全手册,详细讲述了gcc的使用命令及方法,希望能对大家有所帮助

2012-01-19

空空如也

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

TA关注的人

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