Skip to content

Releases: HobbyOSs/opennask

Release 2.0.0

Choose a tag to compare

@hangingman hangingman released this 21 Mar 14:36

概要

アセンブラを 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

Choose a tag to compare

@hangingman hangingman released this 30 Mar 14:21
6a34d2a

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

Choose a tag to compare

@hangingman hangingman released this 16 Feb 14:30
4c54667

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

Choose a tag to compare

@hangingman hangingman released this 05 Jan 14:27

Release 1.0.1

OS自作入門 20日目までのオペコードを網羅

CMakeからは
1日目〜20日目の harib17h までをビルドと実行できる

Release 1.0.0

Choose a tag to compare

@hangingman hangingman released this 20 Dec 17:04

Release 1.0.0

OS自作入門 10日目までのオペコードを網羅、Release 0.0.4に加えて以下のオペコード

  • XOR, JNE

CMakeからは
1日目〜14日目の harib11c までをビルドと実行できる

Release 0.0.4

Choose a tag to compare

@hangingman hangingman released this 08 Dec 16:10

Release 0.0.4

OS自作入門 4日目までのオペコードを網羅、Release 0.0.3に加えて以下のオペコード

  • STI, OUT, POP, PUSHF/PUSHFD, POPF/POPFD, PUSH

Release 0.0.3

Choose a tag to compare

@hangingman hangingman released this 05 Dec 13:21

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

Choose a tag to compare

@hangingman hangingman released this 23 May 14:28

Release 0.0.1

OS自作入門 2日目までのオペコードを網羅

  • ADD, CMP, DB, DD, DW, HLT, INT, JE, JMP, MOV, ORG, RESB