![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核笔记
文章平均质量分 77
亥尚
我就是我颜色不一样的烟花
展开
-
四。向内核添加内核模块
内核版本:3.4.24大家发现什么错误一定要告诉我,大家共同学习了;########## 内核模块 ###########1.开发阶段,不能每改一次程序就重新编译一次内核,所以我们通过向内核添加模块的方式调试 注:a.编译内核时,出现的警告也不能忽略,可能导致大错误 b.向其添加模块的内核必须是正确编译通过的2.向内核添加模块,必须:原创 2013-11-03 17:06:17 · 1501 阅读 · 0 评论 -
嵌入式Linux文件系统简介
Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。 Linux下的文件系统结构如下: Linux启动时,第一个必须挂载的是根文件系统;若系统转载 2013-12-06 22:36:31 · 1311 阅读 · 0 评论 -
九。内核同步问题
如有错误请指出,大家一起学习:1、 访问共享资源的的代码都是临界区 用户态的锁都是睡眠性质的 内核中有些锁是死等,有些锁是睡眠2、内核抢占 2.6 以后的内核都支持抢占 内核代码可被打断 默认情况下,内核不支持抢占 服务器是不会支持抢占的,自己玩的桌面版的一般支持 make menuco原创 2013-11-09 21:12:26 · 1191 阅读 · 0 评论 -
八。内核中的中断机制
如有什么错误,请指出,大家一起学习:1、修改进程为实时进程,linux不支持实时进程,这里的实时不是真正的实时进程,只是进程优先级比较高 修改进程优先级的函数:sched_setscheduler int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param);原创 2013-11-09 21:06:02 · 1619 阅读 · 0 评论 -
七。内核字符驱动
如有什么错误大家要告诉我,一起学习:########################################## 在内核函数中,尽量不要定义太大的局部变量# 内核为每个进程在内核中分配一个 2页的内核栈(咱们这就是8K)# 如果变量太大,会把栈的东西填满,栈里面放着进程很重要的东西, struct task_info 在这里面包含 struct task_struct原创 2013-11-09 20:59:10 · 1131 阅读 · 0 评论 -
六。内存管理机制--MMU
大家发现什么村务一定要告诉我,大家一起学习:1、#define abc(n) do{xxx;yyy;zzz;}while(0) #define abc(n) {xxx;yyy;zzz;} 加上do while 和不加可能执行结果可能一样,但是内核一般都加 是怕在执行函数的时候出现错误 int a ; if(a > 0)原创 2013-11-09 20:55:12 · 3101 阅读 · 0 评论 -
linux中断子系统及中断上下部分
中断子系统一、异常在执行代码时产生,而且由代码本身产生,也就是说这个操作是处理器在执行代码的时候发生的,所以又称作同步中断二、中断与处理器当前处理的代码无关,处理器并不知道什么时候中断到来,所以中断是异步的三、中断处理机制的实现:设备产生中断--->中断控制器--->处理器打断正在执行的代码--->跳到相应中断线的初始入口地址--->保存当前中断号和转载 2013-11-20 23:11:46 · 1265 阅读 · 0 评论 -
五。内核代码调试方法——proc文件系统、seqfile文件系统
如有错误大家一定告诉我,一起学习了;############## proc 文件系统 ##################1、 mount -t proc none /proc ps ---> /proc/(每个结构体(每个进程)在这创建一个目录。以pid名字命名,进程的状态,关系等属性都是内核写在相应的目录下) 内核:找的是proc文件系统,我们只是原创 2013-11-05 22:32:42 · 1918 阅读 · 0 评论 -
二。向内核中添加系统调用
内核版本:3.4.24大家发现什么问题一定要告诉我,大家一起学习啦######### 向内核中添加系统调用 ##########1.系统调用是和平台相关的 arm平台的系统调用的汇编代码,路径: vim //linux3.4/arch/arm/kernel/entry-common.S //从333行开始2.添加系统调用的步骤原创 2013-11-02 23:18:26 · 736 阅读 · 0 评论 -
三。制作根文件系统
busybox版本:1.20大家发现什么问题一定要告诉我,大家一起学习########### 制作根文件系统 #############1.busybox目录一个工具集 ---编译生成--->busybox文件(ls、chmod、...) 注:busybox包括的都是外部命令,没有内部命令(cd、...)2.找到busybox的压缩包 tar -xv原创 2013-11-02 23:26:41 · 714 阅读 · 0 评论 -
一。进行内核修改、配置、编译的基础准备工作。
使用的3.4.24的内核,如有什么错误就提出来,大家一起学习;########### 预备工作 #############1.找到内核源码;解压;2.修改名称位llinux(只用于查看内核的);3.再解压一份,用于编译修改的内核,修改名称为linux3.4(使用的版本)4.进入到llinux目录下,建立索引: a.进入arch 目录:删掉除arm 以外的全原创 2013-11-02 20:18:40 · 842 阅读 · 0 评论 -
十。内核时间问题
好久没有提笔写点东西,最近人有点堕落了。新在的公司老是给我一种养老的感觉。我得自己找点事情干的,要不这么年轻就废了多不好啊。所以就想起提笔写以下以前的一些学习内核的笔记。有什么问题望大家指正,大家一起学习。############ 内核时间 ###############1、延时 for(i = 0; i 在内核中使用延时一定要使用内核的API 类似与死原创 2014-03-31 20:07:54 · 966 阅读 · 0 评论