自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (4)
  • 收藏
  • 关注

原创 linux 内核 内存管理 初始化 页表

linux内核在启动分页机制时就已经有了一个可用的页表,这个最初的页表是手工创建了,而且仅有为数不多的几个页面,进入start_kernel()以后需要把原来的页表完善一下,具体工作在start_kernel() --> setup_arch() --> paging_init()函数中。paing_init()函数定义在arch/x86/mm/init_32.c中。void __init p

2011-11-09 21:17:09 3927

原创 linux 内核 内存管理 bootmem alloctor 申请内存

alloc_bootmem_low_pages()定义在:include/linux/bootmem.h中,定义如下:#define alloc_bootmem_low_pages(x) \    __alloc_bootmem_low(x, PAGE_SIZE, 0)__alloc_bootmem_low()定义在:mm/bootmem.c,定义如下:void * _

2011-11-08 20:32:42 1900

原创 linux 内核 内存管理 bootmem alloctor 的初始化

首先说说bootmem alloctor存在的意义。在内核刚刚开启分页机制时,只是创建了很少的几页的映射(内核+堆栈+bitmap),并没有实现内存的管理模块,也就是此时的内核还不能比较随意的申请/释放内存,所以内核的功能受到了很大的限制。为了尽快改变这种状况,内核创建了一个临时的内存管理器 -- bootmem alloctor,但这个内存管理模块的功能十分有限,内核随后会建立更强大的内存管理机

2011-11-08 19:30:45 3991

原创 linux 内核 内存管理 slub算法 (一) 原理

内核管理页面使用了2个算法:伙伴算法和slub算法,伙伴算法以页为单位管理内存,但在大多数情况下,程序需要的并不是一整页,而是几个、几十个字节的小内存。于是需要另外一套系统来完成对小内存的管理,这就是slub系统。slub系统运行在伙伴系统之上,为内核提供小内存管理的功能。        slub把内存分组管理,每个组分别包含2^3、2^4、...2^11个字节,在4K页大小的默认情况下,另外

2011-11-07 17:05:34 26285 41

原创 如何判断 linux内核 中 如何判断 条件编译

在阅读linux源码时,经常遇到条件编译的情况,如下:#ifdef CONFIG_FLAT_NODE_MEM_MAP    /* ia64 gets its own node_mem_map, before this, without bootmem */    if (!pgdat->node_mem_map) {......    }#ifndef CONFIG_N

2011-11-01 17:28:50 1892

转载 linux 终端 快捷键

1. 标签页Shift+Ctrl+T:新建标签页 Shift+Ctrl+W:关闭标签页 Ctrl+PageUp:前一标签页 Ctrl+PageDown:后一标签页 Shift+Ctrl+PageUp:标签页左移 Shift+Ctrl+PageDown:标签页右移 Alt+1:切换到标签页1 Alt+2:切换到标签页2 Alt+3:切换到标签页32. 窗口

2011-06-13 08:51:00 550

转载 Linux 任务控制的几个技巧( &, [ctrl]-z, jobs, fg, bg, kill)

    Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务。因此在任务管理上也有别具特色的管理思想。我们知道,在Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg和 bg 命令,让你轻松调度正在运行的任务。假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,

2009-09-10 10:23:00 647

转载 typedef 的用法

 用途一:   定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:   char* pa, pb;  // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,   // 和一个字符变量;   以下则可行:   typedef char* PCHAR;   PCHAR pa, pb;        

2009-09-10 09:10:00 575 1

转载 gcc动态链接库基本知识 [转]

一、GNU gcc的编译工具用法我们先来写一个简单的C程序:hello.c1. #include 2. 3. void print_hello() { 4. printf("Hello World/n"); 5. } 6. 7. int main(int argc, char argv[]) { 8. print_hello();

2009-08-03 17:11:00 2017

转载 驱动版本问题

linux驱动入门实验/*******************************************************帅得不敢出门  C++爱好者灌水天堂   3503799  转载请保留此信息******************************************************/

2009-07-24 17:23:00 580

转载 Linux shell 查找操作

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty

2009-07-18 11:11:00 2948

转载 Linux 进程地址空间1_数据结构和接口

数据结构内存描述符:mm_structstruct mm_struct {    struct vm_area_struct * mmap;          /*内存区域链表*/    rb_root_t mm_rb;                       /*内存区域红黑树的根*/    struct vm_area_struct * mmap_cache;   

2009-07-14 10:22:00 1462

转载 运算符优先级

PrecedenceOperatorDescriptionExampleAssociativity1()[]->.::++--Grouping operatorArray accessMember access from a pointerMember access from an ob

2009-07-10 21:33:00 550

转载 Linux shell__文件操作

一.查看文件ls – l类型和权限位 硬链接数 属主 属主所在的组 文件字节数 更新时间   文件名-rw-r--r--    1  root   root      1771  2006-04-20 hello 类型:d(directory)目录文件l(link)符号链接s(socket)套接字b(block)块设备c(character)字符设备p(

2009-07-10 15:17:00 984

原创 c中static的含义

c语言中,static同时具有两种含义:1.存储区域方面。static表示静态,全局。static变量其存储区域是全局的,不是放在堆或者栈中,即下一次访问时,还会保持原来的值。对于static函数,当然不存在存储区方面的含义。 2.访问范围方面。static表示其访问范围是当前文件。这个特性对于变量和函数是一样的。访问范围全局局部

2009-07-09 21:01:00 1141

高级Bash脚本编程指南

高级 Bash 脚本 编程 指南 教程 经典

2009-09-15

101个超酷Shell脚本英文版

Shell 英文版 脚本 shell 脚本

2009-09-15

Intel汇编语言程序设计(第四版)

intel 汇编 程序 设计 经典 教程

2009-09-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除