2014年3月13日

进程上下文&中断上下文

摘要: 文章出自http://hi.baidu.com/bkhcvzdvmjfkpyr/item/5444001fa68d065bf1090ea6处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间;2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;3、用户态,运行于用户空间。进程上下文用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程要传递很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存器值、变量等。所谓的“进程上下文”,可以看作是用户进程传递给内核的这些参数以及内核要保存的那一整套的变量和寄存器值和当时的环境等。中断 阅读全文

posted @ 2014-03-13 11:53 程良 阅读(212) 评论(0) 推荐(0) 编辑

linux下设备驱动的结构&编译&加载

摘要: 构造和运行模块insmodmodprobermmod用来装载模块到正运行的内核和移除模块的用户空间工具。#includemodule_init(init_function);module_exit(cleanup_function);用于指定模块的初始化和清除函数的宏。__init__initdata__exit__exitdata仅用于模块初始化或清除阶段的函数(__init 、__exit)和数据 (__initdata、__exitdata) 标记。标记为初始化的项目会在初始化结束后丢弃;而退出项目在内核为被配置为可卸载模块的情况下被丢弃。内核通过将相应的目标对象放置在可执行文件的特殊E 阅读全文

posted @ 2014-03-13 11:38 程良 阅读(268) 评论(0) 推荐(0) 编辑

自旋锁&信号量

摘要: 1. 自旋锁 Linux内核中最常见的锁是自旋锁。一个自旋锁就是一个互斥设备,它只能有两个值:"锁定"和"解锁"。如果锁可用,则"锁定"位被设置,而代码继续进入临界区;相反,如果锁被其他进程争用,则代码进入忙循环并重复检查这个锁,直到锁可用为止。这个循环就是自旋锁的"自旋"。自旋锁最多只能被一个可执行的线程持有。如果一个执行线程试图获得一个被争用的自旋锁,那么该线程就会一直进行忙循环-旋转-等待锁重新可用。注意,同一个锁可以用在多个位置。缺点:一个被争用的自旋锁使得请求它的线程在等待锁重新可用时自旋(特别浪费处理器 阅读全文

posted @ 2014-03-13 11:31 程良 阅读(1128) 评论(0) 推荐(0) 编辑

嵌入式Linux的启动过程

摘要: 1.了解 Linux 最初是由瑞典赫尔辛基大学的学生 Linus Torvalds在1991 年开发出来的,之后在 GNU的支持下,Linux 获得了巨大的发展。虽然 Linux 在桌面 PC 机上的普及程度远不及微软的 Windows 操作系统,但它的发展速度之快、用户数量的日益增多,也是微软所不能轻视的。而近些年来 Linux 在嵌入式领域的迅猛发展,更是给 Linux 注入了新的活力。 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(bootloader), Linux 内核,文件系统,应用程序。其中 bootloader是系统启动或复位以后执行的第一段代码,.. 阅读全文

posted @ 2014-03-13 11:24 程良 阅读(2478) 评论(1) 推荐(0) 编辑

【转载】vim 中文帮助手册的安装

摘要: 本文出处http://hi.baidu.com/bkhcvzdvmjfkpyr/item/9c238224c1a69498b6326360 vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难, 何况还有"星级译王"呢, 可偏偏有一帮人将其翻译成了中文, 可偏偏我又挡不住诱惑将它安装了, 唉.......又痛失一个学习英文的好机会, 下不为例.大家看看我的中文帮助界面吧:(--- 图2 ---)安装方法:在下面的网站下载中文帮助的文件包:http://vimcdoc.sf.net (English)http://vimcdoc.sourceforge.net/ 阅读全文

posted @ 2014-03-13 10:53 程良 阅读(273) 评论(0) 推荐(0) 编辑

导航