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 b…
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?
John Carmack's arguments against building a custom XR OS at Meta
341–350 of 675 posts
Re: John Carmack's arguments against building a custom XR OS at Meta
#342Earlier quoted context omitted.
You mean for the PlayStation? That is a FreeBSD fork, probably chosen over Linux because of the license.
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. https://en.m.wikipedia.org/wiki/Nintendo_Switch_system_softw...
Re: John Carmack's arguments against building a custom XR OS at Meta
#343Earlier quoted context omitted.
>but LKL should pretty much cover just about all I/O devices (and you also get stuff like disk filesystems and a network stack along with the device drivers). thus calling into question why you ever bothered writing a new kernel in the first place if you were just going to piggyback Linux's device drivers onto some userspace wrapper thingy. Im not necessarily indoctrinated to the point where I can't conceive of Linux…
> you're never going to get there off of recycling linux's device drivers because that forces you to design your new OS as a linux clone in which cade you definitely did not need to write an entire new kernel from scratch. thats in interesting point, and makes me wonder if some kind of open interface for drivers to write to (and os's could implement) wouldn't be worthwhile? probably it would have to be very general i…
However it goes into the same direction of the previous commenter, device drivers are intertwined with the OS semantics, even on microkernels, so eventually it ends being just something like POSIX.
Re: John Carmack's arguments against building a custom XR OS at Meta
#344Earlier quoted context omitted.
> You are kinda wasting your time, the only way to make it work is to make the hobby OS Linux. Not the parent, but of course they're wasting their time... That's the point of a hobby OS. I'm working on a hobby OS, and I have no illusions that it's most likely fewer than 10 people will ever run it, and less than 100 will hear about it, but it lets me explore some interesting (to me) ideas, and forces me to learn a lit…
I didn't say they were wasting their time on their hobby OS, they are wasting their time trying to get it to do very esoteric thing on GCP. They aren't trying to get reboot to work, they are trying to get their version of kexec to work so their hobby os reboots faster. https://wiki.archlinux.org/title/Kexec The biggest scam in the OS world is drivers, we should demand more out of our hardware. Drivers shouldn't be ne…
What do you mean by that?
Re: John Carmack's arguments against building a custom XR OS at Meta
#345I'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.…
Intel still does it. As far as I can see they're the only player in town that provide open, detailed documentation for their high-speed NICs [0]. You can actually write a driver for their 100Gb cards from scratch using their datasheet. Most other vendors would either (1) ignore you, (2) make you sign an NDA or (3) refer you to their poorly documented Linux/BSD driver. Not sure what the situation is for other hardware…
Real question: Why do you think Intel does this? Does it guarantee a very strong foothold into data center NICs? I am sure competitors would argue two different angles: (1) this PDF shares too much info; some should be hidden behind an NDA, (2) it's too hard to write (and maintain) this PDF.
Re: John Carmack's arguments against building a custom XR OS at Meta
#346Earlier quoted context omitted.
At least for certain types of OSes, it should be relatively easy to get most of Linux's hardware support by porting LKL ( https://github.com/lkl/linux ) and adding appropriate hooks to access hardware. Of course, your custom kernel will still have to have some of its own code to support core platform/chipset devices, but LKL should pretty much cover just about all I/O devices (and you also get stuff like disk filesys…
>but LKL should pretty much cover just about all I/O devices (and you also get stuff like disk filesystems and a network stack along with the device drivers). thus calling into question why you ever bothered writing a new kernel in the first place if you were just going to piggyback Linux's device drivers onto some userspace wrapper thingy. Im not necessarily indoctrinated to the point where I can't conceive of Linux…
What you describe is probably necessary for getting _fast_ Linux compatibility. However, if you are willing to take the overhead of a few layers of indirection, you can probably sandbox the Linux land somewhere, and not have it impact the rest of your design much.
Most hardware access doesn't have to be particularly efficient. And, yes, for the few pieces of hardware that you do want to support efficiently (eg your storage devices or networking, whatever you want to concentrate on in your design) these you can handle natively.
Btw, I would suggest that most people these days should write their toy operating systems to run as a VM on a hypervisor like Xen or similar. The surface to the outside world is smaller that way.
Re: John Carmack's arguments against building a custom XR OS at Meta
#347Earlier quoted context omitted.
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 s…
> "Oops, sorry, didn't get around to documenting it". That's obviously the wrong message. They should say "Go ask the engineering VP to get us off any other projects for another cycle while we're writing 'satisfying' documentation". Extensive documentation comes at a price few companies are willing to pay (and that's not just a matter of resources. Look at Apple's documentation)
> Look at Apple's documentation
To clarify for me: Is this good or bad?Re: John Carmack's arguments against building a custom XR OS at Meta
#348Earlier quoted context omitted.
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 ...)
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.
Just because you spend a lot of your money on R&D, doesn't mean that each R&D project is automatically a good one. You still have to make choices between them.
Re: John Carmack's arguments against building a custom XR OS at Meta
#349Earlier quoted context omitted.
Presumably if you’re meta you could pay the vendors enough to write drivers for any arbitrary OS
Writing drivers is easy, getting vendors to write *correct* drivers is difficult. At work right now we are working with a Chinese OEM with a custom Wifi board with a chipset with firmware and drivers supplied by the vendor. It's actually not a new wifi chipset, they've used it in other products for years without issues. In conditions that are difficult to reproduce sometimes the chipset gets "stuck" and basically sto…
> custom Wifi board
Why didn't you use something more mainstream? Cost?Re: John Carmack's arguments against building a custom XR OS at Meta
#350Earlier quoted context omitted.
The difference is that organisations like Bell Labs and Xerox PARC were primarily tech-first: innovations were the result of very clever and creative people doing blue skies research. The most groundbreaking stuff shocked the world while it was still a hacked-together demo, and similarly the cost of failure was quite low. On the other hand, Meta's experiment is primarily CEO-driven. The outcome is predetermined, chan…
Arguably the distinction you're pointing at is macroinvention (the transistor) vs microinvention (a better VR headset): one is a refinement of something that exists, another is transformative opening up whole new worlds of possibility. https://www.antonhowes.com/blog/macroinvention-vs-microinven...
Every improvement after that would count as micro-invention in your dichotomy.