- 博客(140)
- 资源 (1)
- 收藏
- 关注
原创 clone系统调用浅析
本文深入分析了Linux内核的clone系统调用机制。在用户态层面,通过glibc的__clone3函数触发系统调用,但内核并不直接使用用户态传入的入口函数地址,而是通过汇编指令在子线程中调用目标函数。内核态处理流程涉及kernel_clone、copy_process和架构相关的copy_thread函数,通过设置cpu_context结构实现线程上下文切换。文章还探讨了线程栈管理、寄存器上下文保存与恢复机制,并对比了x86和aarch64架构的实现差异,揭示了用户态线程与内核线程创建的底层原理。
2025-07-21 15:00:00
1888
原创 buildroot配置项介绍
Buildroot是一个轻量级的文件系统构建工具,适合嵌入式开发。本文介绍了使用Buildroot为QEMU虚拟板(aarch64架构)构建系统的配置过程。主要内容包括:工具链配置(推荐使用外部自定义工具链)、内核设置(支持自定义内核)、文件系统选项以及常见错误的解决方法(如wget证书验证和内核包哈希校验问题)。配置完成后,生成的系统镜像位于output/images/目录下,可直接用配套的start-qemu.sh脚本启动。相比手动构建rootfs,Buildroot提供了更便捷的自动化方案。
2025-07-21 11:00:00
265
原创 linux共享内存
本文介绍了Linux系统中的三种共享内存实现方式:SystemV、POSIX和mmap。SystemV使用shmget等接口,可通过ipcs命令查看;POSIX通过shm_open实现,实际存储在/dev/shm中;mmap则通过文件映射实现内存共享,但需要自行处理同步问题。文章分别提供了SystemV和POSIX的读写示例代码,并对比了它们的特点和使用方法。SystemV共享内存可通过ipcs管理,而POSIX共享内存则通过文件系统方式实现,两种机制完全不同。mmap虽非标准IPC方式,但适合处理大块内存
2025-07-03 11:00:00
396
原创 ebpf入门程序
ebpf是一种很有趣的技术,早些时候是用于调试网络的(berkeley package filter)因为ebpf的机制是生成字节码交由内核中的虚拟机运行,因此有些调试无需重新编译内核/驱动即可完成。
2025-04-28 10:45:00
590
原创 arm64架构的copy_from_user分析
一谈到内核-用户空间的数据拷贝,那肯定少不了copy_from_user/copy_to_user, 但底层是怎么实现的呢?本篇就来分析一下arm64架构的copy_from_user的流程。
2025-04-11 10:45:00
1074
原创 QEMU入门6:virt板源码分析
前前后后折腾了一年,终于可以入门qemu了QEMU入门1:ubuntu22.04搭建QEMU运行环境QEMU入门2:使用qemu简单的运行一个aarch64 linux内核QEMU入门3:制作initrd、根文件系统QEMU入门4:aarch64虚拟机安装grubQEMU入门5:为virt板引入一个sd-card。
2025-03-27 15:00:00
2034
原创 QEMU入门5:为virt板引入一个sd-card
virt默认不支持mmc设备,如果只是想引入一个sd/mmc设备,那直接在启动脚本里增加一个sdhci-pci,再在内核里新增sdhci-pci的驱动就可以了。本篇记录的是,通过修改virt板代码,引入一个pl181(sdhci),从而引入sdcard的流程。
2025-03-27 11:15:00
832
原创 人工智能ollama+openwebui导入本地模型
网上查了一些文章,大部分是用ollama去拉取模型。但对于已经下载的模型 ,还拉什么呢?这篇文章记录一下直接导入本地模型的运行方式。
2025-03-17 11:00:00
800
原创 将程序同时编译成可执行的动态库(C语言
linux环境下 /lib64/ld-linux-x86-64.so.2这个文件是动态链接器,它既是动态库,又可以执行。
2025-03-05 11:00:00
281
原创 QEMU入门4:aarch64虚拟机安装grub
网上关于在aarch64的qemu虚拟机使用的磁盘镜像中使用grub的文章较少,我自己摸索了一下
2024-12-02 14:45:00
2265
原创 QEMU入门3:制作initrd、根文件系统
QEMU入门1:ubuntu22.04搭建QEMU运行环境QEMU入门2:使用qemu简单的运行一个aarch64 linux内核。
2024-11-05 10:45:00
1020
原创 制作交叉编译工具链
通常我们使用交叉编译,都是使用人家做好的交叉编译工具链,但这样没法定制,本篇介绍如何使用crosstool-ng这个工具来自己编译编译工具链;环境 ubutnu22.04。
2024-11-04 10:30:00
1086
原创 QEMU入门2:使用qemu简单的运行一个aarch64 linux内核
上篇ubuntu22.04搭建QEMU运行环境已经搭好了qemu环境,这篇来使用下。
2024-10-14 10:30:00
1560
原创 vscode-server安装和部分配置
vscode确实彳亍,虽然我觉得Clion(c/c++语言版的IDEA)更方便,但是毕竟我没钱买license;这里记录一下网页版的vscode-server的安装和配置。
2024-07-10 10:30:00
2414
原创 划分带分区的文件系统镜像
学习qemu的时候,需要给虚拟机加一个emmc卡,启动脚本里指定了使用某个分区作为根文件系统;这样只用简单的文件系统镜像就不行了,需要划分分区
2024-07-09 10:30:00
539
简单计算器安装包.zip
2020-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人