在上一篇 《Jetson 中的 zram 技术详解》中已经介绍了相关 Zram 的技术部分以及如何在 Jetson 设备上使用 Zram,本篇文章将着重介绍下 Linux 内核中关于 Zram 的源码部分。
github 上的地址:https://github.com/torvalds/linux/tree/master
git clone 下载地址:https://github.com/torvalds/linux.git
这里在 gitcode 上搜索了下,fork 过来的项目也基本是没有维护了,如果不能在 github 上下载,只能自行解决网络问题了;
下载完成之后,通过 VSCODE 打开文件目录,找到 zram 目录;
linux/drivers/block/zram
这个是最新的 master 分支的代码,如果需要查看指定内核版本的代码,可以切换到指定版本,这里我将内核代码切换到和当前使用的版本(v5.10)一致的代码;
在 github 上的目录信息:
整个 zram 的代码不算很多,下面对源码进行详细的分析;
zram 作为一个块设备,详细解析下这个块设备驱动的源码,文件总共有 2100 多行;
2143 - 2151 行:
module_init(zram_init);
module_exit(zram_exit);
module_param(num_devices, uint, 0);
MODULE_PARM_DESC(num_devices, "Number of pre-created zram devices");
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("Nitin Gupta <ngupta@vflare.org>");
MODULE_DESCRIPTION("Compressed RAM Block Device");
module_init:驱动加载的函数:zram_init
module_exit:驱动卸载的函数:zram_exit
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。