Kshim - 实战篇1

本文最后更新于 2025年10月8日 晚上

创建一个基于C的裸机项目

简介

为了编译出一个在没有操作系统(即裸机/裸金属环境)的设备上运行的二进制可执行文件,需要为
在编译时告知编译器一些参数,例如屏蔽掉依赖于操作系统的标准库,程序链接方式等,还需要在
链接脚本中配置程序的加载地址、程序段对齐、栈大小等参数。

新建文件夹

汇编起手

由于使用C语言编写并编译后的机器指令,是依赖于初始化的堆栈区域的,所以基本上不能直接进去C的
入口函数(倒也不是完全不行)。因此需要从汇编初始化堆栈和BSS段,提供C的运行环境。
创建一个.S文件,假设他叫entry.S,注意是大写的S,小写的s编译器不会进行预处理。

1
2
3
4
5
// Fake ARM64 Linux Kernel Header

// Kshim Entry Point
_kshim_entry:

跳转入C

你好世界

结语


Kshim - 实战篇1
https://kancy.life/2024/11/01/Kshim2/
作者
Kancy Joe
发布于
2024年11月1日
许可协议