



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許可證獲得許可的。