@techreport{oai:ipsj.ixsq.nii.ac.jp:02004228, author = {橋本,悠生 and 山田,浩史}, issue = {1}, month = {Sep}, note = {Unikernelは起動時間やメモリフットプリントにおいて,従来のOSやコンテナと比較して優れており,クラウド環境でのアプリケーション実行に適している.しかしながらUnikernelを利用したアプリケーションは,それぞれが必要な機能を静的にリンクしており,ハイパーバイザによって強く隔離されている.そのため,ハイパーバイザ上に複数のUnikernelを用いた仮想マシン(VM) が実行される際,各Unikernelが同じ機能を別々に実行しており,機能を共有できないことによるリソースの無駄が発生している.また,FaaS(Function as a Service)などのサーバレス環境においてUnikernelを利用することが提案されているが,VMのライフタイムが短いため頻繁に起動,停止が行われているので,起動時に状態を復元するための時間がかかる問題がある.本研究では,ランタイムを用いて複数のUnikernelが共通の機能を共有することで,リソースの効率的な利用を実現するUnikernelの実行環境を提案する.提案手法では,対象機能を独立稼働させ,各アプリケーションがメッセージパッシング方式でアクセスすることで可能とする.第一歩として,Linux-6.8.12,Unikraft-0.16.3に対して,ファイルシステムを対象にコンポーネントを共有する機構を実現した.共有機能呼び出しのオーバヘッドを評価するために,システムコール呼び出しおよびリアルワールドなアプリケーションのSQLiteのInsert操作における性能評価を行った.結果として,デフォルトのUnikraftに対して,システムコールの呼び出しオーバヘッドの平均は約2倍であり,SQLiteの実行時間の平均は1.03倍となった.}, title = {コンポーネントを共有可能なUnikernel}, year = {2025} }