kernel
RopenYuan
这个作者很懒,什么都没留下…
展开
-
嵌入式Linux之Kernel(裁减移植)启动调试、打印技术_printascii(补充)、内核调试.doc
嵌入式系统搭建过程中,对于系统平台搭建工程师在完成Bootloader 的调试之后就进入Kernel 裁减移植的阶段,其中最重要的一步是Kernel 启动的调试,在调试Kernel 过程中通常遇到最常见的问题是启动异常:Uncompressing Linux.......转载 2011-09-06 17:03:32 · 1176 阅读 · 0 评论 -
notifier chain — 内核通知链
大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。通知链表是一个函数链表,链表上的每一个节点都注册了一个函数。当某个事情发生时,链表上所有节点对应的函数就会被执行。所以对于通知链表来说原创 2017-07-11 14:32:01 · 580 阅读 · 0 评论 -
linux内核中等待队列(wait_event,wake_up...)
2012-12-25 15:09:57分类: LINUX根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析 介绍这几个函数,不得不先介绍等待队列wait_queue_head_t 等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。等待队列转载 2016-08-26 10:25:43 · 1061 阅读 · 0 评论 -
linux内核部件分析(一)——连通世界的list
在linux内核中,有一种通用的双向循环链表,构成了各种队列的基础。链表的结构定义和相关函数均在include/linux/list.h中,下面就来全面的介绍这一链表的各种API。[cpp] view plaincopyprint?struct list_head { struct list_head *next, *prev;转载 2014-12-09 15:46:22 · 814 阅读 · 0 评论 -
linux内核部件分析(三)——记录生命周期的kref
kref是一个引用计数器,它被嵌套进其它的结构中,记录所嵌套结构的引用计数,并在计数清零时调用相应的清理函数。kref的原理和实现都非常简单,但要想用好却不容易,或者说kref被创建就是为了跟踪复杂情况下地结构引用销毁情况。所以这里先介绍kref的实现,再介绍其使用规则。 kref的头文件在include/linux/kref.h,实现在lib/kref.c。闲话少说,上代转载 2014-12-09 15:49:19 · 686 阅读 · 0 评论 -
linux内核部件分析(二)——原子性操作atomic_t
在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补这一缺点,x86提供了附加的lock前缀,使带lock前缀的读修改写指令也能原子性执行。带lock前缀的指令在操作时会锁住总线,使自身的执行即使在多处理器间也是原子性执行的。xchg指令不带lock前转载 2014-12-09 15:47:49 · 1389 阅读 · 0 评论 -
linux驱动中时间相关问题
1. linux世界里的时间 http://blog.csdn.net/freedom1013/archive/2007/03/13/1528310.aspx 通常,操作系统可以使用三种方法来表示系统的当前时间与日期:①最简单的一种方法就是直接用一个64位的计数器来对时钟滴答进行计数。②第二种方法就是用一个32位计数器来对秒进行计数,同时还用一个32位的辅助计数器对时钟滴答转载 2014-12-16 10:33:26 · 1121 阅读 · 0 评论 -
等待队列
在Linux内核中等待队列有很多用途,可用于中断处理、进程同步及定时。我们在这里只说,进程经常必须等待某些事件的发生。等待队列实现了在事件上的条件等待: 希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制全。因此,等待队列表示一组睡眠的进程,当某一条件为真时,由内核唤醒它们。等待队列由循环链表实现,其元素包括指向进程描述符的指针。每个等待队列都有一个等待队列头(wait que转载 2014-10-11 12:18:32 · 1598 阅读 · 1 评论 -
Linux oops信息的分析
Andrew Huang 转载请注明作者及网址oops是英语口语"糟糕"的意思,当LINUX 内核发生严重错误时,比如内存段错误时,将会提示一大段信息。就提示 Oops,因此得名,Oops提示信息相当多,包括出问题时的,各个常用寄存器的值,调用的堆栈,以及出错的可能原因1.oops 的格式内核的文档里的详细的Oops的说明,的名字是Documentation/转载 2012-12-24 18:08:50 · 4240 阅读 · 0 评论 -
智器Q5 covia android 1101内核启动分析
S3C6410]智器Q5 covia android 1101内核启动分析2009-12-07 10:13智器Q5 covia android 1101内核启动分析在idea6410板子上跑的Starting kernel ...Uncompressing Linux..............................................转载 2011-12-14 18:27:51 · 1274 阅读 · 0 评论 -
中断服务下半部之工作队列详解
【转贴】中断服务下半部之工作队列详解 2009-11-01 23:43Sailor_forever [email protected] 转载请注明http://blog.csdn.net/sailor_8318/archive/2008/07/16/2657294.aspx 【摘要】本文详解了中断服务下半部之工作队列实现机制。介绍了工作队列的特点、其与tasklet转载 2011-11-28 11:33:45 · 1562 阅读 · 0 评论 -
proc_create的使用方法
proc_create的使用方法proc文件系统是个有用的东东。创建一个proc虚拟文件,应用层通过读写该文件,即可实现与内核的交互。proc虚拟文件是如何创建的呢?先看看比较简单的,创建proc文件夹。调用以下函数,即可实现proc文件夹的创建:struct proc_dir_entry *proc_mkdir(const char *name, struct pro原创 2017-07-11 14:57:06 · 1706 阅读 · 0 评论