ZigによるRISC-V上での最小限のタイムシェアリングOSカーネル

2025-09-14
ZigによるRISC-V上での最小限のタイムシェアリングOSカーネル

この記事では、Zigプログラミング言語を使用してRISC-V上で実装された、最小限の概念実証的なタイムシェアリングオペレーティングシステムカーネルについて詳述しています。このプロジェクトは、学部レベルのOS課題の再実装であり、最新のツールとRISC-Vアーキテクチャを活用しています。静的に定義されたスレッド、スレッド間のシステムコール、タイマ割り込みによるラウンドロビン方式のスケジューリングを備えています。基本的なスレッドの仮想化が実装されており、各スレッドはプライベートスタックとレジスタコンテキストを持っています。コードはオープンソースであり、作者は実装とコードの説明の詳細な解説を提供しており、システムソフトウェアとコンピュータアーキテクチャの学生にとって貴重なリソースとなっています。

続きを読む
開発

ベアメタルRISC-V上でNewlibを用いたコンパクトなC標準ライブラリの構築

2025-04-26
ベアメタルRISC-V上でNewlibを用いたコンパクトなC標準ライブラリの構築

この記事では、ベアメタルRISC-Vシステム上でNewlibを利用してコンパクトなC標準ライブラリを構築する方法を示します。著者はUARTの基本的な関数を実装し、それらをNewlibに渡すことでprintf機能を実現します。記事ではNewlibの概念、クロスコンパイルツールチェーンの設定、UARTドライバ、システムコール、リンカスクリプトの作成について解説しています。最後に、QEMU上でアプリケーションを実行し、デバッグログを分析します。これは、リソースの限られた環境でC標準ライブラリを使用する方法を示す、組込みシステム開発に関する実践的なチュートリアルです。

続きを読む
開発