总结 - 内核初始化, 运行 `start_kernel()` 函数(位于 init/main.c), 初始化做三件事 - 创建样板进程, 及各个模块初始化 - 创建管理/创建用户态进程的进程 - 创建管理/创建内核态进程的进程 创建样板进程,及各个模块初始化 - 创建第一个进程, 0号进程. `s ...
分类:
其他好文 时间:
2019-04-16 13:09:10
阅读次数:
187
一、起因 使用busybox制作了一个cpio.gz的文件系统,然后使用这个文件系统作为qemu的启动盘进行启动,最后发现可以识别出是一个cpio文件系统,但是到最后还是出现了panic,说是找不到文件系统。大致的错误类型为"VFS: Cannot open root device \" …… pa ...
分类:
系统相关 时间:
2019-03-06 20:47:00
阅读次数:
274
虚拟内存盘是通过软件将一部分内存(RAM)模拟为硬盘来使用的一种技术。相对于直接的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后这部分数据将会丢失。但是在一般情况下,传递到RAM盘上的数据都是在硬盘或别处永久贮存的文件的一个拷贝。经由适当的 ...
分类:
其他好文 时间:
2019-03-05 18:38:37
阅读次数:
156
最后效果图:思路:由于ramdisk已经初始化了一个虚拟盘,实现是直接就是一个链接,但是会有问题(http://www.cnblogs.com/God4/articles/1814057.html)我后面的思路是既然直接出盘符不能用,那就我把这个虚拟盘挂载到c的一个目录下面。这里是C:/Game,也就是C:/Game不是一个目录而是一个虚拟盘了。由于有链接还是会有个R盘,但是不能访问。
最后结果(但是有点问题不能格式化)源码是ramdisk:https://github.com/haidragon/ramdisk_wdf安装时要注意的点是:第一要用inf安装第二要找到对应的dll库在inf文件里面(安装了驱动环境就会自带)第三找到安装工具安装了驱动环境就会自带(注意版本这里是win64)第四root下命令安装:.\devcon.exeinstallramdisk.inframdi
推荐书:《Linux内核源代码情景分析》 1.字符设备驱动和使用中等待某一事件的方法①查询方式②休眠唤醒,但是这种没有超时时间③poll机制,在休眠唤醒基础上加一个超时时间④异步通知,异步通知实际上就是发信号⑤输入子系统,这样比较通用 2.块设备相对于字符设备驱动逻辑的变化①对于硬盘对读写的优化假如 ...
分类:
系统相关 时间:
2018-12-22 22:05:08
阅读次数:
374
Linux内存文件系统:可满足高IO的要求 ramdisk: 基于虚拟在内存中的其他文件系统(ex2fs)。 挂载方式:mount /dev/ram /mnt/ramdisk ramfs: 物理内存文件系统,只存在于物理内存中。其大小也不是固定的,而是随着所需要的空间动态得增减。 挂载方式:moun ...
分类:
系统相关 时间:
2018-11-06 22:37:52
阅读次数:
257
init简要 init是Android上启动的第一个用户态进程。 执行序列是: start_kernel() -> rest_init() -> kernel_init() -> init_post() -> run_init_process() ramdisk_execute_command是内核 ...
分类:
移动开发 时间:
2018-10-28 00:52:47
阅读次数:
248
嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要少得多。嵌入式系统下的linux启动过程一般是: 1 、在bootloader中制定各种要求传给linux内核的参数,制作ramdisk或ramfs文件系统,并在开机后首先mount上,该文件系统 ...
分类:
系统相关 时间:
2018-10-26 12:05:45
阅读次数:
254
在前面一篇文章中,我们分析了Android模块的编译过程。当Android系统的所有模块都编译好之后,我们就可以对编译出来的模块文件进行打包了。打包结果是获得一系列的镜像文件,例如system.img、boot.img、ramdisk.img、userdata.img和recovery.img等。这 ...
分类:
移动开发 时间:
2018-10-24 20:28:41
阅读次数:
188