Slashdot Mirror


New Operating System Seeks To Replace Linux In the Cloud

New submitter urdak writes "At CloudOpen in New Orleans, KVM veterans Avi Kivity and Dor Laor revealed their latest venture, a new open-source (BSD license) operating system named OSv. OSv can run existing Linux programs and runtime environments such as a JVM, but unlike Linux, OSv was designed from the ground up to run efficiently on virtual machines. For example, OSv avoids the traditional (but slow) userspace-kernel isolation, as on the cloud VMs normally run a single application. OSv is also much smaller than Linux, and breaks away from tradition by being written in C++11 (the language choice is explained in in this post)."

208 of 335 comments (clear)

  1. Nah. by Anonymous Coward · · Score: 1, Informative

    I'll take my server OS tried-and-tested, thanks.

    1. Re:Nah. by Anonymous Coward · · Score: 1, Funny

      And nothing has never been more tested (for holes) than Windows.

    2. Re:Nah. by Anonymous Coward · · Score: 2, Funny

      Looking for holes in windows is like looking for saltwater in the pacific ocean.

    3. Re:Nah. by Penguinisto · · Score: 5, Insightful

      I'll take my server OS tried-and-tested, thanks.

      Even moreso - I prefer my server OSes to have that kernel/userspace separation. Sometimes that's the last line of defense against a fully-compromised system (see also, say, the typical crappily-coded PHP "application" that has the typical great big security hole (or four) in it...)

      I get the drive for making the OS as thin as possible, but sometimes folks need to stop and think it through a little before they commit to doing it at all costs.

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    4. Re:Nah. by pipatron · · Score: 1

      I'm not so sure about this. If an important userspace application, or actually any application, has been hacked, I consider the machine tainted for all future. I'm not going to patch the holes up and keep running, because any file could have been modified and finding out which ones is just much more work than to fire up a new clean machine. If you're running a webserver and it's broken, you have in fact a fully compromised system since the only thing running on that virtual machine is the webserver.

      I can see many reasons not to run this OS, but the kernel/userspace separation is not necessarily the big deal.

      --
      c++; /* this makes c bigger but returns the old value */
    5. Re:Nah. by cheater512 · · Score: 1

      I get the sense that there isn't much of a system to compromise with this since it is only running a single process.

    6. Re:Nah. by shutdown+-p+now · · Score: 3, Insightful

      This is for the scenario where said last line of defense is meaningless. When your VM is, essentially, all about running a single process, like a webserver, the only thing that's behind the aforementioned last line is the kernel itself... and nothing else. In other words, there's no practical difference here between one particular userspace process being compromised, and the entire OS being compromised, since that process is the only thing that matters. It's also not a situation where you try to clean up the system if it has been compromised - you just scrap the VM and re-create it from a snapshot.

    7. Re:Nah. by Anonymous Coward · · Score: 1, Funny

      Looking for virgins amongst Linux users is like looking for nitrogen in the atmosphere.

    8. Re:Nah. by Anonymous Coward · · Score: 1

      To immature trolls who take interest in my sex life: there is fresh air outside your basement.

    9. Re:Nah. by postbigbang · · Score: 2

      It's a very good idea, with more finite applications in the real world. Think about it:

      1) low, low, low attack profile
      2) your kernel and outside perimeter better be perfect, but this is true in the real world anyway
      3) less fuss and muss
      4) low, low overhead instead of having to strip out init.d junk and daemons-without-a-cause
      5) nice paravirtualization instead of sloggy driver emulation
      6) modifiable kernel that can be altered so that memory entrance points can be scrambled up easily to prevent addressing hijacks.

      So put your favorite httpd on it and run it more as an app virtualization rather than a whole freaking OS/app instance virtualization.

      --
      ---- Teach Peace. It's Cheaper Than War.
    10. Re:Nah. by mcgrew · · Score: 1

      Wow, two AC FPs in one day that were not only ontopic but good comments!

      A glitch in the matrix?

    11. Re:Nah. by Anonymous Coward · · Score: 1

      No you dumb virgin, there is dirt outside my basement.

      OMG!! You don't even know what a basement is!!

    12. Re:Nah. by shutdown+-p+now · · Score: 1

      There are plenty of applications: Webserver and database, sshd master and sshd worker, authentication user and authentication service, that use privilege separation.

      Why would you run all these on a single VM?

    13. Re:Nah. by Bonobo_Unknown · · Score: 1

      Well you have to leave the basement to fully appreciate where the basement is located. Otherwise it is just the all providing womb.

      --
      We don't believe in radical loony monotheistic religions from the middle east -- we're Christians.
    14. Re:Nah. by scottbomb · · Score: 1

      Apparently a small network, at least I hope for his sake.

    15. Re:Nah. by l3v1 · · Score: 1

      "Why would you run all these on a single VM?"

      Because you live in the real world?

      --
      I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
    16. Re:Nah. by CBravo · · Score: 1

      Why would you want a VM with only a single process?

      --
      nosig today
    17. Re:Nah. by shutdown+-p+now · · Score: 1

      To provide as much isolation as possible from all the other stuff (a kernel is still more likely to be vulnerable than a hypervisor).

      Either way, that's what people already do - today - and they do it with Linux as a guest. These guys are just rightly pointing out that this doesn't make much sense to run an OS that heavyweight for that purpose.

    18. Re:Nah. by shutdown+-p+now · · Score: 2

      In the real world, people are doing what these guys do already, except they use Linux as a guest OS as well. That's why the project got started in the first place - to improve efficiency of a very real use case that's already there.

    19. Re:Nah. by shutdown+-p+now · · Score: 2

      Sure it can be running just a single application.. But the thing is that a system usually interconnects with other systems so if a system gets fully compromised then it can be used to gain access to more systems...

      If the only thing that system is running is a single process, then the only interconnects with other systems that one has are the ones used by that process. So if you can break into the process, you can already sniff and control any of that - authentication information, etc. The worst case here is that an attacker can take down / take over several worker processes rather than just one; but from a security standpoint it matters little since they are all on the same privilege level. And if you're doing that kind of thing in the first place - spinning up servers on a hypervisor in the cloud - then you probably have more than a few of them, so compromising just one isolated VM is not much of a DoS.

      Anyway, the whole point of isolating VMs like that is so that even taking full control of one of them is not going to give you anything interesting. That's how you're supposed to set them up in the first place.

    20. Re:Nah. by davester666 · · Score: 1

      Come down here and make me, dad.

      --
      Sleep your way to a whiter smile...date a dentist!
    21. Re:Nah. by mwvdlee · · Score: 1

      Because there are plenty of applications that can run webserver, database and everything elso on the cheapest available VM and still don't come near to 100% resource utilization.

      In short, unless you have a company large enough to manage it's own cloud infrastructure, more VM's == more expenses.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    22. Re:Nah. by shutdown+-p+now · · Score: 1

      Note that this is a product that is specifically targeting the "large enough" market that uses cloud VMs as a cheap yet highly scalable approach.

    23. Re:Nah. by smash · · Score: 1

      Or they use a FreeBSD jail.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    24. Re:Nah. by shutdown+-p+now · · Score: 1

      Jails are vulnerable to kernel exploits (assuming that everything is configured right otherwise). VM isolation is only vulnerable to hypervisor exploits. Hypervisors are generally much simpler than full-fledged kernels and have less attack surface, and so they are less likely to be successfully attacked.

    25. Re:Nah. by TheRaven64 · · Score: 1

      There is a big difference between getting a single process exploited (maybe just one of the httpd workers) and having a full system-breach.....

      There really isn't on most cloud systems. You compromise the web server, and now you've got the credentials to access the db server. That's far more important than anything on the local filesystem. Sniffing all traffic going to the system? There isn't any traffic going to anything other than the (single) running app. And even with a compromised kernel, you can't put the interface in promiscuous mode because the paravirtualised device doesn't support it.

      So the question is whether you'd rather have a slimmed-down FreeBSD kernel in your TCB or a full-featured Linux kernel and GNU userland. If you have an OS where you can spin up new instances in a second, that makes it possible to compartmentalise your system much more than if starting up a new VM takes a minute. It also makes scaling easier.

      --
      I am TheRaven on Soylent News
    26. Re:Nah. by FireFury03 · · Score: 1

      This is for the scenario where said last line of defense is meaningless. When your VM is, essentially, all about running a single process, like a webserver

      If you're running a single process, you're probably doing things very wrong... Your VM may well be running a single *type* of process (e.g. a web server), but usually there are multiple instances of it running at once. And there is a lot to be said for keeping those instances protected from each other, so if one blows up it doesn't take out everything else on the VM.

      I'd also want stuff like the filesystem driver to be protected from userland applications - its one thing for an application to screw up/get compromised and trash a load of files, its quite another for it to cause the filesystem driver to trash the entire FS... There's also a lot to be said for hardening systems by restricting the application from doing things it never needs to do (this is the point of SELinux) - does your web service need to be able to send mail or connect to port 22 on random machines on the internet? No? Then restrict it from doing so (and send warnings to the sysadmin if it tries) and you prevent your web server becoming a spambot/ssh scanner if it gets compromised.

    27. Re:Nah. by azrael29a · · Score: 1

      Hypervisors are generally much simpler than full-fledged kernels and have less attack surface, and so they are less likely to be successfully attacked.

      Yeah, just like VMware! It's a full-blown Linux OS with additional vmkernel module that takes over control as the hypervisor. Oh, wait...

    28. Re:Nah. by azrael29a · · Score: 1

      Why would you want a VM with only a single process?

      Exactly. There is no point in running a full blown OS just to virtualize a single app or process. Linux has an option for that, and it's called LXC (Linux Containers). Old Unices have that too: Solaris - Zone/Container AIX - WPAR HP-UX - vPar

    29. Re:Nah. by azrael29a · · Score: 1

      Linux Containers are matching all your points except 6.

    30. Re:Nah. by postbigbang · · Score: 1

      Except that your hypervisor could be Xen, Citrix Xen, virt, vbox (just tried it and it's ugly but works), they say, soon: VMware. Haven't tried it on EC2, but containers is a concept that now bothers me because of its SunOS origins, just like SELinux bothers me because the NSA had tried to develop and evolve it.

      Linus would be wise to consider a kernel fork that squeezed all the barnacles out of his triumphant OS and was lean and mean and rocked on small substrates where an #ifdef IBM_on_Power doesn't mean anything. Ye gawds how fat that kernel is getting.

      Ok, GodWin by NSA trump card. Sorry.

      --
      ---- Teach Peace. It's Cheaper Than War.
    31. Re:Nah. by shutdown+-p+now · · Score: 1

      If you mean ESX, then they use Linux as a bootloader, much like Windows 9x used DOS. Once it loads vmkernel, that takes over - your exact words, and correct ones at that - and relegates the original Linux environment to be one of the hosts, effectively isolating it. So the only attack vector from one of the other VMs is the hypervisor, and not the Linux system that was used to boot it.

      So, yeah. Just like VMware!

    32. Re:Nah. by shutdown+-p+now · · Score: 1

      If you're running a single process, you're probably doing things very wrong... Your VM may well be running a single *type* of process (e.g. a web server), but usually there are multiple instances of it running at once. And there is a lot to be said for keeping those instances protected from each other, so if one blows up it doesn't take out everything else on the VM.

      In a scenario where such setup makes sense in the first place, you're usually running more than one VM - in fact, probably, way more than one. So taking out a single VM may be a more efficient form of DoS than taking out a single worker process, but really not by much.

      I'd also want stuff like the filesystem driver to be protected from userland applications - its one thing for an application to screw up/get compromised and trash a load of files, its quite another for it to cause the filesystem driver to trash the entire FS...

      What would be the difference in this case? Either way, the VM is hosed (in a sense of not being able to do the function it is intended to do), and the recovery process would be to kill it and recreate from scratch (or rather, from a preconfigured image). The data it works on should not be local - it's on a separate VM that runs the database, and that is isolated from public networks.

      There's also a lot to be said for hardening systems by restricting the application from doing things it never needs to do (this is the point of SELinux) - does your web service need to be able to send mail or connect to port 22 on random machines on the internet? No? Then restrict it from doing so (and send warnings to the sysadmin if it tries) and you prevent your web server becoming a spambot/ssh scanner if it gets compromised.

      Or just firewall it. The advantage here is that you only need a single firewall for the entire cluster.

      The point of SELinux, OTOH, is to sandbox apps on a system which has something else important/valuable on it that can get hosed or compromised. When you can make the physical machine boundary your isolation boundary, things are much simpler.

    33. Re:Nah. by shutdown+-p+now · · Score: 1

      Oh, I'm sorry, I didn't realize I was talking to an "expert" here. Do you even know what the cost of a kernel call is? Or, say, the cost of process isolation and memory protection? Or did you think that all these are free?

    34. Re:Nah. by DuckDodgers · · Score: 1

      So you can modify it while it's live?

      I'm not sure what I think about this single use VM concept. I think it has a lot of advantages. But one benefit of running a full operating system (Linux, Windows, FreeBSD, or otherwise) in your virtual machine is that you can modify it while it's live. Unless I missed something, this one-application-per-vm model assumes you set it up and run it, and then when you want to make a change you create a new vm, kill the old one, and put the new one in its place.

      Maybe kill-and-replace trumps modify-in-place in most circumstances.

    35. Re:Nah. by DuckDodgers · · Score: 1

      Okay, I'll bite. What's hyper-flawed about the unix security model? What do you want in its place, ACLs? Something else?

    36. Re:Nah. by shutdown+-p+now · · Score: 1

      Unless I missed something, this one-application-per-vm model assumes you set it up and run it, and then when you want to make a change you create a new vm, kill the old one, and put the new one in its place.

      Yes, pretty much. Of course, it implies that you don't develop (or otherwise experiment) on production environment. You will probably develop on a machine which has all those components set up on a single box for convenience, so that you can fiddle with them (but still assume that they will be separate when deployed). And before you deploy to production, you try it on a staging environment where you replicate the production environment as close as possible, including split VMs; if that works, then you replicate the result to production. Of course, if you find some issues at the staging part, then you will need to fiddle around with VMs.

      The main advantage of this approach is how easy it is to scale. Once you have VMs set up for your various roles, you can image them and replicate them as much as needed. E.g. if you need to bring a couple more web servers online, it's literally two clicks away, since you just spin up a new VM and tell it to use your preconfigured web server image; and when you don't need them anymore, you get rid of them with no worries. In fact, doing this kind of thing if you only have a single VM as a web worker probably doesn't make sense (not to say that you don't want to split roles across machines even then, but you might not be as strict about it) - hence why they're talking about cloud farms here.

    37. Re:Nah. by DuckDodgers · · Score: 1

      I haven't done the cloudy cloud cloud cloud thing. I'm familiar with virtualization though - isn't it a bit more than two clicks, because you have to change the network address of each VM as it spins up? Or are you assuming that they use DHCP and you run a proxy server on the internet-facing side that figures out which VMs receive the external traffic?

      But it also seems to me that killing a VM and replacing it only works if you have no state to preserve between the old VM and the new one (e.g. session attributes, etc...) That's the ideal way to architect a colossal web application, but I don't know common it is in real world scenarios.

    38. Re:Nah. by shutdown+-p+now · · Score: 1

      I haven't done the cloudy cloud cloud cloud thing. I'm familiar with virtualization though - isn't it a bit more than two clicks, because you have to change the network address of each VM as it spins up? Or are you assuming that they use DHCP and you run a proxy server on the internet-facing side that figures out which VMs receive the external traffic?

      I don't know how exactly it is implemented in detail, but yes, for cloud there's a load balancer that makes sure that requests are distributed between VMs (and only go to live VMs). That's pretty much necessary for the stereotypical cloud scenario where you scale up and down easily by buying more resources for a short period of time when they are needed.

      But it also seems to me that killing a VM and replacing it only works if you have no state to preserve between the old VM and the new one (e.g. session attributes, etc...) That's the ideal way to architect a colossal web application, but I don't know common it is in real world scenarios.

      Yes, it would have to be stateless (or rather, any state would have to be of a transient nature). At the same time, how common would it be for the web app to actually try to persist any data locally, or even store it in the process between requests? Pretty much everything I've read on app design lists this as a bad thing to do very early on, and all frameworks that I've seen seem to follow that guideline, and stick everything into a DB. Again, this is something that you pretty much need if you have more than one web app server with a load balancer (which is very common even outside cloud stuff), since a single user can easily land on one and then on the other with two consequent requests.

    39. Re: Nah. by ShadowFoxx · · Score: 1

      It's not that hard if you have a decent IDS that does file/directory hashing. There are open source ones too that do this like OSsec that can run as server client model or stand alone. The bussiness cost bennifit is not there with money lost in downtime when you can effectively irradiate threat. That's why we do risk analysis in the field.

    40. Re:Nah. by DuckDodgers · · Score: 1

      I think you're right. I'm thinking too much about small scale deployments - because that's what I know.

  2. So... no separation between system and userspace.. by Anonymous Coward · · Score: 4, Insightful

    No security either.

  3. Where is the JVM source code by Anonymous Coward · · Score: 1

    They claim it runs a JVM, but the source code of this JVM is nowhere to be found. Where is it?

    1. Re:Where is the JVM source code by urdak · · Score: 1

      They claim it runs a JVM, but the source code of this JVM is nowhere to be found. Where is it?

      It runs any unmodified Linux JVM. You don't need any special JVM source code - just take OpenJDK from any Linux distribution, or Oracle's JVM, and run it inside OSv.

    2. Re:Where is the JVM source code by Anonymous Coward · · Score: 1

      That is impressive. This page talks about the benefits that could be gained if they modified the JVM:
      http://www.osv.io/devel-menu
      But they haven't yet and are already 1% faster than a comparable linux guest VM running the same unmodified JVM.

      On the other hand, is 1% really worth it given their guest is so much more limited (you cannot exec or fork, meaning they couldn't even run all the specjvm benchmarks)?

    3. Re:Where is the JVM source code by K.+S.+Kyosuke · · Score: 1

      I guess you'd probably want to run an MVM/multi-tasking JVM anyway.

      --
      Ezekiel 23:20
    4. Re:Where is the JVM source code by TheRaven64 · · Score: 1

      It's using a (heavily modified) FreeBSD kernel with the Linux compat layer, so it's not surprising. And the 1% speedup isn't the real win. The benefit is that you can make a very small VM image that can spool up new instances in about a second. It isn't that you can run a single instance 1% faster, it's that when you get load spikes you can start up 1000 new instances in between getting the SYN and sending the ACK...

      --
      I am TheRaven on Soylent News
  4. GPL trumps BSD as a usable open source licence by evanh · · Score: 3, Insightful

    If the BSD licence was as useful as GPL then Linux would never have grown in the first place.

    1. Re:GPL trumps BSD as a usable open source licence by geekoid · · Score: 1, Insightful

      They are different and for different purposes. There is no 'trumping' there is which one is right for your purpose.

      Also, there are more BSD systems then GPL. Not that it matters, but I thought you should be aware of that. There are about a billion iOS devices alone.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    2. Re:GPL trumps BSD as a usable open source licence by jedidiah · · Score: 1

      Many true things upset people. Political correctness is a curse that corrodes democracy.

      It's much more damaging than Trolls.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    3. Re:GPL trumps BSD as a usable open source licence by jedidiah · · Score: 1, Insightful

      You're going to go with that lameness? Seriously? You are a couple years late for that since Android has popped that little bubble.

      BSD is great for wannabe Robber Barons.

      Everyone else can play nice with the rest of civilized society.

      Even most of the wannabe Robber Barons can.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    4. Re:GPL trumps BSD as a usable open source licence by mcl630 · · Score: 2

      Correct me if I'm wrong, but isn't BSD more permissive than GPL?

    5. Re:GPL trumps BSD as a usable open source licence by slashdime · · Score: 2

      iOS devices are BSD?

      iOS is released under a copyleft license that allows one to modify, rename and resell it?

      Did noone think to tell Apple about this?

      iOS is NOT BSD.

      BSD allows anyone to take something that is BSD and turn it into NOTBSD, at which point, it is.... dun dun dun... NOT BSD.

    6. Re:GPL trumps BSD as a usable open source licence by meta-monkey · · Score: 1

      You're going to go with that lameness? Seriously? You are a couple years late for that since Android has popped that little bubble.

      He's still waiting for confirmation from netcraft.

      --
      We don't have a state-run media we have a media-run state.
    7. Re:GPL trumps BSD as a usable open source licence by Anonymous Coward · · Score: 1

      It wasn't the BSD license that held BSD back, it was AT&T sueing BSDi that did. When the case settled Linux had already started making traction.

    8. Re:GPL trumps BSD as a usable open source licence by meta-monkey · · Score: 5, Informative

      Yes, but not in a way that promotes growth. The BSD license is a trap for the grumpy kids who don't want to share their toys at recess.

      BSD: You can do whatever you want with your modifications to this code, including close them.
      GPL: You can do whatever you want with your modifications to this code, except close them.

      One of these creates a positive feedback loop in which small, incremental improvements from coders who share increase exponentially. The other creates a negative feedback loop in which the improvements from those who don't share are locked away and lost. I'll leave it to you to figure out which is which.

      --
      We don't have a state-run media we have a media-run state.
    9. Re:GPL trumps BSD as a usable open source licence by Anonymous Coward · · Score: 5, Informative

      One of these creates a positive feedback loop in which small, incremental improvements from coders who share increase exponentially. The other creates a negative feedback loop in which the improvements from those who don't share are locked away and lost. I'll leave it to you to figure out which is which.

      The problem with this claim is that you're simply lying by omission. (Well, there's another problem: hyperbole. "Exponentially"? Hah.)

      GPL: the positive feedback loop is damped by the unattractiveness of the license to many potential contributors, particularly GPLv3. Fewer participants equals less resources spent developing the project.

      BSD: the claimed negative feedback loop almost doesn't exist. Many of the entities (the same ones who have issues with GPLv3) whom you GPL zealots assume would just take everything private actually tend not to. Why? Because the reason they're using open source in the first place is to reduce their own workload, and maintaining a private fork of a public codebase turns out to be a lot of work. If you want to take changes from the public version, you're in permanent merge hell (because nobody in the outside world knows or cares about your local changes). If you want to fully fork and ignore the public version, now you're responsible for maintaining everything on your own. In most cases it's substantially less work to contribute your changes back to the public version.

      Basically the only time this actually happens in the BSD-licensed world is when someone decides "to hell with it, we don't care how much we have to spend, we're going to go all the way private".

      (All of the above is equally true of GPL-licensed code. GPL zealots are only assuming that their preferred license is required to create sharing. In reality, productive sharing is always an outcome of shared interests between all the parties involved, not the license.)

    10. Re:GPL trumps BSD as a usable open source licence by slashdime · · Score: 1

      iOS is released under a Proprietary EULA license.

    11. Re: GPL trumps BSD as a usable open source licence by slashdime · · Score: 2

      Get over what? The fact that iOS is based on BSD? I'm over it. That fact was never in dispute.

      Just because it was based on BSD does not make it BSD. BSD is the freedom the license gives, which iOS does NOT give.

    12. Re:GPL trumps BSD as a usable open source licence by shutdown+-p+now · · Score: 1

      And how much of Android code is GPL-licensed? The kernel, yes. But even their libc (Bionic) is BSD already.

    13. Re:GPL trumps BSD as a usable open source licence by Microlith · · Score: 1

      An example that is mostly immaterial given that the biggest driver of Android adoption has been the fact that Google has been behind the effort.

    14. Re:GPL trumps BSD as a usable open source licence by Microlith · · Score: 4, Insightful

      And you've set your entire argument up in a biased fashion too.

      GPL: the positive feedback loop is damped by the unattractiveness of the license to many potential contributors, particularly GPLv3. Fewer participants equals less resources spent developing the project.

      A claim which is possible but largely lacking in evidence.

      BSD: the claimed negative feedback loop almost doesn't exist.

      Additionally unfounded. Given that BSD sources can be downloaded, modified, and their changes never see the light of day the loss of information is virtually guaranteed. Not to say it doesn't happen with the GPL, but it's actually a legal risk to allow it to happen.

      Because the reason they're using open source in the first place is to reduce their own workload, and maintaining a private fork of a public codebase turns out to be a lot of work.

      And yet there are plenty of vendors who would do just that if it suited their purposes. Your argument for staying upstream is entirely logical, but then, many corporations are not run in a logical fashion.

      Basically the only time this actually happens in the BSD-licensed world is when someone decides

      Would you ever know?

      GPL zealots

      Nothing worse than responding to a reasonable post with an invective.

      In reality, productive sharing is always an outcome of shared interests between all the parties involved, not the license.)

      But only so far as it suits their business interests. The GPLv3 was created to further advance its goals which have always been to ensure the software is free and that the recipient of the software is never encumbered by whomever they receive it from.

    15. Re:GPL trumps BSD as a usable open source licence by interval1066 · · Score: 1

      The BSD license is not much better than toilet paper, so where's the flambait here?

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    16. Re:GPL trumps BSD as a usable open source licence by interval1066 · · Score: 1

      A billion wrong moves is still a billion wrong moves too many.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    17. Re:GPL trumps BSD as a usable open source licence by Brian+Feldman · · Score: 1

      Oh, the irony. Let's conveniently ignore the fact that OSv is based on FreeBSD.

      --
      Brian Fundakowski Feldman
    18. Re:GPL trumps BSD as a usable open source licence by shutdown+-p+now · · Score: 1

      Yes - and I think it's rather telling that for those parts of the system that Google wrote themselves, they used BSD, and not GPL.

      In fact, is there anything in AOSP that is GPL-licensed aside from the kernel?

    19. Re:GPL trumps BSD as a usable open source licence by Anonymous+Brave+Guy · · Score: 1

      BSD is great for wannabe Robber Barons.

      Indeed. The idea that someone would write some good code and then voluntarily just give it away to anyone who wants it is silly. If you want to get contributions back in return for your freely available code, GPL is the only viable strategy. That's why no-one ever gifted their code to others before the GPL was published, why there is no code out there today that uses dumb licences like BSD and there won't be tomorrow either, and why even if there were it would all come from single individual contributors without any kind of collaboration.

      (And yes, the above is 100% sarcasm, so sorry if that offends anyone. I couldn't think of a serious way to respond to the absurd implication that the only people who use BSD are freeloaders who never contribute back.)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    20. Re:GPL trumps BSD as a usable open source licence by SpaceLifeForm · · Score: 2

      Not accurate. You can do whatever you want with GPL code, and you can keep your mods closed, as long as you do not distribute your 'closed mods'. If you distribute binary, you must provide the source.

      --
      You are being MICROattacked, from various angles, in a SOFT manner.
    21. Re: GPL trumps BSD as a usable open source licence by cant_get_a_good_nick · · Score: 1

      Linux "beat BSD" for a few reasons.

      First, BSD had to fight a huge lawsuit against AT&T to even exist. You should thank them, because without them winning Linux's future would be in doubt.

      Next, they picked a bad development model. Linus was much more open, and the code moved faster. The BSD folks were more insular (read: snobby) and it cost them. this has nothing to do with license issues.

      BSD stumbled a bit around BSD 5, adding a (more complicated than needed) complicated scheduler. In doing so, they lost one of their best coders. Imagine if Linux lost Alan Cox right when 2.0 was about to roll out, and forecast they'd still be as popular.

      The license thing probably didn't help either, but you can debate that a bit - name me a GPL web server as popular as apache? Perl is more BSDish. Python is some hybrid. Mozilla, etc. there's popular BSDish licensed code.

      My theory is license matters, but less than management. The GPL magic dust didn't help GCC from being essentially abandoned around 2.7-2.8 days, and picked up by an outside group (egcs). It didn't make emacs better than xemacs. Thank Linus for transitioning from a curious college dude to a pretty good steward of the software that drives billions in revenue.

      All those together made huge first mover advantage for Linux. Either you say a good chunk of Linux's growth was due to early adopter advantage and network effects, or you need to also say that Windows succeeded because of quality.

    22. Re:GPL trumps BSD as a usable open source licence by Burz · · Score: 1

      It has nothing to do with PC--which is just a way to extend "good old fashioned" respect beyond sectarian lines-- because no one is born with a Linux or BSD logo on their skin or written on their birth certificate.

      Hopefully you have less of a problem judging people by their character as individuals than you do confusing flesh-and-blood human beings with software.

    23. Re:GPL trumps BSD as a usable open source licence by cas2000 · · Score: 1

      GPL: the positive feedback loop is damped by the unattractiveness of the license to many potential contributors, particularly GPLv3.

      it's only unattractive to those who want to re-use free code while restricting the freedoms of downstream users.

      fuck 'em. parasites don't add any value to anyone.

    24. Re:GPL trumps BSD as a usable open source licence by cas2000 · · Score: 1

      I worry that licensing issues may result in me being fucked over because of my own ignorance and laziness so my solution is to pre-emptively fuck myself over.

      my face didn't really need that nose anyway.

    25. Re:GPL trumps BSD as a usable open source licence by sonamchauhan · · Score: 1

      Well, if BSD wasn't around maybe OSX wouldn't be a viable Windows competitor. Maybe we'd still be using a successor of Trumpet WinSock to connect Windows PCs to the Internet. Maybe LLVM and gcc wouldn't be used to create widely-used mobile and desktop consumer applications (i.e. OSX application, using XCode). Maybe mobile applications would still be built mostly using Visual C++ to Windows Phone apps.

    26. Re:GPL trumps BSD as a usable open source licence by StripedCow · · Score: 1

      A claim which is possible but largely lacking in evidence.

      You act as if the statements being made here are scientific. But science requires experiments to be done, and you simply cannot do an experiment using two open source projects with different licenses and say meaningful things, when all you have is a lab that is essentially one complex economy that nobody can understand.

      Not to say it doesn't happen with the GPL, but it's actually a legal risk to allow it to happen.

      Vague. Doesn't say much about the actual difference of "power" between BSD and GPL.

      If you publish your open source project using GPL, you actually run the risk that your project will one day be superseded by a project which uses a more permissive license and may actually be more popular because the license attracts companies and hence money.

      I'd say GPL spreads like a religion. Don't use condoms, multiply and spread the holy word!

      --
      If Pandora's box is destined to be opened, *I* want to be the one to open it.
    27. Re:GPL trumps BSD as a usable open source licence by martyros · · Score: 1

      Additionally unfounded. Given that BSD sources can be downloaded, modified, and their changes never see the light of day the loss of information is virtually guaranteed. Not to say it doesn't happen with the GPL, but it's actually a legal risk to allow it to happen.

      In practice, the vast majority of the time GPL and BSD are functionally equivalent. The reason is this: if a company takes a GPL project, makes changes, but doesn't do the work to upsteam them, and then just publishes their changes as patches on their own website, there is a very low probability that those patches will ever make it either upstream, or into a competitor's product. Publishing the patches on your website is not considered "contributing to the community"; actually doing the work of upstreaming is. A company that doesn't upstream anything but only publishes patches on their website is considered a "taker" by the community. The major things driving contributions to upstream are the pain of having to rebase local modifications in order to pull new code from upstream, and the benefits of being seen to "give back" to the community. These both would work the same for a BSD project.

      However, just like any time you're working with other people, "what happens in the worst case" is important, and has a material impact on how you relate when there are disadgreements. If the situation becomes tense with your wife, you'll act differently if you know that in the event of a divorce she'll get half of your considerable property than if you know she can't touch a dime. Similarly, the fact that I could take those published patches and upstream them myself is important to me. And although companies like BSD when they're the only one contributing to a project, it seems to me that GPL provides a much better "worst case scenario" for you if you're working with a competitor.

      --

      TCP: Why the Internet is full of SYN.

    28. Re:GPL trumps BSD as a usable open source licence by TheRaven64 · · Score: 1

      Additionally unfounded. Given that BSD sources can be downloaded, modified, and their changes never see the light of day the loss of information is virtually guaranteed. Not to say it doesn't happen with the GPL, but it's actually a legal risk to allow it to happen.

      Take a look at the donors list to the FreeBSD Foundation and see how many of them are big companies (e.g. NetApp, Juniper) that ship proprietary products built on FreeBSD, yet still contribute back changes. And then look at companies like Google, which build their infrastructure on Linux but keep a lot of changes public. The GPL doesn't force them to give anything back unless they distribute the modified version, and they don't distribute the modified Linux that they run on their servers. It's only a legal risk if you are distributing the software, but given that 90% of all developers are working on in-house software that is never intended for distribution then that means that the GPL only ever forces the 10% of potential developers who are working on commodity off-the-shelf software to release code, and they are the ones who are least likely to touch the GPL in the first place.

      Over the years, I've worked with companies that have maintained private forks of GPL'd projects, because they don't want the potential liability of distributing things under the GPL. When they take some of our BSDL code, however, they'll push back patches because there's no possible legal obligation arising from their doing so, and it's cheaper to have all of their changes upstream than maintain a private fork. I've also worked with companies that have done a clean-room reimplementation of a project rather than touch the GPL (in many cases, it's remained private, in some they've released it under a permissive license).

      --
      I am TheRaven on Soylent News
    29. Re:GPL trumps BSD as a usable open source licence by GlobalEcho · · Score: 2

      there is no requirement to release modified GPL source unless you publish the binary in a form described by the GPL. There are a lot of "internal use" scenarios where modifications will never be published.

      Indeed -- every place I've worked in the last 20 years has modified GPL code, and used the modified versions internally, while only rarely publishing those modifications externally. Declining to publish those changes is perfectly legal, and matches Stallman's original intent of the GPL as well -- namely that users have access to the source code of programs they are running.

      Over time, many people have come to believe that modifiers of GPL should always publish their modifications. (Some sloppy license readers even believe they must). There's certainly a moral argument there somewhere. But in practice, more modifications are kept quiet than most people realize. In these situations, GPL and BSD are equivalent.

    30. Re:GPL trumps BSD as a usable open source licence by Ash-Fox · · Score: 1

      Uh.... No. You can't take something that is BSD and turn it into not BSD - anymore than you can take GPL and turn it into not GPL.

      Clearly you never heard of Wine.

      --
      Change is certain; progress is not obligatory.
    31. Re:GPL trumps BSD as a usable open source licence by vilanye · · Score: 1

      GPL does not force you to share your code.

      The reciprocity in the GPL only triggers when you distribute code.

      There is a ton of in-house code linked to GPL code that never get seen outside of that company.

    32. Re: GPL trumps BSD as a usable open source licence by Cramer · · Score: 1

      BSD is the freedom the license gives

      That's EXACTLY why people like the BSD license: take BSD licensed code and sell it within their product -- with or without modification, as they aren't publishing code, no one will know what they've done to it. It's what almost everybody does with BSD.

      (That's why I call it the "take my code and sell it" license.)

    33. Re:GPL trumps BSD as a usable open source licence by Burz · · Score: 1

      No one's holding a gun to your head, Poindexter. Go ahead and ruin your reputation if you feel its that important to show disrespect to people born into a different background or situation than you.

  5. Zing by abies · · Score: 2, Interesting

    I wonder how well it will fare against Zing (http://www.azulsystems.com/products/zing/faq)
    Azul decided to go with route of extending vanilla linux with some kernel modules to provide extensions for most critical things, rather then replacing entire system and making custom jvm to utilize these extensions. I have a feeling that it is a lot better approach than using custom OS with plain jvm which is not aware of extra capabilities (if there are any...).

  6. Running jails/containers/zones by stox · · Score: 2, Informative

    pretty much accomplishes the same thing with even less overhead and without adding yet another layer of software.

    --
    "To those who are overly cautious, everything is impossible. "
  7. Re:So... no separation between system and userspac by jedidiah · · Score: 5, Interesting

    It boggles the mind that anyone would suggest something like this and then use the excuse of "well we only run on app on a box". That's such amateur hour nonsense. It's like running your cloud apps on classic MacOS or an Amiga.

    Just because you've only got "one app", it doesn't mean that you've only got one process.

    It sounds like running your 2013 server apps on an OS from 1985 but "in the cloud".

    [shake head]

    --
    A Pirate and a Puritan look the same on a balance sheet.
  8. a C++ kernel by OrangeTide · · Score: 3, Interesting

    Another refreshing feature of OSv is that is written in C++.
    It's been 40 years since Unix was (re)written in C, and the time has
    come for something better.
    C++ is not about writing super-complex type hierarchies (as some people
    might have you believe). Rather, it allowed us to write shorter code
    with less boiler-plate repetition and less chances for bugs. It allowed
    us to more easily reuse quality code and data structures. And using
    newly standardized C++11 features, we were able to write safe concurrent
    code with standard language features instead of processor-specific
    hacks. And all of this with zero performance overheads - most of C++'s
    features, most notably templates, are compile-time features which result
    in no run-time overhead compared to C code.

    You end up taking the bad with the good. And some features in C++ are worth avoiding when you're outside of a nice big userspace runtime. Like exception handling, especially for classes that use multiple inheritance.

    L4 is a microkernel and hypervisor designed specifically to run an OSlib in a virtual environment with very little overhead. It seems to me that some things about L4 are very compatible with visualization, being that most drivers in L4 operate as a virtualized environment rather than a process.

    --
    “Common sense is not so common.” — Voltaire
    1. Re:a C++ kernel by Stele · · Score: 4, Interesting

      Fortunately, with C++ you aren't required to use any particular feature, and don't pay a penalty for anything you don't use.

      Furthermore, the alleged performance penalties that a lot of C programmers think exist in C++ actually don't.

    2. Re:a C++ kernel by bored · · Score: 4, Insightful

      Then explain why would you use C++ instead of C? If you are just going to cut it down to things C does? If you are going to do things C can't, then you will have the performance penalities. Your statments are not really valid.

      Because there are cases where you are manually creating a construct in C, that is handled automatically by the compiler in C++.

      Take virtual methods for example. The linux kernel is chuck full of structures filled with function pointers. That is a virtual method in C++, except in C++ you don't have to worry at runtime if the function your calling is NULL because the compiler assured that during compile time. This allows micro-optimization, and more natural error handling. Plus, the syntax is standard, so that every 3rd driver writer isn't creating their own version of the same thing.

      Then there is generic data structure management. The kernel is full of macros for RB trees, linked lists/etc. Using templates for this allows better micro optimization without the programmer having to get involved.

      There are a lot of reasons, and most of the negatives can be answered with, a the simple statement, don't use that feature.

    3. Re:a C++ kernel by TheRaven64 · · Score: 1

      C++ has had a reliable standardised ABI for years. It's supported everywhere except Windows...

      --
      I am TheRaven on Soylent News
    4. Re:a C++ kernel by swillden · · Score: 1

      Please explain this [artima.com] and why I can get "pure virtual function called errors in C++.

      Because you were an idiot and called a virtual function from a constructor, which can work, sort of, sometimes, but is always a bad idea.

      The kernel is not full of macros for RB trees, linked lists/etc. Those are libraries that use malloc and dealloc, which when doing kernal programming you really can't use.

      Huh? The Linux kernel has lots of such libraries, for all kinds of useful data structures which use dynamic memory allocation, though they don't use libc's malloc, obviously. They use kmem_cache_alloc and kmem_cache_free, mostly. And some of them have extensive macro wrappers to make them more or less typesafe, like templates. Take a look at include/linux/btree-type.h for one example. The GP may have overstated his case a bit, but you're just wrong.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    5. Re:a C++ kernel by OrangeTide · · Score: 1

      You are required to use C++'s type system, which is different than C's. So what you say isn't strictly true.

      --
      “Common sense is not so common.” — Voltaire
    6. Re:a C++ kernel by OrangeTide · · Score: 1

      I can use malloc and free in a kernel. once I've booted up to a certain point. Not a big deal at all.

      If I were using C++, I can supply my own new/delete operators. I can even pass parameters to 'new' to set up special attributes.

      Now I would never use C++ for a kernel, but memory allocation is not the reason why.

      --
      “Common sense is not so common.” — Voltaire
    7. Re:a C++ kernel by OrangeTide · · Score: 1

      virtualization.

      --
      “Common sense is not so common.” — Voltaire
  9. Off the pig! Time to get rid of OSs on VMs. by Animats · · Score: 5, Insightful

    This is a language-support library. It replaces the C runtime system, and the bottom levels of the Java runtime system. For environments where a virtual machine is running one program, or a family of tightly related programs, that's all you really need. The real operating system is the hypervisor underneath and the remote management tools that run the cluster.

    Linux, with millions of lines of code, just isn't doing much inside a VM. It's not managing the memory. It's not handling real devices. It's not handling real interrupts. It may not even be managing any file systems - in cloud environments, those are usually out on some storage area network. It's just a big fat pig of an OS that needs to be fed patches and attention to keep it going, while not doing any useful work.

    Within the virtual machine, there are no security boundaries. This may be a problem if more than one application is running in the VM. But if you only have one big program with many threads running, the OS isn't doing anything for you in security anyway.

    1. Re:Off the pig! Time to get rid of OSs on VMs. by TechyImmigrant · · Score: 3, Insightful

      So it's like DOS running on a VM. Yay!

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    2. Re:Off the pig! Time to get rid of OSs on VMs. by H0p313ss · · Score: 1

      But it's "in the cloud"!

      "I felt a great disturbance in the Force, as if millions of voices suddenly cried out in terror, and were suddenly silenced. I fear something terrible has happened."

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    3. Re:Off the pig! Time to get rid of OSs on VMs. by Dimwit · · Score: 2

      A very large number of cloud servers out there are running a bunch of Java applications inside a single application server inside a single JVM. The entire Linux kernel, virtual filesystem, daemons, user commands, etc, are just along for the ride. Having a barebones operating system that is just enough to run a JVM application server would fill a need for a lot of people. It's not a panacea and it's not the right choice for most virtual servers out there, but for some it makes a whole lot of sense.

      I find it funny that some people just *hate it* when new things come out that do something in ways different from how they've done them in the past. In the thread on GNOME and Wayland below, some people just can't understand why we shouldn't continue to use X11 for the rest of eternity since it works now. Some people in this thread don't understand that even though Linux works well for virtual servers, sometimes for some applications, this might work better -- and that it's okay that that's how things are!

      --
      ...but it's being eaten...by some...Linux or something...
    4. Re:Off the pig! Time to get rid of OSs on VMs. by tftp · · Score: 4, Insightful

      The thing they have "invented" is called RTOS. Typically, an RTOS is a simple kernel that is not using any memory protection features. That's how they started, at least - but over time some RTOS got separation between userspace and kernel space. VxWorks, for example, offered that option back in the year 2000.

      Separation of one and the other is not just needed to protect from hackers. It creates a stable, reliable supervisor ring (hello, SVC command from IBM/360!) that can do whatever it wants to the userspace, whereas the userspace can't do anything to the supervisor. This allows the kernel to start, stop and monitor userspace applications, guaranteeing system integrity. If you don't have that, any bug, anywhere, can create unpredictable and undetectable faults within the system - and you will never know until the thing crashes horribly, which will eventually happen.

    5. Re:Off the pig! Time to get rid of OSs on VMs. by sourcerror · · Score: 1

      Except it's multitasking, and can handle more than 640kB of memory without arcane magic.

    6. Re:Off the pig! Time to get rid of OSs on VMs. by tftp · · Score: 1

      I think I have a good idea what an RTOS is, having worked with them for about 15 years by now. I understand what you are saying; however it's backward. An RTOS, even on as simple as FreeRTOS, will do just fine to run "an application" in a VM. The fact that an RTOS usually comes equipped with real-time capabilities will not hurt anyone.

      So, in other words, you are right - they may have not invented an RTOS - they haven't gotten that good yet :-)

    7. Re:Off the pig! Time to get rid of OSs on VMs. by TopSpin · · Score: 1

      The entire Linux kernel, virtual filesystem, daemons, user commands, etc, are just along for the ride.

      A JVM relies heavily on a kernel for scheduling, storage (journalling, RAID, LVM, etc.,) network stack (IP stack, filtering, bridging, etc.) and virtual memory management, at least. All of those capabilities must exist; they weren't created because someone was naive. Either they land in some library used by the guest JVM or they land in the hypervisor.

      This isn't to say the now 40 year old IBM LPAR model is wrong. It clearly works, and VMWare is independently evolving into the same thing. But there are some exaggerated claims of simplicity being offered here.

      The fact is recent x86 CPUs and chipsets have gained powerful virtualization capabilities, including hardware accelerated IO, MMU and interrupt virtualization. This stuff only began to appear in x86 hardware in late 2005 with important new capabilities such as VMCS Shadowing appearing as recently as Haswell (circa June, this year.)

      It isn't surprising that people are creating hypervisors to leverage this power. When hardware manufacturers give you a powerful virtualization platform the question is do you use a legacy OS retrofitted to utilize it[1] or adopt something supposedly better by virtue of being built with hardware virtualization as a given.

      Stay tuned.

      [1] FreeBSD 10 offers the bhyve type 2 hypervisor the relies on VT-x + EPT. It can virtualize x86, like VMWare could do in the late 90's, but FreeBSD hasn't had to synthesize a virtual sandbox from scratch because the hardware provides the hard parts, and the end result is superior.

      --
      Lurking at the bottom of the gravity well, getting old
    8. Re:Off the pig! Time to get rid of OSs on VMs. by tftp · · Score: 1

      Unfortunately, the VM cannot monitor what's happening inside. It is happy to execute NOPs from here and forever. A kernel, however, with even the most primitive MMU, can detect the crash. If there is no crash, the kernel can run another process - in isolation from the main one - that would be monitoring the main process through some IPC.

      In other words, there is a reason why Windows 95 is no longer popular.

    9. Re:Off the pig! Time to get rid of OSs on VMs. by TheRaven64 · · Score: 1

      No, what they've 'invented' is called a LibOS, and in combination with the hypervisor is called either a separation kernel or an exokernel, depending on which community you're in. And they aren't claiming to have invented it - academic literature is full of them - they're claiming to have implemented one that is BSD licensed, available now, and runs existing Linux binaries.

      --
      I am TheRaven on Soylent News
    10. Re:Off the pig! Time to get rid of OSs on VMs. by childproof · · Score: 1

      That was the first post on topic down the list.
      Thanks.

    11. Re:Off the pig! Time to get rid of OSs on VMs. by MiSaunaSnob · · Score: 1

      But I have a ring of arcane magic.

  10. Re:It's just syntax. by mark-t · · Score: 5, Insightful

    When a particular choice of programming language makes the resulting work easier for others to understand and maintain or modify, simply because things have been expressed in a manner that is more natural to understand with relation to what is actually being done, "just syntax" makes a HUGE difference.

  11. Re:Running jails/containers/zones by Mysticalfruit · · Score: 2

    I was just thinking the same thing... If you're running linux with KVM as your hypervisor... Why is this better than Red Hat's Open Shift? That way you get your cake and you get to eat it too.

    --
    Yes Francis, the world has gone crazy.
  12. Re:Cue Linus in 3..2..1 by mcl630 · · Score: 4, Informative

    Where are they "badmouthing" Linux? All they said was that Linux is over-kill for running a single application within a VM. Linux and OSv are different tools for different purposes.

  13. Re:So... no separation between system and userspac by bagboy · · Score: 2

    So now I need 12 vm's to perform the same tasks that one vm with 12 apps used to be able to perform? No thanks.

  14. XKCD is relevant... by MetricT · · Score: 2
    1. Re:XKCD is relevant... by H0p313ss · · Score: 1

      "Those who don't understand Unix are condemned to reinvent it, poorly." – Henry Spencer

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    2. Re:XKCD is relevant... by rachit · · Score: 1

      I was thinking more on the lines of:

      http://xkcd.com/1200/

  15. Re:A new OS in the Cloud? by Anonymous Coward · · Score: 1

    Of course we trust the latest version of NSAOS.
    - No need for userspace separation because we're alrea ... it's already handled for you.
    - Crypto, shmypto, it's safe!
    - You can't spell No Source Available without NSA!
    - Trust us! (you really have no choice)

  16. Re:So... no separation between system and userspac by Jherek+Carnelian · · Score: 4, Informative

    Given that this is a special-purpose OS, intended for one-app per VM situations I think it is a perfectly reasonable assumption to make.

  17. Re:Cue Linus in 3..2..1 by 0123456 · · Score: 1

    Where are they "badmouthing" Linux? All they said was that Linux is over-kill for running a single application within a VM.

    Considering we used to run Linux and our applications in 32MB of RAM and 64MB of Flash in embedded systems, I have a hard time seeing Linux as over-kill for running anything in a VM. The application will probably require more RAM and CPU than the kernel.

  18. Re:So... no separation between system and userspac by gl4ss · · Score: 1

    well only that app's should be accessible from outside.. if you're worried about breaking out from that app, what are you going to get into that you wouldn't get into in linux? unlimited access to /dev/? who cares when it's sandboxed? I mean, I don't see any need to run anything else on it - it could _really_ be running just one app, if you had your email inbox in there you would be doing it wrong. to get something you wouldn't get on a normal linux box you would need to break out of the vm, no? and that sounds like a bigger barrier than elevating your user on a normal linux installation..

    --
    world was created 5 seconds before this post as it is.
  19. Re:say... WHAT? by phantomfive · · Score: 2

    In this scenario, processes are kept apart by VMs. They are basically trusting VM security instead of Linux Kernel security (or rather, instead of two layers of Linux Kernel security).

    --
    "First they came for the slanderers and i said nothing."
  20. Re:say... WHAT? by 0123456 · · Score: 1

    Indeed. They've basically re-implemented the amazing idea of running multiple applications on one machine with a security layer to stop them from interfering with each other.

    If they don't have any real security inside the VM, they might as well just get rid of it. The underlying OS will probably be Linux anyway, so they're trusting Linux security in the first place.

  21. DO NOT TRUST THE CLOUD!!! by FudRucker · · Score: 1

    since the NSA is so good at cracking encryption and likes to spy on everybody and the US Govt is fascist in nature that means all the good ideas for new products will be stolen and given to government cronies in the private sector

    --
    Politics is Treachery, Religion is Brainwashing
  22. Re:Running jails/containers/zones by Aguazul2 · · Score: 1

    With a container you still have the kernel-user boundary to cross on each syscall. I guess with OSv you could potentially optimise the whole OS, libc and application down into a single binary. Yes, it's interesting how this is developing -- Docker as well. Having lightweight containers or OSes like this is really taking off. I guess there may also be a bit more guaranteed isolation running it with OSv, less risk of a kernel bug leaving an exploit path, i.e. the isolation is at a different layer.

  23. Re:A new OS in the Cloud? by Anonymous Coward · · Score: 2, Interesting

    It is worth mentioning that it is an Israeli-developed system (even if you didn't read the article, the names as noted in the summary are a dead giveaway), and we all know how chummy the Israelis are with the NSA. Of course there's a goddamn backdoor in it!

    -- Ethanol-fueled

  24. Re:So... no separation between system and userspac by vidnet · · Score: 1

    Just because you've only got "one app", it doesn't mean that you've only got one process.

    If you have multiple, semi-related tools, you currently wouldn't run them as different threads in the same process. Why put all your eggs in one basket, having to restart them all at once, letting one rewrite the memory of another, when starting a new process is so cheap?

    Now, if you have multiple, semi-related tools, you wouldn't run them as different processes in the same VM. Why put all your eggs in one basket, having to schedule them all on the same hardware, letting one misbehaving VM affect all of them at once, when starting a new VM is so cheap?

    We don't use separate processes because it's the best imaginable model of systems design. We use it because it's been the best compromise between separation and efficiency.

  25. Re:say... WHAT? by wierd_w · · Score: 2

    A single process can contain multiple threads. Without some level of protection there, this kind of thing could be more vulnerable to code injection attacks, allowing a perp to own the whole VM. If they do this without upsetting the process in any visible way, they can now just soak up all the data that the VM is having shoveled through it.

    Without a kernel space inside the VM looking for untoward behavior from the threads in userspace, and enforcing restrictions on who owns what resources, this is a recipe for trouble. The compromised thread can walk all over the vm's memory, and report whatever it wants to the hypervisor. In this case, the goal isn't to escallate, the goal is to compromise the vm and lay dormant. An actual, real VM with a seperate kernel space keeps important parts of memory secure. Like the data reporting and monitoring threads.

    They just removed a whole layer of security. It may well be mostly redundant, but given the stakes involved, redundant security features can actually pay off.

    The honor system doesn't work when the threads stop being honorable.

  26. Re:So... no separation between system and userspac by K.+S.+Kyosuke · · Score: 3

    So now I need 12 vm's to perform the same tasks that one vm with 12 apps used to be able to perform? No thanks.

    Isn't that what IBM has been doing with VM/CMS for decades? If you have deduplicated physical memory pages, what's the problem with that? (For that matter, am I the only one to whom this looks like a remake of VM/CMS?)

    --
    Ezekiel 23:20
  27. Re:So... no separation between system and userspac by Penguinisto · · Score: 2

    That's well and good, until you realize that a typical email server usually has an MTA (postfix, courier, sendmail, whatever), some sort of spam trap/filter (in addition to external ones), maybe a means to more efficiently handle distie lists, SASL auth (postfix typically handles that nowadays, but...), and probably some sort of webmail thingy. That's way more than "one app".

    Same with Apache/Tomcat/Whatever - you've got the web engine underneath, the Perl/PHP/Ruby/Python/Java/JavaScript based "app" (or, multiple apps, if you're using some generic CMS as a framework base), the interpreters to handle them all, the DB (or some client-ish means to reach one, such as MQ, ODBC, whatever), openSSL (or some means of handling certs and encryption)... again, way more than just "one app."

    Also, speaking of databases, if I can compromise the kernel on the server running that "one app", I can crawl through that "one app", get kernelspace, pop in a shadow app to do whatever I want (and bury it nice and deep - go ahead and sort it from all the other kernelspace files in there w/o a decent IDS)... and long story short, you'd never know I did it unless you paid very close attention to your monthly bandwidth bill.

    At least with some separation, a compromised userspace-only "app" is as far as you get. You can pop PHP but not apache (on a properly-built box)... oh well - just have to fix/replace the content. Without that separation, a violated box may well have a keylogger (or similar stdio-copying setup) installed for the express purpose of capturing what you do when you do realize that box is compromised (or even if it you don't...)

    --
    Quo usque tandem abutere, Nimbus, patientia nostra?
  28. Re:So... no separation between system and userspac by Anonymous Coward · · Score: 2, Informative

    John C. Dvorak stated in 1996: "The AmigaOS remains one of the great operating systems of the past 20 years, incorporating a small kernel and tremendous multitasking capabilities the likes of which have only recently been developed in OS/2 and Windows NT."

    So be careful when linking Amiga with classic Mac...

  29. BEA did it ! by ze_jua · · Score: 1

    In 2006 BEA had this kind of bad idea, with a VMware based hypervisor hosting a JVM/OS hybrid to run Weblogic processes.

    Original article found: there

  30. Re:Sorry, you're wrong. by mark-t · · Score: 3, Interesting

    Implied ad-hominems aside, while I am "just a programmer", I did receive formal CS training. But that is neither here nor there.

    I won't dispute that there is no one language that is going to be ideal for solving all problems, but it's entirely erroneous to presume that for certain types of problems, some languages are going to be better than others simply because the syntax of the language makes the solution more elegant to express and makes the resulting source code easer to understand.

    This ease of understanding almost immediately translates to a faster development cycle, resulting in the end user receiving the product earlier, and in general will also mean that the software is less likely to contain unknown bugs (barring unknown bugs in the language implementation on the target architecture or bugs in the software development environment itself), so those choices can even impact the end user, even though they are unlikely to necessarily understand how, or even necessarily be aware of them.

    Just because you *CAN* do the same thing in any imperative language that you can do in one particular one does not mean that they are all equally good choices, Choice of programming language should be less about making everything look like a nail because all you have is a hammer and more about picking the right tool for the right job.

    Your prof was right... language choice is "just syntax"... but in the real world, "just syntax" makes a world of difference.

  31. So no benefits of C and all the bugs/problems C++ by Anonymous Coward · · Score: 1

    So this has none of the benefits of C, and all the bugs and problems of C++. C++ forces people away from clean procedural programming, and toward 'computer do it for me" and "I guess it will be ok" highly abstract object oriented rubbish. I would rather tell the computer "do this, then this, then this", rather than "one of these things but hopefully the first, then the second, then the third, other wise bad things happen if you guess incorrectly". Watching a destructor function unravel a stack for example. You can write something that happens to work in C++ if you want, I would prefer something that *absolutely works for sure* in C.

  32. Re:So... no separation between system and userspac by bws111 · · Score: 1

    Nope, you're not the only one. That's exactly what I thought too.

  33. Re:Sorry, you're wrong. by bored · · Score: 1

    Someone who is skilled in C can pick up Perl and C++ quite quickly

    Spoken like someone who hasn't actually programmed in C++. I was very good in object pascal, C, and quite a number of other languages when I first started programming in C++.

    Lets just say that "quickly" isn't a description I would have for myself or anyone I've ever met when it comes to how long it takes to "pick up C++". Sure, you might be able to write some code in C++ after a couple days, but that code probably isn't worth the price of the storage your using for it. I would guess it takes upwards of 3 or 4 years before a C++ programer is good enough not to be making absolutely stupid mistakes on a daily basis. This is especially true for Java programmers who waltz in and think they know how to program in C++ because the syntax is so similar. The results are usually buggy garbage that compiles but won't run for long.

    Heck, after nearly 20 years, I still look at code I write on a daily basis and go WTF was I thinking yesterday when I decided to do that! Or my co workers do it for me during code reviews.

  34. Re:So... no separation between system and userspac by pipatron · · Score: 2

    The important thing that the Amiga OS lacked, when compared to a more "modern" operating system was memory protection. Simply because it lacked the necessary hardware to enforce it.

    Sadly, there was no provision for implementing any separation even when the necessary hardware was available, which it was on some of the later/high-end models.

    --
    c++; /* this makes c bigger but returns the old value */
  35. Why use Java? by seyfarth · · Score: 1

    If you're having performance issues, then C++ would offer a more efficient solution. Why jump through all these hoops to boost Java performance? Just use C++ and get twice the performance instantly with Linux. I tend to agree with the AC that the language issue is overblown. With practice programming is about the same level of difficulty with most languages. C++ does a pretty good job at compile time checking, interfaces directly with the system calls and offers nearly all the performance you can get from the computer. (AVX instructions can be done quite well in assembly, but most cloud apps would not benefit from using AVX.)

    Unless you have substantial computation or disk I/O, I would expect the bottleneck to be the network. With compute bound apps the OS is irrelevant. Likewise with I/O devices the time spent in system calls is dwarfed by the disk speed.

    --
    Ray Seyfarth, ray.seyfarth@gmail.com, http://rayseyfarth.blogspot.com
    1. Re:Why use Java? by shutdown+-p+now · · Score: 1

      If you go around telling your clients that they are idiots for using Java and should just switch to C++, you'll be out of business pretty quickly, regardless of whether it's true or not.

      As to why they would want to use Java... it's because there are far more reasonably god Java developers out there, and they are cheaper, too.

    2. Re:Why use Java? by radish · · Score: 1

      If you're having performance issues, then C++ would offer a more efficient solution. Why jump through all these hoops to boost Java performance? Just use C++ and get twice the performance instantly with Linux.

      That isn't true (in the general case) and it hasn't been for many, many years - can't tell if you're trolling or just ignorant. There are plenty of operations for which a JVM is actually faster than a C process (for example, Java new() is faster than malloc()), and Hotspot runtime optimization has access to a lot more information about how code is actually being used than static compile time optimization - the difference that makes can be remarkable.

      Java isn't the right tool for every job, but neither is any language, and there are a great many applications out there for which converting to C++ (for example) would not give any kind of performance boost (and may even be slower).

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    3. Re:Why use Java? by VortexCortex · · Score: 1

      Java new() is faster than malloc because it's caching memory. C obcache is faster than Java new() and if you extend C or C++ with garbage collection / memory caching instead of making slow kernel calls to allocate more memory then C and C++ win over Java. You picked the WORST possible speed comparison.

      Further, Runtime Optimization DOES NOT have more information about how the code will be used. Many hosting environments have GCC (even crappy shared hosts), with which you can build your program --MARCH=native to take full advantage of the specific hardware opcodes, spend a good long time crunching the code once, then just pre-fork or VM pre-image if you're at that layer... What more can you know about the environment than the architecture and source code?

      Even still taking advantages of those opcodes is a marginal benefit at best. Just In Time / lazy compilation has to be FAST it can't consider all that data it supposedly has access to -- Even if the compiler were SENTIENT and creating ASM "by hand", it would still be bound by the processor time it must spend before the code is executed. So, to optimize this, what do Enterprise VMs do? PRE COMPILE the code STATICALLY...

      Here's one for you: The insane emulated floating point numbers as integers in Java. Java makes ridiculous garauntees about the behavior of floating point numbers -- The hardware may actually have 160 bits or 80 bits or 40 bits backing the 128 or 64 or 32 bit floats, yielding higher precision than the strict power of two bitwidth, and offer floating point calculations in a single clock cycle vs Java's emulated multiple integer compare and shifting and what not. It's fine to have a way to garauntee the accuracy of some floats, but that's what bignum libs are for. In Java I'm prevented access to the high performance FPU and not everything is a damn financial calculation requiring high precision or exact repeatable results on different hardware. JNI? Oh, well, yeah, of course, I can just write the whole thing in C then, eh?

      Don't get me wrong, if you have to integrate code with existing Java, then Java is the right tool for the job... However, I'd put you to task to find any other job that C or C++ would be slower at. Keep in mind that I have a garbage collection and collections libs (including hash map) for both C and C++. When you get up beyond the low level stuff where C and C++ can kick Java's, hands down (because at the end of the day it's just machine code, which C/C++ compiles to) then the choice of algorithm is where the performance gains are found.

      Java wins in portability, for when you want to re-use software on various platforms and the vendor is so much of a dick that they won't give you the sources... It's also a language encumbered by Oracle and trademark BS. In my world, where the source runs freely, the dark side of bytecode can go fuck itself.

    4. Re:Why use Java? by ebno-10db · · Score: 2

      Why jump through all these hoops to boost Java performance?

      Because Sun's marketing department was better than AT&T's marketing department.

    5. Re:Why use Java? by ebno-10db · · Score: 2

      There are plenty of operations for which a JVM is actually faster than a C process ... and Hotspot runtime optimization has access to a lot more information about how code is actually being used than static compile time optimization - the difference that makes can be remarkable.

      Very interesting, and oft cited as a defense of Java's speed. Now show me the benchmarks.

      there are a great many applications out there for which converting to C++ (for example) would not give any kind of performance boost (and may even be slower)

      Actual experiments and measurements?

  36. Re:say... WHAT? by Narcocide · · Score: 1

    Shh!!! You're foiling the NSA's plan!

  37. Re:So... no separation between system and userspac by drinkypoo · · Score: 2

    It boggles the mind that anyone would suggest something like this and then use the excuse of "well we only run on app on a box". That's such amateur hour nonsense. It's like running your cloud apps on classic MacOS or an Amiga.

    Their premise is that you'll write your app as a series of separate servers. Then you'll deal with inter-server security instead of inter-process security. If two processes are basically parts of the same program anyway, you can run them on the same server so they can share memory.

    I think it's a silly idea, but it's not an inherently bad one. It might well make sense for some kinds of workloads. Until we get back single system image clustering on Linux (there was OpenMOSIX) this might help some people.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  38. Re:So... no separation between system and userspac by cheater512 · · Score: 1

    How the hell are you running a remotely exploitable email server?
    Since this OS is designed to only run one program there is nothing else to exploit.

  39. Re:Cue Linus in 3..2..1 by drinkypoo · · Score: 1

    Considering we used to run Linux and our applications in 32MB of RAM and 64MB of Flash in embedded systems,

    Tee hee. My first Linux box was a 386DX25 with 8MB of DIP DRAM and a 1MB Trident ISA VGA card. I did have a whoppin' 120MB of HDD, though. I have run GPE on iPaq (Familiar) but I've got a 128MB+WiFi CF plus the SD slot.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  40. D'OH hit submit too soon! by mark-t · · Score: 2

    I'm missing a very important 'not' in the second sentence of the second paragraph there... between the words "are" and "going"

  41. Re:BSD! by pipatron · · Score: 1

    Not sure what you mean by this. OS9 and anything previous to that has nothing to do with BSD.

    OSX was a completely new start. "Virtually all old devices and OS's ever" is most definitely not BSD.

    --
    c++; /* this makes c bigger but returns the old value */
  42. Re:say... WHAT? by shutdown+-p+now · · Score: 2

    A single process can contain multiple threads. Without some level of protection there,

    I hate to break it for you, but there's no level of protection between threads in a single process, on Linux or any other mainstream OS. Threads are, by definition, sharing the address space, so any thread can crap over any other thread.

  43. Re:Sorry, you're wrong. by Vlijmen+Fileer · · Score: 1

    "Computer Science or Engineering". When do programmer boys -also the "professor" ones forever walking the halls of "computer science" "universities" finally get it: /Nothing/ in or around computers is science. It's just and only a craft.

    Your text is misleading; the difference is only between worse and better craftsmen.

  44. Re:So no benefits of C and all the bugs/problems C by Anonymous Coward · · Score: 3, Interesting

    You are holding your C++ "howto" book the wrong way. Of course you need to be highly educated to properly use C++.

    But if you have reached that level, you can do things like generic container classes which have bounds-checking, for example. Or your own string class with similar properties. That will immediately kill about 30% of current exploits, as they depend on all the shitty aspects of *real-world* C software-engineering.

    Security is by now the most important issue in applied computer science. C++ helps you towards that in a way C can never do.

  45. Re:So... no separation between system and userspac by MightyYar · · Score: 1

    You get access to the configuration which can then relay any incoming data to some outside target.

    IANASA (systems administrator)... but why would this matter? Presumably the host OS would restrict the ports this thing can use. A compromised app on Linux with access to the world on some port could relay any incoming data to an outside target as well... right?

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  46. Re:Sorry, you're wrong. by Anonymous Coward · · Score: 2, Informative

    C++ allows for much better modularity and for programming on a higher semantic level than C. This boosts security, productivity, correctness and sometimes even performance. But yeah, you need to know algorithms and complexity, you need to know how the machine will implement your stuff, you need to know the machine itself and its performance characteristics. C++ does not magically improve the efficiency of an idiot. But the same experienced guy doing C and then C++ will be significantly more productive in C++, there is little doubt.

  47. Re:Sorry, you're wrong. by mark-t · · Score: 1

    Just because it's a craft doesn't mean it's not a science. In fact, many things that are commonly more strongly associated with being art have an amazing amount of science behind them... music being the most notable that I can think of right off the top of my head.

  48. Re:So... no separation between system and userspac by Nyder · · Score: 1

    It boggles the mind that anyone would suggest something like this and then use the excuse of "well we only run on app on a box". That's such amateur hour nonsense. It's like running your cloud apps on classic MacOS or an Amiga.

    Just because you've only got "one app", it doesn't mean that you've only got one process.

    It sounds like running your 2013 server apps on an OS from 1985 but "in the cloud".

    [shake head]

    http://jsmess.textfiles.com/

    That emulates a bunch of old computers, even 1985 ones. Runs on the cloud. Just need some server apps for any of them now...

    --
    Be seeing you...
  49. Re:So... no separation between system and userspac by MightyYar · · Score: 1

    It was also single-user, was it not?

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  50. cgroups? by blackiner · · Score: 1

    Couldn't you get the same effect by running multiple processes in different cgroups? Sounds like that is really all this is, since the host OS is probably still linux...

    1. Re: cgroups? by childproof · · Score: 1

      This is one possible solution but you have to convince your it department, who is in love with VM's to accept that.
      I don't have a solution for that.

  51. Re:So... no separation between system and userspac by kko · · Score: 1

    LOL! That JS emulator is awesome! But an Osborne with no MSBASIC is no fun!

    --
    No, seriously, I just come here for the articles.
  52. Re:Good luck! by Brian+Feldman · · Score: 1

    OSv certainly appears to be a derivative of FreeBSD (see https://github.com/cloudius-systems/osv/tree/master/bsd).

    --
    Brian Fundakowski Feldman
  53. Re:So... no separation between system and userspac by vidnet · · Score: 2

    Maybe you want to be able to control whatever is running in the VM. How do you propose to do that [...]?

    The deployment system should be responsible for the configuration. The hypervisor should be responsible for starting and stopping VMs when the monitoring system determines that they're misbehaving.

    SSHing in and changing config files, killing process and deleting unused logfiles or whatever is not a scalable solution.

    If you're just going to spawn a new VM for every single program you might as well just run all those programs on the physical machine.

    "The" physical machine? You mean the ten thousand machines across half a dozen data centers where jobs from a thousand different entities are constantly being spun up and shut down in response to load and hardware changes?

    Yes, you could do that. This is just an easier way of doing it quickly, transparently and securely.

  54. Re:Running jails/containers/zones by stox · · Score: 1

    "What other OS quickly installs to an integrated shared filesystem, does cluster-wide isolation/sharing/balancing of most major system resources, and can move running applications from one node to another in a cluster with almost no impact?"

    Sounds like you are describing VMS. VMware moves operating system instances, not applications.

    --
    "To those who are overly cautious, everything is impossible. "
  55. Re:So... no separation between system and userspac by js_sebastian · · Score: 1

    How the hell are you running a remotely exploitable email server? Since this OS is designed to only run one program there is nothing else to exploit.

    Hmm email server has to handle... emails, duh! Emails are untrusted data coming from untrusted sources, and your mail server is doing complex processing of those emails. So, yes, it is potentially remotely exploitable.

  56. Re:Running jails/containers/zones by gunzy83 · · Score: 1

    When I read this I instantly thought of Docker. Wonder what the advantages of this are over Docker...

  57. Re:So... no separation between system and userspac by cheater512 · · Score: 2

    I can hack your server just by sending a email? Cool!

    Seriously though, please find a single case of that occurring with any major mail program.

  58. OSes are dying by CyberSnyder · · Score: 1

    This or something like this will be huge. I remember arguing against linux. Why would anyone want to install that? It's crap written by some college kid. I was extremely wrong, but I learned quickly after Solaris kept getting crappier and crappier.

  59. Re:So... no separation between system and userspac by Imagix · · Score: 1

    Those who forget history are doomed to repeat it. See: the Morris Worm. Spread through sendmail (and other vectors).

  60. Re:It was only a mater of time.. by ebno-10db · · Score: 2

    With virtualization becoming pervasive I wondered how long it would be until people started looking at the bits of an OS that were rendered legacy because they were required for running on "bare metal".

    About 41 years ago: http://en.wikipedia.org/wiki/VM/CMS

  61. VMs or BS by Ice+Station+Zebra · · Score: 1

    What we need is better application isolation on bare metal and not emulation layers.

  62. Re:So... no separation between system and userspac by znark · · Score: 5, Informative

    It was also single-user, was it not?

    That is correct. Single-user designs were the norm with personal computers of the era. There are some ways around this (, for example) but they're sort of limited.

    The lack of memory protection is due to the first models being designed around the plain Motorola 68000 CPU, which lacks a memory-management unit (MMU). Later models were available with beefier and more feature-rich processors from the 680x0 series, some of the including an MMU. You could also buy add-on “turbo cards” (processor cards taking over the functions of the main CPU, effectively replacing it with a faster one.) But by then it was too late. The OS relies heavily on shared libraries and message passing in flat, shared, unprotected memory space.

    Otherwise, the Amiga hardware platform and AmigaOS – the first model/version having been released in 1985 – included concepts such as preemptive multitasking, windowed GUI toolkit in the system ROM (no “text mode” at all), overlapping “screens” in different resolutions and bit depths, hardware blitter and DMA-based I/O (including multichannel sampled stereo sound), drivers for devices and filesystems, the “AutoConfig” system for add-on devices (fulfilling the same role as PnP did later in the Wintel world), 8-bit ISO Latin-1 character encoding as standard, windowed command-line shells, shell scripting, inter-process scripting (ARexx), an OS-provided framework of multimedia “datatypes” (handlers/decoders/players for common file types), scalable fonts, clipboard, speech synthesizer as a standard OS feature, etc.

    Ignoring Linux and OS/2 for a moment, in some ways it felt the Wintel camp only caught up ten years later when Windows 95 was released to the masses, and at that point, both the OS and the “IBM-compatible” PC hardware platform were still missing some key features and novel ideas that made the AmigaOS so great and elegant in its day.

  63. Re:So... no separation between system and userspac by msobkow · · Score: 1

    One "app" is rarely "one program."

    Take web services, for example. The web server ends up launching PHP or Java interpreters, which in turn launch shell commands and access databases. Or do you think you're going to get good performance firing IP messages all over the place to access your databases instead of staying within a single VM instance?

    While the concept of this OS fits for something like timed, it falls down badly on the security front for real workloads.

    --
    I do not fail; I succeed at finding out what does not work.
  64. Re:VMware is for pussies by ebno-10db · · Score: 1

    Regards
    Linus

    Linus actually stating a firm opinion? How unusual.

  65. Re:So... no separation between system and userspac by Jherek+Carnelian · · Score: 1

    it falls down badly on the security front for real workloads.

    One "app" is rarely "one program."

    Take web services, for example.

    Not seeing how security is an issue in your example. Presumably they all run as the same userid anyway.

  66. Re:So... no separation between system and userspac by bws111 · · Score: 1

    Why would you have to 'fire IP messages all over the place'? Any hypervisor worth a damn is going to have a high-performance method of passing messages between VMs without using IP or some such nonsense. There is no reason why a web server VM sending a message to a database VM is going to have any worse performance than a web server process sending a message to a database server process.

    Breaks down on the security front? How so, exactly? Every message passed between VMs would have the ID of the originator added to the message somewhere, and that ID would be provided by the hypervisor, not the application. Additionally, security is improved because EVERYTHING runs in user space, and nothing runs as 'root'. You want a network connection? You have a network VM, which does nothing but process TCP/IP packets. Even if there is a flaw in the TCP/IP stack you can't do a privilege escalation because the network VM has no special privileges.

    Fails for real workloads? Not really, it's been in use on 'real workloads' for more than 40 years on mainframes.

  67. Re:So... no separation between system and userspac by msobkow · · Score: 1

    Because there is no userland, all the applications are running with kernel priveleges. That means a flaw in any of those programs can interfere with the whole software stack, whereas with userland protection the individual processes are isolated from each other by the OS.

    Perhaps I'm misunderstanding, but it sounds to me much like AmigaDOS was -- there were hooks for security enforcement calls, but none of them were implemented so any program could stomp on any other program. Sure it was fast, but it sure wasn't secure.

    --
    I do not fail; I succeed at finding out what does not work.
  68. Re:So... no separation between system and userspac by bws111 · · Score: 1

    You have it backwards. There is no kernel (other than the hypervisor), everything is in userland. Each element of the software stack (network, web server, database, whatever) is a separate VM, completely isolated from the other services. A flaw in any service, no matter what 'privilege level' that service is running at, can not spread past what that service can do. Even if the services are running as 'root' they don't have access to any other service's data or whatever because they are in different VMs.

  69. Re:So... no separation between system and userspac by drkstr1 · · Score: 1

    You get access to the configuration which can then relay any incoming data to some outside target.

    IANASA (systems administrator)... but why would this matter? Presumably the host OS would restrict the ports this thing can use. A compromised app on Linux with access to the world on some port could relay any incoming data to an outside target as well... right?

    True, but it seems like Linux would have a better separation between the running process and a usable system environment, making that kind of attack more difficult. I'm sure these guys would have thought of that though. It really all just depends what is accessible from the root process. Sounds like fun.

    --
    Fanboy Status: Apache Flex, C#, Eclipse, KDE, Pirate Party, Ron Paul, Slackware, Windows 7
  70. Re:So... no separation between system and userspac by msobkow · · Score: 1

    I can't see that being feasible. That would mean launching each process as a new VM. The overhead would be insane.

    --
    I do not fail; I succeed at finding out what does not work.
  71. Re:So... no separation between system and userspac by Jherek+Carnelian · · Score: 1

    Because there is no userland, all the applications are running with kernel priveleges. That means a flaw in any of those programs can interfere with the whole software stack, whereas with userland protection the individual processes are isolated from each other by the OS.

    You are not talking about security, you are talking about memory protection. The thing is - a process that stomps on another processes memory in this model would get a memory fault and die under the normal model. The end result is the same either way.

  72. Re:So... no separation between system and userspac by bws111 · · Score: 1

    As has been pointed out elsewhere, this is what IBM's VM/CMS system has been doing for more than 40 years. You certainly don't launch a new VM every time you would create a process. You create a VM for, for instance, managing a database. That VM uses what amounts to a high-performance socket interface to listen for work requests from other VMs. The database VM is started when the hypervisor is started, and continues running until it dies or is shut down. If it dies, it can't take anything else with it because it is it's own VM. It can't have any IPC resources tied up, etc, because there aren't any. The only thing that would happen is any other VM with an active connection to the database VM would be notified that the connection terminated.

    Internal to each VM the application can do whatever it wants. If it wants to have some sort of process control it can do that, as it is a virtual machine and can run anything it wants.

  73. NSA access all-ready built in? by MonsterMasher · · Score: 1

    NSA access all-ready built in?

    What a f-ing mess we (USA) always manage to do.

  74. Re:So... no separation between system and userspac by mendax · · Score: 2

    It's the same thing for the most part. The big difference though is that it doesn't require an IBM z-series mainframe to run. I'm not bad-mouthing IBM mainframes. The beasts IBM sells today are rather small, very fast, very flexible, and rock solid reliable. But they use an instruction set that is backwards compatible with that of the IBM 360 series mainframes of the 1960's and their successors, not the x86 instruction set that the rest of the world is using for servers. IBM's VM/CMS has been around for decades and is proven. This new OS has yet to prove itself.

    --
    It's really quite a simple choice: Life, Death, or Los Angeles.
  75. Re:So... no separation between system and userspac by msobkow · · Score: 1

    Sure, if you're going to architect your code that way. But the benefit of "running Linux applications" would be to use existing application code under this OS. And as I mentioned, a lot of such application code spins processes like a fiend.

    Now mind you, one could (at least theoretically) use this OS for the server processes like databases, and a "normal" Linux process for the web server. But then you get into the issue of having to maintain a variety of VM definitions within one cluster, which kind of negates the point of having standard images that are used by multiple customers. It also means that customers are expected to run multiple VMs by default.

    I could see providers that charge by the VM rather liking that, though. Soak that there customer. Open your wallet wide. :P

    --
    I do not fail; I succeed at finding out what does not work.
  76. Re:So... no separation between system and userspac by msobkow · · Score: 1

    Process isolation is one part of security.

    --
    I do not fail; I succeed at finding out what does not work.
  77. Thank god! by formfeed · · Score: 1

    For a moment I thought they were to replace "Linus in the cloud"

    Linus in the sky with diamonds has always been my favo(u)rite.

  78. Re:Running jails/containers/zones by gmuslera · · Score: 1

    Probably a lot of the ones that know about Docker asked themselves the same. I can install a JVM in a Docker container, install even the java app on it, and run it directly, no extra overhead, no messing with a shared filesystem with other apps. Is not that in practice what they are proposing to do? If you want a barebones Linux to run all of this, you can use CoreOS as a minimal Linux system to run docker containers.

    And over that, you can in that way more things than just run java apps.

  79. Re:Running jails/containers/zones by gmuslera · · Score: 1

    If its only needed to run JVM, then no matter what OS runs it, it could be the same version of Linux. The main thing that you don't have (yet) with Docker regarding this is live migration of running containers between servers, as you have with VMWare/KVM/Xen VMs or (not so lightweight) OpenVZ containers.

  80. Re:So... no separation between system and userspac by l3v1 · · Score: 1

    "I can hack your server just by sending a email? Cool!
    Seriously though, please find a single case of that occurring with any major mail program.
    "

    People, wake up, this is not some "cloud utopia". If it runs an email server, it can be hacked, it made lots of us learn our sh*t the hard way. And even it is the only thing running in the VM, it can still give someone usable data.

    The only thing this whole shebang is good for is that it makes it virtually - hehh - impossible to get to one service by exploiting the weaknesses of another one running on the same server (which in this case shouldn't happen). That's it, nothing more. No silver bullet, just a different way of trying to solve the issue.

    --
    I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
  81. Re:So... no separation between system and userspac by nukem996 · · Score: 2

    If you read through the slides the core OS is only capable of running a single thread. What this looks like to me is a highly specialized OS that relies entirely on the hypervisor to do everything for it. Its basically a specialized version of Java with enough glue and support to run on a bare hypervisor. They started with Java and just implemented everything it needs to run on a hypervisor. Assuming the JVM is fully implemented it should greatly increase a Java apps performance because its gotten rid of all the extra OS overhead. Because of that you would have to exploit the JVM and be limited to what you can do in Java. At that point you could fully read the file system but on this system the only files on this system would be for that one application. The only password file on the system would be the one for this application which if exploited on a normal system would be all the attacker would have access too.

  82. Re:So... no separation between system and userspac by Alioth · · Score: 1

    The very first piece of internet malware was a worm that exploited sendmail on several operating systems, way back in the late 1980s and spread without user interaction (it wasn't an MUA worm like pretty much all of the email worms since, but a worm that really did exploit bugs in the MTA).

    See: http://en.wikipedia.org/wiki/Morris_worm

  83. Unvirtualization by Ivan+Stepaniuk · · Score: 1

    If you don't need a n extra full fledged OS to run your JVM, maybe you shouldn't have virtualized it in the first place.

    Wouldn't make sense to have a tool to manage and deploy self-contained packages that can run the JVM (or whatever) in an isolated way, with the Linux kernel alone?

    --
    My other signature is a car
  84. Advocating getting rid of VMs by dutchwhizzman · · Score: 1

    The exact same arguments you are giving can also be used to advocate getting rid of VMs. Why construct an entire VM if you're only going to run one application on it? You can just as easily run it on the bare metal and put the redundancy and failover and all that on the application layer. You don't need an entire virtual machine to just run one application in a single security context. VMs are useful because they allow you to be flexible in where and how you run your applications and operating systems. If you get rigid and only allow a single security context to exist on a VM, you are taking away the flexibility and therefore it's usefulness. People want the extra clutter, since it's easier and thus cheaper to use it this way.

    --
    I was promised a flying car. Where is my flying car?
  85. Re:So... no separation between system and userspac by smash · · Score: 1

    Sure. But the original amiga hardware as a 68000 with no MMU.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  86. Re:So... no separation between system and userspac by TheRaven64 · · Score: 1

    That's well and good, until you realize that a typical email server usually has an MTA (postfix, courier, sendmail, whatever), some sort of spam trap/filter (in addition to external ones), maybe a means to more efficiently handle distie lists, SASL auth (postfix typically handles that nowadays, but...), and probably some sort of webmail thingy. That's way more than "one app".

    And in the deployment scenarios that this is intended for, each one of those would be running in a separate VM. If you have lots more incoming mail, you might spin up more spam filter instances dynamically. You'd probably only have a single persistent VM for the storage, but everything else would be scaled dynamically.

    --
    I am TheRaven on Soylent News
  87. Re:So... no separation between system and userspac by TheRaven64 · · Score: 1

    You don't have 12 VMs. You have 12 kinds of VM. You have tens to thousands of instances of those VMs, depending on your load.

    --
    I am TheRaven on Soylent News
  88. Re:Cue Linus in 3..2..1 by martyros · · Score: 1

    Where are they "badmouthing" Linux? All they said was that Linux is over-kill for running a single application within a VM. Linux and OSv are different tools for different purposes.

    Especially since Linux was the first hypervisor they ported to, and has the best support at the moment.

    --

    TCP: Why the Internet is full of SYN.

  89. Re:say... WHAT? by TheRaven64 · · Score: 1

    The main advantage of VMs over processes is that they have a much smaller amount of OS state. In a VM, almost all of the state is within the VM. There's a tiny amount for the PV devices, but that's it. In a POSIX OS, even the state associated with the file descriptor table is huge and then there are things like locks that are blocking in the kernel and all of the state that is associated with the scheduler and so on. If you want to move a process from one host to another, it's decidedly nontrivial, especially if it has open files and sockets. Hypervisors, however, are designed to suspend, resume, clone, and migrate VMs.

    --
    I am TheRaven on Soylent News
  90. Re:So... no separation between system and userspac by icebraining · · Score: 1

    Hum, in most large deployments, the databases are not even in the same machine, let alone VM, as the web server. This is the only way to ensure you can scale (adding more web servers dynamically) and optimize the systems for their workloads.

    For example, see the Stack Overflow architecture: http://blog.serverfault.com/2011/09/

    Frankly, if you're running the RDBMS on the same server as the web service, you're - like me - running a toy database.

  91. Re:Cue Linus in 3..2..1 by swillden · · Score: 2

    Where are they "badmouthing" Linux? All they said was that Linux is over-kill for running a single application within a VM.

    Considering we used to run Linux and our applications in 32MB of RAM and 64MB of Flash in embedded systems, I have a hard time seeing Linux as over-kill for running anything in a VM. The application will probably require more RAM and CPU than the kernel.

    We used to run Linux on a hell of a lot less than that. But that was a different Linux.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  92. Single process? by Raedwald · · Score: 1

    it offers features (such as multi-user and multi-process) which are today made redundant by the hypervisor

    I can't see that working well, unless they mean no heavy-weight processes, which have their own address space.

    --
    Ne mæg werig mod wyrde wiðstondan, ne se hreo hyge helpe gefremman.
  93. Nice rant, pity about the evidence by SmallFurryCreature · · Score: 1

    You rant a nice rant but which license is the most widely adopted and whose code is the mode widely used again?

    It ain't BSD powering Android.

    The BSD advocates are all "Our license encourages sharing, ignore the fact nobody uses it and nobody shares it, waah why is Linux so much more popular!". BSD is a good license for example and throwaway code but for code you value and for which you want people to continute back their chances, for a community effort, the GPL is the license to choose.

    And so far, historic evidence, the examples of who likes BSD (MS and Apple) and who like GPL (everyone else) shows me exactly what each license achieves in the real world.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  94. Re:So... no separation between system and userspac by rjstanford · · Score: 2

    Take web services, for example. The web server ends up launching PHP or Java interpreters, which in turn launch shell commands and access databases.

    Wow... really? I supposed that's one way of doing it. Most Java webservice providers just listen for network connections and do everything themselves rather than spawning new executables, but if you're truly nostalgic for old-school CGI I guess you could spin everything up and down all the time.

    --
    You're special forces then? That's great! I just love your olympics!
  95. Re:So... no separation between system and userspac by Ash-Fox · · Score: 1

    Note: I am not the original poster.

    Using some mail servers I setup as an example, it is built up of numerous separate programs and offers access through a lot of different protocols.

    Only service that is separate from the servers is LDAP authentication, but there is also numerous on-system intrusion detection services (as well as external) which wouldn't work without being on the same server.

    Do you run each application with it's own UID?

    Yes.

    How do you keep one from hogging all the memory?

    /etc/security/limits.conf

    Network IO?

    iptables with QoS

    Disk IO?

    /etc/security/limits.conf

    Is each running on its own disk partition?

    No, because they all share data between each other.

    Do you configure disk quotas for your apps?

    No, just users for their e-mail quotas.

    Do you allocate a unique service IP to each app?

    No, because IPs are expensive and some places won't even allocate you more external ones anymore. Nor is it necessary.

    How do you manage a cluster of such multipurpose systems?

    The command line (monitoring is separate issue all together).

    Can you move an application from one node to another easily?

    No, but I can create a new server instance and have it begin clustering within a few minutes (most of that time is spent waiting on the VPS provider).

    I won't even ask if you can do that without interruption...

    I could do that without interruption because of fail over.

    Running 12 unrelated apps on one system is almost pointless these days, because server operating systems have stagnated to a point where it's best to just ignore them, popping them out of cookie cutter build servers - one per app, and let the VM software handle isolation and resource sharing.

    In theory, almost every single process could run on their own VM, but I get the impression it wouldn't be cost effective and I am not convinced VM software can do resource sharing more gracefully?

    As an example of resource sharing, Storage Area Networks as a prime example become more of a headache (they slow down and become more of a performance bottleneck) when they require atomic synching of events (which is a good thing for most application uses), which is less of an issue when there are fewer virtual servers accessing the SAN filesystem as a whole.

    The only thing I can think of that would meet this criteria of usefulness is a TeamSpeak server I am running on a crash report processing server. The crash report processing system has several different applications for processing reports, while TeamSpeak is just there because buying another VM is pointlessly costly for the purpose of just TeamSpeak.

    --
    Change is certain; progress is not obligatory.
  96. I don't get why we need OSv... by apexwm · · Score: 1

    We don't need to reinvent the wheel here. I don't see why there are claims that Linux can't be scaled, because it CAN. Recompile the kernel to suit your needs. If it's for virtualisation, then do so.

    1. Re:I don't get why we need OSv... by unixisc · · Score: 1

      Essentially, what would be adequate would be a single tasking or a co-operatively multitasking environment, thereby eliminating the need for things like schedulers, protected memory and the like from the VM: while the original OS may have it, it is redundant for a VM, since the hypervisor simply hosts multiple VMs for each use. In other words, what's needed of an OS is just the userspace - no system space is needed, just an allocation of virtual system resources from the hypervisor. So from GNU/Linux, the Linux wouldn't be needed - just the GNU would be. The hypervisor would provide it with whatever services it needs to run.

      In this case, the hypervisor itself is a FreeBSD hypervisor. Although I wonder how a microkernel based hypervisor, such as Minix, would have fared.

  97. Re:So... no separation between system and userspac by unixisc · · Score: 1

    well only that app's should be accessible from outside.. if you're worried about breaking out from that app, what are you going to get into that you wouldn't get into in linux? unlimited access to /dev/? who cares when it's sandboxed? I mean, I don't see any need to run anything else on it - it could _really_ be running just one app, if you had your email inbox in there you would be doing it wrong. to get something you wouldn't get on a normal linux box you would need to break out of the vm, no? and that sounds like a bigger barrier than elevating your user on a normal linux installation..

    Not only that, at a very basic level, you already have a kernel - the hypervisor - acting as a kernel. So on top of that kernel, you have another kernel running, and on top of that user space, it doesn't seem to make much sense. Rather, running a barebones monolithic OS, w/ the hypervisor providing all its services, sounds like a good way to go on the cloud.

    Of course, one could then say that running Windows 3.11 would then be fine, and depending on the application, it might. Actually, if someone wrote a 32-bit version of Windows 3.11 - something that could run all win32 apps - and then released it, it would be ideal to run on VMware, VirtualPC, HyperV and so on. No need of multitasking - just run one app in every VM that is created, and you'll get good isolation. Such an app would just run on a single core all the time, leaving other cores available for other sessions

  98. Re:So... no separation between system and userspac by unixisc · · Score: 1

    Okay, how does this work with, say, a program like Firefox that has mutiple tabs? Since each tab is treated as a separate process, as opposed to a thread, would a misbehaving tab then bring down the entire VM?

  99. Re:So... no separation between system and userspac by Jherek+Carnelian · · Score: 1

    Only in a system with different users.

  100. Re:So... no separation between system and userspac by mkilpatric · · Score: 1

    If you recall, that was the model that VMware originally used as well (the VM/CMS model). But, essentially, yes, you are right. I'm wondering why they went with the single threaded process, and would like more information from them outside what is in the slide deck..

    --
    mkilpatric, to all the mysterious people, I am the folded dollar.
  101. The Lament of Smaller and Simpler Systems by tjstork · · Score: 1

    The thing is, this new operating system will evolve like just about every other "we'll make it smaller and simpler" systems. If they are the next big thing, then sooner or later they'll go down the path of adding everything into their system that they ripped the other guys for having, then act like they invented it.

    --
    This is my sig.
  102. Re:So... no separation between system and userspac by AJodock · · Score: 1

    Many VMs run one application, but they typically run many processes. For instance OpenSSH. Say a hacker breaks into your application and has some abilities in the userspace. Now with your reduced separation between the kernelspace and userspace it is presumably easier to exploit the kernel. Once you have your way into the kernel you have the run of the place so you have root access to modify all of the other processes running on the machine.

    If you are using a password to login to your system the attacker can get into the OpenSSH service and wait for you to login (giving them your cleartext password). OpenSSH uses a tunnel to encrypt your password from the outside world but it is a tunneled clear text password so once the service itself is exploited you end up just handing it to the hackers. Or on second thought just break your way into PAM and then all applications on the machine start feeding the hacker passwords. Once they have your password they can start to use it elsewhere on your network to see what else they can get into.

    External facing machines are often just the start of a hackers goals, and making those external facing machines any easier to compromise for the sake of efficiency is a bad idea.