From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!newsfeed.xs3.de!io.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Unikernel / Ada Date: Wed, 1 Mar 2017 15:20:11 -0600 Organization: JSA Research & Innovation Message-ID: References: <7023af9f-7429-448d-b290-03e0c32772f7@googlegroups.com> NNTP-Posting-Host: rrsoftware.com X-Trace: franka.jacob-sparre.dk 1488403211 30703 24.196.82.226 (1 Mar 2017 21:20:11 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Wed, 1 Mar 2017 21:20:11 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Xref: news.eternal-september.org comp.lang.ada:33445 Date: 2017-03-01T15:20:11-06:00 List-Id: That sort of thing was done a lot, especially in the early days of Ada. Rational, for instance, had a bare-machine version of their compiler (the executable ran directly on the hardware with no outside kernel). Indeed, all of the MS-DOS compilers could have been considered the same, as MS-DOS didn't provide much other than I/O support. Everything else (tasking, exceptions, storage pools, etc.) was in the Ada runtime. We used to sell an embedded kit that included the runtime source and tools for tailoring it to run in a bare machine environment. For the most part, those things have disappeared, because of lack of demand. That's probably because modern software needs so much more I/O (you can't live with just an RS232 serial connection anymore) that some sort of I/O kernel is needed at a minimum. (I don't think I would want to start writing TCP/IP socket stacks :-). And with the rise of multi-core systems, CPU setup and management is gotten pretty hairy as well. That drives customers to using that kernel for everything. My personal tendency is to use the target system for as little as possible (I don't have to trust -- or understand -- things I don't use!), but my understanding is (a) I'm unusual, and (b) I don't have customer pressure to do otherwise. The (b) factor is surely the most important, and that could change at any time. Using Xen as the kernel is an interesting idea, but of course it changes it from a "hypervisor" to "just another kernel" which is running programs packaged individually. It's almost a full circle (and doesn't surprise me, because people are always trying to get rid of layers, and there aren't many new ideas out there). Randy. wrote in message news:7023af9f-7429-448d-b290-03e0c32772f7@googlegroups.com... Some time ago read some Papers on the MirageOS (https://mirage.io/), a library operating system. The model works in short (simplified): The application sources (in case of Mirage in OCaml) are compiled / linked together with all its depending "library os" sources into one fully standalone binary (unikernal). This binary is then deployed directly f.e. on a Xen Hypervisor. No complex OS involved. small, efficient, more secure, fast to boot, https://mirage.io/wiki/overview-of-mirage I find this model interesting for GNAT. Maybe there are already some ideas around? Volkert