博文
JFFS2 文件系统及新特性介绍(2008-07-17 11:54:00)
摘要:
本文转自http://www-128.ibm.com/developerworks/cn/linux/l-jffs2/
如有侵权,请告知,将立即删除。
JFFS2 文件系统及新特性介绍
未显示需要 JavaScript 的文档选项
级别: 初级
生 赵复 (forrest.zhao@intel.com), 软件工程师,开源技术中心(OTC), Intel(China) Software Center
2005 年 12 月 22 日
JFFS2 是一个开放源码的项目(www.infradead.org)。 它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用。这篇文章首先分析了在闪存上使用 JFFS2 的必要性,然后详细的阐述了 JFFS2 实现的内部机制,包括日志结构的文件系统,关键的数据结构,挂载过程和垃圾收集机制。同时也指出了 JFFS2 的局限性,并介绍了最新的针对 JFFS2 的不足进行改进的补丁程序。最后对 JFFS3 的设计思想和现在的开发状况给予了简单的介绍。
1. 为什么需要 JFFS2
这一小节首先介绍了闪存相对于磁盘介质的特别之处,然后分析了将磁盘文件系统运行在闪存上的不足,同时也给出了我们使用 JFFS2 的理由。
1.1 闪存(Flash Memory) 的特性和限制
这里所介绍的闪存的特性和限制都是从上层的文件系统的角度来看的,而不会涉及到具体的物理特性。总的来说,有两种类型的 flash memory: NOR flash 和 NAND flash. 先介绍一下这两种闪存所具有的共同特性。
A) 闪存的最小寻址单位是字节(byte),而不是磁盘上的扇区(sector)。这意味着我们可以从一块闪存的任意偏移(offset)读数据,但并不表明对闪存写操作也是以字节为单位进行的。我们会在下面的阐述中找到答案。
B) 当一块闪存处在干净的状态时(被擦写过,但是还没有写操作发生),在这块flash上的每一位(bit)都是逻辑1。
C) 闪存上的每一位(bit)可以被写操作置成逻辑0。 可是把逻辑 0 置成逻辑 1......
Linux 文件系统剖析(转)(2008-07-17 10:53:00)
摘要: 经过将近一个月的迷茫,奋斗,…………,终于把u-boot移植上去了,即使自己基本没有写什么 驱动,都是在网上找的,我做的工作只是组合组合。但其中的过程也是相当辛酸的。现在准备引导linux了,转关于文件系统的文章
原谅地址:http://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/
中国 [选择]
使用条款
dW 全部内容----------------- AIX and UNIX Information management Lotus Rational Tivoli WebSphere----------------- Grid computing Java 技术 Linux Open source Security SOA & Web services Web development XML-----------------IBM 全部内容
首页
产品
服务与解决方案
支持与下载
个性化服务
develo......
如何成为一名优秀的工程师?【转载】(2008-07-16 09:43:00)
摘要:
如何成为一名优秀的工程师?【转载】
“工程师是科学家;工程师是艺术家;工程师也是思想家。”一位伟大的工程师曾经提出过这样的一段感言。不错,工程师是利用自然科学来创造工程的人。工程既是物质的也是思想上的。许多不朽的工程,伟大的发明以及出神入化的技术方案,许多人往往只看到了他们的瑰丽,而作为工程师则更应该看到设计的灵魂。因此我们应该深入的理解“工程师也是艺术家和思想家”。工程设计的本身就是一种艺术,也是工程师思想的结晶。一部精密的机械设备,一个高效而又健壮的程序,一个复杂而又无懈可击的电路,这些都反映着一些杰出工程师的思想和灵魂,有时你甚至会认为他们的生命已经融入到设计中。
成为一个杰出工程师最重要的因素就是“热爱自己的职业”。毕竟兴趣是最好的老师,许多优秀的电子工程师都是从小作为电子爱好者的。爱好不仅要体现在行动中更要深入内心甚至深入骨髓。有许多人问:“每天应该花多长时间在学习中和工作中?”可以肯定一份耕耘就会换来一份收获,但作为工程师和科学家想取得成功并不是比赛谁花的时间最多,而是看谁付出了更多的“思考”。不要以为一个学生坐在自习教室里看了多少小时的书就是“勤奋”,也可能比呆在寝室里的学生还要“懒惰”。也就是说“勤奋”是大脑的勤奋,而不是身体和和形式上的勤奋。我学电子也差不多有15年了,也发现了很多问题。一次别人问我你每天花多长时间来工作,我回答他:“每天除了吃饭睡觉几乎都在思考。”不夸张的说我的很多工程构想都是在梦境中诞生的。每天早起床后刷牙的时候、上班的路上、吃饭的时候甚至和别人谈话的空闲瞬间都有可能诞生灵感。当然热爱工程师职业的前提是一定要能领略到工程和自然科学中的美感。一个优秀的工程师同时也是一个热爱科学的人,从科学的常识到科学的精神都会渗透到他的生活中。一次我看到一位教研室里的老师安排答辩的顺序,尽管这位老师在机电领域写了很多的书也在所谓“理论领域”有很多建树,单从他安排这样一个简单的顺序来看,他并不是个理论很高的人。因为在我看来他的工作方法是效率极低的。换句话说就是在他的生活中没有科学的精神可言。
一个工程师和科学家在生活中也是工程师和科......
linux常用解压,压缩命令总结(2008-07-15 16:15:00)
摘要:对于linux系统中,对文件的解压缩可不是像windows中一个winrar就能解决的问题,对其做个大总结,相信对像我们这样的新手会有好处。
文章参考了一些网友的总结资料,如有侵权,请通知我,我将立即删除。
tar
解包: tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
---------------------------------------------
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
---------------------------------------------
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
-------......
把“女友”升级为“妻子”时发生的bug……(2008-07-10 16:37:00)
摘要:下边文章转自:http://www.21ic.com/news/html/104/show28223.htm
把“女友”升级为“妻子”时发生的bug……
[日期:2008-7-9]
来源:Internet 作者:
[字体:大 中 小]
亲爱的技术支持部:
我急需您的帮助。我最近将“女朋友7.0”升级到“妻子1.0”,发现这个新程序意外地启动了孩子生产程序,而且占用了大量的空间和珍贵的资源。这在产品的使用手册中没有提到。此外“妻子1.0”自动将自己安装到其他的所有的程序中,它随系统同时启动,监控整个系统的状态。男人夜出2.5”和“高尔夫5.3”无法再运行,一旦运行该程序系统即行崩溃。试图运行“周日足球6.3”经常失败,而“周六购物7.1”却代之运行。看来我无法保留“妻子1.0”,因为它和我喜欢运行的任何程序都不相容。我打算回到“女朋友7.0”,可是这个程序又无法卸载。
请您帮帮我吧!
用户:乔
给乔的回信:
亲爱的乔:
这是个很普通的问题,产生于你对基本原理的不了解。
很多的男人将“女朋友7.0”升级到“妻子1.0”,以为“妻子1.0”是一个“实用与娱乐程序”。然而“妻子1.0”却是个操作系统,是被设计用来运行所有程序的。你不可能清除“妻子1.0”,也不可能回到“女朋友7.0”,因为“妻子1.0”的设计中不具有这个功能,无论是卸载、删除或是清除已经安装在系统中的这些程序文件,都是不可能的。
有些人曾试图安装“女朋友8.0”或者“妻子2.0”,结果是产生了更多的问题(参见手册中的赡养费/孩子的养育/律师费用)。我安装过“妻子1.0”,我建议你保持现在的安装状态,妥善解决遇到的困难。
当任何错误或问题出现的时候,不论你认为是什么原因引起的,你必须运行“C:\我道歉”程序,并且避免使用“退出键”。必要时可能需要运行“C:\我道歉”多次,希望最终能使*作系统恢复到初始状态。
“妻子1.0”虽然是一个需要高保养的程序,但同时对人可能是非常有益的。充分地利用它......
关于code, text, bss(2008-07-09 10:18:00)
摘要:关于code, text, bss
以下文章转自http://hi.baidu.com/sansiloudeyu/blog/item/aca5eb3d35ebacc29f3d62b2.html
armar -sizes libmjb2.a
Code RO Data RW Data ZI Data Debug Object Name
292 96 2615 40 168 jblend_AMXVideo.o
316 0 0 0 1836 jblend_AamsAppInfoUtil.o
&nb......
sed命令使用详解(2008-07-09 08:33:00)
摘要:sed命令使用详解
文章作者:红箭 发布时间:2006-04-28
文章转自http://flierlh.javaeye.com/blog/132809
sed 编辑器是 Linux 系统管理员的工具包中最有用的资产之一,
因此,有必要彻底地了解其应用
Linux 操作系统最大的一个好处是它带有各种各样的实用工具。存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具。可以简化关键情况下操作的一个实用工具是 sed。它是任何管理员的工具包中最强大的工具之一,并且可以证明它自己在关键情况下非常有价值。
sed 实用工具是一个“编辑器”,但它与其它大多数编辑器不同。除了不面向屏幕之外,它还是非交互式的。这意味着您必须将要对数据执行的命令插入到命令行或要处理的脚本中。当显示它时,请忘记您在使用 Microsoft Word 或其它大多数编辑器时拥有的交互式编辑文件功能。sed 在一个文件(或文件集)中非交互式、并且不加询问地接收一系列的命令并执行它们。因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器。它可以用来将所有出现的 "Mr. Smyth" 修改为 "Mr. Smith",或将 "tiger cub" 修改为 "wolf cub"。流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间。其参数可能和一次性使用一个简单的操作所需的参数一样有限,或者和一个具有成千上万行要进行编辑修改的脚本文件一样复杂。sed 是 Linux 和 UNIX 工具箱中最有用的工具之一,且使用的参数非常少。
sed 的工作方式
sed 实用工具按顺序逐行将文件读入到内存中。然后,它执行为该行指定的所有操作,并在完成请求的修改之后将该行放回到内存中,以将其转储至终端。完成了这一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。如同前面所提到的,默认输出是将每一行的内容输出到屏幕上。在这里,开始涉及到两个重要的因素—首先,输出可以被重定向到另一文件中,以保存变化;第二,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。不过,可以按需要将操作限制在指定的行上。
该实用工具的语法为:
sed [options] '{command}'......
7月7日斗病毒记(2008-07-07 13:53:00)
摘要:今天遇到了一个令人费解的病毒,说来也是有很长时间没有和这些无耻的东西来打交道了,事情开始于换了播放器。 事实上对于有些网络上的无知的广告我是非常之烦的。它们的广告没多大的意义,只是拿一些零星的科技碎片来砸砸无知人们的眼球。由于以前一直用的播放器是暴风2点几,(有点过时了,呵呵),但是经典的暴风是不带广告的,可是其核心的解码技术还是较现在的新版本差了一大截,在播放AVI视频时,偶尔托动还是会很卡,这明显不是我电脑的事,如果在联想的台式商务机(pentium bual-core 1.6G RAM 1G Geforce 7100GS)还存在硬件差距的话,大家的心理上也吃不消。软件问题好解决,于是去暴风官网下了个3.6,上面写得还真不错,谁不夸自己的孩子呢?这点还是可以理解的。一路装完后,再播放了一个AVI视频,不错,果然不错,确实不错,不卡了,任意你咋托都不卡。声音和图像是同步的。但是现在问题也就来了,暴风上有广告,而且是令人非常不爽的广告,一些网游,青纯MM之类,什么重大突破,真是害了别人,也害了暴风公司,于是想到了做一件大多人都干的事,找个破解补丁把广告去掉,于是google挑起了这个重担,一Enter,到处都有,随便点了一个,打开,下载,文件是cacl.exe,我真以为是个破解补丁,再双击,出来 一个计算器,心里迷糊了,不是广告补丁嘛?怎么来了个计算器,猛然醒悟,估计中招了,上当了。 当我下一次打开微软自带的IE6的时候,我发现有点不同了,我原来自设的google主页变样了,虽然这个看起来还有80%的google主页的样子,为了确认到底是不是google公司主页?我又去同学那看了一下他的,显然不是google公司干的。相信那么有创新精神的公司不会把创新用在这些鸡毛蒜皮的事上来。肯定是计算器干的好事,当我下一次打开ie主页时,这次就不是那个变了样的google主页了,而是http://www.258online.cn,用google 找找吧,看有没有相首关的朋友遇到过。不幸,我是第一个,没办法,万事得靠自己。 首先说明一下,为了不让我的内存全给了杀毒软件,我一般不装杀毒软件,有时装上也基本上一开机就让它先退出去。 现在我也清楚了,你直接改过来那是肯定不好使的,至少也得动动注册表,首先将在注册表中一搜索cacl.exe,绝不留情,把所有的子项全部删除,看启动项,没有异常......
哈佛校长给2008届本科毕业生的毕业演讲(2008-07-05 09:16:00)
摘要:哈佛校长给2008届本科毕业生的毕业演讲
独角兽资讯 发表于 2008-6-21 14:28:00
转自http://blog.tianya.cn/blogger/post_show.asp?BlogID=351212&PostID=14461807&idWriter=0&key=0
译者: shog
按照这所古老大学的奇怪的传统,我应该是站在这儿,告诉你们那些永恒的智慧。我就站在这个讲坛上,穿得像个清教徒牧师一样——这个打扮也许已经吓到了我那些高贵的先人们,让他们以为是巫婆现身(校长是女的,译者注)。这会让英克利斯(Increase)和考特恩(Cotton)父子俩(他们反对清教,译者注)忍不住想审判我的。但是,我还是要站在这儿,跟你们聊聊。
你们已经上了四年的大学了,我当校长还不到一年;你们认识三任校长,我只认识大四一个班的学生。那么,经验是什么?也许你们应该搞清楚。也许我们可以互换一下角色,我可能就会以哈佛法学院惯有的风格,在接下来的一个小时里自说自话。
从这一点上说,我们似乎都做到了——不管程度多少。但我最近才知道,从5月22日开始你们就没有晚饭吃了。虽然我们会把你们比作已经从哈佛断奶的孩子们,但我从没想到会这么彻底。
再让我们来说说那个“自说自话”吧。让我们把这个演讲看作是一个答疑式的毕业生服务,你们来提问题。“浮士德校长,生活的意义是什么?我们为什么要在哈佛读四年?校长,四十年前你从学校毕业的时候,肯定学到不少东西吧?”(四十年了。我可以大声地说出我当时生活的每个细节,和我获得布林莫尔学位的年份——现在大家都知道这个。但请注意,我在班里还算岁数小的。)
其实,这个答疑环节你们早就从我这儿预定了。你们问的问题也大概就是这类的。我也一直在想该怎么回答,还在想:你们为什么为这么问。
听我的回答。2007年冬天,助理就告诉我要有这么一个演讲。当我在Kirkland听中午饭的时候,在Leverett吃晚饭的时候,当我在我上班时和同学们见面的时候,甚至当我在国外碰见我们刚毕业的学生的时候,同学们都会问我一些问题。你们问我的第一个问题,不是问课程计划,不是提建议,也不是问老师的联系方式或者学生的空间问题。实际上,也不是酒精限制政策。......
linux/Unix环境下的make和makefile详解(2008-07-04 15:25:00)
摘要:linux/Unix环境下的make和makefile详解
创建:2005-10-26 16:53:59
作者:Unlinux
来自: http://www.Unlinux.com
无论是在linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。
但令人遗憾的是,在许多讲述linux应用的书籍上都没有详细介绍这个功能强大但又非常复杂的编译工具。在这里我就向大家详细介绍一下make及其描述文件makefile。
Makefile文件
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile 文件是许多编译器--包括 Windows NT 下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。
在 UNIX 系统中,习惯使用 Makefile 作为 makfile 文件。如果要使用其他文件作为 makefile,则可利用类似下面的 make 命令选项指定 makefile 文件:
$ make -f Makefile.debug
例如,一个名为prog的程序由三个C源文件filea.c、fileb.c和filec.c以及库文件LS编译生成,这三个文件还分别包含自己的头文件a.h 、b.h和c......