linux内核完全剖析 学习笔记 打字太累 截图

  • 1. linux0.11开机时间

QQ截图20150514220020.png
#define MINUTE 60
#define HOUR (60*MINUTE)
#define DAY (24*HOUR)
#define YEAR (365*DAY)
 
/* interestingly, we assume leap-years */
static int month[12] = {
 0,
 DAY*(31),
 DAY*(31+29),
 DAY*(31+29+31),
 DAY*(31+29+31+30),
 DAY*(31+29+31+30+31),
 DAY*(31+29+31+30+31+30),
 DAY*(31+29+31+30+31+30+31),
 DAY*(31+29+31+30+31+30+31+31),
 DAY*(31+29+31+30+31+30+31+31+30),
 DAY*(31+29+31+30+31+30+31+31+30+31),
 DAY*(31+29+31+30+31+30+31+31+30+31+30)
};
 
linux内核完全剖析 学习笔记 打字太累 截图_第1张图片
 
  • 2.结构体赋值

linux内核完全剖析 学习笔记 打字太累 截图_第2张图片
  详情百度http://blog.csdn.net/hazir/article/details/9429017
  • 3. 关于do_signal *(&eip) = sa_handler

(1)
http://www.oldlinux.org/oldlinux/viewthread.php?tid=14839&extra=page%3D2
*(&eip) = sa_handler 与 eip = sa_handler 有什么不一样?
网上有说 是因为 两个的类型不一样 一个long 一个 unsigned long ,感觉这不是原因。
应该是另一种说法 eip = sa_handler 这条语句可能导致 编译器进行优化 而栈中的值没有改变  , 应该是这样。
(2)
QQ截图20150516152150.png
 
  • 4.任务切换

ljmp tss段选择符这样的语句会造成任务切换,cpu自动保存当前任务tss内容,并恢复需要切换到的任务的tss内容,造成任务切换。任务1和任务2的描述内容与任务0类似。
 
linux内核完全剖析 学习笔记 打字太累 截图_第3张图片
QQ图片20150714154257.png
  linux内核完全剖析 学习笔记 打字太累 截图_第4张图片
linux内核完全剖析 学习笔记 打字太累 截图_第5张图片
linux内核完全剖析 学习笔记 打字太累 截图_第6张图片
 
  • 5.写时复制

为了介于物理内存,在调用fork()生成新进程时,新进程与原进程会共享同一内存区。只有当其中一个进程进行写操作,系统才会为其另外分配内存页面。这就是写时复制的概念。
  linux内核完全剖析 学习笔记 打字太累 截图_第7张图片
 
QQ截图20150627203557.png
 
  linux内核完全剖析 学习笔记 打字太累 截图_第8张图片
 
  • 6.需求加载(load on demand)/需求分页(demand-paging)

linux内核完全剖析 学习笔记 打字太累 截图_第9张图片
 
  • 7.指针的指针

linux内核完全剖析 学习笔记 打字太累 截图_第10张图片
  linux内核完全剖析 学习笔记 打字太累 截图_第11张图片
  • 8.   I/O端口和寻址

linux内核完全剖析 学习笔记 打字太累 截图_第12张图片
SPARC为统一编址,ld,st指令访问
 
  • 9.  接口访问控制

linux内核完全剖析 学习笔记 打字太累 截图_第13张图片
 
  • 10.  C程序编译和链接

linux内核完全剖析 学习笔记 打字太累 截图_第14张图片
 
  • 11. volatile

linux内核完全剖析 学习笔记 打字太累 截图_第15张图片
 
  • 12. 嵌入汇编

linux内核完全剖析 学习笔记 打字太累 截图_第16张图片

这里不同处理器用到的寄存器名字应该不一样吧。。。目前看到的资料都是对应x86的eax,ebx啥的。。。然而我要做的事sparc

 
  • 13.  圆括号中的组合语句

linux内核完全剖析 学习笔记 打字太累 截图_第17张图片
 
  • 14. 目标文件符号表和字符串部分

 
linux内核完全剖析 学习笔记 打字太累 截图_第18张图片
 
  • 15. 连接程序预定义变量

linux内核完全剖析 学习笔记 打字太累 截图_第19张图片
ARINC 653项目遇到过。。。自己有定义了个end变量,值总是不对。。。原来是链接程序预定义的
 
  • 16. 高尾端/低尾端

不过给我启发的是,在裘宗燕翻译的《程序设计实践》里,这对术语并没有翻译为“大端”和小端,而是“高尾端”“低尾端”,这就好理解了:如果把一个数看成一个字符串,比如11223344看成"11223344",末尾是个'\0','11'到'44'个占用一个存储单元,那么它的尾端(低字节)很显然是44,前面的高还是低就表示尾端放在高地址还是低地址,它在内存中的放法非常直观,如下图:

X86小端,SPARC大端

 
  • 内存地址空间

linux内核完全剖析 学习笔记 打字太累 截图_第20张图片
QQ图片20150711164224.png
 
  • 17. 分段机制

linux内核完全剖析 学习笔记 打字太累 截图_第21张图片
 
QQ图片20150711095121.png
 
linux内核完全剖析 学习笔记 打字太累 截图_第22张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第23张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第24张图片
 
  • 18. 一致/非一致代码段

一致代码段:

    简单理解,就是操作系统拿出来被共享的代码段,可以被低特权级的用户直接调用访问的代码.

    通常这些共享代码,是"不访问"受保护的资源和某些类型异常处理。比如一些数学计算函数库,为纯粹的数学运算计算,被作为一致代码段.

一致代码段的限制作用

    1.特权级高的程序不允许访问特权级低的数据:核心态不允许调用用户态的数据.

    2.特权级低的程序可以访问到特权级高的数据.但是特权级不会改变:用户态还是用户态.

非一致代码段:

    为了避免低特权级的访问而被操作系统保护起来的系统代码.

非一致代码段的限制作用

    1.只允许同级间访问.

    2.绝对禁止不同级访问:核心态不用用户态.用户态也不使用核心态.

通常低特权代码必须通过"门"来实现对高特权代码的访问和调用.

不同级别代码段之间转移规则,是通过CPL/RPL/DPL来校验.

 
  • 19. sleep_on等待队列

linux内核完全剖析 学习笔记 打字太累 截图_第25张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第26张图片
 
  • 20.定时器链表

linux内核完全剖析 学习笔记 打字太累 截图_第27张图片
 
  • 21.信号

QQ图片20150713103959.png
linux内核完全剖析 学习笔记 打字太累 截图_第28张图片
QQ图片20150713104734.jpg
 
QQ图片20150713104858.png
 
linux内核完全剖析 学习笔记 打字太累 截图_第29张图片 QQ图片20150713105044.png
 
  • 22 . 块设备

linux内核完全剖析 学习笔记 打字太累 截图_第30张图片
QQ图片20150714103046.png
 
linux内核完全剖析 学习笔记 打字太累 截图_第31张图片
linux内核完全剖析 学习笔记 打字太累 截图_第32张图片
linux内核完全剖析 学习笔记 打字太累 截图_第33张图片
  linux内核完全剖析 学习笔记 打字太累 截图_第34张图片
linux内核完全剖析 学习笔记 打字太累 截图_第35张图片
 
  • 23. extern inline

linux内核完全剖析 学习笔记 打字太累 截图_第36张图片

-----------------------------------------------------------------------------------------------------2015-07-16---------------------------------------------------------------------------------------------------------------

24.硬盘读写

linux内核完全剖析 学习笔记 打字太累 截图_第37张图片
linux内核完全剖析 学习笔记 打字太累 截图_第38张图片
linux内核完全剖析 学习笔记 打字太累 截图_第39张图片

温彻斯特硬盘

    1973年,IBM研制成功了一种新型的硬盘IBM3340。这种硬盘拥有几个同轴的金属盘片,盘片上涂着磁性材料。它们和可以移动的磁头共同密封在一个盒子里面,磁头能从旋转的盘片上读出磁信号的变化--这就是我们今天使用的硬盘的祖先,IBM把它叫做温彻斯特硬盘。
    个人电脑上的硬盘今年30岁了。当然,没有一块硬盘能如此长寿。早在1956年,国际商用机器公司(IBM)发明了世界上第一个磁盘存储系统 IBM 305 RAMAC,这个只有5MB的存储设备却拥有50个24英寸的盘片。在那个时代,RAMAC是令人吃惊的计算机设备——就其笨拙程度而言,在今天毫无疑问也是令人吃惊的。
1973年,IBM研制成功了一种新型的硬盘IBM3340。这种硬盘拥有几个同轴的金属盘片,盘片上涂着磁性材料。它们和可以移动的磁头共同密封在一个盒子里面,磁头能从旋转的盘片上读出磁信号的变化--这就是我们今天是用的硬盘的祖先——IBM把它叫做温彻斯特(Winchester)硬盘,也称温盘。
    “温彻斯特”这个名字还有个小小的来历;IBM3340拥有两个30MB的存储单元,而当时一种很有名的“温彻斯特来复枪”的口径和装药也恰好包含了两个数字“30”;于是这种硬盘的内部代号就被定为“温彻斯特”。linux内核完全剖析 学习笔记 打字太累 截图_第40张图片
    温彻斯特硬盘采用了一个了不起的技术:它的磁头并不与盘片接触;可以想象,如果要提高存取数据的速度,硬盘的盘片就应该越转越快。但是如果磁头与盘片接触,那么无论采用什么材料都不可能胜任这种工作。技术人员想到让磁头在盘片上方“飞行”,与盘片保持一个非常近的距离。这个想法是可行的,因为盘片高速旋转会产生流动的风,只要磁头的形状合适,它就能像飞机一样飞行。这样,盘片就能旋转的很快而不必担心摩擦造成的灾难。磁头被固定在一个能沿盘片径向运动的臂上。由于磁头相对盘片高速运动,并且二者距离很近,哪怕是一丁点灰尘也会造成磁盘的损坏。所以,盘片、磁头和驱动机构被密封在了一个盒子里。
linux内核完全剖析 学习笔记 打字太累 截图_第41张图片
 

25. 字符设备 (内容挺多,大量截图)

linux内核完全剖析 学习笔记 打字太累 截图_第42张图片
linux内核完全剖析 学习笔记 打字太累 截图_第43张图片

规范模式/非规范模式

linux内核完全剖析 学习笔记 打字太累 截图_第44张图片 linux内核完全剖析 学习笔记 打字太累 截图_第45张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第46张图片

控制台驱动程序

linux内核完全剖析 学习笔记 打字太累 截图_第47张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第48张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第49张图片

UART

 
linux内核完全剖析 学习笔记 打字太累 截图_第50张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第51张图片 QQ截图20150714194546.png
 

26.  MINIX文件系统 (内容好多,但是都有必要看一下。。。)

linux内核完全剖析 学习笔记 打字太累 截图_第52张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第53张图片
 
QQ截图20150715103128.png
 
linux内核完全剖析 学习笔记 打字太累 截图_第54张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第55张图片
 
QQ截图20150715103458.png
 
linux内核完全剖析 学习笔记 打字太累 截图_第56张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第57张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第58张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第59张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第60张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第61张图片
 
QQ截图20150715104758.png
 
linux内核完全剖析 学习笔记 打字太累 截图_第62张图片
 
QQ截图20150715105221.png
 
QQ截图20150715105232.png
 

 高速缓冲区

QQ截图20150715105459.png
 
linux内核完全剖析 学习笔记 打字太累 截图_第63张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第64张图片
 
linux内核完全剖析 学习笔记 打字太累 截图_第65张图片
 

buffer.c

linux内核完全剖析 学习笔记 打字太累 截图_第66张图片 linux内核完全剖析 学习笔记 打字太累 截图_第67张图片 linux内核完全剖析 学习笔记 打字太累 截图_第68张图片 linux内核完全剖析 学习笔记 打字太累 截图_第69张图片 linux内核完全剖析 学习笔记 打字太累 截图_第70张图片 linux内核完全剖析 学习笔记 打字太累 截图_第71张图片 linux内核完全剖析 学习笔记 打字太累 截图_第72张图片 linux内核完全剖析 学习笔记 打字太累 截图_第73张图片 linux内核完全剖析 学习笔记 打字太累 截图_第74张图片 linux内核完全剖析 学习笔记 打字太累 截图_第75张图片
linux内核完全剖析 学习笔记 打字太累 截图_第76张图片 QQ截图20150716151648.png linux内核完全剖析 学习笔记 打字太累 截图_第77张图片 QQ截图20150716151804.png linux内核完全剖析 学习笔记 打字太累 截图_第78张图片
 

 

你可能感兴趣的:(linux,学习,记录)