11 ms·
Inferno: A compact OS for building cross-platform distributed systems
- pmarreck 10y agoBeen watching Plan9 and its ilk for a while; some fantastic OS-level ideas that really deserve more traction.
- f2f 10y agothe time for grand OS ideas has long passed. here's an eulogy by one of the authors of plan9 and inferno (you won't hear anything from the authors of other operating systems except tannenbaum): http://herpolhode.com/rob/utah2000.pdf http://herpolhode.com/rob/utah2000.pdf
- mveety 10y agoNo it hasn't. There's a ton of cool shit that hasn't been invented yet. What's stopping research is (as rob more or less states) researchers want to make a usable system more than they want to make an interesting or innovative one. It's going to happen again someday. It has to, a gaping hole like this will get filled in.
- sirtaj 10y agoAlso, in the sixteen years since then some of the core Plan 9 ideas like network block devices, union filesystems, user-space/user-managed mount points and other use of namespaces have indeed made it into other OSes. Perhaps not with the purity that the Plan 9 developers hoped for, but in the end we use computers to get work done.
- pjc50 10y agoSystems which aren't usable don't get used, and so the research stays in the lab. OS choice is a market dominance issue.
- mveety 10y agoThe goal for a research OS isn't market dominance or to have users. It's to test ideas.
- deleted 10y ago[deleted]
- turkeysandwich 10y agoWhat about Mirage OS?
- joushou 10y agoMirageOS is a unikernel framework - not a general purpose OS.
- turkeysandwich 10y agoIt's not a general purpose OS. But it's an OS nevertheless.
- xiaq 10y agoDespite of the pessimism, Rob's talk always has lots of refreshing insights and inspirations. But I also wonder that after several years in Google, how Rob would see systems software research today. (He is not doing OS in Google; but since he claimed golang to be a "systems language", he uses "system" in a broader sense than OS).
- marssaxman 10y agoThis odd broadening of the term "systems programming" appears to be endemic to Google culture and is likely something he picked up after working there. It's worth paying attention to this if you are ever thinking about going to work at Google, because it is possible to have extensive conversations ahead of time about the sort of work one is and is not interested in doing, and still end up completely failing to communicate. "Library", "tools", and "file system" are other terms which have Google-specific meanings. This wouldn't be so much of a problem if you could just apply for a job directly, instead of having to be hired by Google generally and then getting assigned wherever they think you'll fit. (Is that still the practice, or have they improved things?)
- cm3 10y agonickpsecurity may expand on this, but there are many, many OS innovations dating back to the 60s, 80s, and 90s which haven't made it into the mainstream. Of all the things, I wish we would have gotten something of a combination of the ideas in Oberon and Eros, to have a high level systems language plus a secure system. I believe now is a better time than ever, given the lowered barriers to construct a device on top of a custom OS and spread it wide and far. The manufacturing chain has become more accessible than it was in the past and we have more viable candidates as systems languages to breath sustainable and risk-aware, strong life into such a machine.
- pjmlp 10y agoWhen I look at the architectures being pushed into developers via mobile OS (iOS, Android and Windows Phone), as well as, their development environments, I kind of see glimpses of those ideas. On the FOSS front I don't expect much innovation on that area, as the alternatives seem to just be yet another POSIX clone with the exception of unikernels research.
- nickpsecurity 10y agoTo save time, I gathered some UNIX alternatives and nice architectures into a pasteable link: https://news.ycombinator.com/item?id=10957020 https://news.ycombinator.com/item?id=10957020 Quite a few features have moved into mainstream. Often not as consistent as before. There's actually plenty more in the making over past decade. The comments here would make you think there's not innovation in CompSci but there is. JX is a nice, recent example where they do a capability/isolation-like architecture, implement it via language-based security in VM, make it faster than many microkernels, put half the drivers in VM, and run that & other parts of drivers on microkernel for lower risk. Already have a web server to show usefulness. Clever stuff that might be good in appliances maybe with MINIX 3-like self-healing. For old ones, Burroughs stays top on my list given they scientifically designed a HW/SW combo from a language report (ALGOL) to be ideal machine for it. You usually worked closer to algorithm level instead of low-level with good reliability/security. KeyKOS had fine-grained isolation of everything plus persistence where your data... whole running system... would likely survive a crash. VMS's clustering and central support for clustered apps was so good that you basically just configure the boxes, tell the apps to use OS functions, set policy, and you're good to go. 17 years uptime on highest one. Convergent's CTOS and Tannenbaum's Amoeba both made a collection of workstations act like one mainframe or minicomputer OS with all resources shared for max utilization. We have Grid Computing but clean integration. The most interesting stuff for developers and hackers was in LISP machines, esp Genera. Features from LISP that should go into every programming language: interactive running commands for testing; incremental, per-function compilation; live updates of that to running app for instant results. Combined with safe typing, this would let you crank out code like lightening. The OS itself was implemented with this high-level, highly-debuggable, live-updating language. It came with source. So, you could trace a problem in your app from it to system call seeing actual source code of OS along with current, running state of how it was being [mis]used. You could then correct the system if you chose to keep it running. Live updates and modification of your own running system with same language from apps all the way to bottom of OS is just unheard of today. Needless to say, they rarely crashed outside of hardware failure. :) Far as mobile, most of the work is going into isolation and virtualization mechanisms, some with TrustZone, etc. OKL4 was best result there. I don't follow mobile as much & search engines are often clogged. Some Google wrangling got me these innovations. https://engineering.purdue.edu/~xzl/xsel/papers/asplos12.pdf https://engineering.purdue.edu/~xzl/xsel/papers/asplos12.pdf Reflex addresses heterogenous programming of fast and low-power CPU's. Manual, tedious process. They applied old concept of software DSM to make it easy. I'm a DSM fan since supercomputer days so that's awesome. http://askarov.net/oakland12.pdf http://askarov.net/oakland12.pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.59.2606&rep=rep1&type=pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.59.... https://arxiv.org/pdf/0707.0762.pdf https://arxiv.org/pdf/0707.0762.pdf https://www.cs.cornell.edu/people/egs/papers/magnetos-mobisys.pdf https://www.cs.cornell.edu/people/egs/papers/magnetos-mobisy... Alright, I've thrown a few others above that illustrate different ways OS research is going. Last two are modern grid OS's with one quite innovative in that it works on ad hoc networks whose assumptions are as bad as WAN's. The 2nd one has lots of references to interesting systems. Should give you a taste of clever stuff going on in mobile and grid that you might have missed.
- mhd 10y agoIf you think the Bell Labs school of OS design is that interesting, have a look towards ETHZ, where a lot of that originated (as the ultimate minimalistic filtration of Xerox, of course).
- feelin_googley 10y agoGoogle should have used this for Android instead of... But, they took the easy way out.
- nickpsecurity 10y agoYou mean this? ;) https://mobile.slashdot.org/story/11/09/17/2050200/inferno-os-running-on-android-phones https://mobile.slashdot.org/story/11/09/17/2050200/inferno-o...
- mveety 10y agoAh I forgot hellaphone! I miss having a 9P interface to my texts that I could just mount and use with some rc scripts on my terminals. Sucks that I have an iPhone now where this is probably impossible or insanely hard to do.
- easytiger 10y agoyou could still do it on android. You can't buy an iPhone and then complain that you can't do anything on it.
- mveety 10y agoNo I can do things to it; I have u9fs installed and use that often. How it does sms, though, isn't clear and I can't find anything on it.
- jff 10y agoIf you want to make a 9P interface to SMS without running Hellaphone, you should start by looking into the RIL daemon. If I remember correctly, it runs at the Linux level (not Java) and drops a socket somewhere. The Java libraries for making phone calls, texts, etc. work by sending commands to that socket. You can read/write that socket yourself and use it to e.g. send SMS
- 10y ago
- SixSigma 10y agoI've worked professionally with Inferno and know the inventor and current maintainer. It's a good system and is used in a couple of commercial systems I know of. It is also ported to IBM's Blue Gene and used in the research programme there.
- saganus 10y agoCould you elaborate a bit on what kind of commercial systems you used this for? and what was the role of Inferno in it? I've been really interested in playing with it since my college years, but every time I got to poke around I felt like it wouldn't be (in my very uneducated opinion) fit for something in production. However the idea of the OS is very appealing to me, so I would love to hear more on how does this fare in the real world and what would be a compelling use case. Thanks!
- SixSigma 10y agoMy friend used it as the OS for an acoustic levitator built in the US and sold to a Japanese Company - he got sensible hardware control and a GUI toolkit all in the same OS. I worked for a startup trying to build a phone - I'm NDA on that so can't say much about it except we incorporated Sql lite into it easily enough - the beauty of an OS in C, tack on a 9P interface and you don't need drivers or headers in your Limbo code. In fact that's the greatest takeaway from Plan9 and Inferno for me. Add 9p to your server and you never need native drivers again - it's a bit like REST. Once you can mount 9P you compose all sorts of stuff. The canonical example is TCP. If I can mount your /net/tcp on my file system I can use your network stack. Even if I am only connected to you with a serial cable. And it is on a per process basis so I can have two shell windows importing two network stacks from different remote machines and use two networks and they are separate.
- saganus 10y agoThat does sound very interesting. I'll definitely have to take a look again with different eyes. Thanks for the details!
- 10y ago
- mingodad 10y agoWould be easier and nice if there was a ready to use virtualbox image. Someone knows if it exists ? Cheers !
- swiley 10y agoInferno runs strait off Linux (you start the emu program). Plan9 also has 9vx or so. Plus with plan9, all you need to start a workstation is 9pcf (the multiboot PC kernel) and a plan9.ini. You can literally just hand those two things to qemu and mount the rootfs from a file server with almost no setup.
- 0xdeadbeefbabe 10y agoWould you consider typing out the commands and posting them somewhere where we can see?
- SixSigma 10y agoIt runs straight from the desktop on Windows, OSX, Linux, OpenBSD, FreeBSD and, of course, Plan9. There is also an ActiveX version i.e. hosted in Internet Explorer but I'm not sure if it still works.
- rcarmo 10y agoI've been playing around with it on[1] and off, mostly on the Raspberry Pi[2]. It's very nice conceptually, almost impossible to use practically except for research purposes. [1]: http://taoofmac.com/space/blog/2014/05/04/2230 http://taoofmac.com/space/blog/2014/05/04/2230 [2]: https://bitbucket.org/infpi/inferno-rpi https://bitbucket.org/infpi/inferno-rpi
- SixSigma 10y agoI know of commercial products containing Inferno. What makes you think it impossible?
- rcarmo 10y agoWell, code reuse is a pain, for starters. Limbo is not something people actively develop in, there are very few native ports of networking protocols, and you need to rebuild the OS if you want to expose hardware functionality.
- jff 10y agoOnly takes about 30 seconds to recompile the OS, though.
- henesy 10y agoIt's not too bad for practical use, Vita Nuova uses it commercially while the site is not much to look at, the guy behind it is still active. Inferno is also nice for making lightweight, networked systems and as such leans itself nicely towards use with a pi. http://doc.cat-v.org/inferno/ http://doc.cat-v.org/inferno/
- eggy 10y agoI am waiting to see what becomes of Arthur Whitney's Desktop and Server OS based upon his language K5/K6. KDB+/Q (database and language) is a small download, but is very powerful. I had heard of Inferno and Plan9, but aside from some YouTube videos and links, I never really looked it over or took it for a drive. I'll have to check this out; after all, it's amazing what nuggets are buried in the recent past of CS. Here's some timing tests done in various languages (C, Java, Perl, Tcl, and others) in 1998 compared with Inferno [3]. Brian W. Kernighan of K&R fame was one of the author's at Bell Labs! And here's a comparison to Arthur Whitney's K language, I believe not too long after using the same code to compare with K on a 100MHz Pentium [4]. K is significantly faster and shorter in LOC. The tests were mainly loops, text and stdio. APL derived languages like A+, K, J, or Q don't usually do loops, they are better with binary, and memory-mapped files, but K did very well in the benchmarks despite those factors. [1] http://kparc.com/ http://kparc.com/ [2] https://kx.com/ https://kx.com/ [3] https://9p.io/cm/cs/who/bwk/interps/pap.html https://9p.io/cm/cs/who/bwk/interps/pap.html [4] http://kparc.com/z/bell.k http://kparc.com/z/bell.k
- imglorp 10y agoAs attractive are kx's claimed numbers, you'd need to be a highly motivated company to embrace it. The single character for everything culture is impenetrable and unreadable, thus very high bar for maintenance at the organization level.
- jdright 10y agoReally, even brainfk makes more sense.
- sansalaman 10y agoJust providing readers with a different take on things: I've been coding in K professionally, after coming from a C-heavy (not functional-programming!) background, for about three months. It only took a few hours with the language to have the apparent line-noise make sense, and after a few weeks I could decipher the function of most snippets I see. There are great reasons why a dev team might not want to switch over to K for its operations (or switch languages at all, really), but seeing K in action, I have to respectfully disagree that readability and maintainability are those reasons.
- jff 10y agoI've written a good bit of Inferno and one thing that's really neat is how closely related Limbo (the programming language) is to Go. There's good reason for this, of course-the guys who wrote Inferno went off to Google and made Go. The Tk GUI capabilities are a bit annoying to work with, but it's really not hard to whip up a GUI application in Inferno quickly--all the while getting to interact with those 9P servers which make data exchange really simple.
- adricnet 10y agoAh Inferno! Did anyone make any headway porting/redoing the browser plugin to Mozilla? There were some mumblings about GSoC for that not that long ago.
- 0xdeadbeefbabe 10y agoProbably not what you were after, but someone did devdraw for js in 2014 https://bitbucket.org/dhoskin/9webdraw/ https://bitbucket.org/dhoskin/9webdraw/
- 0xdeadbeefbabe 10y agoSo does golang work on inferno?
- 1ris 10y agoNo, only limbo (and I think a scheme) work on inferno. But limbo is very, very much like golang.
- floatboth 10y ago> IDEA, 56 bit DES, 40, 128 and 256 bit RC4 encryption algorithms > MD4, MD5 and SHA secure hash algorithms They certainly haven't updated it to match the modern world…