小さなLinux互換カーネルのTilckでアプリをいくつか試す

小さなLinux互換カーネルのTilckというものを知ったので少し触ってみました.その後Wikiを見ながらbuild_toolchain script を利用していくつかのユーザスペースアプリケーションを試してみました.

fbDOOM

まずは楽しげなfbDOOMを導入

fbDOOM
$ ./scripts/build_toolchain -s build_fbdoom
$ ./scripts/cmake_run -DEXTRA_FBDOOM=1
$ make rem

マウスデバイスがないのでキーボードでの操作のみですがそこそこ遊べます.

tilck fbdoom

FrameBuffer

次はFrameBufferのアプリを

framebuffer
./scripts/build_toolchain -s build_tfblib
$ ./scripts/cmake_run -DEXTRA_FBDOOM=1
$ make rem

以下のコマンドが使えるようになります.

fb_drawing      fb_keyinput     fb_text         fbtest
fb_hello_world  fb_tetris

マンデルブロ集合いいですよね.fb_drawing の中に有ります.

tilck fb01

TinyCC

TinyCC も使えます.

$ ./scripts/build_toolchain -s tcc
$ ./scripts/cmake_run -DEXTRA_TCC=1
$ make rem

ただし,現時点では静的リンクが必須です.

root@tilck:/# cat lib/tcc-examples/ex1.c
#!/usr/local/bin/tcc -run
#include <tcclib.h>

int main()
{
    printf("Hello World\n");
    return 0;
}
root@tilck:/# tcc lib/tcc-examples/ex1.c -o ex1
root@tilck:/# ./ex1
Killed
root@tilck:/# tcc -static lib/tcc-examples/ex1.c -o ex1
root@tilck:/# ./ex1
Hello World
Tip

こういう操作時はqemuのGUIコンソールちょっと使いづらいので -serial stdio を付けてホストマシンで操作すると便利です.

$ qemu-system-i386 -rtc base=localtime -device sb16 -drive id=img1,format=raw,if=none,file=/home/matoken/src/tilck/build/tilck.img -device ide-hd,drive=img1,cyls=74,heads=16,secs=63 -serial stdio

他にもいくつかのアプリケーションが動きます.WIkiをチェックしてみましょう.
build_toolchain script に色々加えると楽しそうです.

環境
[    0.111] Hello from Tilck 0.1.4, commit: 5835b80f
[    0.111] Build type: Debug, compiler: gcc 8.4.0
[    0.115] timer_hz: 250; time_slice: 40 ms; in_hypervisor: yes

                    ▒▒▒▒▒▒▒▒┐ ▒▒┐ ▒▒┐       ▒▒▒▒▒▒┐ ▒▒┐  ▒▒┐
                    └──▒▒┌──┘ ▒▒│ ▒▒│      ▒▒┌────┘ ▒▒│ ▒▒┌┘
                       ▒▒│    ▒▒│ ▒▒│      ▒▒│      ▒▒▒▒▒┌┘
                       ▒▒│    ▒▒│ ▒▒│      ▒▒│      ▒▒┌─▒▒┐
                       ▒▒│    ▒▒│ ▒▒▒▒▒▒▒┐ └▒▒▒▒▒▒┐ ▒▒│  ▒▒┐
                       └─┘    └─┘ └──────┘  └─────┘ └─┘  └─┘

$ dpkg-query -W qemu-system-x86
qemu-system-x86 1:7.2+dfsg-1+b2
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux bookworm/sid
Release:        n/a
Codename:       bookworm
$ arch
x86_64

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です