16 ms·
The Helios microkernel
- atrn 4y agoNot to be confused with the other Helios OS - https://github.com/axelmuhr/Helios-NG https://github.com/axelmuhr/Helios-NG
- ncmncm 4y agoYeah, pretty rude to stomp the name.
- Shared404 4y ago> Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something. > Please don't use Hacker News for political or ideological battle. It tramples curiosity. "What, this comment doesn't do either of those?". Taken in the context of your other comments in this section, it does.
- lproven 4y agoGood point. I wrote about that recently: https://www.theregister.com/2021/12/06/heliosng/ https://www.theregister.com/2021/12/06/heliosng/ Very interesting OS that is FOSS now. By v3 it ran on multiple CPU architectures. With some of the manycore CPUs appearing in recent years, this is crying out for a revival.
- __d 4y agoYes. It'd be a shame if this effort were to continue to use the same name, especially given they're both operating systems. Drew?
- ddevault 4y agoThe name of the complete system is called Ares, and Helios is a small component of that. Essentially, to most people, it's an implementation detail/internal codename that will not really see much use for marketing efforts. It does not look like the other Helios project is going anywhere, so I'm not too concerned with the naming conflict right now.
- __d 4y agoThe other "Helios" project was a commercial operating system from Perihelion Software, which was subsequently kinda open sourced after the company went bust (which is the GitHub repo posted). There are a couple of books about it from Prentice-Hall: ISBN 0-13-381237-5 and ISBN 0-13-386004-3, plus various academic papers, commercial software for the OS (mostly development tools), open source software (X11, gcc, other stuff), etc, etc. It was the default operating system of the Atari Abaq/ATW (https://en.wikipedia.org/wiki/Atari_Transputer_Workstation https://en.wikipedia.org/wiki/Atari_Transputer_Workstation), and also ran on various other Transputer, i860, and various other early parallel computer systems. It too was a micro-kernel, with a very Plan9-like global name system implemented by applications plugging into the name server protocol. If nothing else, it might be of interest to read up on it, but given the similarities between the projects, it seems to be an unfortunate naming collision.
- Santosh83 4y agoAnother thing not specifically mentioned in the post is this project will be a good workout for the brand new language (Hare) as well. I remember a post on it not too long back on HN that garnered a lot of scathing remarks. Good luck to the authors. However I just want to add a personal comment. In my view, programs will come and go. They can be written and rewritten. But what is really important if we want to ensure free computing for all is not gradually eroded is to work on as many open standards for interoperability as possible to serve as alternatives for proprietary protocols. Also open, community developed languages. However the hardware situation is out of the hands of software developers, yet critically important. Open software and protocols on closed hardware is unsustainable. Lets hope someone like Musk takes the initiative in this area.
- userbinator 4y agoas many open standards for interoperability as possible I don't think that's a good idea. There's the xkcd 927 concern, since there are already long-established standards for a lot of things; and that brings me to what I think we really need, and that is stable standards. The longer a standard has been around unchanged, the more implementations will arise. On the other hand, the browser situation is a great example of what happens when some entity takes control of an "open" standard and then churns it endlessly. I think this is particularly true of programming languages, since they are foundational for everything else.
- nine_k 4y agoWhile stability is very important, openness is still no less important. A number of standards is still patent-encumbered. Back in the day the algorithm to encode a GIF was patented, do you remember that? Do you remember how long Oracle and Google spent in court debating whether it's acceptable to describe and implement public interfaces? A world where you can but may not interoperate is very inhospitable, no matter how stable the closed standards are.
- zaik 4y ago> Lets hope someone like Musk takes the initiative in [open standards for interoperability]. What?
- donkarma 4y agois this a serious project or just a demonstration of the language's capabilities? If serious, would be nice to see some Plan 9 type stuff if on roadmap
- Shared404 4y agoIt's likely at least somewhat serious. I know Drew is a fan of Plan 9, so that may not be out of the picture - though it looks like there's already a non-negligible amount of stuff planned that may or may not be gotten to.
- donkarma 4y agoWould love to contribute as long as it's going somewhere.
- ncmncm 4y agoYou know it is coded in Hare, right? So, not. Amusement value only. (Amusement suffices, sometimes.)
- eatonphil 4y agoExplaining my downvote: even if that's true it's considered mean-spirited and naive to say so because you really can't know the future. I don't need to remind you, as an example, Linux was a student project no one would have thought to succeed as it has.
- ncmncm 4y agoMy assessment is based on the very scattered attention in evidence. A new language is a full-time project, if you are at all serious. A new kernel is another full-time project, if you are at all serious. A new kernel coded in an absolutely immature language starts it out at a major handicap, even if you were serious. Nobody is obliged to be serious, of course, on a hobby project, but there is no hiding the fact. Wishing doesn't make up the difference. Taking the question at face value, it deserved an honest answer, even at risk of resentment in, well, the peanut gallery -- which delivered.
- CameronNemo 4y agoSeems like a lot of alternative OSs these days are microkernels. Fuchsia/Zircon, Redox, and now this. Seems pretty interesting. I wonder if the Linux kernel will take cues from these developments and start shoving auxiliary device drivers into userspace? A pleb can dream.
- ungamedplayer 4y agoFUSE for filesystems already exists in userspace, so its not unheard of. Just making it work safely and secure is the first steps to having these kinds of features upstreamed.
- SkyMarshal 4y ago> Fuchsia/Zircon, Redox, and now this. Don't forget the original (for Linux anyway), SEL4. https://sel4.systems https://sel4.systems
- senko 4y agoseL4 has nothing to do with Linux, aside from the fact that the team was involved in another Linux-on-top-of-L4 project (L4Linux). Also, seL4 comes from a long line of L4 microkernels (https://en.wikipedia.org/wiki/L4_microkernel_family#History https://en.wikipedia.org/wiki/L4_microkernel_family#History) which actually predates Linux (L3 was developed back in '88).
- survirtual 4y agoYou can already build auxiliary drivers / codecs / etc and insert them into modules, then put together a device tree overlay to use the module. With things like dt overlay fs, straight forward to insert new device trees. If you really wanted, could build a minimal kernel and move many devices to be inserted at runtime. Anyway, wouldn’t mind if all that was made a lot smarter and made more accessible to people.
- blooalien 4y agoIsn't that how Raspberry Pi does things?
- sydthrowaway 4y agoHow does this compare to Fuchsia?
- Santosh83 4y agoFuchsia is by Google. This is a one man effort (at this point). Also it is just begun... Fuchsia is already used in some devices by Google. It is simply too early to make any kind of comparison except the implementation language. Fuchsia uses C++ while Helios is using its author's own Hare lang.
- eatonphil 4y ago$ git clone https://git.sr.ht/~sircmpwn/helios Cloning into 'helios'... remote: Enumerating objects: 1820, done. remote: Counting objects: 100% (493/493), done. remote: Compressing objects: 100% (444/444), done. remote: Total 1820 (delta 242), reused 0 (delta 0), pack-reused 1327 Receiving objects: 100% (1820/1820), 415.45 KiB | 455.00 KiB/s, done. Resolving deltas: 100% (867/867), done. $ cd helios $ git shortlog -s -n --all --no-merges 174 Drew DeVault 30 Eyal Sawady 1 Sebastian Drew is pretty good at getting folks involved.
- pjmlp 4y agoFuchsia uses C++ for the microkernel itself and a mix of Rust, Go and Dart for the remainder OS services.
- als0 4y agoFuchsia doesn't really have a community outside of Google.
- ddevault 4y agoHelios author here. I tried to think of a nice spin for this comment, but came up short. If there is a future of computing with Fuschia in it, it will have everything to do with Google's industry weight and nothing to do with its good systems engineering and design. Fuschia is an extraordinarily complex kernel design. Hell, it's a "microkernel" which is bigger than Linux! It's fairly typical of Google's inwardly-focused engineering culture, using questionable tools (with large shadows) such as Bazel and gRPC, which were likely chosen simply because they plug into the Googler engineering culture. At the same time, these decisions give way to a very complex system with heaps of moving parts, in this rube goldberg design which is endemic of Google engineering. Helios is much, much simpler. The kernel itself will probably clock in at under, say, 20,000 lines of code (for x86_64, at least), and it has a very small syscall API, less than two dozen in the final design. Many of the things Fuschia does in the kernel will be done in userspace on Helios, in the Mercury component, such as service discovery and capability allocation. Finally, Helios is written in Hare, which itself is a much simpler language than C++, and kernel hackers at the very least should be convinced of the argument that the complexity of your implementation language contributes to the complexity of your implementation.
- vander_elst 4y agoI have some concerns about the future of the OS. It seems that the author in involved in many other ambitious projects (sway, hare, sourcehut...). I am not sure how sustainable it is to keep up with all of them. Anyway congrats for the milestone and best of luck moving forward!!
- zaik 4y agoIt can be sustainable when you hand over projects if you feel you accomplished everything you set out to do: https://drewdevault.com/2020/10/23/Im-handing-wlroots-and-sway-to-Simon.html https://drewdevault.com/2020/10/23/Im-handing-wlroots-and-sw...
- jpe90 4y agoFrom what I've experienced from (very limited) involvement in one of those projects is that he puts a lot of effort into onboarding and investing in new contributors.
- ddevault 4y agoAye, this is the answer. https://drewdevault.com/2022/03/14/It-takes-a-village.html https://drewdevault.com/2022/03/14/It-takes-a-village.html
- eatonphil 4y agoDrew has said [0, 1] that it's not possible/practical to build a browser today (enough counterexamples exist for this to be not really true) but the way his projects are going I kind of expect him to announce one in the next few years. [0] https://drewdevault.com/2020/08/13/Web-browsers-need-to-stop.html https://drewdevault.com/2020/08/13/Web-browsers-need-to-stop... [1] https://drewdevault.com/2020/03/18/Reckless-limitless-scope.html https://drewdevault.com/2020/03/18/Reckless-limitless-scope....
- Santosh83 4y agoThe SerenityOS team are building a browser from scratch and it is even passing some of the ACID tests. The pretty significantly along. So it is possible with enough dedication, but whether you can be competitive with Chrome is a different matter.
- lemoncurd 4y agoTheir browser needs to run on a single platform, their own platform, and only one rendering backend, etc. Thus it is a lot less complex than Chrome or Firefox.
- hawski 4y agoI think that supporting multiple platforms is one of the smallest challenges for a browser. CSS and performant JavaScript that manipulates DOM is far more complex a problem.
- nix23 4y agoYeah and is more work then the OS itself... But hey having a browser and ext2 should be good enough ;)
- ainar-g 4y agoNetSurf[1][2] still exists, and while it's not a small program, it's definitely not as large and unwieldy as Chrome or Firefox. And it's good-enough to browse simple sites like Wikipedia or HN with, heh. [1]: https://www.netsurf-browser.org/ https://www.netsurf-browser.org/ [2]: https://en.wikipedia.org/wiki/NetSurf https://en.wikipedia.org/wiki/NetSurf
- senko 4y agoThe post mentiones seL4 as an inspiration: > Again, much of the design comes from seL4, but unlike seL4, we intend to build upon this kernel and develop a userspace as well. I'm wondering why they didn't decide to build the rest of the system on top of that. I'd totally respect answers like "because building kernels is fun" or "because I wanted to do that in my programming language". I'm just wondering if there was another reason seL4 was unsuitable.
- ddevault 4y agoseL4 has an interesting API design but I'm not fond of the internals or implementation. It's largely an academic exercise, in my opinion. They also have no ambitions in userspace, and limit themselves to working on the kernel alone, which is not a great idea - other people have criticized seL4 on the basis that not building a system with your kernel is a good way to be blind to the design flaws of your kernel. In short, seL4 is cool, but not very practical, and I think it can be done better.
- riedel 4y agoAFAIK l4se focussed on verifiability and simultaneous performance (with actual customers in defense I guess). L4RE seems more focussed on application (one being the simk3 'merkle phone') . So I wonder which part of inspiration comes from seL4 and which part from L4 in general . Especially can you elaborate the shortcomings of the general design in terms of user land (I only had to build a toy OS on l4 in a practical course more than 15 years ago at liedke's OS group just after he passed away so suddenly. We obviously never got to the nasty parts.)
- ddevault 4y agoThe actual API differences between Helios and seL4 are somewhat subtle, rather than a broader difference of design philosophy. For instance, the layout of the bootinfo structure is different - PML4/PDPT/PD/PT objects are stored in separate capability regions so that userspace can more reliably distinguish them without architecture-aware heuristics. Little things like that. And of course, the implementation is wildly different from seL4. To be clear, I am specific about the "seL4" inspiration rather than the "L4". Naturally L4 plays a role, but Helios's API design has a pretty obvious influence from seL4 specifically.
- rossmohax 4y agohow does this guy find time to support his business, sourcehut, and doing cool side projects like Hare and Helios? Does he have life? Does he code extremely fast? Has he automated everything in his life, including lawn mowing, so that he can dedicate 25h a day to coding? What's the secret?
- MisterTea 4y agoI know guys like this and its an amazing amount of focus on a task punctuated by hiking and other outdoorsy/physical activities. They also have no responsibilities outside of their immediate life so they remain uninterrupted. All they do is pay bills and live. But they are also quite solitary yet have healthy social lives.
- BaculumMeumEst 4y agoIt’s really depressing to me that there are people on this site who spend their time on this earth sneering at other people’s passion projects in thread after thread because of the language being used. People notice that and it affects their decision to share their work.
- pxeger1 4y agoWhat sneering are you referring to? I can't see any in this thread
- MisterTea 4y agoLikely referring to this post: https://drewdevault.com/2022/05/30/bleh.html https://drewdevault.com/2022/05/30/bleh.html
- BaculumMeumEst 4y agoI’m not sure how to link a comment on this site but it’s now downvoted in this thread.
- Shared404 4y agoIf you click the timestamp you can get a direct link. The comment in question is here: https://news.ycombinator.com/item?id=31764243 https://news.ycombinator.com/item?id=31764243
- deleted 4y ago[deleted]
- skywal_l 4y agoWould be nice to document your progress through youtube the way Andreas Kling did for SerenityOS. It's probably part of the big success and the huge followers and developers he gained along the way. It's probably an additional huge workload for the production of the video though...
- dmytrish 4y agoI am amazed how Andreas manages to do very solid work while also turning (at least some pieces of) it into impressive one-hour shows with clear outcomes. Is he rehearsing his coding videos? Does he pick moments that went well? Is he a superhuman coder?
- c01n 4y agoC was created to write Unix, and now here we have Hare to write Helios. Good luck on this great journey Mr Drew.
- pjmlp 4y agoC was born around UNIX v3 and used to make it portable.
- deleted 4y ago[deleted]
- ilovecaching 4y agoWhen writing your OS from scratch, what order did you develop your components in? Did you start with an assumption of UEFI, long mode only?
- ddevault 4y agoHelios currently uses legacy boot. The first thing is to get something to boot and print out "hello world" to serial or some such like. I also wanted to get into long mode fast, because Hare does not support 32-bit targets. Then paging is generally wise. The rest is dependent on your kernel design.
- akagusu 4y agoI wish all luck for Drew and all people contributing to Helios. I wish it could be a successful OS and maybe some day we can replace Linux for it, since now Linux is controlled by big corps.
- tiffanyh 4y agoThe breadth & depth of things Drew creates is both inspiring and confusing. Inspiring because he's clearly chasing his passion. Confusing because it comes across as a lack of focus.
- cryptonector 4y agoWhy is that confusing? I don't get it. Drew has lots of ideas, and he's sharing as fast as possible. Focusing on one to the exclusion of the others would doom a lot of those ideas to be only only by him.