1. P30, preemptive  kernel 、kernel threading 和Multithreaded application support没太好理解,我想如果设计个多线程的程序来运行运行,恐怕就好理解了。搞清楚了!
  2. 在source code里面, arch和include是和硬件相关的代码,arch下面是architecture-specific的文件, include下面放的是内核的所有头文件,其中带有asm前缀的子目录里面是particular architecture的头文件。
  3. 从2.6版本开始,版本命名方式发生了变化,比如2.6.10和2.6.11看似很接近,但实则相差可能很大,甚至内部的关键部分甚至算法都会有很大不同。
  4. microkernel 和 monolithic kernel 目前体会不深。
  5. 关于hard link和soft link: 由于hard link有两个限制:(1)建立link的两个文件必须处于同一个文件系统里面;(2)还有就是不能对目录进行hard link。所以,就出现了soft link
  6. Unix的文件类型有:regular、symblic、directory、block-orient、character-orient、pipe and named pipe和socket。
  7. Each file has its own inode, which the filesystem uses to identify the file.
  8. 到1.5.5
  9. 文件系统存放在磁盘上。磁盘划分为若干个分区,每个分区中有个独立的文件系统。磁盘的0号扇区前446byte称为Msater Boot Record,该地区存放的是boot loader程序,用来引导计算机,后面64byte描述了该磁盘的分区信息,即每个分区表的开始和结束cylinder号,并且会标注其中某个分区是active分区。最后2byte是魔数0XAA55。对于每个分区,无论是否是active的,都从一个boot block开始。计算机在被引导时,BIOS读入MBR。MBR做的第一件事就是确定active分区,进而读入active分区的第一个块,也称boot block,并执行之。引导块中的程序将装载该分区中的操作系统。
  10. 认识磁盘:一个硬盘是有很多处于同心圆的圆形的磁片组成,每个磁片的正反两面(side)都可以记录信息。按不同半径画出的一个圆环称为磁道(track),每个track又划分为若干扇区(sector),每个扇区固定地只有512byte,磁头对磁盘的读写,就是以sector为最小单位的,值得注意的是,sector号在物理上并不是连续的,而是由所谓的“交叉因子”,目的是是磁盘的读取速度和磁头的旋转速度匹配。所有处于不同磁片但位于同一个半径的同心圆环称为柱面(cylinder),cylinder是每个分区(partition)的最小单位,连续的一组cylinder组成了一个分区。block是文件系统存取的最小单位,可以认为设定,一般是4K。因为一个block最多仅能容纳一个文件,所以block的大小涉及到磁盘空间的使用效率。block选得过大,存储取小文件时,容易浪费空间,block选取过小,容易造成磁盘的数目大增,从而造成inode在指向block时搜寻时间的增多。
  11. inode是记录文件的属性及其放置在哪些Block之内的信息。所以,每个文件都会占用一个inode。当Linux系统要查找某个文件时,它会先搜索inode table找到这个文件的属性及数据存放地点,然后再查找数据存放的Block进而将数据取出。inode数量在一开始已被设定好,其设定方式通常是"硬盘大小/一个容量",这个容量比Block大一些较佳,例如刚才将Block设为4K,那么这个容量可以设为8K左右。所以,一块1GB的硬盘如果以8K 大小划分它的inode数,则会有131072个inode。一个inode的大小为128Byte,这样,我们就可以清楚地知道,一个分区被格式化为一个文件系统之后,基本上它一定会有inode table与数据区域两大块,一个用来记录文件的属性信息与该文件存放的Block块,一个用来记录文件的内容。

    创建一个文件后,会同时创建一个inode和一个block,inode存放的是文件的属性信息,但是不包括文件名,并存放所对应数据所在的block块的地址的指针;block存放文件的数据。

    linux里文件的文件名、文件属性、文件内容是分别存储的:文件名存放在目录项(即dentry)中,文件属性存放在inode中,一般情况下,每个inode占用128Bity磁盘空间,文件内容存放在数据块中。
          block块可以用mkfs.ext3 -b来制定快的大小。
          block越大,inode越少,适合存储大文件的文件系统;block越小,inode越多,适合存储文件多而小的文件系统。
          系统运行时,inode和block会在修改后内存与磁盘做一个同步,我们用ls -li列出来的内容这是内存中的暂存,所以有时候系统非正常的关机会导致block和inode的不同步问题。

Understanding Linux Kernel version 3 读书笔记的更多相关文章

  1. 《Linux内核分析》读书笔记(四章)

    <Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...

  2. 《The Linux Command Line》 读书笔记02 关于命令的命令

    <The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...

  3. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  4. Linux Kernel Version Numbering

    Because there are numerous revisions and releases of the Linux kernel and new ones are developed at ...

  5. 各个安卓版本 使用的 Linux Kernel Version

    Android Version |API Level |Linux Kernel in AOSP --------------------------------------------------- ...

  6. Linux Shell Scripting Cookbook 读书笔记 1

    本系列文章为<Linux Shell Scripting Cookbook>的读书笔记,只记录了我觉得工作中有用,而我还不是很熟练的命令 书是很好的书,有许多命令由于我比较熟悉,可能就没有 ...

  7. Linux kernel version dirty

    在我们使用git来管理Linux Kernel的时候,在编译的时候会在你的kernel version加上git commit number 有时候还会出现dirty字样,字面意思是内核被污染的意思. ...

  8. 《鸟哥的Linux私房菜》读书笔记二

    1.Unix的前身是由贝尔实验室(Bell lab.)的Ken Thompson利用汇编语言写成的, 后来在1971-1973年间由Dennis Ritchie以C程序语言进行改写,才称为Unix. ...

  9. 深入理解linux网络技术内幕读书笔记(四)--通知链

    Table of Contents 1 概述 2 定义链 3 链注册 4 链上的通知事件 5 网络子系统的通知链 5.1 包裹函数 5.2 范例 6 测试实例 概述 [注意] 通知链只在内核子系统之间 ...

随机推荐

  1. php 在线 mysql 大数据导入程序

    1 <?php header("content-type:text/html;charset=utf-8"); error_reporting(E_ALL); set_tim ...

  2. PHP.ini 配置文件解析

    [PHP] ;;;;;;;;;;;;;;;;;;;; About php.ini   ;;;;;;;;;;;;;;;;;;;;; PHP's initialization file, generall ...

  3. 【Java多线程】互斥

    Java多线程学习2——互斥 一.前言 在上一节 (http://www.cnblogs.com/lzhen/p/3917966.html) 中,通过实现Runnable接口,可以实现多线程中的资源的 ...

  4. ASP.NET MVC3细嚼慢咽---(1)网站创建与发布

      这一节我们演示下怎样使用VS2010创建与发布MVC3建立的网站.使用VS2010创建MVC3.0网站,需要下载MVC3.0的安装包,这个大家可以去网络上下载.     1.项目创建       ...

  5. 【数据结构与算法分析——C语言描述】第一章总结 引论

    这一章主要复习了一些数学知识,像指数.对数.模运算.级数公式:还有2种证明方法,归纳假设法和反证法.所幸以前学过,重新拾捡起来也比较轻松. 简要地复习了递归,提出了编写递归例程的四条基本法则: 基准情 ...

  6. labview 中的一些简写全称

    MAX:Measurement & Automation Explorer 测量自动化管理器 :可用于配置DAQ通道名称,VISA资源名称和IVI逻辑名称. DAQ: Device Data ...

  7. hdu 4815 Little Tiger vs. Deep Monkey(01背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=4815 Description A crowd of little animals is visiting a m ...

  8. 摄影初学者挑选相机的常见问题 FAQ

    数码相机一次次降价,越来越多的人加入摄影的行列,照相器材还是一个比较专业的领域,并非简单的参数比一下高低就可以知道好坏,很多朋友往往了解了好久还没弄清孰优孰劣,在购机前踌躇半天拿不定主意,我收集了被问 ...

  9. Java抽象类和内部类

    类(class) 类是相似对象中共同属性和方法的集合体 在面向对象中定义类,就是在描述事物,就是在定义属性(变量)和行为(方法).属性和行为共同成为类中的成员(成员变量和成员方法). 封装.继承和多态 ...

  10. 用 Python 脚本实现对 Linux 服务器的监控

    目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...