自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 bpf编程系列之一:hello world

bpf程序由两部分组成,一个是内核态执行程序,一个是用户态执行程序,二者并不是直接链接的,可以看成是两个程序。linux内核为方便测试和提供样例,为用户态的接口、文件操作封装了一些helper函数,本次hello world程序里就用到了read_trace_pipe这个函数,我将涉及的辅助库文件贴在下方。bpf程序是在内核的bpf虚拟机运行的,它的。基于上述描述的,内核态程序是一个bpf类型的.o文件,用户态程序是一个可执行文件,生成相应程序的makefile如下,执行。,不是一个用户态可执行的文件。

2024-07-16 22:59:45 876

原创 LFS实战之四:linux qemu启动

我们已经获取到了linux操作系统启动需要的内核二进制与文件系统部署包,下面我们将这些生成件部署到qemu上,查看我们的linux发行版是否制作成功。本章使用kernel与initrd,实现了linux的initramfs的启动。

2024-07-13 09:46:52 253

原创 LFS实战之三:构建文件系统

linux操作系统除了需要内核以外,还需要各种基础软件辅助,才能正常运行,而基础软件是由文件系统存储并管理的,本章将展示一个最简嵌入式linux发行版需要的基础软件包的构建过程。本章对linux内核和基础系统工具进行编译集成,最终生成了一个用于操作系统启动的文件系统。

2024-07-13 09:46:00 1011

原创 LFS实战之二:构建交叉编译工具链

本次嵌入式发行版是为arm64平台制作的,而主机环境为x86_64,因此需要构建交叉编译工具链。第一次编译gcc:利用主机的libc库编译出能够基于x86_64平台编译arm64二进制的gcc工具链,此时只包含gcc的基础功能使用第一次编译的gcc工具链编译能够在arm64平台运行的libc库第二次编译gcc:利用上述编译出的libc库编译出能够基于x86_64平台编译arm64二进制的gcc工具链,此时gcc能够编译基础的arm64二进制程序。

2024-07-13 09:42:58 323

原创 LFS实战之一:环境准备

linux开发人员常常是基于ubuntu、centos、debian等发行版环境开发应用程序,不会很深入的去了解linux环境本身是怎样组成的,这个系列文章通过对LFS(Linux From Scratch)项目的实践,展现了一个嵌入式linux发行版的完整构建过程。本章罗列了制作精简的嵌入式linux发行版的主机环境需要的软件包和发行版本身需要的软件包,同时对编译前的环境做了配置。

2024-07-13 09:30:32 1369

原创 wsl2与hyper-v网络互通配置

思路:使用多网卡配置,一张内网网卡,一张外网网卡,网卡均由hyper-v虚拟;内网网卡为静态ip,外网网卡为dhcp分配(外网网卡实际上是新建hyper-v虚拟机时,默认创建的nat网络)。

2024-07-11 23:37:19 817

空空如也

空空如也

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

TA关注的人

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