▲ 12 r/WorldLikeAnOnionmixer+1 crossposts

I've completed the first milestone of the restored Intel version of the OPENSTEP 4.2 kernel.

Even though it was booted using Qemu-NeXT, referenced some other kernel code, and AI did all the heavy lifting... it finally boots up!

I'm not entirely sure if 100% of the functionality has been fully restored, but I verified binary-level identity against the original kernel (unmodified pure 4.2) and successfully confirmed it boots.

I still need to analyze and restore the binaries for the m68k and SPARC kernels to make the restored code even more robust, but for now, I'm just glad to have a solid baseline kernel reference for future research.

After this, I'll probably take a look at the Patch 4 kernel and add whatever is missing if needed.

While working on this, I had Claude check out various rumors about SMP in Mach 4. Personally, I'd love to improve things like the thread model and SMP... but modernizing the threads would require restoring several other libraries alongside OPENSTEP's libc, so... I've decided to put that task off to the distant future.

github.com
u/These_Magician_3789 — 7 days ago
▲ 13 r/gnustep

Not sure if this is considered news, but... I've put together a packaging for NEXTSPACE on Ubuntu 22.04.

While I was at it, I added a few minor patches and some environment variable support for CJK (which basically just means im-config support using fcitx5).

Since it's a rough piece of work done with the help of AI, I'm a bit hesitant about whether I should even let the NEXTSPACE developers know.... But I figured it's important to leave a record that "proper Korean input" has been tested and works in Terminal.app, so I'm reporting it on Reddit for now. Please let me know if there are any issues.

github.com
u/These_Magician_3789 — 20 days ago

First off, sharing my work with the world feels so incredibly rewarding.

https://github.com/gnustep/libs-gui/pull/941

Hmm... this was actually something I planned to cover separately in a future video about OPENSTEP... but since today is a personally joyous occasion (?), I thought I'd write a bit of a longer post. I'm planning to share a bit of history about OPENSTEP along with it... so please bear with me if some of the content feels a little unfamiliar!

Objective-C, which was heavily influenced by Smalltalk, and NeXTSTEP, the very first OS to adopt Objective-C as its primary system language, even used the multi-column list view from Smalltalk's object browser in its file manager interface. For someone like me who was always fascinated by the mystical programming language (and environment, and OS) that is Smalltalk... maybe it was only natural—almost like destiny—that I'd fall in love with NeXTSTEP and OPENSTEP.

While NeXTSTEP itself was strictly viewed as an OS, during the OPENSTEP era, the concepts were split into OPENSTEP as an Operating System and OpenStep as a Framework Specification (to be precise, you have to be mindful of the capitalization). So while the OS itself was the core focus before, OPENSTEP shifted toward becoming a foundation to run the Framework. Because of this, there are a few aspects of OPENSTEP that only become visible once you understand its history. To break them down...

* OPENSTEP for Mach

* OPENSTEP for Intel

* OPENSTEP for SPARC

Up to this point, these represent OPENSTEP as an OS. Next are the implementations as a Framework:

* OPENSTEP for Windows (targeting WinNT 4.0)

* OPENSTEP for Solaris (targeting SunOS 2.7 / Solaris 7)

These were basically the OPENSTEP Framework spec overlaid on top of other operating systems... In modern Linux terms, think of it like GNOME for Windows or KDE for Windows. As a side note, "OPENSTEP for Windows" didn't feature a dedicated desktop UI... it was primarily provided as an environment to run WebObjects—OPENSTEP's signature WAS (Web Application Server)—on Windows.

Anyway!!!! Based on these OPENSTEP framework specification documents, an open-source initiative was born: "Let's build an open-source implementation of this!" That project is GNUSTEP. Desktop projects built on top of GNUSTEP include Étoilé and NEXTSPACE, and there are even GNUSTEP-based Linux distributions released on a regular basis. It's a project that is still actively alive today.

Recently, I created a project called `nibmaker` to parse `.nib` files—the UI layout files used by OPENSTEP's Interface Builder—on Linux. I shared a post about it on the Reddit r/gnustep community. And that led directly to the result in the first link above! At the very bottom of that thread, someone left this comment:

"So, after 25-30 years, GNUstep can finally read OPENSTEP nibs. :) It's a sight to behold. This is NeXTGo's original nib from OPENSTEP4.2 in Gorm. This is a new feature, so it won't be included in the upcoming release in October, but the work was interesting and I learned a great deal."

How should I put it... For so long, I felt like I lacked the skills, so I could only watch from afar, just hoping that someday I could contribute something meaningful to GNUSTEP... To know that code I worked on—even if built with AI assistance—could serve as a stepping stone for the GNUstep community... honestly, I feel like I just checked off one of the biggest items on my lifelong bucket list.

Man... I feel insanely good today... Seriously. It feels like placing a tiny grain of sand onto something I've admired since I was a kid... If a fan successfully meets their favorite celebrity, I imagine it must feel something like this! :D

u/These_Magician_3789 — 27 days ago

Successfully installed OPENSTEP for SPARC!

Some might say, 'Why make things so hard when others do it so easily?'

And honestly, I do feel like I took the hardest possible route to get this installed, haha.

But for someone who only ever heard rumors like 'yeah, that's actually possible' back when I was a kid, today feels immensely rewarding.

With this, I now own OPENSTEP across all three supported platforms: Intel, Mach, and SPARC :D

Unfortunately, the HDD isn't in great shape, so I'll need to reinstall using SCSI2SD... but I don't think the setup itself will be difficult from here on out. My plan is to use a 4GB SD card on the SCSI2SD, split it into 2GB/2GB partitions, install OPENSTEP for SPARC on one side, and install Solaris 2.7 on the other so I can give OPENSTEP for Solaris a try as well.

Anyway, I'll keep pushing forward step by step!

u/These_Magician_3789 — 27 days ago

Today is another memorable milestone in my NeXT life.

Back in the day, NeXTSTEP 3.3j had a Korean IME developed by a local company called "Sinmyung System." It worked seamlessly across all architectures: NeXT, Intel, SPARC, and PA-RISC. They were also the official distributor of NeXTSTEP in South Korea.

Later, while they were in the middle of developing a Korean IME for OPENSTEP, the Apple-NeXT merger was announced. Rhapsody was released, followed by Mac OS X. Sinmyung System ultimately halted development on the OPENSTEP IME, leaving behind only an incomplete, feature-limited version restricted to OPENSTEP for Intel.

Recently, I managed to restore the Korean IME for OPENSTEP with the help of AI. I also added support for different Korean keyboard layouts—Sebeolsik 390 and Sebeolsik Final, alongside the standard Dubeolsik—much like switching between QWERTY and Dvorak.

https://github.com/onionmixer/SMInputKor-remade

By fully restoring it to source code, I confirmed that porting it to Mach and SPARC architectures was entirely feasible. And today... after setting up a fresh OPENSTEP Mach machine, I was finally able to get Korean input up and running on OPENSTEP Mach! (Once I finish setting up my SPARCstation 20 with OPENSTEP, I believe I'll be able to achieve the exact same thing on SPARC.)

There are only a handful of people left in Korea who own Mach hardware and are still reachable, but I hope this project holds some meaningful significance for them. :D

u/These_Magician_3789 — 1 month ago

A photo from back in 2001, when I was carrying around my NeXTstation.

Years ago... when I was young and didn't have much money, I worked part-time jobs just to save up for a NeXTstation. Since CRTs were everywhere back then, I used to lug the NeXT machine around to work on it.

Fast forward to today, my bag currently holds 4 laptops, but I'm still deeply in love with NeXT machines. :D

u/These_Magician_3789 — 1 month ago

I truly love NeXT and ThinkPads.

Here's a fresh photo I took today!

While I love most retro hardware, NeXT and ThinkPads hold a very special place in my heart. So much so that back in the day, I used to collect stickers made by user groups or even drive the production of them myself. (The colorful logos are all original, by the way.)

These are the results of projects done over a decade ago.

While I could still remake most of the other items today if I wanted to... there's one that's pretty unique: the black NeXT logo pieces.

About 14 years ago, I managed to get a set of 5 plastic NeXT logos on eBay. They were, of course, original plastic logos used on authentic NeXT hardware. I asked an acquaintance who was skilled in CATIA to turn them into a 3D design, and then handed that blueprint over to someone who did small-batch ceramic manufacturing.

Each logo cost around $110 to produce. I made 10 in total, gave a few to friends as gifts, and even mailed one to Rob over at Black Hole Inc. in the NeXT community (though he probably doesn't remember it now, haha). Since they're ceramic, they're nice and heavy—they have a much meatier, solid feel to them compared to the original plastic ones :D

u/These_Magician_3789 — 1 month ago

I recently built a small project for ""nib" file from OPENSTEP.

Lately, I've been using AI to develop a few drivers and software for OPENSTEP... and I hope these contributions prove helpful to projects like GORM.

https://github.com/onionmixer/NIBMAKER-FOR-OPENSTEP

I haven't settled on a license yet, but I have no plans to keep it under a proprietary license.

On Linux, it can capture screenshots of nib files used in OPENSTEP's Interface Builder, decompose them into XML, and reassemble them back into nib format. While working on this using Claude Code, I've been utilizing it to handle the driver property elements for OPENSTEP's Configure.app.

Although it doesn't support every single object yet, it handles most of them without issue. I'm sharing this news in the hope that it might help improve OPENSTEP compatibility in GORM.

reddit.com
u/These_Magician_3789 — 1 month ago