logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内存管理之SLUB和SLAB之间的区别

前言前一篇讲了SLAB的基本原理,本来这篇打算写SLUB的原理。但在CSDN中发现了一篇非常好的描述SLUB原理的文章。链接:https://blog.csdn.net/lukuen/article/details/6935068重复造轮子没必要,且就算重新可能也没他写得好。本着拿来主义,直接参考之。但是为了帮助自己以后快速回顾SLUB的原理,这里重点记录下kmem_cache_node这种ca

linux poll 和 等待队列休眠的关系

说明:linux版本2.6.37.1结合相关资料的概括和总结,在此做个记录,有误之处请网友指正,谢谢!1.poll机制和等待队列应用层通过系统调用poll函数进入内核,内核执行相应的sys_poll函数。在sys_poll函数中调用do_sys_poll函数。do_sys_poll函数通过调用poll_initwait函数初始化poll_wqueues变量table,并

#linux#list
i2c子系统之i2c bus初始化——i2c_init()

根据前文的分析,在linux内核启动的时候最先执行的和I2C子系统相关的函数应该是driver/i2c/i2c-core.c文件中的i2c_init()函数。下面具体此函数具体做了那些预备工作。1.i2c总线的注册i2c_init()的函数实现如下:static int __init i2c_init(void){... ...re

Linux DTS中和中断相关属性的解释和用法

Linux DTS中和中断相关属性的解释和用法前言中断控制器的硬件结构(基于Exynos4412 ARMv7)GIC功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图

串口的open操作(tty_open)

根据前面的操作,串口作为字符驱动也已经注册到系统了,/dev目录下也有设备文件节点了。那接下来uart的操作是如何进行的呢?操作硬件之前都是要先open设备,先来分析下这里的open函数具体做了那些工作(做了大量工作 ,真的!)。应用层通过open系统调用open(“/dev/s3c2410_serial0”,)一层一层调用到会调用到tty_open。因为串口在linux下是作为t

Linux内存管理之SLAB原理浅析。

前言1.以下这篇文章是2015年我所在的via-telecom小组学习内存知识时整理的笔记。最近复习内存管理又拿出来看了一遍,庆幸当时阅读时留了这份笔记,不然重头看又要花费很多时间。当时画了很多visio图片且加上了via-telecom的copyright。虽然目前via-telecom被intel收购了,为了纪念在via-telecom的岁月暂且保留这些copyright。如果涉及了版权问..

Linux内存管理之内核分页机制(paging_init)初始化

背景前面分析了kernel boot阶段内存管理实现的分段机制,可以发现页表描述符是按照ARM MMU硬件页表转换逻辑来设计的。kernel在初始化过程中只映射了内核 image部分的物理内存,在某个合适的时候内核需要将尽可能多的物理内存映射到页表中。Linux设计为通用的操作系统,为了便于移植需要抽象出一些硬件细节,我们在驱动代码中看到大量的core层代码就是这个思想的体现。内核中只有和...

Linux内核缺页二三事

前言我们知道虚拟空间和物理内存是通过页表建立起映射关系的,当访问某段虚拟内存时,这种映射关系很有可能是尚未建立的,也有可能是在fork了之后页表被设置了WR模式。如果此时进程想往这部分区域写数据时,就会导致处理器产生异常。内核需要捕获并“修复”这种异常,这一过程就是缺页异常处理。硬件支持不论是空pte还是pte被设置为wr模,如果向里写数据肯定会触发处理器异常,而且应该是MMU发生的异...

通过git来下载管理linux源码和u-boot源码

linux源码对应的相关浏览器地址:https://www.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/linux-stable版本的源码git下载地址:git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.gitgit地址

到底了