10 ms·
Look Ma, no OS
- bsimpson 12y agoI wonder if this is how AppEngine was built.
- tilt_error 12y agoIn theory it should be possible to run Erlang applications on OSv as well [0]. I saw some discussions around this earlier, but I am not sure what the current status is. [0] https://github.com/cloudius-systems/osv-apps/tree/master/erlang https://github.com/cloudius-systems/osv-apps/tree/master/erl...
- makmanalp 12y agoAlso relevant: http://openmirage.org http://openmirage.org and https://www.youtube.com/watch?v=bYQ_lq5dcvM https://www.youtube.com/watch?v=bYQ_lq5dcvM
- MCRed 12y agoMirage supports Ocaml the video shows people making Python Unikernels. This slide deck supports Elixir and Erlang languages. (just adding details for people)
- istvan__ 12y agoThis is pretty amazing. I really like to idea of using more Erlang for my projects and this would make the deployment to EC2 easier.
- delinka 12y agoThis has to be one of the worst UIs for a slide deck. "Why aren't these questions being answered?" ... "Oh, the slide advance UI changes. Too inconspicuous."
- guelo 12y agoOh! You go down until you run out of slides then you go right.
- debaserab2 12y agoI didn't spend enough time to figure that out. I just assumed that the audio piece that went along with the slide deck wasn't uploaded and closed my browser. I don't think this is intuitive enough. If your slide deck needs a secondary nav, it probably shouldn't be a slide deck.
- rifung 12y agoTo be honest I kind of like it. I was confused at first as well but this does allow you to more quickly go between sections of a powerpoint which just isn't possible with the traditional "you can only swipe left or right" presentation. Not only that but it also makes it much easier get an overview about what things are discussed in the presentation.
- kjar 12y agosimilarly at first it confused me, but now I understand it is like a table of contents which is useful and easy to use.
- soong 12y agoOr you could put a TOC at the beginning (you know, like in a book) and do no sliding at all. -> No confusion, great overview, direct jumps with hyperlinks, easy to realize with pure HTML.
- frou_dh 12y agoI'm shocked that the top two HN comments as of writing are bikeshedding the submission's web design.
- jacques_chester 12y agoThis is "Why is the bike shed missing three walls and half the roof?"ing.
- stonogo 12y agoThe next logical step is to elide the virtualized network and disk interfaces, and then we're back to shared hosting! See you again in twenty years.
- nsajko 12y agoBut hopefully with a smaller stack?? :)
- xyzzy_plugh 12y agoYep. I don't get the value in this, pushing the problem somewhere else just creates new problems. Instead of being able to rely on distributions and gargantuan open software, now we go off and roll it all ourselves? This is a good path to job security, but I don't see what else.
- MCRed 12y agoWhat's to roll yourselves? (Serious question, I might have missed it.) The erlang platform provides a great deal of everything you need. And if it doesn't, there's a library out there to do it. Elixir is extremely active, growing and moving fast and even if you do have to roll it yourself, it can still be a net win. For instance, I found it was easier to integrate a mail sending library or interface with mailgun than it was to get an STMP service working on linux. But then, I'm a developer, not ops.
- corysama 12y agoDisclaimer: I have no idea what I'm talking about and should not be taken seriously. Eliding the virtualized network and disk interfaces is not what they are talking about though. They are sticking with those. So, given virtualized CPU, RAM, network and disk interfaces; a runtime that talks directly to those interfaces; and the intent to exclusively run a single process per VM; what do they really need Linux for?
- justincormack 12y agoYou don;t roll all a Linux distro yourself; aside from the fact you use open source libraries, you need much less as it is only for running networked applications, which needs less stuff.
- _RPM 12y agoThis website must be broken. It broke my browser's back button.
- monochromatic 12y ago"Two dimensional navigation for a slide deck would be really helpful, discoverable, and useful." - no one ever
- sanderjd 12y agoI would have never said that, but now that I've come across it a few times, I think it's great – easy to get an overview of high level topics and dig into those that are interesting. Definitely not very discoverable, but pretty useful.
- MCRed 12y agoFor those who are confused: Hit the down arrow to go thru the slides, when you get to the end of one, hit the right arrow to go to the next section, then rinse and repeat. Just hitting right will show the you the headers for each section. Right jumps from section to section Hitting down goes slide to slide.
- itsbits 12y agojust use space for next slide, why all down, right arrows..??
- callahad 12y agoI hated Reveal.js until I realized that I could press Space to advance, and Shift-Space to move backwards, and it will just Do The Right Thing. Can you go down? Space will go down. Otherwise, Space will go to the right. It re-linearizes the presentation, while still preserving the 2D layout for quick navigation between major topics.
- ddingus 12y agoIt's actually all three. I like the format.
- steveklabnik 12y agoI've used this aspect of Reveal to present an overview of my talk at the beginning: "We're going to talk about X, Y, and Z. Okay, so X..."
- rdrey 12y agoAm I the only one who can't find Part 2?
- MCRed 12y agoI have to say, this is one of the most exciting technologies I've seen in awhile. It predates docker by a fair bit, and I would have hoped it would have gotten more traction. So I'm very happy to see slides from a user group. Alas, the brilliance of Erlang has not been sufficiently appreciated, so hopefully Elixir -- aka: Erlang Returns -- might catch on and become a popular hipster language. With Docker you still have all the overhead of Linux, and personally, I'm finding it a bit overwrought, and then on top of that more and more infrastructure is being built. All well intentioned and I'm not saying it's wrong-- but it's starting to feel like open stack. One of the earlier demos of Erlang on Xen was a system where a VM was spawned to handle each requests. EG: An HTTP request would come in, an entire VM would be spawned, handle the request and go away. It was very fast. I find that kinda astounding! http://erlangonxen.org/zerg http://erlangonxen.org/zerg PS- Not intended to start a flame war, the dogmatic sounding parts of this post are all tongue in cheek.
- zalmoxes 12y ago> and then on top of that more and more infrastructure is being built. I don't see how unikernels solve orchestration. You still need databases, load balancing, service discovery and so on. Kubernetes or something like it would still be a necessity.
- MCRed 12y agoGood point. My feeling isn't so much that it exists, but that it's all new and dockery-- and doesn't feel like it's gelled into something really useable yet. And by usable, I mean "usable for non-ops people". I'm hoping managing hypervisors will be more of a solved problem given more time in the market... but I may well be wrong.
- ossreality 12y ago>With Docker you still have all the overhead of Linux, and personally, I'm finding it a bit overwrought You have an app whose bottleneck is the underlying OS? Or you just don't know how to UNIX sysop? Kubernetes sounds like the ticket for you if you're using Docker.
- 12y ago
- bcl 12y agoRussell Pavlicek had a pretty good high level talk on Unikernels at Linuxfest Northwest this year -http://linuxfestnorthwest.org/2015/sessions/next-generation-cloud-unleashing-power-unikernel http://linuxfestnorthwest.org/2015/sessions/next-generation-...
- MCRed 12y agoExcellent abstract, but unable to view slides on a Mac. (ODP format not supported by keynote?)
- FraaJad 12y agoLibreOffice. Edit: you should be able to import it into your google drive, and view it there if you do not wish to install libreoffice.
- e0 12y agoHe gave the same (or at least substantially similar) talk at SCaLE this year: https://www.youtube.com/watch?v=8RH7m5LYv5s https://www.youtube.com/watch?v=8RH7m5LYv5s
- yjh0502 12y agoI'm not sure Erlang with a immutable infrastructure concept is good idea. Dynamic code reloading and upgrading without downtime is a key feature of Erlang, and immutable infrastructure do not play well with these features. If you make Erlang immutable, you should add another layer to ensure availability like HAProxy, which adds management burden. If you use dynamic code reloading, it is no longer 'immutable'.
- kungfooguru 12y agoMy thoughts as well. And if you one does accept the restrictions I'd hope they remove the performance penalties associated with binding everything so late so it can be swapped.
- phrasz 12y agoIs it me or is the wrong word being used (0.o)? See -- http://en.wikipedia.org/wiki/Microkernel http://en.wikipedia.org/wiki/Microkernel
- zefei 12y agoIt is you. See https://queue.acm.org/detail.cfm?id=2566628 https://queue.acm.org/detail.cfm?id=2566628
- zobzu 12y agoUnikernels are cool to play with. Erlang is cool too. But... - [name] is a kernel thread not a user space process. - its libssl, not "libopenss" - installing rpc, some obscure 55k listening port, and calling it bloated.. heh so cheap. Once past all this FUD - what does a unikernel (basically the same as running linux and your app as /sbin/init except it's in Erlang and not C here)? - its obscure. you get security mainly because nobody knows what you're running. - its library based. like regular OSes. - it runs only one program. or a million of them, like a regular OS, but with zero separation between them so compromise one means compromise all, actually. Else you have to add the separation layer yourself by writing more apps per "system" and make them communicate. - its undebuggable without a lot of knowledge - 'script kiddies' will run ./erlang-hack-for-x instead of ./rootshell.sh, this changes nothing to that. Remember the XEN exploit a few month ago? That'd still work and give access to all the Erlang instances. Its not that hard. - its not faster, its actually slower, when compared to C kernel+code. - it doesnt compile itself, you need a "regular OS" to deploy it - it uses the same memory space for mostly everything (regular OSes use protected memory per process, its hardware enforced by the CPU) - namespaced linux boots in < 10ms already... There are much better implementations of safer, faster, cleaner OSes with better paradigms that also do away with backward compat and using modern, memory safe languages (http://en.wikipedia.org/wiki/Singularity_%28operating_system%29 http://en.wikipedia.org/wiki/Singularity_%28operating_system... for a well-known one). For the record MS also developed Drawbridge (process+lib, so not exactly a unikernel) because they could not do away with windows compatibility. So yeah. If you have doubts, look at the example code at https://github.com/technolo-g/unikernel-demo https://github.com/technolo-g/unikernel-demo
- amirmc 12y agoWhat FUD? There appears to be more FUD in your comment than I've seen from any of the unikernel projects. Most of the claims you've made seem to be coming from the existing paradigm of how people write code for the cloud. If you're determined to stay in that mindset, then unikernels will probably not make much sense to you. The whole point is to reevaluate our assumptions about developing for cloud-native environments, which leads to different approaches (many cloud-services are already single-purpose). No-one is claiming that unikernels are some kind of panacea but they are a useful addition to the toolbox. Also, if you really want to compare security and vulnerabilities, then you should consider things like TCB and look at CVEs for both Xen and Linux. The way you describe it is almost disingenuous. The following talks have useful discussion points. https://fosdem.org/2015/schedule/event/zombieapocalypse/ https://fosdem.org/2015/schedule/event/zombieapocalypse/ https://media.ccc.de/browse/congress/2014/31c3_-_6443_-_en_-_saal_2_-_201412271245_-_trustworthy_secure_modular_operating_system_engineering_-_hannes_-_david_kaloper.html#video https://media.ccc.de/browse/congress/2014/31c3_-_6443_-_en_-...
- smegel 12y agoI thought Erlang relied heavily on threads...how does that even work without as OS?
- olalonde 12y agoI was curious as well and Googled it. Apparently, the Erlang Runtime runs within a single OS thread and implements its own thread scheduler in user space. http://stackoverflow.com/questions/605183/how-if-at-all-do-erlang-processes-map-to-kernel-threads http://stackoverflow.com/questions/605183/how-if-at-all-do-e...
- corysama 12y agoUnikernels are very able to schedule threads to CPUs. Often, that scheduling is static. But, when your intent is to run a single process exclusively on the virtual machine, static scheduling is actually preferable.
- christianbryant 12y agohttp://wiki.xenproject.org/wiki/Unikernels http://wiki.xenproject.org/wiki/Unikernels 'nuff said.
- christianbryant 12y agoOK, maybe not 'nuff said; this is a great paper on unikernels from last year: Unikernels: Rise of the Virtual Library Operating System https://queue.acm.org/detail.cfm?id=2566628 https://queue.acm.org/detail.cfm?id=2566628
- technolo-g 12y agoThanks for all the comments! Looking forward to reading them in depth and tuning up the ole' preso :) -- Matt Twitter: @mattbajor
- axelfontaine 12y agoHere is another one for your list: https://boxfuse.com https://boxfuse.com We launched Boxfuse last month with support for running JVM apps as unikernels on VirtualBox and AWS. Here is a blog article from last week about deploying Dropwizard unikernels to EC2: https://boxfuse.com/blog/dropwizard-aws.html https://boxfuse.com/blog/dropwizard-aws.html Disclaimer: I'm the founder.
- justincormack 12y agoIt is not a unikernel though, just a minimal Linux.
- axelfontaine 12y agoBoxfuse falls squarely into the "generalized" unikernel type mentioned in the presentation. You are only thinking of the "specialized" ones. In a sense it follows the same principle as OSv, just with a proven Linux kernel instead of a custom one. Update: Why the downvote? If you disagree, feel free to say why.
- deleted 12y ago[deleted]
- justincormack 12y agoNo it doesnt. And the presentation is not very accurate. Rump kernel is a proper unikernel (based on the proven NetBSD kernel) but actually running as a library operating system, in the same address space as the single application it is linked to. You compile and link the kernel library and application into a single elf file. OSv is a single address space too, it just tries to pretend to look more like a normal OS. I think Drawbridge is a proper unikernel too. So the examples in the slides are simply wrong. PS no idea who downvoted you, there is really no point in mentioning it.
- ak47surve 12y agoOff-topic: Anyone else found it difficult to navigate through the presentation?
- fapjacks 12y agoI went in expecting to read a bit about unikernels. I got there and felt like I was playing The Legend of Zelda for NES. You know, the one with the golden cartridge.
- EGreg 12y agoCan the same be done for Node.js? What about PHP?
- justincormack 12y agoNo one has tried Node.js yet as far as I know (possibly under OSv not sure). PHP, yes, is running as a unikernel, using a rump kernel.
- EGreg 12y agoCan you post some links?
- justincormack 12y agohttps://github.com/mato/rump-php https://github.com/mato/rump-php http://rumpkernel.org/ http://rumpkernel.org/ https://github.com/rumpkernel/wiki/wiki/Info:-Community https://github.com/rumpkernel/wiki/wiki/Info:-Community Ask on the mailing list/irc if you need help... its still under development so not completetly obvious yet ;)
- tylercubell 12y agoSounds like unikernels are giving the traditional OS a lobotomy and leaving only the brain stem to handle basic functions.
- erikb 12y agoIf you work on an unikernel how do you store data to disk? There is no filesystem, right?
- madez 12y agoGooFS is specifically mentioned.
- mbq 12y agoPossible next step in this direction is to get rid of both Xen and unikernel by making a specified Java/Erlang VM that only has syscall-calling op-codes for network traffic and virtual disk I/O, while uses hardware virt goodies to secure execution of JITed code. (;
- hobarrera 12y ago> Linux is a black box to a lot of devs. That's not a problem you should get rid of, devs need to understand the underlying system. > no shell == no shellshock Only servers that needed the shell for some service exposed the issue, so this point is irrelevant. > no libopenss = no heartbleed no libopenssl = no ssl either.