Linux内核中信号详解
2024-01-171 信号的角色 1.1 x86/64架构信号定义 1.2 ARM架构信号定义 1.3 RISC-V架构信号定义 1.4 信号的系统调用 1.5 信号工作原理 2 信号的响应行为 3 POSIX信号和多线程程序 4 与信号相关的数据结构 4.2.1 x86/Linux2.6.11的定义 4.2.2 x86-64/Linux2.6.11的定义 4.2.3 x86-64/linux5.18.18的定义 4.2.4 ARM/linux5.18.18的定义 4.2.5 RISC-V/linux6.7 4
Linux内核PCIE基础知识整理
2024-01-16作者:小田BSP 一、PCI总线 在PC时代,为了解决CPU主频和外部设备访问速度的问题,发展了几代I/O总线: 1、第一代总线:ISA、EISA等 2、第二代总线:PCI、PCI-X等 3、第三代总线:PCIE、mPCIE、m.2等 PCI(Peripheral Component Interconnect),外部设备互联,Intel公司提出,主要功能是连接外部设备。PCI引脚如下: PCI引脚 PCI总线特点如下: 1、PCI总线是并行总线,有32/64根地址线,地址和数据都是通过这32/
导致Linux内核崩溃的罗技USB接收器是什么
2024-01-09近日,科技媒体 Phoronix 报道了一个导致 Linux 内核崩溃的错误,触发原因有点出乎意料 —— 竟然是拔出罗技 USB 接收器。 根据报道,在今天 Linux 6.6-rc6 发布之前,作为 HID 子系统修复的一部分,提到了一个相当尴尬的错误: 在过去几个月里,拔出罗技 USB 接收器一直导致 Linux 内核崩溃。 围绕这个问题,从拔下罗技键盘 / 鼠标接收器到关掉连接有设备的 USB 开关,出现了许多错误报告。目前 Linux 6.6-rc6 内核已经进行了修复,并标记
浅谈Linux内核源码的Makefile、Kconfig和.config文件
2024-01-09Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎么编进内核,不知道怎么配置内核,这些问题都和Makefile、Kconfig、.config有关,下面简单谈谈Makefile、Kconfig和.config。希望对你有启发。 一、三者的作用 简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜。 Makefile:一个文本形式的文件,编译源
SELinux内核架构
2024-01-09最早期的SELinux是Linux系统一个增强安全的补丁集,其后为解决每个系统对安全的细节控制不尽相同的问题,Linux安全框架(LSM, Linux Security Modules)被提出,使SELinux可作为可加载的安全模块运行。 LSM是一个底层的安全策略框架,Linux系统利用LSM管理所有的系统调用。SELinux通过LSM框架整合到Linux内核中。 当用户进程执行系统调用时,进程首先遍历Linux内核现有的逻辑寻找和分配资源,进行一些常规的错误检查,然后进行DAC自动访问控制
借助Linux内核文件操作监控机制inotify协助定位
2024-01-09嵌入式Linux系统在运行时,除了小概率的因突然断电等非正常关机造成的文件系统损坏之外,更大概率的是因为应用程序编程不当,造成对Nandflash的频繁擦写,行业术语称之为 过度编程(Over Program) ,逼近Nandflash约十万次的擦写寿命,表现为Nandflash的某些块/页陆续出现位反转(bit flip,所谓位反转,指的是原先Nandflash中存储的某个数据位变化了,即要么从1变成了0,要么从0变成了1)的现象,少量的位反转是可以靠硬件/软件ECC(Error Check
Linux内核KASAN实现原理详解
2024-01-091. 前言 KASAN是一个动态检测内存错误的工具。KASAN可以检测全局变量、栈、堆分配的内存发生越界访问等问题。功能比SLUB DEBUG齐全并且支持实时检测。越界访问的严重性和危害性通过我之前的文章(SLUB DEBUG技术)应该有所了解。正是由于SLUB DEBUG缺陷,因此我们需要一种更加强大的检测工具。难道你不想吗?KASAN就是其中一种。KASAN的使用真的很简单。但是我是一个追求刨根问底的人。仅仅止步于使用的层面,我是不愿意的,只有更清楚的了解实现原理才能更加熟练的使用工具。不
简述Linux内核slab性能优化的核心思想
2024-01-09今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了 Linux 内核 slab 性能优化的核心思想。 slab是 Linux 内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景下面),并给出了这些问题的优化方案,这个对我们实现高性能内存池算法,或以后遇到内存性能问题的时候,有一定的启发,值得我们学习。 Linux 内核的 slab 来自一种很简单的思想,即事先准备好一些会频繁分配、释放的数据结构。然而标准的 slab 实现太复杂且维护开销巨大,因此
2023 年 8 月 29 日,RISC-V 联盟成员,业内知名的高性能低功耗 32/64-bit RISC-V 内核供应商晶心科技宣布其 A25 内核及 AE350 外设子系统成功集成到高云半导体的 GW5AST-138 FPGA 中。这是首次完整的 RISC-V 微处理器集成到 FPGA 中,这种集成方式为开发者提供 A25 内核需要的电源和所有微处理器外设,不占用 FPGA 资源。因此,硬件团队可以自由进行 FPGA 开发,同时软件团队也可以自由地使用 RISC-V 生态系统进行软件开发
FPGA浮点IP内核究竟有哪些优势呢?
2024-01-01最近出现的 FPGA设计工具和 IP有效减少了计算占用的资源,大大简化了浮点数据通路的实现。而且,与数字信号处理器不同, FPGA能够支持浮点和定点混合工作的 DSP数据通路,实现的性能超过了 100 GFLOPS。在所有信号处理算法中,对于只需要动态范围浮点算法的很多高性能 DSP应用,这是非常重要的优点。选择 FPGA并结合浮点工具和 IP,设计人员能够灵活的处理定点数据宽度、浮点数据精度和达到的性能等级,而这是处理器体系结构所无法实现的。 对于通信、军事、医疗等应用中的很多复杂系统,首先