相关内容
Linux内核管理
运行中的系统环境可分为两层:内核空间(系统空间、系统模式)、用户空间(用户模式)。 用户空间运行的是应用程序(进程或线程),内核空间运行的是内核代码(系统调用)。 (2)内核设计流派 1)单内核设计:把所有功能集成于同一个程序,如linux系统,但充分借鉴了微内核体系的设计的优点,为内核引入了模块化机制...

Linux 内核系统架构
即使看了所有的linux 内核文章,估计也还不是很明白,这时候,还是需要fucking the code.----28年前(1991年8月26日)linus公开linux的代码,开启了一个伟大的时代。 这篇文章从进程调度,内存管理,设备驱动,文件系统,网络等方面讲解linux内核系统架构。 linux的系统架构是一个经典的设计,它优秀的分层和模块化...

Linux内核Crash分析
每一个进程的生命周期内,其生命周期的范围为几毫秒到几个月。 一般都是和内核有交互,例如用户空间程序使用系统调用进入内核空间。 这时使用的不再是用户空间的栈空间,使用对应的内核栈空间。 对每一个进程来说,linux内核都会把两个不同的数据结构紧凑的存放在一个单独为进程分配的存储空间中:一个是内核态的进程...
Linux 系统检查 Virtio 驱动
前往 linux 内核下载页面,下载对应的内核版本源码。 例如,2. 6.32-642.6. 2.el6.x86_64版本的内核下载 linux-2. 6.32.tar.gz 的安装包,其下载路径为...按空格键选中光标所选项目,“*” 表示编译到内核,“m” 表示编译为模块。 按 “↓” 键将光标调到 “virtualization”,并按空格键选中 ...

linux内核设计与实现
一. linux内核简介1. linux简介1.1 unix的特点unix很简洁,仅提供几百个系统调用,并有非常明确的设计目的unix所有东西都当作文件对待,这种抽象使对数据和设备都通过一套相同的系统调用接口进行内核用c语言编写,移植能力很强进程创建迅速,独特的fork调用提供了简洁但是稳定的进程间通讯原语1.2 unix和linuxlinux...
Linux内核设备驱动之Linux内核基础笔记整理
linux内核驱动模块机制静态加载, 把驱动模块编进内核, 在内核启动时加载 动态加载,把驱动模块编为ko, 在内核启动后,需要用时加载2. 编写内核驱动#include #include static int __init test_init(void){return 0; 返回0表示成功, 返加负数退出加载模块}__init 当内核把驱动初始化完后,释放此函数的代码指令空间 ...
怎样Hack Linux的内核符号?
最简单的解决办法是内核加载修复模块时,单独走kallsyms解析模块符号,而绕过export_symbols这个符号子集(前提是不引入新的内核安全风险)。 linux内核模块的加载过程其实跟可执行程序加载动态链接库的过程是一样的。 举个简单例子,在printf(“hello world”)中,我们其实并没有实现printf(由puts函数封装而来)...
Linux内核学习经验总结
《深入理解linux虚拟内存》(2.4内核版本),ldd3,《深入理解linux网络技术内幕》,几乎每一个子系统都需要一本书的容量去讲解,所以说,刚开始学习不宜对某个模块太过深入,等对各个子系统都有所了解了,再有针对性的去学习一个特定的子系统。 这时候对其它系统的援引都可以让我们不再感到茫然、复杂,不知所云...
Linux 内核学习经验总结
来源:linux爱好者id:linuxhub开篇学习内核,每个人都有自己的学习方法,仁者见仁智者见智。 以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下。 内核学习,一偏之见; 疏漏难免,恳请指正。 为什么写这篇博客刚开始学内核的时候,不要执着于一个方面,不要专注于一个子...

浅谈 Linux 内核无线子系统
1 全局概览 在开始探索 linux 无线具体细节之前,让我们先来把握一下 linux 无线子系统整体结构。 如图1,展示了 linux 无线子系统各个模块之间的抽象关系。 ? 图一 linux 无线网络结构示意图 图示中的虚线内展示的是内核空间的情况。 用户空间的程序运行在最上层,而硬件相关的设备则在最下面。 图示中左边为以太网...

详解Linux内核内存管理架构
内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等,而且对性能也有很高的要求。 本文从内存管理硬件架构、地址空间划分和内存管理软件架构三个方面入手,尝试对内存管理的软硬件架构...

KVMSEC:一个Linux内核虚拟机的安全扩展
kvm,是新的主流linux虚拟化解决方案,在2. 6.20内核版本中加入内核。 kvm的组成(见图1的执行模式)由一个hypervisor(linux内核模块),经过修改的qemu模拟器软体。 kvm是一个标准的内核模块,作为使用标准的、可靠的、经常更新的linux设备驱动的结果。 一方面,这是为什么kvm比xen少受攻击的一个原因,xen的驱动...
FPGA Xilinx Zynq 系列(三十六)Linux 内核
linux 内核23.1 linux 内核层级23.2 系统调用接口23.3 内存管理23. 3.1 虚拟内存23.3. 2 内存的高端和低端23.4 进程管理23. 4.1 进程的表达23.4. 2 进程创建、调度和析构23.5 文件系统23. 5.1 linux 文件系统23.5. 2 虚拟文件系统23.6 架构的相关代码23.7 linux 设备驱动23. 7.1 关于机制与策略的说明23.7. 2 模块 ...
深度:一文看懂Linux内核!Linux内核架构和工作原理详解
linux内核体系结构因为linux内核是单片的,所以它比其他类型的内核占用空间最大,复杂度也最高。 这是一个设计特性,在linux早期引起了相当多的争论,并且仍然带有一些与单内核固有的相同的设计缺陷。 ?为了解决这些缺陷, linux内核开发人员所做的一件事就是使内核模块可以在运行时加载和卸载,这意味着您可以动态地...

GitHub为什么托管不了Linux内核社区?
作者 | danvet译者 | 核子可乐策划 | 小智前不久,微软在 linux 基金会董事会的代表 sarah novotny 认为,由纯文本电邮讨论推动的 linux 内核开发需要被更好的或替代协作工具取代,以降低门槛引入新的贡献者,维护和维持未来的 linux。 她认为替代工具可以是基于文本的、基于电邮的补丁系统,某种程度上是过去五到...
Linux阅码场 - Linux内核月报(2020年06月)
关于linux内核月报linux阅码场linux阅码场内核月报栏目,是汇总当月linux内核社区最重要的一线开发动态,方便读者们更容易跟踪linux内核的最前沿发展动向。 限于篇幅,只会对最新技术做些粗略概括,技术细节敬请期待后续文章,也欢迎广大读者踊跃投稿为阅码场社区添砖加瓦。 本期月报(总第1期)主要贡献人员...
Linux阅码场 - Linux内核月报(2020年07月)
关于linux内核月报linux阅码场linux阅码场内核月报栏目,是汇总当月linux内核社区最重要的一线开发动态,方便读者们更容易跟踪linux内核的最前沿发展动向。 限于篇幅,只会对最新技术做些粗略概括,技术细节敬请期待后续文章,也欢迎广大读者踊跃投稿为阅码场社区添砖加瓦。 本期月报(总第2期)主要贡献人员...
Linux阅码场 - Linux内核月报(2020年08月)
关于linux内核月报linux阅码场linux阅码场内核月报栏目,是汇总当月linux内核社区最重要的一线开发动态,方便读者们更容易跟踪linux内核的最前沿发展动向。 限于篇幅,只会对最新技术做些粗略概括,技术细节敬请期待后续文章,也欢迎广大读者踊跃投稿为阅码场社区添砖加瓦。 本期月报主要贡献人员:张健、廖威雄、che...

增强Linux内核中访问控制安全的方法
inline hook,灵活性高,随意hook,即时生效无需重启,但是在不同内核版本之间通用性差,一旦某些函数发生了变化,hook失效。 lsm,在早期的内核中,只能允许一个lsm内核模块加载,例如加载了selinux,就不能加载其他的lsm模块,在最新的内核版本中不存在这个问题。 总结 篇幅有限,本文只是介绍了linux上的拦截技术...

如何增强Linux内核中的访问控制安全 | 洞见
inline hook,灵活性高,随意hook,即时生效无需重启,但是在不同内核版本之间通用性差,一旦某些函数发生了变化,hook失效。 lsm,在早期的内核中,只能允许一个lsm内核模块加载,例如加载了selinux,就不能加载其他的lsm模块,在最新的内核版本中不存在这个问题。 ----总结篇幅有限,本文只是介绍了linux上的拦截...