围城
发布时间:2018-06-27 17:15:56
module_param值修改方法module_param(musbfsh_debug, int, 0644);1编译时判断宏变量是否定义:编译时打印宏变量#ifdef CONFIG_DWMAC_MESON #pragma message("CONFIG_DWMAC_MESON active\n") 编译的时候的打印会有提示,搜索即可:note: #pragma message: CONFIG_DWMAC_MESON active #pragma messag.........【阅读全文】
发布时间:2016-08-16 10:41:49
死锁:就是多个进程(≥2)因为争夺资源而相互等待的一种现象,若无外力推动,将无法继续运行下去。注意,只有在多进程或者多线程之间或者他们与中断之间相互通讯或者共享资源才有可能发生死锁,单线程或者进程之间没有联系的话,一般不会发生死锁。锁的种类比较多,这里主要说自旋锁和信号量。两者的差别就在于前者获.........【阅读全文】
发布时间:2016-08-16 10:11:11
Linux的进程存在多种状态,如TASK_RUNNING的运行态、EXIT_DEAD的停止态和TASK_INTERRUPTIBLE的接收信号的等待状态等等(可在include/linux/sched.h中查看)。其中有一种状态等待为TASK_UNINTERRUPTIBLE,称为D状态,该种状态下进程不接收信号,只能通过wake_up唤醒。处于这种状态的情况有很多,例如mutex锁就可能会设置进.........【阅读全文】
发布时间:2016-08-12 22:40:46
Linux有一个特性:OOM Killer,一个保护机制,用于避免在内存不足的时候不至于出现严重问题,把一些无关的进程优先杀掉,即在内存严重不足时,系统为了继续运转,内核会挑选一个进程,将其杀掉,以释放内存,缓解内存不足情况,不过这种保护是有限的,不能完全的保护进程的运行。 在很多情况下,.........【阅读全文】
发布时间:2016-07-24 15:59:41
(本文参考网上资料整理而成)一、前言Linux内核是一个整体结构,而模块是插入到内核中的插件。尽管内核不是一个可安装模块,但为了方便起见,Linux把内核也看作一个模块。那么模块与模块之间如何进行交互呢,一种常用的方法就是共享变量和函数。但并不是模块中的每个变量和函数都能被共享,内核只把各个模块中主要的变.........【阅读全文】