2010-06-23 11:18:41
涉及的技术内容包括:ASM、ANSI C、.NET/C#、Python、Linux/Ubuntu 等。
记录读书笔记、生活点滴。关注基础理论和开发……
除特别标注外,所有文章均为作者原创,转载请注明出处。谢谢!

  查看 "推荐文章目录"。  


  研发中心长期招聘开发人员,详情请点击 "Linux/C, Python 职位"、 ".NET/C# 职位"。
  雨痕内部技术交流群,欢迎熟识的朋友参与。 将 添加为您的 MSN 联系人即可。
  为杜绝垃圾广告的侵扰,只有注册用户可以发表评论和留言。
  如果有什么问题,可以单击右侧图标给雨痕发消息。( 绿色: 在线; 灰色: 脱机)
浏览模式: 普通 | 列表
7月, 2009 | 1

Linux - 3. 文件系统

[ 2009-07-30 11:57:00 | 作者: yuhen ]
Linux 分区以柱面划分,且必须格式化成 Linux 标准文件系统 (ext2/ext3 等) 才能使用。通常来说,每个分区只能格式化为一个文件系统。

尽管硬盘的最小存储单位是扇区,但对于文件系统而言,扇区的读写效率过低,因此以 n 个扇区为一个块 (Block),这是文件系统的最小存储单位,当前支持 1024/2048/4096 三种大小的块。当分区存储大文件时,大的块有助于提高读写效率。以 10MB 文件为例,扇区是 512 字节,需要读取 (I/O) 20480 次,而对于 4096 字节的块而言只需 2560 次。但也正因为块是最小存储单位,对于众多的小文件来说,存储空间浪费也就非常严重。即便文件小于块,其剩余空间也是无法继续使用的。

1. EXT2 文件系统结构

在 EXT2 文件系统中,文件存储分为 Inode 和数据块两部分。inode ...

阅读全文…

Linux - 2. 硬盘结构

[ 2009-07-30 01:22:41 | 作者: yuhen ]
1. 硬盘物理结构

现代硬盘(非固态硬盘SSD)通常由一个或多个圆形盘片组成,每个盘片都是两面存储的(还记得以前的软盘有双面双密之说),通过机械臂上的磁头进行数据读写操作。一个硬盘的参数通常称之为 3D 参数 (Disk Geometry),即柱面数(Cylinder)、磁头数(Head)和扇区数(Sector)。
  • 磁头: 磁头固定在可移动的机械臂上,用于读写数据。现代硬盘都是双面可读写,因此磁头数量等于盘片数的 2 倍。磁头数最大值为 255 (8 个二进制位)。
  • 磁道: 每个盘面都有 n 个同心圆组成,每个同心圆称之为一个磁道。由外向内分为 0 磁道到 n 磁道。
  • 柱面: n 个盘面的相同磁道 (位置相同) 共同组成一个柱面。柱面数最大为 1023 (10 个二进制位)。
  • 扇区: 从磁盘中心向外画直线,可以将磁道划分为若干
...

阅读全文…

Linux - 1. 磁盘分区

[ 2009-07-29 18:58:46 | 作者: yuhen ]
每块硬盘的 MBR 最多只能存储 4 个分区信息,也就是说每块物理硬盘我们最多分成 4个主分区(P + P + P + P),或者 3个主分区外加一个扩展分区(P + P + P + E)。如果我们希望划分更多的分区,可以将扩展分区划分更多更小的逻辑分区。

Linux 将编号 1 ~ 4 固定分配给 4 个主要分区。也就是说即便我们只有 1 个主分区和 1 个扩展分区,那第一个逻辑分区也只能是 hda5 (或 sda5)。

uploads/200907/29_185916_1.png


谈论 Linux 分区时和 Windows 有很大的不同,因为这些分区通常以某个目录方式存在 (或者说挂载点)。
  • /: 默认挂载点,未指定的目录都将存放在分区中。
  • /home: 用户主目录,相当于 Windows
...

阅读全文…

无题

[ 2009-07-21 13:43:50 | 作者: yuhen ]
最近忙得一塌糊涂,感觉脑袋有点不够用,甚至有点羡慕九头虫那丑怪。

1. 一个大系统的架构要设计,需要考虑的东西很多,而时间又很紧。最关键的是有 N 多文档要写。
2. 五年一度的大复习开始了,这次估计得半年左右。包括 Linux、C、.NET/C#、Python、Javascript 等等。

[redface] 记性越来越差,感觉有点跟不上趟了。
1