Carmack on Operating Systems (1997)
Posted3 months agoActive2 months ago
rmitz.orgTechstoryHigh profile
calmmixed
Debate
40/100
Operating SystemsJohn CarmackNextstep
Key topics
Operating Systems
John Carmack
Nextstep
The post shares John Carmack's 1997 essay on operating systems, sparking discussion on his views and how they may have changed over time, with commenters reflecting on the evolution of OSes and Carmack's influence.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
2m
Peak period
70
0-12h
Avg / period
11.6
Comment distribution81 data points
Loading chart...
Based on 81 loaded comments
Key moments
- 01Story posted
Oct 24, 2025 at 8:59 PM EDT
3 months ago
Step 01 - 02First comment
Oct 24, 2025 at 9:00 PM EDT
2m after posting
Step 02 - 03Peak activity
70 comments in 0-12h
Hottest window of the conversation
Step 03 - 04Latest activity
Oct 29, 2025 at 7:29 AM EDT
2 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45700562Type: storyLast synced: 11/20/2025, 3:53:09 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
I had a Power Mac.
> If I can convince apple to do a good hardware accelerated OpenGL in rhapsody
Yeah, that comment aged well. Mac users are still waiting for full OpenGL 4.6 compliance and that spec is already ten years old.
Edit: of course, I will get down-voted despite laying out very basic facts. Happens every time you poke the dogma bee's nest.
Edit edit: I am still genuinely curious why the man's opinion from 30 years ago apparently matters to you that much. I'd like to understand the psychology behind it if you would care to write a response.
OSX is sortof nextstep for the masses, but the differences might be things he cares about.
The most timeless thing here is Linux retaining its "highest hacker to user ratio".
Windows still rules the roost, though it wouldn’t be referred to as Win32 today for various reasons. Linux is even more important today, given the Steam Deck and Proton; but still a smaller market than Windows. And macOS is even more of the third-option today given their antagonistic support to OpenGL/Vulkan and non-Apple-first developers (in general).
If anything, Linux would probably be switched to first since Carmack was always a hardline supporter and it seems to have the most capture velocity; but that’s still quite unlikely. And obviously all the other platforms would be missing from the list altogether given the triopoly/triculture that the modern desktop OS sphere has evolved into.
It’s the biggest Vulkan target, by far.
Is John Carmack the Ja Rule of programming?
Everything else is either Java/Kotlin based or the set of official NDK APIs.
https://developer.android.com/ndk/guides/stable_apis
It is hit and miss if using unstable APIs works across devices.
Win32 is stable, supported and will stay supported forever, as various technologies built on top of it come and go. It is the API for the OS.
> Linux is even more important today, given the Steam Deck and Proton
Which uses Win32 under the hood!
There is a running joke that Win32 is the Linux's most stable API.
Though judging from how CS2 is going, it seems that the quarantine measures aren’t particularly airtight.
And that's a good thing because for game development you don't need much more from the OS, just enough to get a window, input events, audio and networking. All the interesting stuff all happens in the 3D APIs, and those have changed a lot since the early 2000s.
And “Win32” as a reference to the platform is well gone, as it’s exclusively “Win64” on the x86 side these days.
Thus why I said it would be unlikely he would refer to it as “Win32” specifically today. But yes, if you conflate “Win32” to “native Windows API” (even that term will be controversial, so replace “native” with “legacy” at your preference), it’s all the same today as then.
Except for the 3D API, the requirements for game development on the OS haven't changed much since around WinXP, and the fact that Win32 hasn't changed much since WinXP is still the greatest quality of Windows (since anything that came after the classic Win32 APIs was pretty much a shitshow - with the notable exception of DirectX).
It's genuinely true. With the exception of the Linux ABI, everything else is in constant flux. I think systemd has slowly taken over the world to the point that it's not going anywhere but beyond that it gets really thin.
Since Windows Vista, most new APIs have been introduced as COM libraries, exception being DDK and extending versions of existing ones with new nummeric or Ex suffixes.
Besides COM, other ones have been based on WinRT, which is COM upgraded to use .NET metadata instead of type libraries, and an additional base interface for reflection, IInspectable.
I wouldn't assume that. The journey towards the web as an application delivery platform is making Win32 less relevant as time goes on.
Windows is a legacy OS that isn't developed anymore and only exists to support the Excel cash cow.
More so than BSD? Or still more than just the OSs Carmack listed?
Whereas it was a niche but still relatively common for teenage hobbyists to install Linux, get X11 running, read the HOWTOs and surf the web with Netscape for Linux[1] on the home (or school) PC and geeking out on all the Unix things that you heard the older kids got to use at the university lab workstations.
You could argue those users had the hacker spirit of course and many of them did learn programming as well after a while since you still ended up building stuff from source half the time when you wanted to install something.
It helped that you could easily get your hands on cheap Linux install CDs in bookstores and computer shops.
[1] Netscape seems to have been at version 4.0 by 1997. WP thinks version 2 was already available for Linux.
Hardware compatibility was a major issue. Even if hardware was compatible with Linux it often wouldn't work out of the box. Most homes had only a single internet connected device so if you borked your system you had to have friends that would know how to guide you to fix it over the phone or you had to travel to someone else house to check the internet then come back and try what you wrote down. Users who had no patience for this would get filtered out of the userbase.
I would argue that in this case though the kernel is more relavent. So I'd still say Android is Linux based.
If you really want 1:1 hacker-to-user ratio you'd need to go to Haiku.
Really?
What do you think hackers are using now?
If they just meant "the hacker to user ratio" diminished, they should've said that, but it seems like a weird way/phrasing to acknowledge that linux-using-hackers sell to non-hackers (and is a no duh).
Carmack's point was that linux was a good place to get hackers, so it's good for him to target as a business, but maybe it's better to get them on mac now (in 2025). I don't know: I use a mac laptop outside of my office, but I mostly just use it to browse the web and remote to my linux desktop inside my office. I wonder sometimes if it is important to target mac to get smarter users, and so I might believe mac has the "highest hacker to user ratio" now when in 1997 Linux definitely did. Depending on what I'm doing the bsds might be a better focus.
That is, I suspect that Linux might not actually have the "highest hacker to user ratio" anymore, which is what I think the person I am replying to meant as well. I don't know; and I don't have good reasons for believing such a thing that beyond my own experiences, but I'm curious and willing to be convinced, and so I ask questions.
Are they though? Except for Windows everything else has become a UNIX (even on game consoles, Xbox runs a Windows derivate and PlayStation runs on a BSD kernel, only Nintendo is still doing their own thing).
The OS diversity in the 90s was much bigger than today, AmigaOS, RiscOS, AtariTOS, BeOS and the original MacOS were all siginificantly different from each other, much more different than Linux vs macOS vs Android vs iOS.
Windows stuck as the id tooling platform. I'm guessing by the time OS X was relevant, id Software had grown and all the tooling that would've benefited from Interface Builder was maintained by different folks. And Carmack was focused on getting the most out of various graphics cards, where Win32 drivers were both the cutting edge and what consumers had.
(but yes, year added above!)
Sounds like the weighs and considers everything very carefully
Here is an archive for anyone interested. I think the most interesting stuff is when accelerated GPUs started becoming available to consumers and he talks about the developments in that area. From what I recall that is in the 1997 - 1998 era.
* https://github.com/oliverbenns/john-carmack-plan
EDIT: I found one...
* https://github.com/oliverbenns/john-carmack-plan/blob/master...
This site had nice re-uploads for the some of the articles. You can maybe google around and find more
[0] http://sevangelatos.com/tag/john-carmack/
Brutal, but the window manager is probably one of the three big things hurting plan9 adoption (along with the lack of common editors like emacs/vim, and the lack of modern web browsers)
When Steve Jobs returned to Apple, he brought NextStep with him. The new version of the OS was basically FreeBSD core with a NextStep inspired desktop. The same could have been done for Plan9.
Also I'm much more of a keyboard + tiling window manager kind of a person, so the plan9 focus on the mouse isn't my cup of tea.
Here's a few screenshots:
https://old.reddit.com/r/plan9/comments/1f9c50n/lola_screens...
Every couple of years I resolve to try plan9 again, because I love the idea of it. and every time I sort of lose interest, I am mot a good enough programmer to make the pieces I want from scratch, it is too hard to port existing software, every thing is too different from any unix system. So I struggle for a day or two then go back to my obsd. As shallow as it is I think having a good web browser would solve 90% of my issues. and we loop back to the no C++ compiler again.
That does indeed sound like what Plan 9 devs would do. Funny how this "no C++ compiler" stuff transferred to Go too, where there is no cppgo, only cgo integration :)
Having said this, yes even though C++ was born on the same build as UNIX and C, there wasn't much love towards it from UNIX authors, nor towards ANSI/ISO C for that matter, hence why Plan 9 and C compiler are their own thing, same on Inferno regarding the provided C compiler.
Carmack's description of the rio GUI is apt; rio is heavily based on Xerox PARC's Cedar environment from the mid-1980s (https://www.youtube.com/watch?v=z_dt7NG38V4). I had a hard time getting used to rio, though eventually I learned it. I even purchased an old Sun three-button mouse (with no click-wheel) since Plan 9 didn't like my click-wheel mouse. rio does not adopt a lot of the conventions that were introduced by the Apple Lisa, Apple Macintosh, and Microsoft Windows, resulting in a completely foreign experience for most new Plan 9 users. There is a misconception that Apple and Microsoft simply stole the idea of GUIs from Xerox PARC without further innovating on it. This misconception is false; the Apple Lisa and the Apple Macintosh introduced many GUI conventions that were not present in Xerox PARC's GUIs (this video comparing the Apple Lisa to the Xerox Star highlights the differences: https://www.youtube.com/watch?v=pBiWtJJN5zk), and Windows introduced additional innovations. Back to Plan 9, the result is a GUI that has many conventions that were explored by Xerox PARC but were not adopted by the Mac or Windows, such as mouse chording (https://en.wikipedia.org/wiki/Mouse_chording). Hence, there's a learning curve for those accustomed to conventional GUIs.
Even so, the ideas behind rio seem to do a good job with exploiting Plan 9's architecture and showing how it could support a more tools-oriented design. Moreover, it was borrowed from Xerox PARC's Cedar. It would have been quite a research effort to create a Mac- or Windows-like GUI for Plan 9 that made full advantage of Plan 9's "everything is a file" architecture. Merely implementing a Mac- or Windows-like GUI to Plan 9 might not have taken full advantage of Plan 9's architecture, which I think is the key difference between Plan 9 versus other operating systems.
Perhaps in some alternate universe where Apple and AT&T merged in the 1990s and Apple built their successor to the classic Mac OS on top of Plan 9 with Apple people like Larry Tesler, Bruce Tognazzini, and Alan Kay joining forces with Dennis Ritchie, Ken Thompson, and Rob Pike....come to think of it, it's quite interesting to think about that possibility, though I don't think Apple would have made its post-1997 comeback without Steve Jobs, no matter how good "Mac OS Plan 9" would've been.
it never felt serious, just more like a technology demo. it was also hard to really see the beauty of the 9pfs on a single host... i always assumed it needed to be on some bell labs network with a bunch of other plan9 stuff to really shine.
in 1997 i had a windows nt 4.0 machine (might have been a beta) on my desk and a next turbo mono slab. visual studio wasn't terrible for development (and was a great place to get good at c++ and multithreaded), and they managed to bring all the directx stuff over. it was like windows 95, but serious and stable.
it replaced a slackware machine and a sgi indy. the indy was cool because it played a little song when you started it up and it had a novel ui with lots of cool color gradients, but otherwise it was kinda buggy. (the "objectserver" would frequently crash inexplicably. what objects did it serve? i have no idea.)
i liked the aesthetics of those machines and the tactile feel of the keyboard.
I've half an idea that the "guitar" like sound it played it on was done with Karplus-Strong synthesis on-the-fly, as it was playing out.
See https://web.archive.org/web/20000229083216/http://macweek.zd... .
At the time, I remember the ATI Rage128 chipset being the big deal and reason for why Q3's beta came out first on Mac... but gosh now I wonder if it was the feelings for NeXTSTEP.
JC did however switch to OSX as his primary development environment for some time when Apple was the first to ship the Geforce 3 in 2001, which was really the generation of hardware needed to do Doom 3 justice. A year later, it was all about ATI's new flagship card which pushed things further for his needs - back to windows, and I can't rembember from his .plan files whether he moved back before getting access to that hardware.