Back in mmm like 2002 or 2003 or 2004 while at Microsoft I read an internal paper from a few OS guys who hackathoned something for Bill Gates's Think Week (which is when he used to go to some island in San Juans or somewhere similar and just read curated papers and think, it was a huge prestige to get such a paper to him) and that something was an OS written from scratch with GC and memory management on top of something very .NET framework'y (which was released a couple of years ago. They had it booting on all kinds of hardware and doing various neato things. One of explicitly called design principles was 0 compatibility with anything Windows before. Which is why it didn't go anywhere I assume. I remember it was just a handful of engineers (presumably OS folks) hacking for like a month. . It was awesome to read about.
I've written a lot of low level software, BSPs, and most of an OS, and the main reason to not write your own OS these days is silicon vendors. Back in the day, they would provide you a spec detailed enough that you could feasibly write your own drivers.
These days, you get a medium-level description and a Linux driver of questionable quality. Part of this is just laziness, but mostly this is a function of complexity. Modern hardware is just so complicated it would take a long time to completely document, and even longer to write a driver for.
mbac32768 · 25m ago
Yeah this. I tried to modify a hobby OS recently so it would process the "soft reboot" button (to speed up being rebooted in GCP) and it was so unbelievably hard to figure out how to support it. I tried following the instructions on the OS Dev Wiki and straight up reading what both Linux and FreeBSD do and still couldn't make progress. Yes. The thing that happens when you tell Windows or Linux to "restart". Gave up on this after spending days on it.
The people who develop OSes are cut from a different cloth and are not under the usual economic pressures.
gmueckl · 5m ago
I also think that they have access to more helpful resources than people outside the field do, e.g. being able to contact people working on the lower layers to get the missing info. These channels exist in the professional world, but they are hard to access.
bbarnett · 16m ago
Modern hardware is just so complicated it would take a long time to completely document, and even longer to write a driver for.
That's what's claimed. That's what people say, yet it's just an excuse. I've heard the same sort of excuse people have, after they write a massive codebase, then say "Oops, sorry, didn't get around to documenting it".
And no, hardware is not more difficult than software to document.
If the system is complex, there's more need to document, just as with a huge codebase. On their end, they have new employees to train up, and they have to manage testing. So any excuse that silicon vendors have to deal with such immense complexity? My violin plays for them.
boredatoms · 25m ago
Presumably if you’re meta you could pay the vendors enough to write drivers for any arbitrary OS
rwmj · 20m ago
But is that a good use of Meta's money? Compared to making a few patches to Linux to fix any performance problems they find.
(And I feel bad saying this since Meta obviously did waste eleventy billion on their ridiculous Second Life recreation project ...)
bbarnett · 14m ago
I don't like Meta, but there used to be a time where big corp used to spend 30% of its budget on R&D. It's how we got all the toys we have now, R&D labs of big Bell and others.
So please don't mock the spend. Big spends fail sometimes, and at least people were paid to do the work.
rwmj · 11m ago
It's just that it was so obviously going to fail, because there's no mass market for a product that you have to strap onto your face. You didn't need to spend billions to learn that.
If they'd spent the money researching nuclear fusion or space flight or a new way to develop microprocessors, I would be cheering their efforts even if they had failed in the end.
tanvach · 3h ago
Yeah reverse engineering all the drivers is going to be a huge headache.
labrador · 3h ago
> my old internal posts... got me reported to HR by the manager of the XROS effort for supposedly making his team members feel bad
That jives with my sense that META is a mediocre company
tejohnso · 3h ago
I'm sure that kind of crap helped nudge JC out of there. He mentions (accurate and relevant) reasons why something is probably a bad idea, and the person in charge of doing it complains that JC brought up the critiques, rather than addressing the critiques themselves. What a pathetic, whiny thing to do.
pklausler · 2h ago
Ugly people like to blame the mirrors.
tanvach · 3h ago
Was at Oculus post acquisition and can say that the whole XROS was an annoyance and distraction the core technology teams didn’t need. There were so many issues with multiple tech stacks that needed fixing first.
Mind you, this XROS idea came after Oculus reorged into FB proper. It felt to me like there were FB teams (or individuals) that wanted get on the ARVR train. Carmack was absolutely right, and after the reorg his influence slowly waned for the worse.
gorset · 2h ago
Mechanisms for getting the linux kernel out of the way is pretty decent these days, and CPUs with a lot of cores are common. That means you can isolate a bunch of cores and pin threads the way you want, and then use some kernel-bypass to access hardware directly. Communicate between cores using ring buffers.
This gives you best of both worlds - carefully designed system for the hardware with near optimal performance, and still with the ability to take advantage of the full linux kernel for management, monitoring, debugging, etc.
ronsor · 27m ago
> use some kernel-bypass to access hardware directly
You can always mmap /dev/mem to get at physical memory.
armchairhacker · 3h ago
What would be the real advantage of a custom OS over a Linux distribution?
The OS does process scheduling, program management, etc. Ok, you don’t want a VR headset to run certain things slowly or crash. But some Linux distributions are battle-tested and stable, and fast, so can’t you write ordinary programs that are fast and reliable (e.g. the camera movement and passthrough use RTLinux and have a failsafe that has been formally verified or extensively tested) and that’s enough?
v9v · 3h ago
Maybe not applicable for the XR platform here, but you could add introspection capabilities not present in Linux, a la Genera letting the developer hotpatch driver-level code, or get all processes running on a shared address space which lets processes pass pointers around instead of the Unix model of serializing/deserializing data for communication (http://metamodular.com/Common-Lisp/lispos.html)
Nuthen · 3h ago
Based on the latter tweet in the chain, I'm wondering if Carmack is hinting that Foveated Rendering (more processing power is diverted towards the specific part of the screen you're looking at) was one advantage envisioned for it. But perhaps he's saying that he's not so sure if the performance gains from it actually justify building a custom OS instead of just overclocking the GPU along with an existing OS?
jamboca · 3h ago
Think you answered your own question. No real differences except more articles, $, and hype
tanvach · 3h ago
I think people have forgotten about Google Fuchsia which I guess is a good sign for a new OS. They’ve done quite well in deploying it seamlessly to their consumer devices.
modeless · 9m ago
"Quite well" by what metric? It shipped on one device. That's pretty much the lowest bar you can imagine! Did it provide any tangible benefit to anyone? Let alone a benefit commensurate with the enormous cost of developing it and continuing to maintain it?
I think it was insane to start a new OS effort written in C/C++. We have plenty of OSes written in C/C++! We know how that story ends. If you're going to spend the effort, at least try a new language that could enable a better security model.
asadotzler · 3h ago
It was so good Google cancelled plans to use it in meaningful products and instead delegated it to the bottom shelf products.
tanvach · 3h ago
Fun rumor: Google shut down the AR effort and transferred the team to project Fuchsia as a way to retain highly skilled employees. So essentially they didn’t have any real technical needs for a new OS.
blkhp19 · 3h ago
I thought they rolled back all of those efforts. What devices shipping today come with Fuchsia installed?
aschla · 3h ago
According to Wikipedia, looks like only the Nest Nub.
kyle-rb · 2h ago
I think some of the Nest audio devices now run it as well.
AceJohnny2 · 3h ago
Google Nest Hub
belval · 3h ago
Isn't that somewhat debatable? Originally they were aiming at much more (chromebook OS for example) but seems like they settled for Google Home only as their scope.
Still a very interesting project, but that feels like a similar story, for limited use cases (a smart thermostat/speaker with specific hardware) it works, but for wider use cases with heterogeneus hardware and complex interfaces (actual screen, peripherals) it didn't work.
koolala · 3h ago
The reviews I've seen of its stability and usefulness have not been good.
3eb7988a1663 · 3h ago
That was also frustrating in that sel4 was right there. Why not invest efforts in the existing thing?
tanvach · 3h ago
Yup it’s because they had to rewrite the drivers I presume. Always going to be the biggest issue with any new OS.
GeekyBear · 3h ago
My objection is that there is no universe in which Meta can be trusted with direct access to your raw gaze tracking data.
The only thing I can imagine that would be more invasive would require a brain implant.
qiine · 7m ago
sadly they are working on it
numpad0 · 1h ago
Is the difficulty in theoretical complexity of operating systems, or in project scoping/scope creep?
It's probably not that hard to write bare metal code for a modern CPU that runs and crashes. It's obviously insurmountably hard to compete with Android in features with scratch built bare metal code. An "OS" can be anything between the two. But it's very easy to imagine an "XR OS" project snowballing quickly into the latter, and Carmack's concerns would be spot on(as always is, and as proven). Is it then an inherent difficulty in "designing a new operating system", or is it technically something else?
ironman1478 · 2h ago
I worked on a completely different hardware project within meta and while they didn't want a custom OS, they used an off the shelf rtos with the intention of modifying it and it was a shit show. They had a million justifications for why they needed it, but they had no performance tests or metrics to verify to actually justify it. They incurred a huge development overhead for no verifiable performance improvements.
None of the code they wrote couldn't have just been written as a kernel module in Linux. It would've also been so much easier due to all the documentation and general knowledge people have about Linux both within the company and outside the company.
busymom0 · 14m ago
> I wish I could drop (so many of) my old internal posts publicly, since I don’t really have the incentive to relitigate the arguments today – they were carefully considered and prescient. They also got me reported to HR by the manager of the XROS effort for supposedly making his team members feel bad, but I expect many of them would acknowledge in hindsight that the Meta products would not be in a better place today if the new OS effort had been rammed into them.
So someone at Meta was so sensitive that being told their behemoth of a project was ill advised ended up getting reported to HR?
klik99 · 3h ago
You could write a book on why it's practically impossible to create a new OS these days. Love Carmack for stating it so clearly. I also love that called out TempleOS, I also have a weird respect for it. Plan 9 is the probably the best example of a totally new OS and I hope someday it becomes viable because it's really a joy to use.
But ultimately it just makes sense to adapt existing kernels / OS (say, arch) and adapt it to your needs. It can be hair wrenchingly frustrating, and requires the company to be willing to upstream changes and it still takes years, but the alternative is decades, because what sounds good and well designed on paper just melts when it hits the real world, and linux has already gone through those decades of pain.
EGreg · 3h ago
OS isnt the hard part.
The driver ecosystem is the moat. Linux finally overcame it decades later
bri3d · 26m ago
Android built a new, giant moat for Linux (or "Linux" depending on your opinions about Android) in the embedded application processor space - now the "standard" board support package target for new embedded AP hardware is almost always some random point-in-time snapshot of Android. Running "mainline" Linux is hard (because the GPU and media peripheral drivers are usually half-userspace Android flavored stuff and rely on ION and other Androidisms) and bare-metal is even worse (where previously, you'd get register-level documentation, now, you get some Android libXYZ.so library).
saulpw · 2h ago
Yeah, the Linux kernel has ~12m lines of code. <1m are the core, the rest are drivers.
The only reason Chinese companies can even get away with these big projects is because of state backing and state objectives. By itself, the market doesn't support a new general-purpose OS at this point.
betaby · 13m ago
> because of state backing and state objectives
MS is a state backed company. Very natural that China went the same path.
jambutters · 16m ago
They actually reuse Linux driver stack for hardware compatibility
jamesgeck0 · 3h ago
> To make something really different, and not get drawn into the gravity well of existing solutions, you practically need an isolated monastic order of computer engineers.
I mean, I'd give a fair shake to an OS from the SQLite team [1].
Where do I apply to join this monastic order of OS programmers?
tgbugs · 3h ago
Just walk up to the gate of your nearest Concent next Apert and they will take you right in!
Actually, I don't know how you join the Ita now that you mention it.
lukev · 3h ago
This is completely right from a product point of view, which is Carmack's argument.
But I have wondered why one of these companies with billions of dollars to burn hasn't tried to create something new as a strategic initiative. Yes, there wouldn't be any ROI for years, and yes, the first several products on the platform would probably be better off on something more traditional.
But the long term value could potentially be astronomical.
Just another case of quarterly-report-driven decision making, I suppose. Sigh.
CamperBob2 · 3m ago
But I have wondered why one of these companies with billions of dollars to burn hasn't tried to create something new as a strategic initiative.
They have; Taligent comes to mind. You may not have heard of that -- or more likely, you have but just forgot about it -- but it's a good object lesson (no pun intended) in why a successful new OS is hard to just conjure into existence. There has to be a crying, desperate need for it, not just a vague sense that This Time We'll Get It Right.
You could probably cite OS/2 Warp as a less-obscure example of the same phenomenon.
jmull · 2h ago
How does it pay off in the long run?
If you're competing against nothing, then I see it: it opens up a wide variety of product possibilities. But linux exists. Why not spend 1/1000th the time to adapt linux?
That's not even counting the rather substantial risk that your new OS will never approach the capabilities of linux, and may very well never become generally usable at all.
Option A: spend years and millions on a project that may never be as good as existing solutions, diverting attention and resources from actual products, or...
Option B: work on products now, using an existing, high-quality, extensible, adaptable OS, with very friendly licensing terms, for which numerous experts exist, with a proven track record of maintenance, a working plan for sustainability, a large & healthy developer community exists, etc.
It's hard to imagine how it wouldn't be a complete waste of time.
spankalee · 3h ago
This is what Google has been trying to do with Fuchsia and the fact is that you can't escape the product point of view because the products exist, already have an OS stack, and get pretty defensive when another team tells them they're going to replace their OS, or their core if the product team is Android or Chrome OS.
philistine · 3h ago
Apple bought one of those in the 90s, and they are still reaping the benefits of that strategic initiative. But the thing is, NeXt allowed Apple to think up new, differentiated products. If you come at the problem of the OS from a purely technical perspective, you'll waste time for no gain.
TiredOfLife · 2h ago
Microsoft had Singularity - canceled after 12 years in development
Google has Fuchsia - is about 10 years in development. Recently was a target for layoffs
rezmason · 3h ago
> To make something really different, and not get drawn into the gravity well of existing solutions, you practically need an isolated monastic order of computer engineers. Which was sort of Plan 9…
Roll call!
anthem2025 · 3h ago
Did they have people who have built an OS before?
I’ve seen this firsthand. These giant tech companies try to just jump into a massive new project thinking that because they have built such an impressive website and have so much experience at scale they should just be able to handle building a new OS.
In my case it wasn’t even a new OS it was just building around an existing platform and even that was massively problematic.
The companies that build them from scratch have had it as one of their core competencies pretty much from the start.
I’m unsurprised meta had issues like this.
Skunkleton · 3h ago
> Did they have people who have built an OS before?
Yes.
Jyaif · 3h ago
They have contributors to the linux kernel.
Pretty sure all the big tech companies have the right people to create a new OS that is better than Linux, the hard part is getting that new OS to be adopted.
scared_together · 3h ago
What if instead of writing the entire OS, a company were to pick up an existing “hobby” OS and refine it?
For example any of the systems listed in Carmack’s post. Or perhaps Serenity OS, RedoxOS, etc.
dmurray · 3h ago
In that case, why wouldn't they "just" fork Linux? Or 10-years-ago-Linux?
The technical justification for Meta writing their own OS is that they'd get to make design decisions that suited them at a very deep level, not that they could do the work equivalent of contributing a few drivers to an existing choice.
pipeline_peak · 3h ago
Jonathan Blow is the world’s most successful hobbyist programmer. His whole thing is doing projects from scratch. Every game he made could be done in Unity with far less effort.
Most opinions of this man exists in a vacuum space isolated from the real world software industry. Building an OS from scratch is one of those examples.
It’s never seems like there’s a significant reason behind them other than………”I made dat :P”
savanaly · 2h ago
As an outsider...his games just look and feel different. They feel like bones-deep art, in a way that even the best of the best games (say, Hades) don't. Since Blow's games are puzzle games they're not even my favorite games! But the effort spent on making them exactly the way he wants them pays off.
0xb0565e486 · 3h ago
I'd love a truly new OS, but I just don’t know what it would look like at this point? "New OS" ideas tend to converge on the same trunk.
Building a hobby OS taught me how little is just "software". The CPU sets the rules. Page tables exist because the MMU says so. Syscalls are privilege flips. Task switches are register loads and TLB churn. Drivers are interrupt choreography. The OS to me is just policy wrapped around fixed machinery.
SirMaster · 3h ago
How about ReactOS?
greggman65 · 3h ago
And yet, Sony did it, Nintendo did it, both have been pretty succeesful.
We also need to be clear what an OS is. Is it "darwin" or "macOS" - they have different scopes.
Things I'd want from an OS for an XR device.
1. Fast boot. I don't want to have to wait 2-3-4-5 minutes to reboot for those times I need to reboot.
I feel like Nintendo figured this out? It updates the OS in the background somehow and reboot is nearly instant.
2. Zero jank. I'm on XR, if the OS janks in any way people will get sick AND perceive the product as sucking. At least I do. iOS is smooth, Androind is jank AF.
Do any of the existing OSes provide this? Sure, maybe take an existing OS an modify it, assuming you can.
erk__ · 3h ago
You mean for the PlayStation? That is a FreeBSD fork, probably chosen over Linux because of the license.
amarant · 2h ago
Nintendo is an interesting example though. According to Wikipedia they actually use a proprietary microkernel, which, if I'm reading this right, I think they developed themselves. Looks like the only open source components they have is some networking code which is published under the BSD license.
PS4/5 was BSD. Only Nintendo and Microsoft runs own corporate proprietary OS.
mschuster91 · 3h ago
Sony and Nintendo both forked off of either NetBSD or FreeBSD. Sony's cameras at least up until the A7S2 run Linux (there's jailbreaks for these), although I never found any kernel / bootloader dump like it would be required.
Android suffers from being Java at the core, with all the baggage that brings with it.
mwkaufma · 2h ago
Sony forked FreeBSD, but Nintendo didn't. They have BSD license headers because of some BSD socket code they include.
numpad0 · 2h ago
Sony cameras all run Linux. Models with "PlayMemories Camera Apps" feature like A7M2 support runs Android userland on top. It's probably easier to count the cameras that don't(like old Olympus).
BiteCode_dev · 3h ago
> they also got me reported to HR by the manager of the XROS effort for supposedly making his team members feel bad
This is madness. The safe space culture has really gone too far.
Inityx · 3h ago
I'll offer a different interpretation:
If a professional can't give critical feedback in a professional setting without being rude or belittling others, then they need to improve their communication skills.
amarant · 2h ago
This is not that though. This is just developers being unable to handle constructive criticism, and when they can't win the argument on merits, went for the HR option. It happens.
I've had it happen to me too, but my response was to resign on the spot (I was already not satisfied with the company).
The "toxic behaviour" I had done? I reverted a commit on the master branch that didn't compile, and sent a slack to the Dev who had committed it saying "hi! There appears to have been a mistake in your latest commit, could you please check it out and fix it? I've reverted it in the meantime since I need to deploy this other feature"
The dev responded by force pushing the code that did not compile to master and contacted HR.
I decided there was greener grass on other pastures. I was right.
cjbgkagh · 27m ago
When I started breaking the build would end up with the person who did it having to wear the dunce hat for the day. This was before git so there are now fewer excuses for breaking the build today.
mariusor · 3h ago
From what you know of Carmack, does "can't give critical feedback in a professional setting without being rude or belittling others" sound like him to you? It does not to me, though granted maybe he's different in his non public persona than what you can see in presentations and talks.
No comments yet
BiteCode_dev · 2h ago
Having worked in the valley, I've seen what critical feedback meant in many companies there, and it removes all usefulness of the info because there is a ceiling of what is socially acceptable to say; therefore, you can't know how bad or urgent things are.
Everything is ASAP. They are super excited about everything. And nothing you do is wrong, it just could be improved or they like it but don't love it.
You don't know if something is important, basically.
Just like Louis CK said, "if you used 'amazing' on chicken nuggets, what are you going to say when your first child is born?". But in reverse.
Personally, I'd rather work with someone who would tell me my work is terrible if it is.
In Germany, you can't even legally say somebody did a bad job at your company in a recommendation letter. Companies created a whole subtext to workaround that, it's crazy.
Some things are just bad. You should be able to say it is. Not by saying it could be better. Not by using euphemism. It's just something that needs to go to the trash.
In fact, I don't trust people who can't receive this information, even if not packaged with tact (which you should attempt to, but life happens). If you can't handle people not being perfectly polite every time, I can't help but feel I won't be able to count on you when things get hard.
That must be the French in me talking.
fatbird · 2h ago
This.
Being "reported to HR" doesn't mean "almost got fired". It likely meant a meeting where someone explained "hey, the way you communicated that caused some upset, let's discuss better ways to handle that situation next time." Very often in larger companies, complaints about things like "this bigwig from this other group jumped all over us" are automatically sent through HR because HR has staff whose job just is resolving conflicts between people and keeping things peaceful.
drewbeck · 3h ago
People have been getting mad at being made to feel bad at work for much longer than “safe space culture” has existed. If someone or some team had more power than you at an organization you for sure will get reprimanded for making them feel bad.
dfxm12 · 2h ago
You've concluded this from a single, brief, throwaway line? Any madness you perceive about this situation has been fabricated by you, based on the details we have.
dmbche · 2h ago
A meeting with HR is not madness. No one got maimed or died, or even lost work, seemingly. Some people exchanged words.
Cool off.
rectang · 3h ago
Something tells me that if we heard the other side of the story it might hit different. There's a lot of wiggle room in what "making his team members feel bad" could mean, and I would be surprised if constructively voiced criticism would have gotten someone written up.
cjbgkagh · 2h ago
With my experience of being written up for constructive criticism the reasoning was that I didn’t give constructive criticism to others and they felt singled out. I only give such criticism in private so of course they were not there to see the others. Apparently that wasn’t a sufficient explanation.
aPoCoMiLogin · 3h ago
it is madness, you would be surprised how many ppl take things too serious. been there, had talk with HR cause i've said that the solution is mediocre and we have to do something better than that.
foldr · 3h ago
Reading between the lines, it sounds like he got reported for giving a lot of what might kindly be described as unsolicited advice. The guy left Meta ages ago, but he apparently still can't let this one go.
If you're in the middle of trying to write a new operating system, then it's probably not helpful to have John Carmack standing over you repeatedly telling you that you shouldn't be doing it. In this case Carmack gets the last laugh. Then again, it is easy to get the last laugh by predicting that a project will fail, given that most projects do.
Strom · 2h ago
> unsolicited advice
He was the CTO of Oculus. Surely it is appropriate for the CTO to give advice on any big technical decisions, if not outright have veto power.
foldr · 2h ago
Clearly he didn't have veto power on the project he's talking about.
FirmwareBurner · 4h ago
I like that the top reply to Carmack's wall of text is a screenshot of TempleOS with a doodle of an elephant lmao. And ironically, that meme reply is on topic and it says a thousand words with just one photo.
Another point I would add in support of that meme comment, is Google's recent rug-pull of Android not allowing sideloading apps from unsigned developers anymore starting this autumn, after over a decade of conquering the market with their "go with us, we're the open alternative to iOS" marketing.
The conclusion is to just never EVER trust big-tech/VC/PE companies, even when they do nice things, since they're 100% just playing the long game, getting buddy-buddy with you waiting till they smothered the competition with their warchest, and then the inevitable rug-pull comes once you're tied to their ecosystem and you have nowhere else to go.
Avoid these scumbags, go FOSS form the start, go TempleOS. /s but not really
nine_k · 3h ago
In other words, unless God has specifically called upon you to build an OS, and maybe provided divine inspiration and assistance, you should avoid doing that. Seems to support Carmack's point!
thevillagechief · 3h ago
I'm not sure Carmack's point disagrees with you. Meta is still big tech, and if your goal is to monetize at scale, rolling out your own isn't the most efficient way to do it. I don't think he'd discourage you rolling out your own OS if it's your hobby FOSS project.
thrance · 3h ago
He's acting like their VR UX is top notch when it's as bad as it gets. Just yesterday I dusted off my Meta Quest 2 to play a bit, and spent around an hour trying to pair up my left controller to the helmet after replacing the battery.
You can't do it without going through their fucking app, that asks for every permissions under the sun, including GPS positioning for some reason. After finally getting this app working and pairing it with my headset, I could finally realize the controller was just dead and their was nothing to do.
doctorpangloss · 3h ago
The problem with this guy is that it’s hard to criticize him, whether at work or in this forum. For example, I am going to be downvoted for mocking the fact that this guy thinks it’s some genius move to say “No” to making an operating system, whatever making an operating system means.
geodel · 1h ago
You can prove him wrong by doing thing what he claims should not be done.
Didn't even realize this was a thread and not a single tweet until you posted this link. Guess that's the downsides of not having a Twitter acct anymore.
dang · 31m ago
We'll put that link in the top text too. Thanks!
c54 · 3h ago
Neat website, thanks for posting. Basically necessary to avoid the twitter “paywall”
webdevver · 3h ago
tbh linux has quite a bit of cruft in it these days at the syscall and interface layer.
if youre apple, it does make sense to do stuff from scratch. i think in a way, software guys wind up building their own prisons. an api is created to solve problem X given world Y, but world Y+1 has a different set of problems - problems that may no longer be adequately addressed given the api invented for X.
people talk about "rewrite everything in rust" - I say, why stop there? lets go down to the metal. make every byte, every instruction, every syscall a commodity. imagine if we could go all the way back to bare metal programming, simply by virtue of the LLM auto-coding the bootloader, scheduler, process manager, all in-situ.
the software world is full of circularities like that. we went from Mainframe -> local -> mainframe, why not baremetal -> hosted -> baremetal?
xantronix · 2h ago
Apple doesn't do a lot of baremetal development from scratch that I'm aware of. The Lightning to HDMI dongle bootstraps an XNU kernel with an AirPlay decoder into 256MB RAM, for instance.
trollied · 3h ago
You can still do “unsafe” stuff in rust, and people do. It’s perfectly possible to write safe C and C++ these days. And you don’t have to deal with a borrow checker, and a very small pool of developers available to hire.
webdevver · 3h ago
oh, i didnt mean to invoke rust in any technical sense - i brought up rust to introduce an example of the attitude that rust people are known for, namely "why not rewrite everything?", which a lot of people have a kneejerk rejection of.
AceJohnny2 · 3h ago
> It’s perfectly possible to write safe C and C++ these days.
https://en.wikipedia.org/wiki/Singularity_(operating_system)
These days, you get a medium-level description and a Linux driver of questionable quality. Part of this is just laziness, but mostly this is a function of complexity. Modern hardware is just so complicated it would take a long time to completely document, and even longer to write a driver for.
The people who develop OSes are cut from a different cloth and are not under the usual economic pressures.
That's what's claimed. That's what people say, yet it's just an excuse. I've heard the same sort of excuse people have, after they write a massive codebase, then say "Oops, sorry, didn't get around to documenting it".
And no, hardware is not more difficult than software to document.
If the system is complex, there's more need to document, just as with a huge codebase. On their end, they have new employees to train up, and they have to manage testing. So any excuse that silicon vendors have to deal with such immense complexity? My violin plays for them.
(And I feel bad saying this since Meta obviously did waste eleventy billion on their ridiculous Second Life recreation project ...)
So please don't mock the spend. Big spends fail sometimes, and at least people were paid to do the work.
If they'd spent the money researching nuclear fusion or space flight or a new way to develop microprocessors, I would be cheering their efforts even if they had failed in the end.
That jives with my sense that META is a mediocre company
Mind you, this XROS idea came after Oculus reorged into FB proper. It felt to me like there were FB teams (or individuals) that wanted get on the ARVR train. Carmack was absolutely right, and after the reorg his influence slowly waned for the worse.
This gives you best of both worlds - carefully designed system for the hardware with near optimal performance, and still with the ability to take advantage of the full linux kernel for management, monitoring, debugging, etc.
You can always mmap /dev/mem to get at physical memory.
The OS does process scheduling, program management, etc. Ok, you don’t want a VR headset to run certain things slowly or crash. But some Linux distributions are battle-tested and stable, and fast, so can’t you write ordinary programs that are fast and reliable (e.g. the camera movement and passthrough use RTLinux and have a failsafe that has been formally verified or extensively tested) and that’s enough?
I think it was insane to start a new OS effort written in C/C++. We have plenty of OSes written in C/C++! We know how that story ends. If you're going to spend the effort, at least try a new language that could enable a better security model.
Still a very interesting project, but that feels like a similar story, for limited use cases (a smart thermostat/speaker with specific hardware) it works, but for wider use cases with heterogeneus hardware and complex interfaces (actual screen, peripherals) it didn't work.
The only thing I can imagine that would be more invasive would require a brain implant.
It's probably not that hard to write bare metal code for a modern CPU that runs and crashes. It's obviously insurmountably hard to compete with Android in features with scratch built bare metal code. An "OS" can be anything between the two. But it's very easy to imagine an "XR OS" project snowballing quickly into the latter, and Carmack's concerns would be spot on(as always is, and as proven). Is it then an inherent difficulty in "designing a new operating system", or is it technically something else?
None of the code they wrote couldn't have just been written as a kernel module in Linux. It would've also been so much easier due to all the documentation and general knowledge people have about Linux both within the company and outside the company.
So someone at Meta was so sensitive that being told their behemoth of a project was ill advised ended up getting reported to HR?
But ultimately it just makes sense to adapt existing kernels / OS (say, arch) and adapt it to your needs. It can be hair wrenchingly frustrating, and requires the company to be willing to upstream changes and it still takes years, but the alternative is decades, because what sounds good and well designed on paper just melts when it hits the real world, and linux has already gone through those decades of pain.
The driver ecosystem is the moat. Linux finally overcame it decades later
5 Millions alone for the AMD graphic driver.
https://en.wikipedia.org/wiki/HarmonyOS_NEXT https://www.usenix.org/conference/osdi24/presentation/chen-h...
MS is a state backed company. Very natural that China went the same path.
I mean, I'd give a fair shake to an OS from the SQLite team [1].
1. https://sqlite.org/codeofethics.html
Actually, I don't know how you join the Ita now that you mention it.
But I have wondered why one of these companies with billions of dollars to burn hasn't tried to create something new as a strategic initiative. Yes, there wouldn't be any ROI for years, and yes, the first several products on the platform would probably be better off on something more traditional.
But the long term value could potentially be astronomical.
Just another case of quarterly-report-driven decision making, I suppose. Sigh.
They have; Taligent comes to mind. You may not have heard of that -- or more likely, you have but just forgot about it -- but it's a good object lesson (no pun intended) in why a successful new OS is hard to just conjure into existence. There has to be a crying, desperate need for it, not just a vague sense that This Time We'll Get It Right.
You could probably cite OS/2 Warp as a less-obscure example of the same phenomenon.
If you're competing against nothing, then I see it: it opens up a wide variety of product possibilities. But linux exists. Why not spend 1/1000th the time to adapt linux?
That's not even counting the rather substantial risk that your new OS will never approach the capabilities of linux, and may very well never become generally usable at all.
Option A: spend years and millions on a project that may never be as good as existing solutions, diverting attention and resources from actual products, or...
Option B: work on products now, using an existing, high-quality, extensible, adaptable OS, with very friendly licensing terms, for which numerous experts exist, with a proven track record of maintenance, a working plan for sustainability, a large & healthy developer community exists, etc.
It's hard to imagine how it wouldn't be a complete waste of time.
Google has Fuchsia - is about 10 years in development. Recently was a target for layoffs
Roll call!
I’ve seen this firsthand. These giant tech companies try to just jump into a massive new project thinking that because they have built such an impressive website and have so much experience at scale they should just be able to handle building a new OS.
In my case it wasn’t even a new OS it was just building around an existing platform and even that was massively problematic.
The companies that build them from scratch have had it as one of their core competencies pretty much from the start.
I’m unsurprised meta had issues like this.
Yes.
For example any of the systems listed in Carmack’s post. Or perhaps Serenity OS, RedoxOS, etc.
The technical justification for Meta writing their own OS is that they'd get to make design decisions that suited them at a very deep level, not that they could do the work equivalent of contributing a few drivers to an existing choice.
Most opinions of this man exists in a vacuum space isolated from the real world software industry. Building an OS from scratch is one of those examples.
It’s never seems like there’s a significant reason behind them other than………”I made dat :P”
Building a hobby OS taught me how little is just "software". The CPU sets the rules. Page tables exist because the MMU says so. Syscalls are privilege flips. Task switches are register loads and TLB churn. Drivers are interrupt choreography. The OS to me is just policy wrapped around fixed machinery.
We also need to be clear what an OS is. Is it "darwin" or "macOS" - they have different scopes.
Things I'd want from an OS for an XR device.
1. Fast boot. I don't want to have to wait 2-3-4-5 minutes to reboot for those times I need to reboot.
I feel like Nintendo figured this out? It updates the OS in the background somehow and reboot is nearly instant.
2. Zero jank. I'm on XR, if the OS janks in any way people will get sick AND perceive the product as sucking. At least I do. iOS is smooth, Androind is jank AF.
Do any of the existing OSes provide this? Sure, maybe take an existing OS an modify it, assuming you can.
https://en.m.wikipedia.org/wiki/Nintendo_Switch_system_softw...
Android suffers from being Java at the core, with all the baggage that brings with it.
This is madness. The safe space culture has really gone too far.
If a professional can't give critical feedback in a professional setting without being rude or belittling others, then they need to improve their communication skills.
I've had it happen to me too, but my response was to resign on the spot (I was already not satisfied with the company).
The "toxic behaviour" I had done? I reverted a commit on the master branch that didn't compile, and sent a slack to the Dev who had committed it saying "hi! There appears to have been a mistake in your latest commit, could you please check it out and fix it? I've reverted it in the meantime since I need to deploy this other feature"
The dev responded by force pushing the code that did not compile to master and contacted HR.
I decided there was greener grass on other pastures. I was right.
No comments yet
Everything is ASAP. They are super excited about everything. And nothing you do is wrong, it just could be improved or they like it but don't love it.
You don't know if something is important, basically.
Just like Louis CK said, "if you used 'amazing' on chicken nuggets, what are you going to say when your first child is born?". But in reverse.
Personally, I'd rather work with someone who would tell me my work is terrible if it is.
In Germany, you can't even legally say somebody did a bad job at your company in a recommendation letter. Companies created a whole subtext to workaround that, it's crazy.
Some things are just bad. You should be able to say it is. Not by saying it could be better. Not by using euphemism. It's just something that needs to go to the trash.
In fact, I don't trust people who can't receive this information, even if not packaged with tact (which you should attempt to, but life happens). If you can't handle people not being perfectly polite every time, I can't help but feel I won't be able to count on you when things get hard.
That must be the French in me talking.
Being "reported to HR" doesn't mean "almost got fired". It likely meant a meeting where someone explained "hey, the way you communicated that caused some upset, let's discuss better ways to handle that situation next time." Very often in larger companies, complaints about things like "this bigwig from this other group jumped all over us" are automatically sent through HR because HR has staff whose job just is resolving conflicts between people and keeping things peaceful.
Cool off.
If you're in the middle of trying to write a new operating system, then it's probably not helpful to have John Carmack standing over you repeatedly telling you that you shouldn't be doing it. In this case Carmack gets the last laugh. Then again, it is easy to get the last laugh by predicting that a project will fail, given that most projects do.
He was the CTO of Oculus. Surely it is appropriate for the CTO to give advice on any big technical decisions, if not outright have veto power.
Another point I would add in support of that meme comment, is Google's recent rug-pull of Android not allowing sideloading apps from unsigned developers anymore starting this autumn, after over a decade of conquering the market with their "go with us, we're the open alternative to iOS" marketing.
The conclusion is to just never EVER trust big-tech/VC/PE companies, even when they do nice things, since they're 100% just playing the long game, getting buddy-buddy with you waiting till they smothered the competition with their warchest, and then the inevitable rug-pull comes once you're tied to their ecosystem and you have nowhere else to go.
Avoid these scumbags, go FOSS form the start, go TempleOS. /s but not really
You can't do it without going through their fucking app, that asks for every permissions under the sun, including GPS positioning for some reason. After finally getting this app working and pairing it with my headset, I could finally realize the controller was just dead and their was nothing to do.
if youre apple, it does make sense to do stuff from scratch. i think in a way, software guys wind up building their own prisons. an api is created to solve problem X given world Y, but world Y+1 has a different set of problems - problems that may no longer be adequately addressed given the api invented for X.
people talk about "rewrite everything in rust" - I say, why stop there? lets go down to the metal. make every byte, every instruction, every syscall a commodity. imagine if we could go all the way back to bare metal programming, simply by virtue of the LLM auto-coding the bootloader, scheduler, process manager, all in-situ.
the software world is full of circularities like that. we went from Mainframe -> local -> mainframe, why not baremetal -> hosted -> baremetal?
It's also very hard to do so.