Linux
小小蜗牛
这个作者很懒,什么都没留下…
展开
-
setup_machine_fdt
本文来分析setup_machine_fdt函数的代码1.先讨论下dtb的物理地址变量__fdt_pointer2.关于fixmap_remap_fdt已经在https://blog.csdn.net/snail_coder/article/details/94023887中谈论,这里不再提3.谈论下early_init_dt_scan函数关于__fdt_pointer这个参数是由boo...原创 2019-06-28 20:17:02 · 1458 阅读 · 0 评论 -
fixmap_remap_fdt
本文来分析fixmap_remap_fdt函数的代码输入:dtb的物理地址输出:dtb映射后的虚拟地址功能:为dtb所在的物理内存建立映射void *__init fixmap_remap_fdt(phys_addr_t dt_phys){ void *dt_virt; int size; dt_virt = __fixmap_remap_fdt(dt_phys, &siz...原创 2019-06-28 19:40:38 · 1165 阅读 · 0 评论 -
EXT4-fs (loop0): bad geometry: block count 8192 exceeds size of device (1193 blocks)
想挂载一个ext4镜像文件,碰到错误,特此记录。$ file origin.imgorigin.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)mount时报错:mount:文件系统类型错误、选项错误、/dev/loop1 有坏...原创 2019-06-28 16:55:43 · 4197 阅读 · 0 评论 -
early_fixmap_init
本文来分析early_fixmap_init函数的代码基于如下的配置,没有pud,因此可以提取到关键的代码如下CONFIG_ARM64_VA_BITS=39CONFIG_ARM64_4K_PAGES=yCONFIG_PGTABLE_LEVELS=3void __init early_fixmap_init(void){ pud_t *pud; pmd_t *pmd; unsign...原创 2019-06-28 19:41:06 · 1269 阅读 · 0 评论 -
对fixmap实现动态内存申请的理解
本文谈谈内核初始话过程中是如何利用fixmap来实现动态分配内存的。关于fixmap的学习,可以参考这两份链接:http://www.wowotech.net/memory_management/440.htmlhttp://www.wowotech.net/memory_management/fixmap.html物理地址的分配是由memblock来完成,但这不意味这就可以使用了,还需要...原创 2019-06-28 11:11:56 · 960 阅读 · 0 评论 -
一个关于线性映射区的疑问
学习内存管理时一直有个疑问:内核虚拟地址空间中有一部分是线性映射用的,在内核初始化时会把物理内存映射到这个线性区域,既然映射已经建立完成了,那是不是就把物理内存全都占用了,用户空间是否就不能申请这些内存了?后来宋宝华老师给出了解释:被映射和被占用完全是两码事。下面就结合代码,谈谈我最这个解释的理解,以及自己碰到的疑问。我最大的疑问是,在实际项目中,我看到的线性映射区并没有对所有的物理内存进行...原创 2019-06-27 21:49:10 · 2127 阅读 · 0 评论 -
arm64_memblock_init
本文来分析arm64_memblock_init函数的代码这个函数的主要作用是初始化memblock。关于memory的区间范围,已经在setup_machine_fdt函数中添加进来。这里主要是remove掉no-map的区域,并reserve一些关键区域:如kernel镜像、dtb块、ramdisk镜像和device tree中的一些需要reserve的节点。...原创 2019-07-01 20:16:06 · 1843 阅读 · 0 评论 -
Redhat Crash下载和编译
源码下载官网:http://people.redhat.com/anderson/不同版本下载地址:https://github.com/crash-utility/crash/releases截止到目前,最新版本是crash-7.2.4,crash-7.2.4.tar.gz大概37.4MB之所以这么大,主要是因为其中包含了gdb-7.6.tar.gz的源码。编译我要编译ARM64...原创 2018-12-30 22:34:26 · 2825 阅读 · 0 评论 -
qemu模拟arm64一直卡住不动
qemu模拟arm64实践中碰到的问题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出...原创 2018-10-04 01:10:05 · 16071 阅读 · 4 评论 -
Androiod Input event
Q1:android的输入事件从哪里来?A1:从Input子系统中来,由EventHub来负责从Input系统中读取所有的事件linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/路径下创建我们硬件输入设备的节点可以从/proc/bus/input/devices中读出eventXX相关的硬件设备frameworks/native/serv原创 2015-11-25 00:05:28 · 907 阅读 · 0 评论 -
epoll的帮助文档
1. epoll_createNAME epoll_create open an epoll file descriptorSYNOPSIS #include int epoll_create(int size);DESCRIPTION epoll_create() creates an epoll "转载 2015-11-24 00:44:56 · 804 阅读 · 0 评论