



KTF是一个小型且简单的OS内核,它可以为受支持的机器体系结构编写低级软件测试(当前:X86-64)。
x86-64 , x86-32在烘焙中正在制作中还有更多功能。查看问题。
快速启动是运行以下命令。文件测试/test.c的内容将执行。注意,最后一个命令将阻止。
从docker容器中从头开始构建一个ktf.iso。
make clean
make docker:ktf.iso
引导结果图像:
make boot
您可能需要安装以下内容(除非您已经拥有):
grub2-common软件包(例如apt install grub2-common )xorriso , grub-pc-bin和mtools软件包(例如apt install xorriso grub-pc-bin mtools ) make
make docker:all
make ktf.iso
make docker:ktf.iso
make命令生成kernel64.bin兼容兼容的小精灵文件,您可以直接使用QEMU启动。 make ktf.iso命令将kernel64.bin带入grub/boot/ directory层次结构中,然后从grub/中生成ktf.iso (使用grub/boot/grub/grub.cfg作为默认的grub config)。
KTF在Fedora上构建和运行,但是您需要调整一些命令。创建一个带有以下内容的MakeConf.Local文件(使用Fedora 32进行测试):
DIST=$(shell grep NAME= /etc/os-release | cut -d= -f2)
ifeq ($(DIST),Fedora)
GRUB_FILE := grub2-file
GRUB_MKIMAGE := grub2-mkimage
GRUB_MODULES += normal
QEMU_BIN := qemu-kvm
DOCKER_MOUNT_OPTS := :Z
endif
Main Makefile具有多个目标,可以使QEMU启动KTF更容易。 Makefile检测到主机系统是否为Linux,并启用KVM支持(如果是)。 QEMU的默认参数可以在QEMU_PARAMS变量下的Makefile中找到。
用于启动运行:
make boot
用于调试运行:
make boot_debug
用于与GDB Run进行调试:
make gdb
使用以下访客域配置示例,用于使用Xen启动KTF:
name = "kernel64"
builder = "hvm"
memory = 1024
serial = [ 'file:/tmp/kernel.log' , 'pty' ]
disk = [ '/home/user/ktf.iso,,hdc,cdrom' ]
on_reboot = "destroy"
vcpus = 1您需要为此生成可引导的ISO。
可以通过在tests文件夹中的文件中添加新功能来添加新测试。每个测试签名必须与test.h中提供的test_fn相同。可以在grub.cfg中启用测试,并在键tests中添加该选项,并值函数名称的逗号分隔列表,例如tests=test1,test2,unit_tests 。
该项目的样式在此存储库的主目录中的.clang-format文件中定义。
使用以下命令将样式自动应用于您修改的文件:
clang-format -style=file -Werror -i MODIFIED_FILE有关更多信息,请参阅:https://clang.llvm.org/docs/clangformat.html
该项目使用https://github.com/doozyx/clang-format-lint-action-action-action工作流程自动检测样式不匹配。有关更多信息,请参阅:https://github.com/marketplace/actions/clang-format-lint
clang-format-lint容器docker build -t clang-format-lint github.com/DoozyX/clang-format-lint-action这只能完成一次。
make stylektf-one-line-scan容器one-line-scan基础图像docker build -t one-line-scan
https://raw.githubusercontent.com/awslabs/one-line-scan/master/tools/Dockerfile docker build -t ktf-one-line-scan
--build-arg USER_ID=$(id -u)
--build-arg GROUP_ID=$(id -g)
--build-arg USER=$USER
--file tools/docker/OnelineScanDockerfile .
这只能完成一次。
HEAD和origin/mainline提交之间的差异一线扫描make onelinescan[1] http://xenbits.xenproject.org/docs/xtf/
有关更多信息,请参见贡献。
KTF的维护者和用户在Slack中通信。我们设置了一个松弛的工作空间,我们正在积极分享与KTF有关的想法,错误以及任何与KTF相关的任何内容。随时加入我们:Slack邀请链接
该项目是根据BSD 2-CAREASE许可证获得许可的。