



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 multiboot互換ELFファイルを生成し、qemuで直接起動できます。 make ktf.isoコマンドはkernel64.binを取り、 grub/boot/ directory階層に配置し、 grub/ ( grub/boot/grub/grub.cfgデフォルトのgrub構成として使用して)からktf.isoを生成します。
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実行でデバッグするには:
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と同じでなければなりません。テストはtests=test1,test2,unit_testsなど、キーtestsと値を使用してオプションを追加することにより、 grub.cfgで有効にできます。
このプロジェクトのスタイルは、このリポジトリのメインディレクトリの.clang-formatファイルで定義されています。
次のコマンドを使用して、変更したファイルにスタイルを自動的に適用します。
clang-format -style=file -Werror -i MODIFIED_FILE詳細については、https://clang.llvm.org/docs/clangformat.htmlを参照してください
このプロジェクトでは、https://github.com/doozyx/clang-format-lint-アクションワークフローを使用して、スタイルの不一致を自動的に検出します。詳細については、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コミットの間のdiffに対する1行スキャンスキャンmake onelinescan[1] http://xenbits.xenproject.org/docs/xtf/
詳細については、貢献を参照してください。
KTFのメンテナーとユーザーはSlackで通信します。 Slack Workspaceをセットアップし、そこでKTFに関連するアイデア、バグ、およびあらゆるものを積極的に共有しています。お気軽にご参加ください:Slack Invite Link
このプロジェクトは、BSD 2-Clauseライセンスの下でライセンスされています。