こんにちは、ハブロビテス!
起動可能なJavaScriptプログラミング言語で本格的なオペレーティングシステムを作成することは可能だと思いますか?
正解はイエスです!
今日は、 JsOSプロジェクトについてお話したいと思います。
JsOSはJavaScriptのオペレーティングシステムです。
最初は、プロジェクトはJSライブラリとruntime.jsカーネルに基づいて作成されましたが、後者を閉じた後、独立したプロジェクトになりました。
現在、 プロジェクトは開発中であるため、ご意見をお寄せください。
プロジェクトの基本構造を検討してください。
JsOSは2つの部分(レベル)で構成されています。
低レベル(コア)は、C ++およびアセンブラーで記述された部分で構成されます。 基本的な読み込みと制御の高レベルへの転送に使用されます。 カーネルは、ハードウェアを操作するためのAPIも提供します。
- 高レベルはJavaScriptで完全に記述され、オペレーティングシステムの操作を実装します。
高レベルの構造をさらに詳しく考えてみましょう。
core
— ( (kernel) ), ;driver
— API ;apps
— , install;
- .
- JavaScript Repl (, #).
- PS/2 .
- PCSpeaker.
- Virtio (QEMU) Realtek (rtl8139) .
- ATA .
- (FAT32).
- VGA BGA.
- Node.js API ( os, fs, ..).
- ASCII (UTF-8 ).
- - ASCII .
- PCI .
2 :
- .iso Releases.
- .
2, ó .
Node.js QEMU.
# 1. :
git clone https://github.com/JsOS-Team/JsOS
# 2. :
cd JsOS
# 3. :
npm i
# 4. JsOS-CLI:
sudo npm i -g jsos-cli
# 5. :
jsos start
!
— QEMU, JsOS.
— issue .
, help
.
, help
:
install _
.
js/apps.
, screenfetch Linux , .
install screenfetch
, — start screenfetch
.
, :
- brainfuck — . Hello World
start brainfuck hw
; - vim — ;
- speakplay — PCSpeaker';
- composer — PCSpeaker;
- keylogger — , ;
- pgtest — - ASCII ;
- example ;
install
start
.
, , ( graphics-mode pseudo-graphics), , , USB ( usb).
:
GitHub JsOS
GitHub JsOS-CLI
GitHub runtime.js ( )