欢迎来到小狗。
Puppy是具有32位Intel CPU的IBM兼容计算机的操作系统(您可能已经以个人计算机的名称听说过这种硬件)。
幼犬的开发已于2018年1月1日开始,自2018年5月29日以来,该项目已经开源。从那时起,操作系统已发展为提供:
小狗还包括一个部分C/C ++标准库(最著名的是C ++ iostream )。
Puppy的用户空间由定制工具以及移植开源工具组成。值得注意的是,没有完整的C ++工具链,但是可用于脚本的Micropython端口。
未来的目标和功能由https://github.com/egranata/puppy/issues涵盖。虽然我很乐意接受特征思想和补丁的输入(但请参见下文),但有些事情是明确的非目标,即:
小狗在Qemu上进行了积极测试,偶尔会沼泽。 

假设满足了一些要求,小狗应启动并在实际PC上工作:
(*)对Bochs进行测试表明,Puppy可以启动像Pentium Pro一样古老的东西,但这在实际硬件上未经测试。 las,目前无法启动旧的任何东西(请参阅#63)。
(**)对QEMU进行的测试表明,33MB是幼犬启动到用户空间所需的最小值,但这在实际硬件上未经测试。
如果您的系统具有物理串行端口,则应该能够收集内核日志,这可能有助于诊断引导时间问题。我个人将picocom用于此目的,但是如果它们能够进行8N1 115200操作,其他工具也应起作用。启用启动时自定义串行端口设置的补丁很乐意接受。
也欢迎对其他虚拟化器和/或真实硬件进行测试。
要编译小狗图像,您需要使用Linux(本机或VM/Container中; docker可以使用)。 build/deps.sh (用于设置CI实例的脚本)恰当地描述了用于编译的依赖项。
假设您有适当的零件,可以编译项目,只需键入
$ ./build.py
在外壳中。这将搅拌一段时间(应该不到一分钟),并产生可引导的高清图像out/os.img 。
高清图像包括内核,以及相当最小的用户空间 +测试套件。它可用于启动仿真器,也可以将其稍微放在真实的硬盘上。
可以在build Directory中找到用于BOCH和QEMU启动器脚本的示例配置。
假设一切正常,启动小狗最终都带有外壳提示。 ls致力于开始探索文件系统。
非常欢迎对该项目的贡献。
问题列表(https://github.com/egranata/puppy/issues)积极地维护新的工作单位,并且可以从帮助和/或很棒的起点受益的问题标记为这样。
如果您想尝试将用户空间软件移植到Puppy,或为新硬件添加驱动程序,这也是欢迎的 - 您遇到的所有问题绝对值得报告。
为了一路加快您的贡献,请参阅CONTRIBUTING.md并遵循其中的指示。
请注意,这不是官方支持的Google产品。