![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux kernel
文章平均质量分 68
wangliang888888
这个作者很懒,什么都没留下…
展开
-
linux下如何查看当前内核的配置选项
答: zcat /proc/config.gz。转载 2023-10-20 16:30:25 · 219 阅读 · 0 评论 -
Linux中的spinlock机制
但锁保护的并不是这段代码本身,而是其中使用到的多核/多线程共享的变量,它「同步」(或者说串行化)的是对这个变量的访问,通俗的语义就是“我有你就不能有,你有我就不会有”。但是,当spinlock的值被更改时,所有试图获取spinlock的CPU对应的cache line都会被invalidate,因为这些CPU会不停地读取这个spinlock的值,所以"invalidate"状态意味着此时,它们必须重新从内存读取新的spinlock的值到自己的cache line中。但现实中更多的场景并不会那么简单,。转载 2023-09-20 19:33:19 · 300 阅读 · 0 评论 -
Linux中的spinlock机制 - API的使用
[TOC]不同场景下的spinlock实现的操作。转载 2023-09-20 16:35:41 · 161 阅读 · 0 评论 -
嵌入式 Linux开发Kernel移植(三)——Kernel工程Makefile分析
本文转自https://blog.51cto.com/9291927/1794808本文选择三星发布的基于SMDKV210开发板的linux 2.6.35.7版本kernel。一、Kernel Makefle体系简介1、Kernel Makefile体系组成Kernel Makefile体系包含Kconfig和Kbuild两个系统。Kconfig系统Kconfig对应的是内核配置阶段,makexxconfig就是在使用Kconfig系统。Kconfig由三部分组...转载 2020-06-01 15:33:38 · 772 阅读 · 0 评论 -
一文带你了解V4L2
本文转自https://linus.blog.csdn.net/article/details/1035019391.1、什么是v4l2V4L2(video for linux two的缩写)是Linux下关于视频采集相关设备的驱动框架,为驱动和应用程序提供了一套统一的接口规范。V4L2支持的设备十分广泛,但是其中只有很少一部分在本质上是真正的视频设备:Video capture de...转载 2020-03-31 15:33:18 · 854 阅读 · 0 评论 -
Linux内核中THIS_MODULE解析
本文转自https://blog.csdn.net/chdhust/article/details/8813450下面分析的代码均针对于内核2.6.18在module.h 中 THIS_MODULE的定义如下:extern struct module __this_module;#define THIS_MODULE (&__this_module)即是保存了__thi...转载 2020-03-31 11:26:19 · 1290 阅读 · 0 评论 -
Linux Core Dump
本文转自https://www.cnblogs.com/alantu2018/p/8468879.html当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄...转载 2020-03-18 19:13:50 · 173 阅读 · 0 评论 -
make menuconfig中各设置项目查找
本文转自http://blog.chinaunix.net/uid-21830881-id-5759094.html以linux-2.6.29 内核版本为例通过 make menuconfig画面中的 各选项的关键字,查找其隶属于哪个Kconfig,即可知其隶属于哪部分源码中的选项。①删除包含 Kconfig关键字 以外的所有 文件linux-2.6.29$ find.!-...转载 2020-03-06 16:32:39 · 1381 阅读 · 0 评论 -
嵌入式Linux--menuconfig配置内核详解
本文转自https://www.veryarm.com/42482.htmlmenuconfig1.简介menuconfig是一套图像化配置工具,由ncurses库提供软件支持。ncurses库提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面。menuconfig本身的软件只负责提供menuconfig工作的这一套逻辑,比如说通过上下左右调整光标,Enter选中等,并不负...转载 2020-03-06 16:15:01 · 1579 阅读 · 0 评论 -
利用__attribute__((section()))构建初始化函数表,以及Linux内核各级初始化的原理
本文转自https://www.cnblogs.com/sky-heaven/p/8275303.html传统的应用编写时,每添加一个模块,都需要在main中添加新模块的初始化:使用__attribute__((section()))构建初始化函数表后,由模块告知main:“我要初始化“,添加新模块再也不需要在main代码中显式调用模块初始化接口。以此实现main与模块之间的隔...转载 2020-02-25 15:00:55 · 1314 阅读 · 0 评论 -
linux驱动:中断底半部
本文转自https://blog.csdn.net/sgmenghuo/article/details/37933821 在linux老版本的内核(2.6之前),系统中断分为顶半部和底半部。其实这不是linux的专利,很多现代操作系统都有类似的方法来平衡快速响应和执行复杂任务的关系。早期的有bottom half(BH)和task queue来实现底半部机制,但在遇到要求性能较高...转载 2019-12-24 20:32:47 · 328 阅读 · 0 评论 -
红黑树原理浅谈(附Linux内核源码注释)
本文转自https://blog.csdn.net/SL_World/article/details/84584503引言:红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在Leo J. Guibas和Robert Sedgewi...转载 2019-05-23 20:52:33 · 483 阅读 · 0 评论 -
Linux内核定时器
本文转自https://www.ibm.com/developerworks/cn/linux/1308_liuming_linuxtime3/引子时间系统的工作需要软硬件以及操作系统的互相协作,在上一部分,我们已经看到大多数时间函数都依赖内核系统调用,GlibC 仅仅做了一次请求的转发。因此必须深入内核代码以便了解更多的细节。内核自身的正常运行也依赖于时钟系统。Linux 是一个典型...转载 2019-05-23 20:21:48 · 9861 阅读 · 0 评论 -
【Linux内核驱动】字符设备驱动框架模板
本文转自https://blog.csdn.net/wr132/article/details/77849488#include <linux/init.h>#include <linux/module.h>#include <linux/fs.h>#include <linux/cdev.h>#include <lin...转载 2019-04-28 19:49:09 · 310 阅读 · 0 评论 -
Linux Kernel Makefile解析(一)
本文转自https://blog.csdn.net/dreamflyliwei9/article/details/51379021编译内核首先要执行make menuconfig,那我们就从这条命令开始。(P.S. 内核版本 3.8.0)1. Makefile变量的初始化KBUILD_EXTMOD 为空,因为命令行中没有”M= xxx“,KBUILD_SRC为空,因为没有“O = xx...转载 2018-08-16 19:21:13 · 1892 阅读 · 0 评论 -
Linux do_initcall_level()
本文转自https://blog.csdn.net/chenliang0224/article/details/787471171. do_initcalls()路径:linux-3.10.x\init\main.c start_kernel()-->rest_init()-->kernel_init()-->kernel_init_freeable()-->do_ba...原创 2018-06-29 16:58:24 · 946 阅读 · 0 评论 -
init/main.c start_kernel() 代码分析
本文转自 http://www.cnblogs.com/darren-715/p/3920033.htmlhead-common.S ---具体做了哪些动作 ---跳转到init/main.c ---b start_kernel //关于start_kernel的强文深入理解linux内核,第八章 main.c asmlinkage void __init start_kernel...转载 2018-06-29 16:34:05 · 519 阅读 · 0 评论 -
Linux内核常用数据结构
Linux中最重要最常用如下四种:LIST:链表 <linux/list.h>Linux内核的标准链表就是采用“环形、双向”链表形式实现沿着链表移动智能是线性移动需要随机访问的数据,一般不使用链表链表存放数据的理想情况是:需要遍历所有数据、或者需要动态加入/删除数据有时首元素会用一个特殊的指针表示,称为“头指针”,可以方便的找到链表的“起始端”Linux内核实现特殊性:不是将数据结构塞...转载 2018-03-05 20:41:55 · 3430 阅读 · 0 评论 -
Linux内核container_of详解
本文参考了http://my.oschina.net/vazor/blog/87344和http://blog.chinaunix.net/uid-21977330-id-3755194.html整理而成。在学习数据结构课时,我们知道链表元素是个结构体,由数据项和指针项构成,正式里面的指针项是形成链表结构的核心,但数据项才是链表有意义的依托,如果一个链表元素只有指针项,没有数据项,这个原创 2016-04-13 00:19:46 · 1404 阅读 · 0 评论 -
linux内核中链表结构及使用方法
声明:在学习linux 内核数据结构之链表部分时参考了http://blog.chinaunix.net/uid-14114479-id-2932024.html。Linux kernel里面从来就不缺少简洁,优雅和高效的代码,只是我们缺少发现和品味的眼光。在Linux kernel里面,简洁并不表示代码使用神出鬼没的超然技巧,相反,它使用的不过是大家非常熟悉的基础数据结构,但是kernel开原创 2016-04-21 22:45:46 · 6809 阅读 · 1 评论 -
Linux 下的两个特殊的文件: /dev/null 和 /dev/zero 简介及对比
1、概论 -- 来自维基的解释/dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件转载 2016-11-15 14:15:23 · 1849 阅读 · 0 评论 -
编译内核提示mkimage command not found – U-Boot images will not be built
本文转自 http://blog.csdn.net/eibo51/article/details/51901480 http://bbs.csdn.net/topics/380087004ubuntu 14.04 64位系统编译linux kernel时make uImage提示:“mkimage” command not found – U-Boot images wil转载 2017-02-07 10:05:02 · 6405 阅读 · 0 评论 -
ZLG Linux公开课——嵌入式Linux开发教程
本文转自 http://blog.csdn.net/puyihuan/article/details/49891177本帖将全程连载《嵌入式Linux开发教程》这本书的全部内容,对Linux有兴趣的小伙伴,可以在本帖中,挑选喜欢的章节进行学习,有疑问可在相应帖子页面进行跟帖回复,以下便是本社区连载的全部链接:1、本书简介:连载《嵌入式Linux开发教程》一本文员也能看得懂的教程转载 2017-03-06 22:46:03 · 1050 阅读 · 0 评论 -
一个软件实现的Linux看门狗—soft_wdt
本文转自 http://blog.csdn.net/crazycoder8848/article/details/40778947软看门狗介绍soft_wdt(以下简称本软件)是一个软件实现的Linux看门狗。本软件是一款开源、免费软件。下载地址:https://github.com/sunmingbao/soft-wdt/archive/master.zip本软件和/dr转载 2017-03-22 00:03:53 · 3438 阅读 · 0 评论 -
U-Boot启动阶段修改启动参数方法及分析
本文转自http://blog.csdn.net/sea1105/article/details/52439515作者:围补本来启动方式这节不是什么复杂的事儿,不过想简单的说清楚明白,还真是不知道怎么组织。毕竟文字跟有声语言表达有别。但愿简单的东西别让我讲的太复杂!Arm板系统文件一般有三个——bootloader(uboot)、kernel(uImage)及根文件系统转载 2017-06-08 09:41:03 · 2255 阅读 · 0 评论 -
设备树详解
设备树详解在Linux3.x版本后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板级细节的代码(比如platform_device、i2c_board_info等)被大量取消,取而代之的是设备树,其目录位于arch/arm/boot/dts1.设备树的组成1个dts文件+n个dtsi文件,它们编译而成的dtb文件就是真正的设备树so转载 2017-11-07 09:22:28 · 1074 阅读 · 1 评论 -
内核头文件使用
转自http://blog.chinaunix.net/uid-22028680-id-3053966.htmlhttp://blog.chinaunix.net/uid-24780853-id-3301606.html1、在内核源码根目录下运行: 'make headers_install',这样内核Makefile会把提供给应用程序的头文件提取并放在内核源码的“usr/in转载 2017-11-09 15:55:13 · 4519 阅读 · 0 评论 -
linux设备和驱动加载的先后顺序
Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢。Linux系统使用两种方式去加载系统中的模块:动态和静态。静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载核心进程(/init/main.c)kernel_inità do_basic_setup()àdo_initcalls()该函数中会将在_转载 2017-10-25 20:52:02 · 8727 阅读 · 0 评论 -
I.MX6 dts 在哪里、怎么编译
一、参考文档: 1. [i.MX] 修改了dts之后,如何重新进行编译呢? http://bbs.21ic.com/icview-983946-1-1.html二、DTS在哪里: 1. 查看kernel中dts目录的Makefile: cat kernel_imx/arch/arm/boot/dts/Makefile ..转载 2017-10-26 09:19:25 · 1316 阅读 · 0 评论 -
Linux 内核启动时间分析
本文参考:http://blog.csdn.net/yimiyangguang1314/article/details/88070961:首先修改目标板kernel的bootargs,以便获取kernel启动时加载各模块时间。在bootargs中添加以下内容:printk.time=y 和initcall_debug我使用的bootargs修改后如下:setenv bootargs"root=/d...原创 2018-02-26 09:50:53 · 780 阅读 · 0 评论 -
[IMX6DL] CPU频率调节模式以及降频方法
本文转自http://blog.csdn.net/kris_fei/article/details/51822435Kernel branch: 3.0.35CPU的频率调节模式:1. Performance. 不考虑耗电,只用最高频率。2. Interactive. 直接上最高频率,然后看CPU负荷慢慢降低。3. Powersave. 通常以最低频率运行,流畅度会受影响,一般不会用这个...转载 2018-03-16 13:04:35 · 4862 阅读 · 0 评论 -
配置Linux内核源码make menuconfig 时unable to find the ncurses libraries 错误
在ubuntu 14.04下配置编译Linux内核源码时,进行“make menuconfig”配置时会报出下边错误:wangliang@wangliang-virtual-machine:~/LinuxSysSource/Source/linux-3.2.0-psp04.06.00.11$ make menuconfig *** Unable to find the ncur原创 2016-04-08 09:44:33 · 374 阅读 · 0 评论