自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Linux内存管理 - 概述(一)

内存中的物理内存页的管理;分配大块内存的伙伴系统;分配较小块内存的slab、slub和slob分配器;分配分连续内存块的vmalloc机制进程的地址空间Linux内核一般将处理器的虚拟地址空间划分为两个部分。底部比较大的部分用于用户进程,顶部则专用于内核。虽然进程间的上下文切换期间回改变下半部分,但虚拟地址空间的内核部分总是保持不变。在IA-32系统上,地址空间在用户进程和内核之间划分的典型比例为3:1。给出4GB虚拟地址空间,3GB将用于用户空间,而1GB将用于内核。

2024-06-02 21:08:25 1050

原创 Linux内存管理 - 页表基本概念

用来将虚拟地址空间映射到物理地址空间的数据结构称为页表。实现两个地址空间的关联最容易的方法是使用数组,对虚拟地址空间中的每一页,都分配一个数组项。该数组项指向与之关联的页帧,但有一个问题。例如,IA-32体系结构使用4KB页,在虚拟地址空间为4GB的前提下,则需要包含100万项的数组。在64位体系结构上,情况会更糟糕。每个进程都需要自身的页表,因此系统的所有空间都用来保存页表,也就是说这个方法是不切实际的。

2024-06-01 18:59:07 830

原创 Linux内存管理 - 内存申请(一)

但位置不同,kmalloc()分配的内存处于3GB~high_memory之间,而vmalloc()分配的内存在VMALLOC_START~4GB之间,也就是非连续内存区。由于 vmalloc() 没有保证申请到的是连续的物理内存,因此对申请的内存大小没有限制,如果需要申请较大的内存空间就需要用此函数了。kmalloc分配的内存,它的物理地址与虚拟地址只有一个PAGE_OFFSET偏移,不需要为地址段修改页表,而vmalloc分配内存时需要修改主内核页表.然后逐页分配内存来从物理上填充hole。

2024-05-30 10:06:45 965

原创 Linux DMA driver 分析

DMA技术在音视频传输、网络通讯、数据存储领域有着广泛应用。

2024-05-24 11:32:53 1341 1

原创 Linux设备驱动probe过程(四)

Component框架是为了设备驱动能够按照一定顺序初始化而提出的架构。Linux中复杂的子系统一般由多个设备模块组成,而内核加载每个模块时间和顺序不定,通过component框架可以保证设备初始化加载前,所依赖的设备全部加载完毕。master和component。master是设备树中的 “超级设备(superdevice)”,负责管理该超级设备下的"普通"设备。component是由master管理的普通设备,需要先初始化。

2024-05-09 21:39:45 1363

原创 Linux设备驱动probe过程(三)

本周把最后一个坑填上,看下热插拔设备驱动是如何probe的。这部分的代表设备有PCI和USB。鉴于USB流传度和通用性更广,本文选用USB作为分析示例。

2024-04-28 10:27:23 1746 2

原创 Linux设备驱动probe过程(二)

上周整理了非热插拔设备驱动的probe过程,留了个小尾巴,这周先补上,共2个遗留课题:1. 热插拔设备驱动probe过程2. 以ko方式加载的driver如何实现probe

2024-04-22 21:30:54 1956

原创 Linux设备驱动probe过程(一)

非热插拔类型设备驱动probe过程,整理了设备驱动的一些流程,记录从kernel加载到driver probe的完整过程

2024-04-18 16:53:10 1550

原创 【0408-0414】学习笔记

当您知道设备不可热插拔并且已经注册,并且您想在驱动程序绑定到设备后从内存中删除其一次性运行的probe()基础结构时,请使用此选项而不是platform_driver_register()。这两个函数都会调到__platform_driver_register,platform_driver_probe会多一些内容,用于non-hotpluggable device。我们必须同步运行探测,因为我们会检查是否找到要绑定的设备,如果有,则会错误退出。

2024-04-08 18:51:02 1123

原创 ubuntu系统使用过程中的问题总结

ubuntu系统使用过程中的问题总结apt-get install依赖问题解决方案问题描述解决方案apt-get install依赖问题解决方案问题描述执行:sudo apt-get install g++得出如下错误:正在读取软件包列表…完成正在分析软件包的依赖关系树正在读取状态信息… 完成有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达...

2018-10-09 14:15:06 174

原创 如何使用git命令进行分支同步

如何使用git命令进行分支同步本篇讲述如何使用repo命令同步远程代码,更新到本地分支。使用场景为:同步平台发布代码,并更新到自己平台中。下载代码同步代码寻找差异同步到本项目上传代码下载代码登陆服务器,创建代码目录,下载平台代码: repo init -u ssh://git@1xx.xxx.xxx.xxx/platfrom/manifest -b b1 -m...

2018-09-07 11:16:39 1244

原创 Linux启蒙之系统裁剪(一)

Linux启蒙之系统裁剪本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 ...

2018-09-03 21:49:32 3250

原创 Linux常用命令分析-df命令

Linux常用命令分析-df命令df命令用于显示硬盘空间及使用情况,由系统shell调用,调用关系为: df_main -> fopen(“/proc/mounts“, “r”) -> df -> statfs -> __statfs64实现可归结:从/proc/mounts设备节点获

2018-08-08 19:47:04 734

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除