Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
477 commits
Select commit Hold shift + click to select a range
8035ea5
fix: harden page table walk against address overflow
minto-dane Mar 4, 2026
97e1ad7
fix: harden ELF relocation validation and exec page-table cleanup
minto-dane Mar 4, 2026
78b631f
fix: close relocation and exec page-table lifecycle gaps
minto-dane Mar 4, 2026
50f5a91
Merge pull request #4 from minto-dane/copilot/request-review
minto-dane Mar 4, 2026
48c38bc
fix: initialize ASLR counters with boot entropy and improve CPU handling
minto-dane Mar 4, 2026
42609e8
Delete .github/workflows/security.yml
minto-dane Mar 4, 2026
027c672
Delete SECURITY_REVIEW.md
minto-dane Mar 4, 2026
18b39b4
gitignoreにpatchとdiffを追加
tas0dev Mar 4, 2026
30a7006
Merge pull request #5 from minto-dane/dev
minto-dane Mar 4, 2026
c74bf5e
returnされる値がNOMEMであるべきなのに他のが返されていたのを修正
tas0dev Mar 4, 2026
9dbb4df
clone_user_page_tableのエラーハンドリング周りを調整
tas0dev Mar 4, 2026
ee185f7
貢献者ににあさんを追加
tas0dev Mar 4, 2026
e9a9627
without_interruptsブロック終了時外側のループの先頭にあるyield_now()呼び出しまでの間に競合状態が発生する可能性…
tas0dev Mar 4, 2026
35379d5
フォントを追加
tas0dev Mar 4, 2026
954a67e
ファイルツリーをいい感じに生成するように
tas0dev Mar 4, 2026
51a0c16
それぞれのディレクトリの説明を追加
tas0dev Mar 4, 2026
0f98fee
typo修正
tas0dev Mar 4, 2026
6a7418c
DevicesだとわかりずらいのでMountsに更新
tas0dev Mar 4, 2026
7d46d9f
ブートローダーとカーネルをバイナリレベルで分離(逆にこれまでなんでBOOTX64.EFIに集約していたのか謎ではある)
tas0dev Mar 4, 2026
64f854a
実行するとわけわかめ状態になってしまうバグを修正
tas0dev Mar 4, 2026
dd7553f
二回同じ確保をしようとして失敗するバグを修正
tas0dev Mar 5, 2026
ba37173
SwiftCoreからmochiOSにしました。餅おいしい
tas0dev Mar 5, 2026
7d7e73e
MS ABIを使っていたせいでcore.service起動時に例外が発生する問題を修正
tas0dev Mar 5, 2026
5d16f57
initfsが正常に作成されない問題を修正
tas0dev Mar 5, 2026
73a1bb3
core.serviceなどの出力が止まってしまう問題を修正
tas0dev Mar 5, 2026
981a08e
add vga service
tas0dev Mar 6, 2026
c295094
main()がentryになるように
tas0dev Mar 6, 2026
72a3b8c
stdが動くように!!!!!!!!!
tas0dev Mar 6, 2026
2b6d4d9
微調整
tas0dev Mar 6, 2026
410a26e
service/fsがignoreになっちゃってたのを修正
tas0dev Mar 6, 2026
8b82ec3
shell.serviceを追加
tas0dev Mar 6, 2026
4152525
フォントを動的に読み込むように
tas0dev Mar 6, 2026
2927752
nographicを削除
tas0dev Mar 6, 2026
768eb2a
std::fsをrootfs(ext2)を使用するように
tas0dev Mar 6, 2026
51f990d
ataドライバを実装し、shell.serviceをハードから呼び出すように
tas0dev Mar 6, 2026
26ff400
vgaとserialを同時起動
tas0dev Mar 6, 2026
e6cf6b0
ブートローダーにVGA出力を実装
tas0dev Mar 6, 2026
55d1b6a
カーネルの出力が□になってしまう問題を修正
tas0dev Mar 6, 2026
4969340
ataドライバを完成
tas0dev Mar 6, 2026
1686eb4
PS/2キーボードドライバを追加
tas0dev Mar 6, 2026
fbe1e5b
一旦コミット
tas0dev Mar 6, 2026
5592b44
RustRoverで発生するwarning、errorを修正
tas0dev Mar 7, 2026
db76e7c
ataドライバが正常に起動しない問題を修正
tas0dev Mar 7, 2026
1c5f860
ataドライバが正常に起動しない問題を修正
tas0dev Mar 7, 2026
949f417
crt0.oをビルドするときにいろいろバグり散らかしてたので修正
tas0dev Mar 8, 2026
4c90958
core.service.diskのresponseが0の時にcore.service.fsがエラーが発生したと勘違いして0xFFFFFF…
tas0dev Mar 8, 2026
3da6b4e
inifsの読み込みが遅すぎる問題を修正
tas0dev Mar 8, 2026
57a2811
不要なドキュメントの削除
tas0dev Mar 8, 2026
8eb014a
JetBrainsのQodanaを追加しそれで出た警告をすべて修正
tas0dev Mar 8, 2026
8366282
rust-lldのリンク周りでこけていた問題を修正し、coreutilsを作成
tas0dev Mar 8, 2026
51f141a
warnの修正
tas0dev Mar 8, 2026
d7f6e25
resourcesに追加されたファイルはビルド時に自動でfsに追加されるように(src/resourcesはSystem)
tas0dev Mar 8, 2026
66a6c5d
shell.serviceがConfig/env.txtを読みこんで環境変数を設定するように
tas0dev Mar 8, 2026
104c9e2
Sync Dev (#6)
minto-dane Mar 8, 2026
026d5e9
lsを正しく実装
tas0dev Mar 8, 2026
beb64e4
lsの出力がおかしいところに表示されるのを修正
tas0dev Mar 8, 2026
b34e810
アプリケーションの出力をすべてshell.serviceを介すように
tas0dev Mar 8, 2026
55dfd7e
簡素なスケジューラをアップグレードし、キーボードを割込み方式に修正
tas0dev Mar 8, 2026
65b6a53
メモリをプロセスが正常に開放できていなかった問題を修正し、ユーザースタックを自動で拡張するように
tas0dev Mar 8, 2026
e3645cb
更新時毎度copyしていてわけわかめだったのでダブルバッファとダーティフラグを実装
tas0dev Mar 8, 2026
4e4463e
PRテンプレートを追加
tas0dev Mar 8, 2026
1774ba8
cdやcatなどのいろいろcoreutilsを追加
tas0dev Mar 8, 2026
0f75f63
lsがルートにしか対応していない問題を修正(なんでプロセス作るときにCWD=/にしてたんだ)
tas0dev Mar 8, 2026
6164485
shellがargvを渡していない問題を修正
tas0dev Mar 8, 2026
31ccf97
catコマンドの終了後に改行されない問題を修正
tas0dev Mar 8, 2026
220cd6d
catでバイナリを指定するとすごいことになる問題を修正
tas0dev Mar 8, 2026
ce943e0
copilot-instructions.mdを作成
tas0dev Mar 9, 2026
fbfb3fb
ps2kbd.rsにスレッドIDを保持する構造体を追加し、適宜起床させるように
tas0dev Mar 9, 2026
82bba45
signalの基本適菜実装
tas0dev Mar 9, 2026
110ee03
ダブルフォルトが起きる問題を修正
tas0dev Mar 9, 2026
d83b253
per-prcess FD tableを実装
tas0dev Mar 9, 2026
d87415d
execveなどを実装
tas0dev Mar 9, 2026
c3dfaaa
BusyBoxを動かすのに必要な前提条件をすべて作成
tas0dev Mar 9, 2026
3df3b55
auxv周りを整える
tas0dev Mar 10, 2026
39b9776
mochiOSに変更
tas0dev Mar 11, 2026
0ed12a7
SwiftCoreをすべて削除し、mochiOSに置換
tas0dev Mar 12, 2026
553a3b4
なんかkernel.elfが起動しない問題を修正
tas0dev Mar 12, 2026
09a24dc
visyboxが動くように(つまりLinuxとのバイナリ互換性をもつように)
tas0dev Mar 13, 2026
0524128
resolve conflicts
tas0dev Mar 14, 2026
4b76466
Linuxとのバイナリ互換性をもつように (#7)
minto-dane Mar 14, 2026
2ff2c7e
ver0.1.0-dev.1
tas0dev Mar 14, 2026
86390ec
Merge branch 'main' into dev
minto-dane Mar 14, 2026
7cbed4f
もちもちくん(アイコンでありマスコットキャラクター)の画像を追加
tas0dev Mar 14, 2026
603b1ac
READMEの末尾にもちもちくんを追加
tas0dev Mar 14, 2026
ba5dee7
autoinstall.shを作成(依存関係にあるソフトを自動でインストールする)
tas0dev Mar 14, 2026
aeeeb52
ドライバを起動するための準備が整う(あとfmtした)
tas0dev Mar 14, 2026
26717c0
自動でbusyboxをインストールするようにして、もともとあったutilsを削除
tas0dev Mar 14, 2026
b450c0f
ANSIエスケープシーケンスに対応(shell.service)し、毎回わざわざbusyboxをダウンロードしてきていたのを修正(サーバー…
tas0dev Mar 14, 2026
eb73cba
busybox catに失敗する問題を修正
tas0dev Mar 14, 2026
619b8c6
めっちゃ起動が遅い問題をやっと修正
tas0dev Mar 14, 2026
0fb1272
起動中に表示する予定のgif画像を追加
tas0dev Mar 14, 2026
b7ec2ed
起動時にgifアニメーションで右下にぽよぽよはねるもちもちくんが表示されるように
tas0dev Mar 14, 2026
7e7a426
もちもちくんの更新が馬鹿遅い問題を修正
tas0dev Mar 14, 2026
11a1dd9
もちもちくんの更新が馬鹿速い問題を修正
tas0dev Mar 14, 2026
01cd198
基本的なPS/2 mouseドライバを作成
tas0dev Mar 14, 2026
16b7cf6
概念的なxHCIドライバを作成
tas0dev Mar 14, 2026
6d983fc
本格的なxHCIドライバ/MMIOを作成
tas0dev Mar 14, 2026
d4ff6e6
Command/Event Ring、Interrupter設定、HIDレポート解析を作成
tas0dev Mar 14, 2026
d924906
Slot/Endpointを作成
tas0dev Mar 14, 2026
2da7b21
todo.mdを追加
tas0dev Mar 15, 2026
99b33e6
Initial plan
minto-dane Mar 3, 2026
c5f8e68
Initial plan
minto-dane Mar 4, 2026
284aa8a
rootfsをマウントして使うように
tas0dev Mar 19, 2026
ef712aa
fmt
tas0dev Mar 19, 2026
f6c50ec
PortInWords(538) / PortOutWords(539)を追加し、disk.serviceのATA転送を最適化して、she…
tas0dev Mar 21, 2026
a34acdb
maintainer.mdをcontributors.mdに改名
tas0dev Mar 21, 2026
97d8fab
USBドライバを作成し、Qemuの入力をUSBで行うように
tas0dev Mar 21, 2026
2364c1c
input.rsのコミット漏れをコミット
tas0dev Mar 21, 2026
d147514
IPC通信を取り違えたりしないように修正
tas0dev Mar 22, 2026
23c281c
一旦コミット[
tas0dev Mar 23, 2026
f3b831d
return()後に正常にshell.serviceが出力できない問題を修正
tas0dev Mar 24, 2026
73306ec
lsやbusyboxの起動に時間がかかる問題をキャッシュを採追加して修正(二回目以降)
tas0dev Mar 24, 2026
796811a
IPCをバカスカ高速化
tas0dev Mar 26, 2026
0069888
driver.listに書かれているサービスを起動するようにし、usbドライバが起動しない問題を修正し、fsのstdに対応
tas0dev Mar 29, 2026
8d2b636
execとfs周りを改善し起動速度を向上
tas0dev Mar 29, 2026
e280bee
ゼロコピーを実装
tas0dev Mar 30, 2026
5ffb321
fs.serviceが直接読み書きできるように
tas0dev Mar 31, 2026
580c9a8
BSS用に追加割当てされたフレームが追跡されずリークする問題を修正
tas0dev Mar 31, 2026
c33c73f
一旦コミット
tas0dev Apr 2, 2026
832358c
スタックサイズを増やす
tas0dev Apr 3, 2026
d5f85d4
非効率的なFSアルゴリズムを修正
tas0dev Apr 3, 2026
68d472f
chore(build): tidy build scripts, autoinstall packages, README backtick
minto-dane Apr 7, 2026
0347f42
fix(boot): bounds-check splash blit and reject partial initfs reads
minto-dane Apr 7, 2026
36747fa
fix(mem): track BSS frames, drop redundant ?, return NotMapped on mis…
minto-dane Apr 7, 2026
1217599
fix(syscall): validate user pointers, harden IPC bounds, safer mmio/v…
minto-dane Apr 7, 2026
76f9ec8
refactor(signal): use SIGSTOP constant and improve kill error handling
minto-dane Apr 7, 2026
a819930
fix(privileged): per-process mmap cursor, validate phys pages, dedupe…
minto-dane Apr 7, 2026
098a848
fix(exec): allow fs.service to exec on behalf of any requester
minto-dane Apr 7, 2026
bc8e5a3
fix(task): close remote fds on fork clone and harden ELF loader
minto-dane Apr 7, 2026
e5ee2c3
feat(ps2mouse): track dropped packets
minto-dane Apr 7, 2026
faeb532
fix(usb): xHCI port reset order, link TRB cycle bit, HID modifier/whe…
minto-dane Apr 7, 2026
9c64483
refactor(core-service): cleanup service startup and ready-wait loop
minto-dane Apr 7, 2026
caf6f48
fix(disk-service): poison-safe lock, alignment-safe u16, atomic probe…
minto-dane Apr 7, 2026
b1e6d82
feat(fs-service): paginated readdir, ext2 sparse/cross-block, Send/Sy…
minto-dane Apr 7, 2026
2b6220f
refactor(driver-service): drivers.list lookup via fs.service
minto-dane Apr 7, 2026
809d59c
feat(shell): native builtins (ls/cat/echo/pwd/stat/head/tail/wc/grep/…
minto-dane Apr 7, 2026
953e330
feat(user): fs.service IPC helpers (stat/readdir/exec) and ABI follow…
minto-dane Apr 7, 2026
629bd7f
fix(mem): allow PCI MMIO holes outside UEFI memory map in is_allowed_…
minto-dane Apr 7, 2026
8305c4b
chore(driver): tidy build script and linker section ordering
minto-dane Apr 7, 2026
b272728
chore(qemu): add VNC display for headless WSL environments
minto-dane Apr 7, 2026
6d06b31
debug(shell): log framebuffer info and pointer at startup
minto-dane Apr 7, 2026
b3adcf1
Revert "chore(qemu): add VNC display for headless WSL environments"
minto-dane Apr 7, 2026
f0fb3b1
fix(usb): rename and enhance port connection submission logic
minto-dane Apr 7, 2026
4729933
fix(hid): fix parse_hid_report
minto-dane Apr 7, 2026
2455939
refix(hid): simplify parse_hid_report and remove interface_protocol p…
minto-dane Apr 7, 2026
0dfc777
fix(hid): enhance parse_hid_report to support report kind differentia…
minto-dane Apr 7, 2026
c04e14f
warningを修正
tas0dev Apr 8, 2026
e155564
*.cextをビルドしてモジュールとしてビルドされるように
tas0dev Apr 9, 2026
45b84c0
refactor: remove fs.service references and update comments for clarity
tas0dev Apr 9, 2026
b638876
fs.cextやdisk.cextでrootfsを利用可能に
tas0dev Apr 9, 2026
05e8521
usb.elfのロードに失敗する問題を修正(rootfsをマウントするように)
tas0dev Apr 9, 2026
68192e0
usb.elfがコントローラーを見つけれない問題を修正
tas0dev Apr 9, 2026
f27d22d
rootfsを使用し、カーネルモジュールをsrc/modulesに移動
tas0dev Apr 9, 2026
319047f
busybox lsに失敗する問題を修正し、cextを再配置可能に
tas0dev Apr 9, 2026
a698921
argc, argvが正常に渡されない問題を修正
tas0dev Apr 9, 2026
8e9e251
getents64を改善
tas0dev Apr 9, 2026
b7d9586
busybox ls時にgptが発生するバグを修正
tas0dev Apr 9, 2026
14e22de
fs.cextにblock cacheとpath/inode cacheを実装
tas0dev Apr 9, 2026
810ef4c
fsとdiskをDMA化し、高速化
tas0dev Apr 9, 2026
f079404
moduleがコミットされていない...
tas0dev Apr 9, 2026
f15b59a
USBマウスの入力がキーボードとして認識されてしまう問題を修正
tas0dev Apr 10, 2026
25e2391
Kagamiウィンドウサーバーをgitモジュールとして追加
tas0dev Apr 10, 2026
64bff89
アプリケーションのビルド環境を整える
tas0dev Apr 10, 2026
207997a
マウス関連のAPIを追加
tas0dev Apr 10, 2026
f3c2c74
マウス関連のAPIの調整
tas0dev Apr 10, 2026
04f45cf
USBが4byteのパケットを送信していてもそれを取りこぼしてしまっていた問題を修正
tas0dev Apr 10, 2026
45f1d1b
USBの修正
tas0dev Apr 10, 2026
957bbe0
USBの修正
tas0dev Apr 10, 2026
d848260
xHCI周りを改善
tas0dev Apr 11, 2026
a2d8dad
IPC経由で描画できるように
tas0dev Apr 11, 2026
d111b00
テーマを読み取れるように
tas0dev Apr 12, 2026
caf4eab
テーマを更新していろいろ改善し、IPCメッセージ上限のせいでウィンドウサイズのサイズ上限が来てしまう問題を修正
tas0dev Apr 12, 2026
4490586
Binderをアプリとしてsubmodule追加(デスクトップ環境)
tas0dev Apr 12, 2026
6fa46ba
gitignoreにアプリたちを追加
tas0dev Apr 12, 2026
067418a
Linux系のapiをswiftlibにラップしてみる
tas0dev Apr 12, 2026
f559086
ちょっと修正
tas0dev Apr 12, 2026
149e78c
ViewKitをsubomoduleとして追加
tas0dev Apr 12, 2026
067afdb
描画遅すぎ問題を修正
tas0dev Apr 12, 2026
0ae901d
共有メモリに移行
tas0dev Apr 12, 2026
859efd8
マウスを最優先で動かすように
tas0dev Apr 12, 2026
9afb5c8
card/buttonを描画するように
tas0dev Apr 12, 2026
5b639d9
更新
tas0dev Apr 12, 2026
47e0c17
syscall周りを更新
tas0dev Apr 12, 2026
0fdd4c0
Dockをモジュールとして追加
tas0dev Apr 12, 2026
da53081
isoを作成するスクリプトを作成
tas0dev Apr 13, 2026
4b6e9fd
vimを動かすためにsyscall/signalをいろいろ更新
tas0dev Apr 13, 2026
53a13eb
vimでとりあえずGPFが出ないように
tas0dev Apr 13, 2026
a5847dd
vimを起動時にスタックキャナリー周りでエラーが出る問題を修正
tas0dev Apr 13, 2026
16f0602
一部のシステムコールが正常に動作していないバグを修正
tas0dev Apr 13, 2026
a4884da
fs関連のsyscallの修正
tas0dev Apr 13, 2026
c9dbb2e
ioctlでスタック破壊が発生してしまっていたバグを修正し、vimが正常に起動するように
tas0dev Apr 13, 2026
ffbc10a
vim用のトレースを削除
tas0dev Apr 13, 2026
026f421
ttyを実装(突貫工事定期)
tas0dev Apr 13, 2026
0fbc5a1
いろいろ修正
tas0dev Apr 13, 2026
72245ad
いろいろ修正
tas0dev Apr 13, 2026
5937d19
いろいろ修正
tas0dev Apr 13, 2026
f7eef15
いろいろ修正
tas0dev Apr 13, 2026
6d41e29
ttyはちゃんと作ろうねという教訓を得ました
tas0dev Apr 13, 2026
858cfac
vimでテキスト入力できない問題を修正
tas0dev Apr 13, 2026
b03bf68
shellのANSI処理を拡張
tas0dev Apr 13, 2026
4d670ee
いろいろ修正
tas0dev Apr 13, 2026
1d2e1f4
Terminalアプリをsubmoduleとして追加
tas0dev Apr 14, 2026
16bcf35
NotoSansJPフォントを追加
tas0dev Apr 14, 2026
5c3bd93
Tでターミナルを起動するように
tas0dev Apr 14, 2026
714ac9e
いろいろ修正
tas0dev Apr 14, 2026
77a56af
いろいろ修正
tas0dev Apr 14, 2026
87357dd
fmt
tas0dev Apr 15, 2026
579f20e
tty周りをもっと改善
tas0dev Apr 15, 2026
9f0d822
JIS配列寄りにしました
tas0dev Apr 15, 2026
1e4e2e3
いろいろ改善
tas0dev Apr 15, 2026
85d9d87
いい感じにnetドライバを作成
tas0dev Apr 16, 2026
e0d364f
インターネットドライバをリファクタ
tas0dev Apr 17, 2026
6cc1e70
netをIPCベースでドライバにアクセスできるように
tas0dev Apr 17, 2026
af7f2e1
netdrvをリファクタ
tas0dev Apr 19, 2026
7f49c62
exec.rsのリファクタ
tas0dev Apr 19, 2026
a3a1ae9
pingコマンドがnetdrvを認識できるように
tas0dev Apr 19, 2026
2f3dcf7
security(core): harden runtime and syscall usercopy
minto-dane Apr 24, 2026
d7e33c3
security(core): harden user memory access, runtime CPU controls, and …
tas0dev Apr 24, 2026
98ebe48
about.txtを作成
tas0dev Apr 22, 2026
29ec4e8
warningを修正
tas0dev Apr 24, 2026
b928c9e
一旦コミット
tas0dev Apr 25, 2026
594c18e
適当
tas0dev Apr 26, 2026
f550033
aa
tas0dev May 1, 2026
fc64481
Merge commit 'f550033532c0cfc4b7a20c8b5a44a6d91f7afd3f' into dev
tas0dev May 1, 2026
814687b
ViewKitを一旦ビルドしないように
tas0dev May 1, 2026
d1b0fc1
ブート中にgifが表示されない問題を修正
tas0dev May 1, 2026
56c8e32
ViewKitをパスしているのを戻しました
tas0dev May 2, 2026
f0f6ded
リファクタリング
tas0dev May 2, 2026
ffcb642
submodule upd
tas0dev May 4, 2026
5d2d77f
一旦コミット
tas0dev May 4, 2026
e38ec16
exec.rsの微調整
tas0dev May 4, 2026
9d60ad1
Resourcesディレクトリを生成しないように
tas0dev May 4, 2026
05e55a4
コンフリクト解消にミスってexec.rsがぶっ壊れてしまった問題を修正
tas0dev May 4, 2026
e5edfbd
DockコンポーネントとappiconコンポーネントをViewKitからDockに移動
tas0dev May 4, 2026
645fa78
examplesを修正
tas0dev May 4, 2026
6a9f723
Kagamiの起動に失敗する問題を修正
tas0dev May 4, 2026
1cd95a2
スタック拡張時の方向が逆だった問題を修正
tas0dev May 4, 2026
d45d579
IPCにゴミが入ってしまいそれが正しい値として扱われてしまっていた問題を修正
tas0dev May 4, 2026
805d23b
一旦コミット
tas0dev May 5, 2026
883196e
小ネタを作ったかもしれないし作ってないかもしれない
tas0dev May 5, 2026
53c2638
cpu-featuresが有効な環境で実行するとPFが発生する問題を修正
tas0dev May 6, 2026
18ad72c
SMAP/SMEPが有効な状態でのユーザー空間でのクラッシュを削除
tas0dev May 8, 2026
c597517
サービスの配置先をServices/からSystem/Services/に変更
tas0dev May 8, 2026
caaa628
mochiOSのアプリなどのバイナリの署名に使用するツールの初期型を作成
tas0dev May 8, 2026
235792d
OSのディレクトリ構造を大幅に刷新
tas0dev May 9, 2026
87f5911
ビルドアーティファクトのせいで馬鹿みたいにrootfsのサイズが大きくなっていた問題を修正
tas0dev May 9, 2026
6394073
まだApplicationsディレクトリを使用しているせいでバグり散らかしていたアプリたちを一括で修正
tas0dev May 9, 2026
6752095
a
tas0dev May 9, 2026
b131fa0
IPCのスタックの積み方が間違っていた問題を修正
tas0dev May 9, 2026
de967e2
Update kagami
tas0dev May 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
target = "x86_64-unknown-uefi"

[unstable]
build-std = ["core", "compiler_builtins", "alloc"]
build-std = ["core", "alloc"]
build-std-features = ["compiler-builtins-mem"]
panic-abort-tests = true

[target.x86_64-unknown-uefi]
runner = "scripts/qemu-runner.sh"
2 changes: 1 addition & 1 deletion .cargo/config_link.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
[target.x86_64-unknown-uefi]
rustflags = ["-C", "link-arg=-lswiftcore"]
rustflags = ["-C", "link-arg=-lmochios"]
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/バグの報告.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: バグの報告
about: Create a report to help us improve
title: 'Bug report: '
labels: bug
assignees: tas0dev

---

## 概要
報告するバグの内容を簡潔に書いてください。

## 動作
そのバグはどのようにしたら発生したか、詳細に書いてください。

## 発生箇所
そのバグが発生するソースコード(わかる場合でOKです!)
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/機能の提案.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: 機能の提案
about: Suggest an idea for this project
title: 'Feature request: '
labels: enhancement
assignees: tas0dev

---

問題が何であるかについて、明確かつ簡潔に説明してください。 例 私はいつも...のときに苛立ちます。

## その解決策
起こってほしいことの明確かつ簡潔な説明を書いてください。

## 代替案
その機能について、代替できる方法はありますか?

## ノート
ここに機能リクエストに関するその他のコンテキストやスクリーンショットを追加してください。
21 changes: 21 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## 概要 / Summary
<!-- このPRの目的を簡単に説明してください -->
<!-- 例: DOMパーサに新しいタグ処理を追加 -->

## 関連タスク / Related Tasks
<!-- このPRに関連するタスクやIssue番号があれば記載 -->
<!-- 例:
- tasks.md #12
- Issue #34
-->

## スクリーンショット / Screenshots
<!-- UI変更がある場合はスクショを添付 -->
<!-- 例: ウィンドウ表示テストの画像 -->

## 備考 / Notes
<!-- 注意点や相談したいことがあれば記載 -->
<!-- 例:
- この変更は他のモジュールに影響する可能性あり
- 後続のネットワーク改善タスクと合わせてレビュー希望
-->
92 changes: 92 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# mochiOS Copilot インストラクション

mochiOS は Rust(no_std、nightly)で書かれたx86-64のハイブリッドアーキテクチャカーネルです。カーネルはハイブリッドカーネル設計を参考にしており、最小限のカーネルコアが単一の `core.service` を起動し、そこからディスク・ファイルシステム・シェルの各サービスを IPC 経由でユーザー空間に立ち上げます。
絶対にクラッシュしないことを目標にしています。

## ビルドと実行

```bash
# 初回セットアップ
git submodule update --init --recursive
cd src/lib && ./configure && cd ../..

# ビルド(UEFI ディスクイメージを生成)
cargo build

# ビルドして QEMU で実行
cargo run

# リリースビルド
cargo build --release
```

ビルドは `build.rs` が `builders/` 配下のモジュールを呼び出して制御します。カーネル ELF・newlib(libc)・サービス/ユーティリティバイナリのコンパイル、`ramfs/` を `initfs.ext2` へ、`fs/` を `rootfs.ext2` へパック、最終的な UEFI ESP イメージの組み立て、という流れです。
実行はユーザーが行います。あなたは実装だけ行うようにしてください。

### ブートフロー

```
UEFI ファームウェア
└─ src/boot/loader.rs # カーネル ELF + initfs/rootfs イメージをロード、BootInfo を構築
└─ src/core/entry.rs # カーネルエントリ(sysv64 ABI)
└─ src/core/kernel.rs # 初期化: メモリ → GDT/TSS → IDT/PIC → ヒープ → core.service 起動
└─ core.service → disk.service → fs.service → shell.service(IPC 管理)
```

### ソースレイアウト

| パス | 役割 |
|-------------------|--------------------------------------------------|
| `src/boot/` | UEFI ブートローダー — ELF ロード、メモリマップ、BootInfo |
| `src/core/` | カーネル — 割り込み、メモリ、スケジューラ、システムコール、ELF ローダー |
| `src/services/` | ユーザー空間サービス(core, disk, fs, shell)— 各々独立したクレート |
| `src/user/` | `swiftlib` — ユーザー空間バイナリ向けシステムコールラッパー、IPC、アロケータ |
| `src/utils/` | ユーザー空間ユーティリティ(ls, echo, cat, pwd) |
| `src/posix/` | POSIX 互換シム |
| `src/lib/` | Newlib(git サブモジュール) |
| `builders/` | `build.rs` から呼び出されるビルドスクリプトモジュール |
| `ramfs/` | initfs ソース(サービス ELF + 最小限のライブラリ、ビルド時に ext2 へパック) |
| `fs/` | ルートファイルシステムソース(ビルド時に ext2 へパック) |

### カーネルサブシステム(`src/core/`)

- `mem/` — GDT、TSS、ページング、ヒープアロケータ(`linked_list_allocator`)
- `interrupt/` — IDT、PIC、タイマー、システムコールディスパッチ
- `task/` — プロセス・スレッドスケジューラ
- `syscall/` — exec、IPC、fs、I/O、時刻など
- `elf/` — ユーザー空間 ELF ローダー
- `percpu.rs` — CPU ごとの状態管理
- `panic.rs` — カーネルパニックハンドラ

### カスタムビルドターゲット

カーネルは `src/x86_64-mochios.json` 向けにコンパイルされます:
- LLVM トリプル:`x86_64-unknown-linux-musl`(ベアメタル向けカスタマイズ)
- MMX/AVX 無効、コードモデル:small、リロケーション:static
- リンカー:`rust-lld`、パニック戦略:abort、レッドゾーン無効
- カーネルは `0x200000` にリンク(`src/core/kernel.ld` 参照)

ブートローダーは `x86_64-unknown-uefi` ターゲットを使用します。

## 主な規約

### `no_std` の徹底
カーネルコード(`src/core/`、`src/boot/`)はすべて `#![no_std]` を使用します。カーネルやブートローダーに `std` のインポートや `std` 専用クレートを追加しないでください。

### カーネルコードで `unwrap()` 禁止
カーネルは `#![deny(clippy::unwrap_used)]` を設定しています。`result.rs` で定義された `Result<T>` エイリアス(`Result<T, KernelError>`)を使用してください。エラーバリアントは `result.rs` の `Kernel`・`Process`・`Memory` カテゴリに定義されています。

### サービスは独立したクレート
`src/services/<name>/` 配下の各サービスは、独自の `Cargo.toml` と `src/main.rs` を持ちます。サービスは `builders/services.rs` でコンパイルされます(ワークスペースではありません)。サービスのマニフェストは `src/services/index.toml` にあります。

### IPC がサービス間通信の唯一の手段
サービス間の通信は OP コードを使ったメッセージパッシングのみで行います。サービスをまたいだ直接の関数呼び出しは存在しません。

### アドレスは `u64`
仮想アドレスおよび物理アドレスは、カーネル全体を通じて `u64` で表現します(可能な限り `usize` や生ポインタは使わない)。

### Rust ツールチェーン
`rust-toolchain.toml` で定義:nightly チャンネル、コンポーネントは `rust-src` と `llvm-tools`。すべての `#![feature(...)]` 属性が引き続きコンパイルできることを確認せずにチャンネルを変更しないでください。

### ソースとドキュメント内の日本語
コメント、ドキュメントは日本語で記載されています。プロジェクトの README と CODE_OF_CONDUCT も日本語です。これは意図的なものです。 「修正」や翻訳はしないでください。
35 changes: 33 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,35 @@
/target
# bin
target/
/fs/
/ramfs/
initfs/
*.bin
*.elf
*.service
*.o
*.a
*.so
*.so.*
*.rlib

# editor config files
.idea/**
.vscode/**
.zed/**

# fossil version control
*.fossil
*.fslckout
*.log

# caches and logs
rustc-ice-*.txt
*.log
*.lock

# Pull Request diff and patch files
*.diff
*.patch

# applications and libs
src/lib/**
src/apps/**
18 changes: 18 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[submodule "src/lib"]
path = src/lib
url = https://sourceware.org/git/newlib-cygwin.git
[submodule "src/apps/Kagami"]
path = src/apps/Kagami
url = https://github.com/tas0dev/Kagami
[submodule "src/apps/Binder"]
path = src/apps/Binder
url = https://github.com/tas0dev/Binder
[submodule "src/apps/ViewKit"]
path = src/apps/ViewKit
url = https://github.com/tas0dev/ViewKit
[submodule "src/apps/Dock"]
path = src/apps/Dock
url = https://github.com/tas0dev/dock
[submodule "src/apps/Terminal"]
path = src/apps/Terminal
url = https://github.com/tas0dev/Terminal
10 changes: 0 additions & 10 deletions .vscode/settings.json

This file was deleted.

30 changes: 30 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
## mochiOS Code of Conduct

オペレーティングシステムは、多種多様なハードウェアを抽象化し、安全で過ごしやすい環境をアプリケーションに提供します。したがって、その実装も多様であり、その開発に関わる人々もまた、さまざまな背景や意見、独自性を持っているのは自然なことです。

mochiOSでは、OS開発に有用な情報を収集し公開すること、また開発者間での交流を促進することを目標としています。これを達成するには、すべての参加者がお互いを尊重し、建設的であることが重要です。そのための道しるべとして、ここに行動指針を定めます。

mochiOSのメンテナーの主催するイベント、およびmochiOSのメンテナーが管理するコミュニティに関わる全ての方には、この行動指針に記載されている内容を遵守することが求められます。

mochiOSのメンテナーには、本行動指針に反する行為をした参加者に対し、そのような行為を止めるよう声を上げる責任があります。同時に、参加者それぞれの適切な行動も重要です。
本行動指針に反してコミュニティの安全をゆるがす行為を継続した参加者に対しては、本コミュニティやその主催するイベントへの参加の禁止等の対処を行うことがあります。

### 求められる行動(ぜひやりましょう)

- 異なる意見、視点、経験を尊重し、お互いの違いを歓迎する
- 建設的な意見を積極的に発信し、知見を広く共有する
- 失敗を恐れず行動し、失敗を受け入れ、失敗から学ぶ
- 常にお互いに敬意をもって対等に接する

### 不適切とみなされる行動(してはいけません)
- 特定の個人や組織、製品やプロジェクトなどを貶めたり、誹謗中傷すること
- 性、性同一性、性表現、性的指向、障害、身体的外見、身体の大きさ、人種、民族性、国籍、宗教、年齢などに関する攻撃的、不適切、または不必要な言及
- あらゆる形態の、他者への脅迫・虐め・ハラスメント

## 相談先

[mochiOSメンテナー](./maintainer.md)の誰かに連絡してください。メールでも、TwitterのDMでもOKです。

---

このCoCは[osdev-jp](https://osdev.jp)の[CoC](https://osdev.jp/code-of-conduct.html)を元に、[tas0dev](https://github.com/tas0dev)が名称の変更などを行なったものであり、mochiOSのコミュニティはosdev-jpと一切関係ありません。
Loading