随笔分类 - 【linux内核】
摘要:转自:https://www.jianshu.com/p/64def4ed0849 理解内核模块原理及正确编写源代码 原理:内核模块可以作为独立程序来编译的函数和数据类型的集合。之所以提供模块机制,是因为Linux本身是一个单内核。单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较
阅读全文
摘要:转自:https://www.cnblogs.com/arnoldlu/p/10219704.html DMA本身用于减轻CPU负担,进行CPU off-load搬运工作。 在DMA驱动内部实现有同步和异步模式,异步模式使用dma_async_issue_pending(),然后在callback(
阅读全文
摘要:转自:https://blog.csdn.net/Rong_Toa/article/details/108825666 目录 为什么要有 DMA 技术? 传统的文件传输有多糟糕? 如何优化文件传输的性能? 如何实现零拷贝? PageCache 有什么作用? 大文件传输用什么方式实现? 总结 磁盘可以
阅读全文
摘要:转自:https://blog.csdn.net/zxpblog/article/details/108539245 前言: 一直就感觉linux下面的任务调度机制太丰富了,由于各种调度机制平时工作中只是要用,理解并不是那么深刻,所有有时候说不上道道来,只知道这个要用softirq/tasklet/
阅读全文
摘要:转自:https://blog.csdn.net/weixin_43644245/article/details/121562388 1. 概述Linux系统启动过程中通过init_task创建0号idle进程。然后通过kernel_thread创建1号init进程。创建该进程时通过系统调用,在内核
阅读全文
摘要:转自:https://www.cnblogs.com/arnoldlu/p/10986583.html 本着了解ramdisk,带着如下几个问题进行分析: 如何打开ramdisk功能? ramdisk存放在哪里? ramdisk在什么时候解压?如何解压? 解压后ramdisk在什么位置? ramdi
阅读全文
摘要:转自:https://blog.birost.com/a?ID=00350-fda5a078-6698-4a95-b5e2-8e12d5934d3a bootleader "kernel " initrd (xz, cpio, a kind of ramfs, mainly drivers and
阅读全文
摘要:转自:https://zhuanlan.zhihu.com/p/105284305 什么是kexec? 可从当前正在运行的内核直接跳转到新内核 为什么需要kexec? 跳过boot阶段,减少重启时间 kexec整体思路如下 1)新的kernel镜像和initrd镜像连续存储在内存中,initrd的位
阅读全文
摘要:转自:https://dumphex.github.io/2020/02/15/kdump/ 本文将深入学习kdump相关代码,梳理kdump整个流程。 1. Overview 1.1 什么是kdump kernel崩溃时, 创建核心存储(core dump) kdump导出/proc/vmcore
阅读全文
摘要:转自:https://cloud.tencent.com/developer/article/1529750 Linux内核程序员几乎每天都在和各种问题互相对峙: 内核崩溃了,需要排查原因。 系统参数不合适,需要更改,却没有接口。 改一个变量或一条if语句,就要重新编译内核。 想稍微调整下逻辑却没有
阅读全文
摘要:转自:https://blog.csdn.net/pwl999/article/details/118418242 文章目录1. 简介1.1 安装1.2 触发 kdump1.3 调试 kdump1.3.1 安装 debuginfo vmlinux1.3.2 编译 kernel1.4 kdump-to
阅读全文
摘要:转自:https://zsummer.github.io/2019/11/05/2019-11-05-fast-check-linux/ 全局分析和统计 top命令 free 查看内存使用信息 vmstate [delay时间] 按照delay时间打印内存使用 io读写 CPU用量等信息 iosta
阅读全文
摘要:转自:https://mp.weixin.qq.com/s/bo-ZWjqhD4FBlnL5zc890w#at 持续更新,敬请期待!(最后更新日期2021.05.05) Linux学习方法: 宋宝华:迭代螺旋法——关于Linux学习方法的血泪建议 宋宝华: 纪念金庸先生——程序员的武侠世界 甄建勇:
阅读全文
摘要:转自:https://www.cnblogs.com/huaweiyun/p/14338490.html 摘要:linux程序运行的状态以及如何推导调用栈。 1、背景知识 1、ARM64寄存器介绍: 2、STP指令详解(ARMV8手册): 我们先看一下指令格式(64bit),以及指令对于寄存机执行结
阅读全文
摘要:转自:https://www.jianshu.com/p/8f98b6e69063 前言 虽然我也很想讲X86_64体系,无奈这样的资料的确不多,因此本文还是本着学习的态度,探究早已经过时的X86体系。 本文参考自此文,该博主对栈的数据结构、栈的作用等进行了阐述,其中涉及了函数栈帧的相关知识,这部分
阅读全文
摘要:转自:https://blog.csdn.net/longwang155069/article/details/104346778 本来本节是要学习内核启动的第一个进程的建立,也就是0号进程,也称idle进程,也称swapper进程。但是在学习第一个进程建立之前需要先学习threadinfo和内核栈
阅读全文
摘要:转自:https://zhuanlan.zhihu.com/p/296750228 概念 在每一个进程的生命周期中,经常会通过系统调用(SYSCALL)陷入内核。在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内核栈”。 每个task
阅读全文
摘要:转自:https://zhuanlan.zhihu.com/p/146110047 内核版本 linux-v5.6 参考资料 Documentation/devicetree/ devicetree-specification-v0.3.pdf arm64体系架构 蜗窝系列博客(http://www
阅读全文
摘要:转自:https://www.cnblogs.com/kuliuheng/p/12161247.html 目录 1 ARM Streamline简介 2 架构原理 3 在Android平台上的应用 返回目录 1 ARM Streamline简介 全称是 ARM Streamline Performa
阅读全文
摘要:转自:https://www.tiehichi.site/2020/10/22/Linux%E8%BF%9B%E7%A8%8B%E6%A0%88%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F/ 内核栈 用户栈大小 用户栈虚拟地址空间最大值 当前用户栈虚拟地址空间大小 栈顶地
阅读全文