【Hacker News搬运】PumpkinOS,PalmOS的再实现
-
Title: PumpkinOS, a Re-Implementation of PalmOS
PumpkinOS,PalmOS的再实现
Text:
Url: https://github.com/migueletto/PumpkinOS
PumpkinOS 是一个重新实现的 PalmOS,可以在现代架构(x86、ARM 等)上运行。 它不是一个普通的 PalmOS 模拟器(它不需要 PalmOS ROM),但可以运行 m68K PalmOS 应用程序。 关于 PumpkinOS 的各种方面的系列文章,请查看这里:[PumpkinOS 文章](https://pmig96.wordpress.com/category/palmos/)。 Launcher 是 PumpkinOS 启动时运行的第一个应用程序,它显示一个面板,从这里您可以启动其他应用程序。 Preferences 最终将包含所有配置 PumpkinOS 的偏好选项。 Command 是一个命令壳,仍然处于实验阶段。 此版本包含 PalmOS 上的四个 PIM 应用程序:AddressBook、MemoPad、ToDoList 和 DateBook。这些应用程序的源代码 分布在 PalmOS SDk 的一个或多个中,并已适应正确地在 PumpkinOS 上编译。 AddressBook 和 MemoPad 创建的记录应与它们的 PalmOS 对应物兼容。然而,由于字大小和字节序的不同,ToDoList 和 DateBook 创建的记录不兼容。 这些应用程序仅测试到我可以创建和编辑几条记录的程度。还有一些怪癖,有些功能根本没有测试。 这里的目的是只是提供一个对未来 PumpkinOS 期望的视图。 我计划建立一个错误跟踪器来记录改进和错误。 PumpkinOS 是在 GPL v3 许可证下发布的。 许可证目录包含有关 PumpkinOS 中使用 various components 的具体许可证信息。 如果您认为有什么缺失或错误,请告诉我。 您必须从源代码构建 PumpkinOS。不需要 IDE,您可以从命令行构建。 如果您使用的是 64 位 Windows,可以使用 MSYS2([MSYS2](https://www.msys2.org/))。下载安装程序并按照那里的说明操作。 打开 MINGW64 终端(带有蓝色 'M' 图标的那个)并安装这些附加包: pacman -S gcc binutils make git 接下来克隆 PumpkinOS 仓库: git clone https://github.com/migueletto/PumpkinOS.git 最后,转到您刚刚克隆的 PumpkinOS 仓库的源代码目录并运行 make 脚本: cd PumpkinOS/src ./mk.sh Msys 64 如果一切顺利,您将在根目录中获得一个 pumpkin.exe,在 bin 目录中获得一些 DLLs,在 vfs/app_install 目录中获得一些 PRC 文件。 对于 32 位 Windows(Vista 或更高版本。它不会在 Windows XP 上工作),还有实验性的支持。 打开一个 MINGW32 终端(带有灰色 'M' 图标的那个)并安装这个附加包: pacman -S mingw-w64-i686-gcc 从这里,使用以下命令编译(注意现在参数是 32,用于 32 位): cd PumpkinOS/src ./mk.sh Msys 32 如果您使用的是基于 Linux 的 64 位操作系统(如 Debian、Ubuntu 等),您还需要 gcc、binutils、make 和 git。如果您是开发者, 很可能已经有了这些工具。如果没有安装,请按照您特定的 Linux 发行版说明下载附加包。 您还需要安装 SDL2 开发包(包含库和头文件的包)。在 Debian 发行版上,它可能类似于: sudo apt install gcc binutils make git libsdl2-dev 同样,您必须克隆仓库并使用以下命令编译: cd PumpkinOS/src ./mk.sh GNU/Linux 64 在 Windows 11 和 recent releases of Windows 10 上,还可以在 WSL(Windows Subsystem for Linux,version 2)上构建 PumpkinOS。 打开一个 WSL 终端并按照 Linux 构建的相同说明操作。 在 64 位 Windows 上,运行 pumpkin.bat。在 32 位 Windows 上,运行 pumpkin32.bat。在 Linux 或 WSL 上,运行 pumpkin.sh。PumpkinOS 将在新窗口中打开。 在 WSL 上,您可能需要运行一个 X-Window Manager,否则 PumpkinOS 窗口将没有边框。 当您运行 PumpkinOS 时,vfs/app_install 中的所有 PRC 文件将被移除并扩展到 vfs/app_storage 中的文件夹中。 请记住,此时一切都很实验性,所以预计会有一些小问题。 无论是成功还是失败运行后,您都会在根目录中发现一个 pumpkin.log 文件。
Post by: rickcarlino
Comments:
frellus: Nothing made me feel older than going to the Computer History Museum in Mountain View, CA and seeing a Palm Pilot in the display case.<p>It should be illegal to show things which were an integral part of your life, a short 30'ish years ago, as if they were uncovered in the ruins of some pre-civilization. Not fair at all.
frellus: 没有什么比去加利福尼亚州山景城的计算机历史博物馆,在展示柜里看到Palm Pilot更让我觉得自己老了<p> 展示你生活中不可分割的一部分,短短的30;大约几年前,就好像它们是在某种前文明的废墟中被发现的一样。一点也不公平。
verdagon: This PumpkinOS project is pretty incredible. I can't imagine how much effort it would take to be compatible with all the system calls that the average Palm app would expect. I remember Palm did some truly weird things with memory: anything moderately large would need to be put into a special memory block that the OS could rearrange at will, and one would need to lock the block's handle to keep it stable while accessing it. Stuff like that must have been challenging (and fun) to implement in PumpkinOS.<p>This brings me back. I used to make little games for Palm OS, and I was so excited for the next version of the OS which would let one use the (then new) Palm OS Development Suite to make programs. It was also the last OS I've used where an app had a central event loop. Everything else today has UI frameworks that handle it for you. Things are easier now, but I still miss it.
verdagon: 这个PumpkinOS项目非常令人难以置信。我可以;想象一下,要想与普通Palm应用程序所期望的所有系统调用兼容,需要付出多大的努力。我记得Palm在内存方面做了一些非常奇怪的事情:任何适度大的东西都需要放入一个特殊的内存块中,操作系统可以随意重新排列,并且需要锁定该块;s句柄在访问它时保持稳定。在PumpkinOS中实现这样的东西一定很有挑战性(也很有趣)<p> 这让我又回来了。我曾经为Palm操作系统制作小游戏,我对下一个版本的操作系统感到非常兴奋,它将允许人们使用(当时是新的)Palm OS开发套件来制作程序。这也是最后一个OS I;我使用了一个应用程序有一个中心事件循环的地方。今天的其他一切都有UI框架为您处理它。现在事情变得容易了,但我仍然怀念它。
duskwuff: Also possibly of interest: rePalm, a project to run PalmOS on ARM microcontrollers like the RP2040 - <a href="http://dmitry.gr/?r=05.Projects&proj=27. rePalm" rel="nofollow">http://dmitry.gr/?r=05.Projects&proj=27. rePalm</a>
duskwuff: 也可能感兴趣的是:rePalm,一个在像RP2040这样的ARM微控制器上运行PalmOS的项目-<a href=“http:/;dmitry.gr/?r=05.Projects&;proj=27.%20rePalm”rel=“nofollow”>http:ȏ/;dmitry.gr/;?r=05.项目&;proj=27.%20rePalm</a>
ethanpil: What would it take to get this on modern (or even last generation) phone hardware?<p>I bet we could do everything we want with tremendous simplicity and out of this world battery life...
ethanpil: 在现代(甚至上一代)手机硬件上实现这一点需要什么<p> 我敢打赌,我们可以用极其简单的电池寿命做我们想做的一切。。。
thot_experiment: So hype to lose some hours playing Space Trader. I had a Palm Vx in middle school and I have some very fond memories of playing that game under my desk in class.
thot_experiment: 所以炒作损失了一些时间玩空间交易。我在中学时玩过Palm Vx,我对在课堂上在桌子下玩那个游戏有着非常美好的回忆。