Linux系统基础知识(二)
Linux进程怎样才能获取属于它自己的线性地址空间呢,比如 0x08048000到0x0804c000这段线性地址空间被分配给了一个进程,进程就可以访问这段地址空间,线性地址空间的开始和结束都必须以4KB对齐
这里有以下几种情况:
1.刚刚创建的新进程;
2.使用exec系统调用装载一个新的程序运行;
3.将一个文件(或部)映射到进程地址空间中去;
4.当用户堆栈不够的时候,扩展堆栈对应的线性区;
相关文档:
关于linux下两种内存引导模式的区别
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。
initrd 的英文含义是 boot loader ......
简介
模块(module)是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能
独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。模块最主要的用处就是用来实现设备驱动程序。
使用模块的优点:
1,将来修改内核时,不必全部重新编译整个内核,可节省不少时间
2,系统 ......
从前天开始学习驱动,感觉不到驱动的精髓。不过随着时间的流逝我将搞定他。
因为我不是特别动如果我写的不到位的地方希望大家指正,共同进步
。
设备驱动
驱动框架:
驱动和普通程序的区别在于他是事件驱动
的,也就是说他不是像普通程序那样从main()执行,从main()结束。因为驱动是以模块的形式“融合”入 ......
yum update 更新系统之后,内核版本出现了两种,一种是PAE,另外一种并没有PAE。
何谓PAE呢?全称:Physical Address Extension
其实就是使32位系统支持超过4G内存,最大可达64G内存。
对于Linux来说,内核从2.6版本开始全面支持PAE[3]
,这使得在32位的机器上可以访问64GB的内存。启用了PAE的Linux内核还需要同样支持P ......
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
pthread_mutex_t wqy_mutex_pause = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t wqy_cond_pause = PTHREAD_COND_INITIALIZER;
bool wqy_pthread_pause = false;
void wqy_pthread_suspend(void)
{
if ......