子犬へようこそ。
Puppyは、32ビットIntel CPUを備えたIBM互換コンピューターのオペレーティングシステムです(パーソナルコンピューターという名前でこの種のハードウェアを聞いたことがあるかもしれません)。
Puppyの開発は2018年1月1日に開始され、プロジェクトは2018年5月29日からオープンソースが開催されています。それ以来、オペレーティングシステムは提供するようになりました。
子犬には、部分的なC/C ++標準ライブラリも含まれています(最も顕著なのはC ++ iostreamです)。
Puppyのユーザースペースは、カスタムツールと移植されたオープンソースツールの組み合わせで構成されています。特に、完全なC ++ツールチェーンはありませんが、Micropythonのポートがスクリプトに利用できます。
将来の目標と機能は、https://github.com/egranata/puppy/issuesでカバーされています。機能のアイデアとパッチ(ただし、以下を参照)の観点から入力を受け入れることを非常に嬉しく思いますが、明確な非ゴールであるものもあります。
子犬はQemuで積極的にテストされます - そして時々ボッチ。 

いくつかの要件が満たされていると仮定すると、子犬は起動して実際のPCで作業する必要があります。
(*)Bochsでのテストは、子犬がPentium Proのように古いものを起動できることを示唆していますが、これは実際のハードウェアではテストされていません。残念ながら、現在、あらゆるものを起動することは不可能です(#63を参照)。
(**)QEMUでのテストは、子犬がユーザースペースに起動するために33MBが最低必要であることを示唆していますが、これは実際のハードウェアではテストされていません。
システムに物理的なシリアルポートがある場合、ブートタイムの問題の診断に役立つ可能性のあるカーネルログを収集できるはずです。私はこの目的のためにpicocom個人的に使用していますが、8N1 115200操作が可能な場合は他のツールが機能するはずです。ブーツでシリアルポート設定をカスタマイズできるようにするパッチは、喜んで受け入れられます。
他の仮想化機や実際のハードウェアでのテストも大歓迎です。
子犬の画像をコンパイルするには、Linux(ネイティブまたはVM/コンテナで使用することができます。Dockerは機能することが知られています)。編集の依存関係は、 build/deps.sh (CIインスタンスのセットアップに使用されるスクリプト)によって適切に説明されています。
適切なビットとピースが所定の位置にあると仮定して、プロジェクトをコンパイルするには、入力するだけです
$ ./build.py
シェルで。これはしばらくの間(1分未満である必要があります)、起動可能なHDイメージout/os.imgを生成します。
HD画像には、カーネルと、かなり最小限のユーザースペース +テストスイートが含まれています。エミュレータを起動するために使用するか、実際のハードディスクにビットブラストすることができます。
BochsおよびQEMUランチャースクリプトのサンプル構成は、 buildディレクトリにあります。
すべてが機能すると仮定すると、子犬の起動はシェルプロンプトになります。 ls 、ファイルシステムの調査を開始するために機能します。
プロジェクトへの貢献は大歓迎です。
問題リスト(https://github.com/egranata/puppy/issues)は、新しい作業単位で積極的に維持されており、ヘルプから恩恵を受ける、および/または素晴らしい出発点である問題はそのようにマークされています。
ユーザースペースソフトウェアを子犬に移植したり、新しいハードウェアにドライバーを追加したりしたい場合は、歓迎されます。
あなたの貢献を受け入れに至るまで促進するために、 CONTRIBUTING.md参照して、その中の指示に従ってください。
これは公式にサポートされているGoogle製品ではないことに注意してください。