【 linux内核 】
文章平均质量分 74
linux 内核基础知识汇总、中断、定时器、线程、内存管理、scsi
老理说的好
技术也修行!
展开
-
制作自定义版本 kernel 镜像
采用 make-kpkg 方法编译内核image 和 header 文件。在 Ampere ARM 服务器、 调整PCIe RC驱动相关代码、和AMDGPU 驱动相关内容,为生产部署便捷,给运维组同事直接提供内核头文件.deb 和 kernel.deb 安装包,本篇记录使用 make-kpkg 过程。原创 2023-09-22 19:30:18 · 567 阅读 · 0 评论 -
Linux驱动之内核定时器
设备驱动中需要周期性执行某些动作时,可以采用内核定时器来实现。Linux-3.14.x 其实现文件位于 include/Linux/timer.h 和 kernel/timer.c 文件中。内核基于CPU 自启动以来时钟个数计算时间(基于jiffies)计算时间方式,用来控制在未来某个时间点调度执行某个函数的一种机制,被调度的函数不属于进程上下。定时器回调函数应遵循如下规则:1). 不可访问用户空间,因为没有进程上下文,相关代码和被中断的进程没有任何关系。2). 不可执行休眠或引起休眠的函。3).原创 2020-07-18 21:33:11 · 303 阅读 · 0 评论 -
LINUX-4.4 内核启动流程分析
此篇内容总共分为 5 部分, 第 5 部分 手工绘制的内核启动程序调用关系,可以参考函数名和文件路径,清晰分析内核启动路线。(1). 文件 arch/arm/kernel/vmlinux.lds.S 文件是kernel链接文件ENTRY(stext)SECTIONS{ .head.text : { _text = .; HEAD_TEXT } .text : { /* Real text segment */ _stext = .; /* Text and rea原创 2020-09-02 22:49:21 · 645 阅读 · 0 评论 -
中断产生后-内核如何让用户程序执行相应的处理程序(信号驱动的异步IO)
中断产生后-内核如何让用户程序执行相应的处理程序(信号驱动的异步IO)通过"信号"的方式,期望获取的资源可用时,驱动会主动通知指定的应用程序。应用层通过接收"信号"的方式, 得知中断到来。1). 应用层程序将自己注册为接收来自设备文件的SIGIO信号的进程.和其他信号一样,应用层需要注册一个信号处理函数,注册的方式还是使用signal()或sigaction().#include <stdio.h>#include <unistd.h>#include <si原创 2020-07-16 17:08:16 · 267 阅读 · 0 评论 -
详解 Linux Workqueue 原理
转载:魅族内核团队文章,链接:http://kernel.meizu.com/linux-workqueue.html一 简述Workqueue 是内核里面很重要的一个机制,特别是内核驱动,一般的小型任务 (work) 都不会自己起一个线程来处理,而是扔到 Workqueue 中处理。Workqueue 的主要工作就是用进程上下文来处理内核中大量的小任务。所以 Workqueue 的主要设计思想:一个是并行,多个 work 不要相互阻塞;另外一个是节省资源,多个 work 尽量共享资源 ( 进程、调度转载 2021-06-24 13:50:55 · 3179 阅读 · 0 评论 -
Linux 内核中断与驱动中应用
中断分类中断可分为同步(synchronous)中断和异步(asynchronous)中断:同步中断是当指令执行时由 CPU 控制单元产生,之所以称为同步,是因为只有在一条指令执行完毕后 CPU 才会发出中断,而不是发生在代码指令执行期间,比如系统调用。异步中断是指由其他硬件设备依照 CPU 时钟信号随机产生,即意味着中断能够在指令之间发生,例如键盘中断。根据 Intel 官方资料,同步中断称为异常(exception),异步中断被称为中断(interrupt)。中断可分为可屏蔽中断(Maska原创 2020-07-15 16:54:05 · 450 阅读 · 0 评论