
linux 内核
文章平均质量分 77
xiaoyao1004
这个作者很懒,什么都没留下…
展开
-
linux 之内核通知链
1 概念:在内核中,有很多的模块,这些模块之间是相互独立的,也有可能某个模块会对其他模块的某个事件感兴趣,这时候就需要将两个模块进行关联,让这两个模块进行通信。所以在linux内核中提供了通知链机制,通知只能用在内核模块之间,不可用在内核和应用空间进行事件的通信。通知链是一个函数链表,链表上的每一个节点都注册了一个函数,当某个事件发生时,链表上的所有节点都会被通知,所以,在通知事件时,所运行的函数...原创 2018-11-07 14:08:18 · 439 阅读 · 0 评论 -
linux 内核之completion
如果内核中一个任务需要发出信号通知另外一个任务发生了某个特定事件,使用完成量completion是两个任得以同步的最简单方法。当任务1需要执行某些工作时,需要等待任务2完成特定操作才能继续执行,那么任务1就会阻塞等待,当任务2的特定操作执行完成之后,通过completion通知任务1并唤醒,这时候任务1可以继续执行。头文件<linux/completion.h>①声明一...原创 2018-11-07 16:49:26 · 404 阅读 · 0 评论 -
linux spinlock
目录自旋锁作用与基本使用方法?在SMP和UP上的不同表现?自旋锁与上下文使用spin_lock()后为什么不能睡眠?强调:锁什么?参考 1、自旋锁作用与基本使用方法?与其他锁一样,自旋锁也用于保护临界区,但是自旋锁主要是用于在SMP上保护临界区。在SMP上,自旋锁最多只能被一个可执行线程持有,如果一个线程尝试获得一个被争用的自旋锁,该线程将一直旋转(whi...转载 2018-11-07 17:22:50 · 203 阅读 · 0 评论 -
linux自旋锁
一、前言在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机制,但是现在中断上下文也参和进来,那些可以导致睡眠的lock就不能使用了,这时候,可以考虑使用spin lock。本文主要介绍了linux kernel中的spin lock的原理以及代码实现。由于...转载 2018-11-07 17:25:15 · 665 阅读 · 0 评论 -
linux platform_get_resource解析
最近在网络驱动的代码,看到了platform_get_resource函数,发现大多数调用该函数时,第三个参数都传递0,很是奇怪,就上网查阅了下资料,发现了一个常用但被忽略的知识点。if语句中多条件判断顺序:if ( conditionA && conditionB ) 和 if ( conditionA || conditionB ),先判断condit...转载 2018-11-13 08:44:25 · 3061 阅读 · 0 评论 -
linux spinlock之使用
linux spinlock的资料网上一大堆,但是每次查过之后,过段时间就忘记了,今天简单的总结下使用方法。 自旋锁最多可以被一个可执行线程持有,如果一个执行线程试图获取一个已经被持有的自旋锁,那么该线程就会一直进行忙循环--旋转--等待锁重新可用。要是锁未被持有,请求锁的执行线程便能立刻得到它,继续执行。在任意时间,自旋锁可以防止多于一个的执行线程同时进入临界区,同一个锁可以用...原创 2018-11-08 11:55:15 · 6596 阅读 · 0 评论 -
linux 内核线程的创建
内核线程和普通的进程的区别在于内核线程没有独立的地址空间(实际上指向地址空间的mm指针被设置成NULL),只在内核空间运行,从来不到用户空间去。可以被调度,可以被抢占1.头文件#include <linux/sched.h> //wake_up_process()#include <linux/kthread.h>//kthread_create()、kth...转载 2018-11-08 16:07:30 · 797 阅读 · 0 评论 -
转----[翻译]你不会想知道的kobject,kset,和ktypes
-------------------------------------------------------------------------------------------------------------------------------阿辉翻译自Linux内核文档:\linux-3.4.75\Documentation\kobject.txt原创翻译,欢迎转载,转载请注明...转载 2019-05-08 19:55:41 · 278 阅读 · 0 评论 -
转----嵌入式Linux驱动笔记(十六)------设备驱动模型(kobject、kset、ktype)
2017年10月27日 20:43:01 风筝丶 阅读数:4458版权声明:本文为 风筝 博主原创文章,转载请署名出处!!谢谢合作。文章地址: https://blog.youkuaiyun.com/Guet_Kite/article/details/78368928###你好!这里是风筝的博客,###欢迎和我一起交流。前几天去面试,被问到Linux设备驱动模型这个问题,没答好,回来后恶...转载 2019-05-08 20:01:13 · 286 阅读 · 0 评论