1000 行で実現する Linux on Browser by bokuweb

builderscon 2024
採択
2024/08/10 17:00〜
main
40分
初心者向け

1000 行で実現する Linux on Browser

bokuweb17 bokuweb bokuweb17
4

Linux を Browser 上で動かしてみたい。そう思ったことはないでしょうか。
自分も過去に何度も挑戦したのがその度に挫折していました。
理解すべき項目の多さももちろんのことながら、こういった個人プロジェクトの最大の敵は「飽き」だと考えています。

ですが、最近約 1000 行で飽きる前に達成できる構成を見つけたためその内容を紹介いたします。

本プロジェクトはrv32ima NOMMUをtargetにエミュレータをRustで書きWebAssemblyにてbrowser上で動作させています。
Rustに関してはZero Dependenciesとなっており、各言語の行数は以下のようになっています。

 Language            Files        Lines         Code 
========================================================
 JavaScript              1          210          191    
--------------------------------------------------------
 HTML                    1           18           18    
---------------------------------------------------------
 Rust                   13         1146          971    
=========================================================
 Total                  15         1374         1180    

実現にはどのような機能をどのように実装していくのか。
困ったところ、面白かったところはどのようなところか。
などをお話しする予定です。

話す内容

  • rv32imaやMMU、CLINTについて
  • deviceTreeやUARTについて
  • WebAssemblyやasyncifyについて
  • 困ったことや面白かったことについて