WSL2のシステムコール実装/未実装を確認する
Windows 10 Pro Insider Preview 1903, 18922.1000 をインストールしてWSL2が使えるようになった。カーネルのバージョン情報を確認する。
# uname -a Linux DESKTOP-DN3P0KN 4.19.43-microsoft-standard #1 SMP Mon May 20 19:35:22 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
WSLの時と同じツールを使ってWSL2のシステムコール実装/未実装を調べた結果、以下のシステムコールが未実装と判断した。
[134] uselib [174] create_module [176] delete_module [177] get_kernel_syms [178] query_module [180] nfsservctl [181] getpmsg [182] putpmsg [183] afs_syscall [184] tuxcall [185] security [202] futex [205] set_thread_area [211] get_thread_area [212] lookup_dcookie [214] epoll_ctl_old [215] epoll_wait_old [236] vserver [237] mbind [238] set_mempolicy [239] get_mempolicy [246] kexec_load [256] migrate_pages [279] move_pages [320] kexec_file_load [323] userfaultfd
WSL2でほとんどのシステムコールが使えるようになったことがわかる。使えないのは共有ライブラリロード(uselib), カーネルモジュール操作(XXX_module), futex, TLS操作, NUMA操作, kexec, userfaultfdあたり。うちで作っているソフトウェアを動作させるために必須なメッセージキュー操作(msgXXX), syslog, mlockall が使えるようになったのは超朗報(^^)。