TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Hubris – A small operating system for deeply-embedded computer systems

560 pointsby jacobwgover 3 years ago

28 comments

JulianMorrisonover 3 years ago
I really like this quote from the manual:<p>&lt;&lt;There are a class of &quot;ideal attractors&quot; in engineering, concepts like &quot;everything is an object,&quot; &quot;homoiconicity,&quot; &quot;purely functional,&quot; &quot;pure capability system,&quot; etc. Engineers fall into orbit around these ideas quite easily. Systems that follow these principles often get useful properties out of the deal.<p>However, going too far in any of these directions is also a great way to find a deep reservoir of unsolved problems, which is part of why these are popular directions in academia.<p>In the interest of shipping, we are consciously steering around unsolved problems, even when it means we lose some attractive features.&gt;&gt;
评论 #29392255 未加载
评论 #29392791 未加载
panick21_over 3 years ago
We are gettig an increasing amount of interesting Rust operating system for different uses.<p>- Hubris for deep embedded<p>- Redox OS for Desktop&#x2F;Server (<a href="https:&#x2F;&#x2F;www.redox-os.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.redox-os.org&#x2F;</a>)<p>- Tock for embedded (<a href="https:&#x2F;&#x2F;www.tockos.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.tockos.org&#x2F;</a>)<p>- Xous for trusted devices (<a href="https:&#x2F;&#x2F;xobs.io&#x2F;announcing-xous-the-betrusted-operating-system&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xobs.io&#x2F;announcing-xous-the-betrusted-operating-syst...</a>)<p>I assume there are more.
评论 #29393728 未加载
评论 #29392177 未加载
评论 #29394870 未加载
评论 #29391505 未加载
TD-Linuxover 3 years ago
I have an embedded real-time control project that is currently written in Rust, but runs with RTIC (<a href="https:&#x2F;&#x2F;rtic.rs&#x2F;" rel="nofollow">https:&#x2F;&#x2F;rtic.rs&#x2F;</a>), a framework which is conceptually similar (no dynamic allocation of tasks or resources) but also has some differences. RTIC is more of a framework for locks and critical sections in an interrupt based program than a full fledged RTOS. Looking through the docs, here&#x27;s the main differences (for my purposes) I see:<p>1. In Hubris, all interrupt handlers dispatch to a software task. In RTIC, you can dispatch to a software task, but you can also run the code directly in the interrupt handler. RTIC is reliant on Cortex-M&#x27;s NVIC for preemption, whereas Hubris can preempt in software (assuming it is implemented). This does increase the minimum effective interrupt latency in Hubris, and if not very carefully implemented, the jitter also.<p>2. Hubris compiles each task separately and then pastes the binaries together, presumably with a fancy linker script. RTIC can have everything in one source file and builds everything into one LTO&#x27;d blob. I see the Hubris method as mostly a downside (unless you want to integrate binary blobs, for example), but it might have been needed for:<p>3. Hubris supports Cortex-M memory protection regions. This is pretty neat and something that is mostly out of scope for RTIC (being built around primitives that allow shared memory, trying to map into the very limited number of MPU regions would be difficult at best). Of course, it&#x27;s Rust, so in theory you wouldn&#x27;t need the MPU protections, but if you have to run any sort of untrusted code this is definitely the winner.<p>Hubris does support shared memory via leases, but I&#x27;m not sure how it manages to map them into the very limited 8 Cortex-M MPU regions. I&#x27;m quite interested to look at the implementation when the source code is released.<p>Edit: I forgot to mention the biggest difference, which is that because tasks have separate stacks in Hubris, you can do blocking waits. RTIC may support async in the future but for now you must manually construct state machines.
评论 #29392999 未加载
评论 #29392161 未加载
评论 #29392582 未加载
评论 #29392181 未加载
throwaway894345over 3 years ago
&gt; instead of having an operating system that knows how to dynamically create tasks at run-time (itself a hallmark of multiprogrammed, general purpose systems), Cliff had designed Hubris to fully specify the tasks for a particular application at build time, with the build system then combining the kernel with the selected tasks to yield a single (attestable!) image.<p>I worked briefly at John Deere, and their home-grown operating system (called &quot;JDOS&quot;, written in C) also baked every application into the system at compile time. This was my only embedded experience, but I assumed this was somewhat common for embedded operating systems?
评论 #29395360 未加载
7thaccountover 3 years ago
Can anyone explain to a non-server person what Oxide hopes to accomplish? Is it basically just a new server with its own OS that makes it more secure?
评论 #29391667 未加载
评论 #29391939 未加载
评论 #29391656 未加载
评论 #29391791 未加载
评论 #29391643 未加载
评论 #29391821 未加载
tambourine_manover 3 years ago
&gt; The Hubris debugger, Humility…<p>That is some great naming
solmagover 3 years ago
So this is what Cantrill has been talking about.<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=XbBzSSvT_P0" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=XbBzSSvT_P0</a><p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=cuvp-e4ztC0" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=cuvp-e4ztC0</a>
cpachover 3 years ago
If anyone else wondered about the term BMC: <a href="https:&#x2F;&#x2F;www.servethehome.com&#x2F;explaining-the-baseboard-management-controller-or-bmc-in-servers&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.servethehome.com&#x2F;explaining-the-baseboard-manage...</a>
spenczar5over 3 years ago
I&#x27;d like to hear more about Oxide&#x27;s development process. Was this designed on an index card, and then implemented? Or was it done with piles and piles of diagrams and documents before the first code was committed? Was it treated as a cool, out-there idea that&#x27;s worth exploring, and then it gradually looked better and better?<p>It&#x27;s hard to get software organizations to do ambitious things like this, and it&#x27;s impressive that this was done on a relatively short timescale. I think the industry could learn a lot from how this was managed.
评论 #29395711 未加载
评论 #29394831 未加载
Zababaover 3 years ago
Intersting choices of names, Hubris and Humility. Combined with the style of the page, it gives to me a solemn and heavy feeling. Especially compared to most projects presented that tend to be very &quot;positive energy and emojis&quot;. Their website is also beautiful <a href="https:&#x2F;&#x2F;oxide.computer&#x2F;" rel="nofollow">https:&#x2F;&#x2F;oxide.computer&#x2F;</a>. Though I wonder who&#x27;s the target for this. Is this for cloud provider themselves, for people that self host, for hosters? For everyone?
评论 #29391840 未加载
评论 #29391174 未加载
评论 #29391234 未加载
评论 #29391215 未加载
评论 #29391767 未加载
评论 #29391508 未加载
评论 #29395403 未加载
评论 #29391601 未加载
Tuna-Fishover 3 years ago
The github links don&#x27;t work, are the repositories still private?
评论 #29390953 未加载
评论 #29391393 未加载
评论 #29391184 未加载
scuddover 3 years ago
Has Oxide released any information on the price range of one of their machines? I assume if they&#x27;re targeting mid-size enterprises it would be outside what I would consider buying for hobby use, but it would be sweet in the future if there was a mini-Oxide suitable for home labs.
评论 #29394933 未加载
sbarreover 3 years ago
The supervisor model reminds me a bit of how BEAM (Erlang&#x2F;Elixir) works although I&#x27;m sure that&#x27;s probably where the similarities end.<p>As much as most of this is way over my head, I&#x27;m always fascinated to read about new ground-up work like this.
ls65536over 3 years ago
&gt; no C code in the system. This removes, by construction, a lot of the attack surface normally present in similar systems.<p>Not to be too pedantic here, but it&#x27;s important to note that the absence of C code, while arguably a benefit overall, doesn&#x27;t by itself guarantee anything with regards to safety&#x2F;security...I suppose there&#x27;s going to necessarily be at least some &quot;unsafe&quot; Rust and&#x2F;or raw assembly instructions sprinkled throughout, but I can&#x27;t yet see that myself (as of the time of writing this comment, the GitHub links are responding with 404). Nonetheless, it&#x27;s always refreshing to see some good documentation and source code being provided for these kinds of things. Many companies in this space, even these days, sadly continue to live by some outdated values of hiding behind &quot;security through obscurity&quot;, which is somehow championed (though using different words) as a benefit even to their own customers, so it&#x27;s refreshing that others (Oxide among them) are really starting to take a different approach and making their software&#x2F;firmware publicly available for inspection by anyone inclined to do so.
评论 #29392233 未加载
评论 #29392119 未加载
Animatsover 3 years ago
That&#x27;s what bootable Modula I offered on the PDP-11, over 40 years ago.
评论 #29397979 未加载
Twisolover 3 years ago
As someone who&#x27;s only worked with a prepared hardware kit (a dsPIC33F on an Explorer 16 that came with cables and the debugging puck), if I want to pick up the board they recommend in the blog post, do I need to make sure I get any other peripherals?<p>This all seems very cool, and I badly want to poke at embedded stuff again, but I have whatever the opposite of a green thumb is for hardware. Advice would be appreciated ^_^
评论 #29431552 未加载
评论 #29470996 未加载
jbottover 3 years ago
How are these docs being built? I really like how these look and it looks to be asciidoc based, but I can&#x27;t seem to find a build script for these.
评论 #29396037 未加载
评论 #29396025 未加载
bo0tzzover 3 years ago
Their mention of individually restarting components and &quot;flexible inter-component messaging&quot; really reminds me of the BEAM. Very exciting!
评论 #29391583 未加载
rossmohaxover 3 years ago
Their repo is a rare case which embraced git submodules. For some reason they generate a lot of friction and not used often.
评论 #29396191 未加载
cute_boiover 3 years ago
I think reference provide more info than above announcement itself:<p><a href="https:&#x2F;&#x2F;hubris.oxide.computer&#x2F;reference" rel="nofollow">https:&#x2F;&#x2F;hubris.oxide.computer&#x2F;reference</a><p>Looks amazing imo. Waiting for github code :D
评论 #29395892 未加载
mgaunardover 3 years ago
I feel like Rust is everywhere and nowhere at the same time; how do they do it?
评论 #29399087 未加载
评论 #29400976 未加载
wyldfireover 3 years ago
I&#x27;m not familiar w&#x2F;the details of the Cortex-Ms -- do any of them support SMT&#x2F;multicore? Does Hubris have a scheduler which can support a multithreaded&#x2F;core cpu?
评论 #29394854 未加载
luizfelbertiover 3 years ago
Refreshing to see this seems tailored for RISC-V and ARM, rather than it being just another x86 OS. RISC is the future, and the future is exiting!
评论 #29394871 未加载
评论 #29399161 未加载
b20000over 3 years ago
when i started working on a recent realtime project i used linux, although i wanted to do bare metal. but that was not an option because of all the drivers necessary, and i knew i wanted to use the GPU and the cortex A processor i am using. i am still wondering if there really no solution to this situation.
评论 #29393900 未加载
natemcintoshover 3 years ago
So for a new OS like this, how does one compile their program for it?
评论 #29393119 未加载
steveklabnikover 3 years ago
Hey folks! The 404s are because we were planning on actually publishing this a bit later today, but it seems like folks noticed the CNAME entry. Happy to talk about it more, though obviously it&#x27;ll be easier to see details once things are fully open.<p>EDIT: blog post is up: <a href="https:&#x2F;&#x2F;oxide.computer&#x2F;blog&#x2F;hubris-and-humility" rel="nofollow">https:&#x2F;&#x2F;oxide.computer&#x2F;blog&#x2F;hubris-and-humility</a> and the GitHub should be open.<p>EDIT 2: The HN story now points to this blog post, thanks mods!
sydthrowawayover 3 years ago
I don&#x27;t get why they had to reinvent the wheel, just use libreboot or whatever.
评论 #29398238 未加载
oxidethrowawayover 3 years ago
Oxide’s work is always interesting and basically a perfect confluence of all of my combined hardware and software experience to date.<p>However, I can’t quite get over their policy of paying everyone the same salary of $175,000. ( <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=26348836" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=26348836</a> ) I’d love to apply and work on these things, but I wouldn’t love the idea of sacrificing $xxx,000 per year for the privilege of building someone else’s startup.<p>Does anyone know if they have some variability in equity compensation at least? I’m no stranger to taking significant compensation in startup equity, but it would have to be significant enough to make up for the significant comp reduction relative to just about every other employer in these domains.
评论 #29392400 未加载
评论 #29392679 未加载