Repository navigation
Releases: HobbyOSs/opennask
Releases · HobbyOSs/opennask
Release list
Release 2.0.0
概要
アセンブラを Go 版の gosk から Raku 版の rakusk へ移行。
『30日でできる!OS自作入門』の Day 21 までのプロジェクトについて、ビルド環境の整備を完了。
主な変更点
1. ツールチェイン
- アセンブラ:
goskからrakuskへの移行。 - ビルドシステム: CMake および Ninja への統一。
- コンパイラ・リンカ: Clang および LLD (i386-elf ターゲット) の採用。
2. 対応状況
- Day 01 〜 Day 21: 全プロジェクトのビルドおよび OS イメージ(.img)生成を確認。
- Day 22 〜 Day 30: ディレクトリ構成変更(
apilib導入等)への対応のため、現在はビルド対象から除外。
3. CI/CD ・開発環境
- GitHub Actions: 依存パッケージのキャッシュ利用、Ubuntu 標準パッケージ(apt)によるツールインストールへの変更。
- 自動ビルド: コミットごとの OS イメージ生成。
4. ドキュメント
README.md,README:rakuskのセットアップ手順を追加。INSTALL: インストールおよびビルド手順を記述。
5. 管理
- Memory Bank: プロジェクトの進捗、設計判断、技術的コンテキストの記録を開始。
今後の予定
- Day 22 以降のプロジェクト対応(
apilibの整備と統合)。 - QEMU による動作検証の継続。
Full Changelog: 1.0.3...2.0.0
Release 1.0.3
Release 1.0.3
- Pass1アセンブラの仕組みの採用が大きな変更点
- 依存ライブラリはgit submoduleで管理するようにした。
- GoogleTest、backward-cpp、incbin、jsoncons、json-x86-64を導入した
まだ処理系の置き換えには至っていないので、マイクロバージョンを+1。もうすぐ本当に置き換えられそう。
What's Changed
- x86_64の命令セットのJSONデータベースを読み込むPOC by @hangingman in #62
- Pass1アセンブラの実装, GoogleTest導入 by @hangingman in #63
- Pass1アセンブラの実装, 必要な機械語のサイズを出力する実装とテスト by @hangingman in #64
- Pass1アセンブラの実装とテスト, 3日目までのオペコードまで by @hangingman in #65
- Pass1アセンブラの仕組みを利用してJMP系の実装を修正し、テストを通す by @hangingman in #66
Full Changelog: 1.0.2...1.0.3
Release 1.0.2
Release 1.0.2
パーサージェネレーターの導入が大きな変更点
まだ処理系の置き換えには至っていないので、マイクロバージョンを+1
What's Changed
抜粋
- gccのpieオプションの対応 #28
- editorconfig導入 #33
- opennaskの実装をbnfcの生成コードで置き換え(1) by @hangingman in #40
- opennaskの実装をbnfcの生成コードで置き換え(2) by @hangingman in #41
- opennaskの実装をbnfcの生成コードで置き換え(3) by @hangingman in #43
- opennaskの実装をbnfcの生成コードで置き換え(4) by @hangingman in #44
- opennaskの実装をbnfcの生成コードで置き換え(5) by @hangingman in #45
- opennaskの実装をbnfcの生成コードで置き換え(6) by @hangingman in #47
- opennaskの実装をbnfcの生成コードで置き換え(7) by @hangingman in #48
- opennaskの実装をbnfcの生成コードで置き換え(8) by @hangingman in #49
- opennaskの実装をbnfcの生成コードで置き換え(9) by @hangingman in #50
- opennaskの実装をbnfcの生成コードで置き換え(10) by @hangingman in #54
- opennaskの実装をbnfcの生成コードで置き換え(11) by @hangingman in #55
- opennaskの実装をbnfcの生成コードで置き換え(12) by @hangingman in #57
- Pass1アセンブラの導入のための前準備, spdlog(logger)の更新 by @hangingman in #61
Full Changelog: 1.0.1...1.0.2
Release 1.0.1
Release 1.0.1
OS自作入門 20日目までのオペコードを網羅
CMakeからは
1日目〜20日目の harib17h までをビルドと実行できる
Release 1.0.0
Release 1.0.0
OS自作入門 10日目までのオペコードを網羅、Release 0.0.4に加えて以下のオペコード
- XOR, JNE
CMakeからは
1日目〜14日目の harib11c までをビルドと実行できる
Release 0.0.4
Release 0.0.4
OS自作入門 4日目までのオペコードを網羅、Release 0.0.3に加えて以下のオペコード
- STI, OUT, POP, PUSHF/PUSHFD, POPF/POPFD, PUSH
Release 0.0.3
Release 0.0.3
OS自作入門 3日目までのオペコードを網羅
- ADD, ALIGNB, AND, CALL, CLI, CMP, DB, DD, DW, GLOBAL, HLT, IMUL, IN, INT, JAE, JBE, JB, JC, JE, JMP, JNC, JNZ, JZ, LGDT, MOV, NOP, OR, ORG, OUT, RET, RESB, SHR, SUB
Release 0.0.1
Release 0.0.1
OS自作入門 2日目までのオペコードを網羅
- ADD, CMP, DB, DD, DW, HLT, INT, JE, JMP, MOV, ORG, RESB