linux kernel 2.4.0读书笔记
学渣上确界
此人小白。
展开
-
typeof
#include <stdio.h> int main(void) { double a=0; typeof(a=3.0) b=0.0; int *s=b; a=0; if(a=1) { printf("Go to hel...原创 2018-03-08 23:03:59 · 206 阅读 · 0 评论 -
内核内存管理几个重要的结构体与函数(一)
数据结构 Linux内存主要采取页式管理。所以需要表示出页表的数据结构: typedef struct { unsigned long pte_low; } pte_t;pte_low里面存储页面的物理地址。因为页表是mmu用来寻址物理内存中页面的,如果存储的是线性地址的话就毫无意义了。但是内核用来寻址的时候只要是在开启了分页的情况下都应该使用虚拟地址。因为页式地址转...原创 2018-02-10 21:30:03 · 648 阅读 · 0 评论 -
Linux内存管理重要的数据结构与函数(二)
当Linux需要将内存的一些页面换出到文件上时(swap),内存与交换设备(比如硬盘)就发生了关联。另一处关联是mmap系统调用将一个文件映射到内存中,这样可以加快文件的访问。对于swap,每一个swap设备或者文件被内核中一个swap_info_struct结构体所描述。 这个结构体定义在include/linux/swap.h头文件中(kernel 2.4)。 在sw...原创 2018-02-19 11:01:33 · 468 阅读 · 0 评论 -
_set_gate宏
#define _set_gate(gate_addr,type,dpl,addr) \789 do { \790 int __d0, __d1; \791 __asm__ __volatile__ ("movw %%dx,%%ax\n\t" \792 "movw %4,%%dx\n\t" \793 "movl %%eax,%0\n\t" \794 ...原创 2018-03-06 15:41:16 · 863 阅读 · 0 评论