3 ms·
There are two huge hurdles that no hobby operating system can realistically overcome, without major tradeoffs (like being 100% POSIX-compatible): accelerated gr
by 1_player 5y ago
There are two huge hurdles that no hobby operating system can realistically overcome, without major tradeoffs (like being 100% POSIX-compatible): accelerated graphics, which in this day and age are required even for basic 2D rendering, especially if you have a hidpi monitor, and a web browser. Everything else, compared to those two problems, is easy stuff.
Graphics is just incredibly complex, opaque and obtuse kernel-space logic with tons of corner cases.
Web browsing for normal day-to-day usage is about a million lines of code, +/- one order of magnitude.
- TheDong 5y agoI would place "driver support" as on the same level. Porting a web browser to work on your platform (chromium, webkit) doesn't require rewriting the whole thing, and chromium etc already are designed in a way to isolate browser code from OS-specific code (as we can see by chromium code for windows/linux/macOS/android being mostly shared). On the other hand, making it so your OS works with the large number of common USB devices, networking chips, etc... it's a fantastical effort which linux only barely manages to accomplish.
- xyzzyz 5y agoThis can be somewhat mitigated by running these OSes as VM guests, under Linux (or Windows) supervisor. That way, you only need to implement the virt devices. This makes some things not achievable (e.g. 0.7s startup time), but can make bootstrap phase of growth much easier.
- leoc 5y ago“Linux is a free set of buggy device drivers” https://news.ycombinator.com/item?id=13660437 https://news.ycombinator.com/item?id=13660437
- DeathArrow 5y agoAnd a POSIX layer.
- toast0 5y agoDrivers are mostly not too hard, you just have to do them. USB seems like a challenge though. If your driver model isn't too wild, you can repurpose drivers from the BSDs and Linux. And maybe even windows networking drivers if ndis works for you. A 1.0 launch really doesn't need to support everything. It just needs to support a large enough handful of common devices. Hell, Apple OSes barely support any hardware.
- errantspark 5y ago> Drivers are mostly not too hard Except when they are, which is anytime something is poorly documented, which is pretty much all the time. Let's not even get started on vendors who don't WANT you to write drivers for their hardware. > Hell, Apple OSes barely support any hardware. Would be interesting to see an OS target specifically Apple HW to make it a bit easier on the devs.
- toast0 5y agoFor any hardware you're likely to support on v1, there's probably a FreeBSD driver, a NetBSD driver, a Linux driver, and if you're lucky a leaked datasheet that's easy to search for. And a windows driver if you're desperate enough to disassemble that. If that's not documentation, I dunno what is. Each of them will be wrong, of course, but they're all likely to be wrong differently, so you can learn from the differences.
- ncmncm 5y agoDrivers and mind share are the only serious problems. Emulating Posix is not a debilitating chore. The browser can run adequately under OS emulation. Getting Vulkan ported is doable. Anyway, ordinary CPU cores are good enough for all but game graphics. But the overwhelming mass of devices to drive is the show-stopper. Probably the best that can be done is to implement drivers for Qemu virtual devices, and run under a hypervisor that has drivers for real things.
- skywal_l 5y agoWeb browsers are not part of the OS I believe. It's an application that can be ported to your OS. Note though that at the same event, a few days earlier, a hobby OS was presented which ship with its own ex-nihilo web browser implementation: SerenityOS [0]. There is still a lot to go but apparently they have: 1. A lot of resources (dozens of active developers). 2. A plan (meaning organization, resources, tooling, etc). It's still a hobby thing but it's promising. [0]: https://news.ycombinator.com/item?id=29270776 https://news.ycombinator.com/item?id=29270776
- abnercoimbre 5y agoWe should highlight the creator has garnered enough support to work on SerenityOS full-time [0]. That would make it not-a-hobby in some important way. [0] https://awesomekling.github.io/I-quit-my-job-to-focus-on-SerenityOS-full-time/ https://awesomekling.github.io/I-quit-my-job-to-focus-on-Ser...
- DeathArrow 5y agoHaving 3D support and a browser is far from enough. Unless people have access to the the apps they need, they aren't going to use that OS. And they won't settle with alternatives they deem subpar. An OS is only a means to run software. Nothing more.
- selfhoster11 5y agoSerenity OS has addressed the browser problem with a shocking amount of energy. If anything, it proves that the dream is possible.
- abnercoimbre 5y agoFor those wondering the SerenityOS demo is also up on Handmade Seattle [0], which touches on the browser. [0] https://media.handmade-seattle.com/serenityos https://media.handmade-seattle.com/serenityos