2
7
2010
0

日志文件系统与磁盘寿命

 所有的现代存储设备,都是靠物理效应来实现,反复的擦写某一块区域,会导致那一块区域的寿命严重下降。一般EEPROM只能反复烧写1000次,是最早期的可写存储,而用于优盘的,能反复烧写100,000次。实际上Flash ROM就是基于EEPROM增加寿命修改而来的,结构上非常类似。硬盘的数量则更高,一般上亿次左右,但是硬盘肯定也有寿命的。

我们经常删除文件,然后再创建文件,因为文件系统的分配方式必须是连续分配(磁头和碎片效率问题),这样同一个区域,一般在中部,被反复的写入、删除,再写入,导致这一块区域的寿命远低于其他区域,最终的结果就是因为局部寿命耗尽导致整个磁盘提前劳损。

磁头是连续的,如果分开存储,不连续的话,磁头得反复定位,导致磁盘效率下降,这就是碎片整理的目的。知道了这些基础之后,回到我们的话题,日志的目的,是什么呢?日志就是一张表,记录被管理的磁盘的每一个区块的写入次数,并且为分配模式提供参考,始终给新文件分配最少写入次数的区块。

之所以微软的文件系统没有日志概念,因为微软早在当初就申请了基于驱动的日志设计,在原始IO阶段就已经日志化了,因而上层的FS不需要日志。Linux之所以需要日志化文件系统,而不实现日志驱动,是因为为了避免侵权,但技术上走入了劣势,只能靠JFFS、EXT3这类的基于文件系统的日志系统提供保护。

日志,就是让你刚删掉的文件被保留,如果再创建文件,会分配整个磁盘写入最少的区域,往往是从未用过的硬盘区域。

然后再补充一下硬盘的工作原理,硬盘之所以有寿命,因为所有硬盘的盘面,都是铝做的,然后表面喷涂了一层矩磁性物质薄膜。去年的诺贝尔物理学奖获得者,就是研究矩磁性物质的。矩磁性物质,是指该物质的磁化曲线是矩形的,一旦超过某高斯磁场强度,区域就被磁化,从而记录下信息。要想到,磁化,就会有力的作用,大家见过墙上的油漆,拿橡皮锤砸几下没事,砸多了就掉皮,何况磁盘上喷涂的都是纳米级厚度的矩磁物质薄膜。所以磁盘物理损伤,拆看一看都是掉皮,都是因为写入过多导致。

 
Category: 程序开发 | Tags:
12
10
2009
0

处理器技术解析

处理器发展史

在计算机技术发展的期初,并不存在处理器的概念,整个计算机都是由电子管组成的庞大的电路系统,处理功能、输入输出功能全部混杂在一起,形成简单的计算功能,速度也非常低。后来人们为了方便细致研究计算机系统的每一个部分,从功能上将计算机系统划分为了计算单元、输入输出接口、外接的附属设备系统。

计算机最开始的应用目的是完成科学家复杂的重复性计算,因而即使当今的计算机系统中最基本的处理单元也是基于会编码概念的机器码。期初,人们接口计算机、控制计算机的方式就是通过编写简单的汇编指令,由于计算机不能直接识别基于字符串形式存储的指令,因而将各种指令指派一个固定的十六进制数码,作为该指令的替代品用于计算单元来识别程序的含义。

Category: 程序开发 | Tags:
12
9
2009
0

编程中的随机骗局

计算机随机数的秘密

随机数是数学上一个有趣的概念,它体现着宇宙的奥妙和不可预测,更体现着一种自由意志的存在,是有效的对命运论者的反证。在计算机上,我们经常需要一些随机数来模拟各种随机现象,然而计算机上真的存在随机数吗?

Category: 程序开发 | Tags:
11
21
2009
0

Google Chrome OS 之我见

第一印象

昨天在 www.cnbeta.com 新闻网上看到了期待已久的 Google 公司出品的 ChromeOS 操作系统,虽然到现在为止还没有亲自去编译以及用虚拟机模拟,不过出来的 Chrome OS 的功能与预料中的并没有太大的差异,里面主要的系统部件(或者说唯一的系统部件)是Chrome浏览器,然后其他一无所有,用户可以尽情的享用高效的上网速度、7秒钟的高速启动时间以外,并没有真正感觉到 Linux 系统的存在。

Category: 程序开发 | Tags:
11
20
2009
0

商业软件开发工作流程

商业软件概述

与网上随手便拿来的开源软件相比,商业软件的开发无论是品质定义,还是工作流程上都有着质的差别:

  • 首先,商业软件有着明确的目标群体、软件在一开发出来的时候就明确了使用功能和用户对象
  • 第二,商业软件开发者向用户收取了费用,因而有责任的需要提供技术支持和服务
  • 第三,商业软件有着很高的品质要求,至少在正常的使用功能上必须保证没有bug,一旦出现某次失误就将导致用户的工作损失,这是不能允许出现的。

Category: 程序开发 | Tags:
11
18
2009
0

Doxygen 试用评估

相关信息

Doxygen 是 UNIX 上针对代码程序员提供的自动代码扫描与文档生成软件,下载地址为:

这个软件使得程序员仅仅需要添加很少的字符,就能自动生成高质量的代码文档,支持函数注释、类说明、代码交叉参考的生成等功能,额外的还可以提供 Latex 数学公式、DOT 图片的支持,当然,需要这些功能也需要安装对应的 Latex 和 Graphviz 软件包,它们的相应地址是:

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com