Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9465114
  • 博文数量: 1750
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 20091
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1750)

文章存档

2024年(26)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: LINUX

2010-10-15 14:28:04

  • 每个内核模块都会事件驱动的。
  • 模块的退出函数必须小心恢复由初始化函数建立的东西,否则会保留一些东西直到系统重启。
  • 一个模块在内核空间运行, 而应用程序在用户空间运行
  • 在 Unix 下, 内核在最高级运行( 也称之为超级模式 ), 这里任何事情都允许, 而应用程序在最低级运行(所谓的用户模式), 这里处理器控制了对硬件的直接存取以及对内存的非法存取.
  • 超级模式和用户模式有它们各自的内存映射 -- 即各自的地址空间
  • Unix从用户空间跳到内核空间执行。
    • 应用程序执行系统调用。 内核代码运行于应用进程的上下文空间,可以存取该应用进程的地址空间。
    • 硬件中断。 处理中断的代码对应用进程来说是异步的,不于任何进程相关联。
  • 模块的代码运行在内核空间。
    • 部分函数作为系统调用的实现。
    • 部分函数为中断处理。
  • 内核的并发
    • 内核代码的运行是抢占式的。
    • 驱动可能被多应用进程同时调用。
    • 驱动必须要在考虑并发情况并提供相应的解决机制。
  • 全局项 current。
    • 内核代码引用的当前进程。current 是指针变量, 指向结构task_struct .
    • current->comm 的命令名称是由当前进程执行的程序文件的基本名称
  • 堆栈空间
    • 应用程序运行于虚拟内存中,有很大的堆栈区。
    • 内核堆栈很小,一个4KB的页。 如果需要更大的结构应当在调用时间内动态分配。
    • 内核中__开始的函数未底层的接口组建,应小心使用。
    • 内核代码不能作浮点运算。一般内核不需要浮点运算。
阅读(1570) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~