6 ms·
Includeable minimal operating system for C++
- deleted 2y ago[deleted]
- ranger_danger 2y agoVery cool.
- caseyy 2y agoPretty cool way to turn x86es into embedded machines.
- zeusk 2y agoCheckout https://osdev.org https://osdev.org And actually, x86 started life as an embedded processor :)
- caseyy 2y agoAh, much simpler than I anticipated. Thank you for sharing
- MisterTea 2y agoFor a similar embedded RTOS there is RTEMS https://www.rtems.org/ https://www.rtems.org/ https://en.wikipedia.org/wiki/RTEMS https://en.wikipedia.org/wiki/RTEMS An interesting example would be GRiSP where Erlang's BEAM was ported to an Arm Cortex M7 microcontroller with 64 MB of external RAM. https://www.grisp.org/ https://www.grisp.org/
- quotemstr 2y agoAmazing how we've come full circle. Type II hypervisors treat VM guests as processes, so is it any wonder we've developed ways to develop them as processes? A paravirtualized VM is just a process with a different (and arguably better) system call interface.
- nickpsecurity 2y agoThe distinction started with rings of protection which was orthogonal to processes. Roger Schell said the guy who designed the one for Intel’s 286 had security kernels like GEMSOS in mind. Here’s GEMSOS and STOP so you can see how they did that back in the 1980’s: https://www.cse.psu.edu/~trj1/cse443-s12/docs/ch6.pdf https://www.cse.psu.edu/~trj1/cse443-s12/docs/ch6.pdf
- gpderetta 2y agoThis seems very interesting! But... "So IncludeOS can compile C and C++ applications natively. Currently, these are the only programming languages supported. We’ll add support for other language runtimes in 2019." Last blog update is 2019. Is the project still alive? edit: github shows recent activity, so it is encouraging.
- PittleyDunkin 2y agoOk but the C abi includes basically all languages. Frankly they could toss C++ in the trash with basically zero impact to their value because who the hell with two neurons to rub together uses C++ anymore? (Ok this leaves out Go but they picked their path) Besides, supporting c++ must be a goddamn nightmare.
- gpderetta 2y ago> who the hell with two neurons to rub together uses C++ anymore? I don't know. Then again I had my mandatory lobotomy when I started to professionally program in C++ 20 years ago (and still do to this day).
- deleted 2y ago[deleted]
- PittleyDunkin 2y agoI agree that people still use C++, I just find it very difficult to imagine a C++ programmer I'd trust as much as the rust compiler. Hence my comment. FWIW, I programmed C++ for 15 years—it's a useful tool, but it doesn't have much use anymore outside of legacy tooling, codebases, and developers who can't learn new things.
- inetknght 2y ago> I just find it very difficult to imagine a C++ programmer I'd trust as much as the rust compiler. It's even more difficult to imagine a javascript programmer I'd trust more than any C++ compiler.
- award_ 2y agoI've seen this come up here and elsewhere before, always very cool! I always wonder who's actually using it for production workloads, in what context, etc. It feels like so much of the world focuses on docker images that alternatives are pretty hard to get going.
- j16sdiz 2y agoI found the linked page very confusing, the whole page just say some generic unikernel stuffs This page is much better, telling me how it is different/interesting https://www.includeos.org/technology.html https://www.includeos.org/technology.html
- cmrdporcupine 2y agoIsn't this what's more typically called a unikernel? EDIT: I see, their GH page actually uses this term, but this landing page does not.
- a2128 2y agoWhat's with the recommendation for a YouTube MP3 converter near the bottom? There seems to be no technological relation so I can only guess the author got paid to include it, but you're legally supposed to disclose if something is a paid ad
- jagged-chisel 2y agoIs it a legal requirement? I thought it (disclaiming ads) was something one did to avoid the proverbial pitchforks and nothing more.
- samatman 2y agoThere is no such legal requirement whatsoever. It's part of the terms of service of a number of social networks, I can almost see how someone might confuse that for the law. If I squint.
- wmf 2y ago16 CFR Part 255 Guides Concerning the Use of Endorsements and Testimonials in Advertising https://www.ftc.gov/sites/default/files/attachments/press-releases/ftc-publishes-final-guides-governing-endorsements-testimonials/091005revisedendorsementguides.pdf https://www.ftc.gov/sites/default/files/attachments/press-re...
- wrs 2y agoThe FTC has guidance on when it considers a compensated endorsement to be "deceptive advertising", which is something they can legally enforce. [0] [0] https://www.ftc.gov/business-guidance/resources/ftcs-endorsement-guides-what-people-are-asking https://www.ftc.gov/business-guidance/resources/ftcs-endorse...
- PittleyDunkin 2y agoThis seems like a farce. Most advertising in america is deceptive. Edit: they seem to only enforce disclosure and they don't actually evaluate whether the ad is deceptive or not. Still this does seem to foreclose on the domain user in question's use of ads, if anyone cares > If the advertiser doesn’t have proof that the endorser’s experience represents what people will generally achieve using the product as described in the ad (for example, by just taking a pill daily for two months), an ad featuring that endorser must make clear to the audience what the generally expected results of following that same regimen are. Pathetic and spineless. If this were actually enforced 99.99% of ad claims would be illegal.
- dangerwill 2y agoOh this is wildly cool! Do cloud providers like aws allow you to upload a custom system image to run as a vm?
- deleted 2y ago[deleted]
- shanemhansen 2y agoMy information is probably out of date but historically yes. Also historically operating systems other than Linux were pretty iffy. I know you can run BSD on AWS for example.
- eyberg 2y agoAbsolutely. Everyone who deploys unikernels to the public clouds does this. Some are better fits than others. AWS for instance you can build an image and deploy an ec2 instance in a matter of seconds.
- pshc 2y agoSounds neat but very minimal: > Node.js-style callback-based programming - everything happens in one efficient thread with no I/O blocking or unnecessary guest-side context switching. > No race conditions. Delegated IRQ handling makes race conditions in “userspace” “impossible”. …unless you implement threads yourself (you have the access) or we do.
- nightowl_games 2y agoA game server could perhaps be another valid use case for this technology. A simple program, performance maximized, cost minimized.
- VikingCoder 2y agoReminds me of Cosmopolitan C Compiler / Actually Portable Executables.
- snowAbstraction 2y agoThis 2016 podcast discusses this in depth: https://cppcast.com/alfred-bratterud/ https://cppcast.com/alfred-bratterud/
- dejw 2y agoso is anyone actually using it?
- mgaunard 2y agoIt's cool, but this only runs with VirtIO hardware. If you need real-time low-latency, you don't want any virtual hardware. I'm not sure what's the practical application here. Either you use containers because you have complex dependencies so you want to just package the whole thing in isolation, or you don't and you might as well run as a normal process. Here you have a simple self-contained executable image anyway. But to be honest I never understood the point of virtualization.
- erichocean 2y agoThere's almost no reason to do anything weird with operating systems today, because you can run Linux on a single core of your multi-core machine, and your app at full throttle (no context switching) on the remaining cores. So for the cost of <1 core and a small amount of RAM>, you get full Linux, full debuggability, SSH, file systems, networking, etc. and your app still runs as fast as it can on the CPU. Spend your innovation budget on your app, not the OS.
- gpderetta 2y agoYou get another layer of address space separation. Then again, you can run a linux vm on one core and your unikernel app on the other cores on top of an hypervisor.
- gpderetta 2y agoFor a similar take on C++ unikernel, there is also OSv [1,2], from the same authors of seastar [3] and ScyllaDB. [1] https://github.com/cloudius-systems/osv https://github.com/cloudius-systems/osv [2] https://osv.io/ https://osv.io/ [3] https://seastar.io/ https://seastar.io/