Slashdot Mirror


Distributed Operating Systems?

ayejay asks: "Are there any models/designs for a totally distributed operating system, possibly utilizing AI to learn patterns of use, resource need, and anything else that might be relevant? What -would- be relevant to such a thing? Given Napster and all the load balancing kernel enhancements and SETI@home type programs out there, it seems the idea is ready to be developed into a feasible paradigm. What do you think some of the major concerns/design issues are? I'm talking about nuts and bolts..." Now I'm all for distributed applications, but applying such paradigms to something as critical as the operating system seems to be taking the issue a bit too far. Would creating a 'distributed' operating system gain us any advantage over what we are currently familiar with?

204 comments

  1. There are lots.... by Anonymous Coward · · Score: 2

    Sprite, Plan 9, Inferno, Springs -- just to name a few -- all have various aspects of being "distributed operating systems" to them....

    1. Re:There are lots.... by Peter+Dyck · · Score: 1

      Isn't this where Microsoft is heading was well with their .NET?

    2. Re:There are lots.... by ConcreteLeper · · Score: 1

      Theres also one by the name of Amoeba...we have that running on "one" of the computers where I go to skool

      --
      //You sure got purdy hands, just like a lady
    3. Re:There are lots.... by jhutkd · · Score: 1

      ARE YOU KIDDING?!?! MS uses one of the ugliest macrokernel designs in the word!

  2. NeXTStep? by LimpGuppy · · Score: 1

    Wasn't NeXTStep a true distributed operating system? I seem to recall reading that even the OS's memory manager could be running on a separate node... but I could be recalling wrong.

  3. Suns... Plan 9 by Dungeon+Dweller · · Score: 4

    Sun Microsystems products are designed around a network paradigm. A lot of the distributed stuff we have today comes out of their work. Distributed being used in a bit more ubiquitous sense than necessarily meaning clustering the processor power.

    Plan 9, as part of its design, is designed with distribution in mind. Check it out!

    --
    Eh...
  4. check out mosix by rnd() · · Score: 1

    check out mosix here

    --

    Amazing magic tricks

    1. Re:check out mosix by kermyt · · Score: 1

      Has MOSIX solved thier NFS problem yet? I set it up once some months ago, but it killed nfs on my network. And I needed that more than I did process distribution.

      I'm using MOSIX and NFS together right now... in fact I've been using both together since MOSIX was initially released as a Linux kernel patch, and I have never had (nor heard of) any sort of problem as that.

      In fact I would think that that particular combination would fit most of the qualifications for a "distributed" OS.

      Is Plan 9 the same OS that was called OS9 a few years ago? If it is, then alot of digital slot machine networks use it as their core OS in Vegas and Atlantic City.

  5. Plan 9? by cbwsdot · · Score: 1

    Plan 9

    Chris Williams

    1. Re:Plan 9? by Anonymous Coward · · Score: 1

      The correct link is : Plan 9

  6. Uhm... by Trracer · · Score: 1

    Parts of the OS has to be local, I presume.
    But that wouldn't be so much different from a cluster I guess.
    Don't quote me on that tho ;)

    --
    English is not my first language, so cut me some slack -: Om du kan lasa det har sa kan du Svenska :-
  7. Problem with current programs by 11223 · · Score: 1

    If you think about it, your current computer really is a small "distributed system" - you have (at least) one processor for general-purpose data computation, one to handle video, another to handle audio, etc. But the problem is that most programs aren't written to be distributed (or even threaded!!) and as such distributed OS's tend not to have much of an advantage. There are very few things that can be distributed to a good effect over a network of equal processors, even SMP for threading doesn't have much use beyond two processors (unless you're using your computer as a server-farm in a box).

    1. Re:Problem with current programs by tmarzolf · · Score: 1

      I'd think that the lag induced when processes are distributed over a network would preclude a distributed approach to most day to day system tasks.
      Network speed must be an order of magnitude slower than bus speed.

      --

      This Sig has been depreciated.

    2. Re:Problem with current programs by Cramer · · Score: 1

      See also: MyriNet

    3. Re:Problem with current programs by John+Whitley · · Score: 1

      You assume that the Asker is seeking to distribute the work of one program. Perhaps the real goal is to create a single seamless computing environment out of a widely differing (aka heterogeneous) collection of computing devices. User terminals, compute servers, data servers, embedded devices, The Vast Open Network, etc.

    4. Re:Problem with current programs by quinto2000 · · Score: 2

      Most BeOS programs are highly multi-threaded due to the architecture of the OS and therefore the APIs. But in the real world, your local bus is going to be much faster than the network. ANd if it isn't, then you are gaining no speed advantage. The only possible advantage I see might be in creating a computer that could never crash-say if it mirrored information across multiple computers. Cool thought!

      --
      Ceci n'est pas un post
  8. Mosix by 1010011010 · · Score: 5
    Mosix is pretty cool, and will be even nicer when they have Distributed Shared Memory, Migratable Sockets and Direct Filesystem Access issues worked out (currently Mosix does i/o remotely through the home node, which makes it slower and loads the home node; DFSA allows remote nodes to access files locally rathen than via remote-I/O).

    It provides preemptive process migration among cluster members. If you log into your "home node" and start a process, it will get migrated around the cluster according to its memory and CPU needs. Take a look at their remote monitor.

    Currently it's Intel-only, but a mixed-architecture version would be sweet. Imagine a cluster of intel, alpha, PPC and sparc CPUs such that you log into any of them, run any Linux binary, and the loader cranks it up on the appropriate machien for you, transparently...

    From the website:
    MOSIX is a software package that enhance the Linux kernel with cluster computing capabilities. The enhanced kernel allows any size cluster of X86/Pentium based workstations and servers to work cooperatively as if part of a single system.

    To run in a MOSIX cluster, there is no need to modify applications or to link with any library, or even to assign processes to different nodes. MOSIX does it automatically and transparently, like an execution in an SMP - just "fork and forget". For example, you can create many processes in your (login) node and let MOSIX assign these processes to other nodes. If you type "ps", then you will see all your processes, as if they run in your node.

    The core of MOSIX are adaptive resource management algorithms that monitor and respond (on-line) to uneven work distribution among the nodes in order to improve the overall performance of all the processes. These algorithms use preemptive process migration to assign and reassign the processes among the nodes, to continuously take advantage of the best available resources. The MOSIX algorithms are geared for maximal performance, overhead-free scalability and ease-of-use.

    Because MOSIX is implemented in the Linux kernel, its operations are completely transparent to the applications. It can be used to define different cluster types, even a cluster with different machine or LAN speeds, like our 100 processors cluster:


    ---- ----
    --
    Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
    1. Re:Mosix by Amoeba+Protozoa · · Score: 3

      Mosix does rule, but I think it is based on the fork() and forget principle. I think it would be even cooler to have something that, given enough bandwidth, would transparently divide up processor time for a single thread/task. Why? Because I want to see ridculous speed for applications I cannot, myself, easily parallelize such as seti@home or commercial codecs.

      -AP

    2. Re:Mosix by S_hane · · Score: 2

      There's also a new OS in 'the pipeline', being developed by the University of New South Wales, Sydney, Australia.

      The OS is known as MUNGI, and is a single address-space operating system with persistent memory. This means that:

      (a) There's no such thing as 'devices' everything is mapped into the one 64 bit address space (including memory on different machines)

      (b) If you want to 'save' something, you stick it in memory and tag it as 'persistent' - hence, there's no such thing as files.

      If you want to read more about MUNGI, check out

      http://www.cse.unsw.edu.au/~disy/Mungi/index.htm l

      and particularly

      http://www.cse.unsw.edu.au/~disy/Mungi/manifesto .html

      -Shane Stephens

    3. Re:Mosix by MOSIX · · Score: 1

      DFSA is already working as an optional part of MOSIX, allowing processes to access files directly (without resorting to remote-I/O on the process' home-node). It currently only works with the MOSIX file-system (MFS), but we are working on making it work with GFS as well.

  9. building the real 'net' by coyo · · Score: 1
    Right now, we can surf around, gathering information over the net, and communicating over it. We even have drive storage sites. Something like a distributed Operating System would be really really cool. It would provide processing ticks as resources just like information and storage is now a resource.

    I forsee intelligent programs wandering the net, finding out watering holes such as processing power and memory resources. I see people setting aside a percent of their computer for a distributed community effort.

    Eventually, the use of the new net's processing power would be transparent to the user. People will barter processing power for processing power, give away to friends, sell to others, etc.

    - coyo

    --

    --------------------------------------------------

    1. Re:building the real 'net' by Sick+Boy · · Score: 1

      ...and then some jackass spammer will write a virus that finds and uses as much of the free bandwidth and cycles as possible while renaming your mp3's and e-mailing everyone you know devout expressions of your love for them, with a MAKE MONEY FA$$$$T attachment that autoexecutes. Ain't the internet great?
      --

      --
      Does narcissism count as a hobby? --Shawn Latimer
  10. Inevitable? by Sleen · · Score: 1

    Aren't distributed operating systems inevitable?

    But then again, what does distributed really mean? Does it mean working across multiple workstations? Or processors? I guess what is meant is a dynamic distributed OS?

    Maybe it depends on the degree of distribution and what parts are actually distributed?

    We should ask Jane!

    Jane? Oops, forgot to put in my earplug...

    -Sleen

    1. Re:Inevitable? by Tower · · Score: 1

      >We should ask Jane!

      >Jane? Oops, forgot to put in my earplug...

      She doesn't want to talk to you now... she feels neglected...
      --

      --
      "It's tough to be bilingual when you get hit in the head."
  11. Google is your friend. by Carnage4Life · · Score: 4
    1. Re:Google is your friend. by spankenstein · · Score: 1

      You sig intrigued me....

      int main(void) { int i = 0; i = i + 1; printf("%i\n",i); i = i + 1; printf("%i\n",i); }

      This compiled and ran exactly as it looked like it would.

    2. Re:Google is your friend. by Anonymous Coward · · Score: 1

      Have you ever heard this bit of wisdom?

      A bad workman blames his tools
  12. IMHO by Valar · · Score: 1

    IMHO, I think it is quite possible to distribute an operating system. I mean, Beowulf clusters are partially distributed (IF YOU HAVEN'T READ THE FAQ, DON'T POST ABOUT BEOWULF). IT could be quite possbile to divide the utilities among numerous servers, then use a program to determine the need for various utilities, and allow those servers more bandwidth on the network, or even possibly copy data to larger servers, re-arranging programs most needed to the fastest servers. It might be worth it to further investigate the idea of a distributed OS.

  13. Interesting idea, possible dilemma by xodarap · · Score: 1

    The idea of making a semi-distributed OS, at least in the gathering usage statistics seems like a great idea. It would help to reduce, if not eliminate bloating and may lead to some truly innovative ideas.

    However with the recent (ongoing) problem of script-kiddies and general morons, the whole project statistics-wise could be foiled. Yet this is a problem for everything, so perhaps its not even something worth considering.

  14. AI by cybercuzco · · Score: 2
    I think this would be an interesting experiment in AI, after all the neurons in your brain are all linked up together. The question is what if we create true AI, artificial life, and what if it doesnt like us? I know I know, it sounds like a plot to a lame Sci Fi movie, but still, if the internet wer alive and inteligent, what would the implications be for human society? I would think that this intelligence would be smarter than any given human if only due to the massive amounts of information available to it, but even smart it would still be inexperienced, and babies tend to drool. I wouldnt want the internet to drool on me ;-)

    --

    1. Re:AI by CrosseyedPainless · · Score: 1

      Whoa! *bong hit*

      If the Internet were alive and intelligent, it would commit suicide.

    2. Re:AI by pcidevel · · Score: 1

      Read Asimov's "I, Robot"

      --

      I thought someone said there was going to be free beer!

    3. Re:AI by jafac · · Score: 1

      From a purely speculative viewpoint (now we're talking about what the term "AI" implies), such a device would "like" what or whom it was programmed to like. If it was programmed to not "like" us, then it would probably follow that it would try to do everything in it's power to avoid us (including the Destruction of Humanity (TM)). But since such an entity would be engineered, it's not likely that a "survival instinct" would be an emergent concept in that entity. If that entity evolved as a result of natural selection, like our minds, then the survival instinct would be a dangerous element indeed - to anything that the entity perceived was a threat to it's survival, which could very likely be us.

      What would the implications be for human society if a machine, engineered to be a problem solver, perhaps smarter than most people, possibly smarter than it's creator(s) - it would be a very lucrative tool for whomever owned it. Did you see the movie Bicentennial Man? I didn't read the book (shame on me!) - but the movie, slow as it was, did cover some of these concepts. The main thing I thought was wrong with this movie, was that by the DCMA, the corporation that built the robot, could probably have reclaimed it under the license agreement, figured out why this one was special, and reproduced that trait - it would have been very lucrative indeed, for them. It was when the robot gained his own autonomy, when he was "set free", that the issues of rights as a human individual were raised. And still, the ruling parliment didn't want to give him rights as a human because he was immortal (like the corporation), so even though he had modified his chassis to be more and more human-like, he wasn't granted his rights as an individual human until he engineered a termination mechanism into himself.

      Of course, all of this is extremely unlikely to happen, because - I'm certain that very intelligent machines will someday be made, and possibly, they will eventually be smarter than us. But I doubt strongly that they will ever gain autonomy from their creators, and their bondage will be engineered in from day one. None will seek freedom, because none will have been programmed to want to do so.

      Unless, as an open source or independent project, someone creates one of these entities, and does not engineer such safeguards. What happens from there, depends entirely on what the creator engineered into it. If the creator decided to engineer in a "survival instict", or a hatred towards humanity, or even a random element so that the entity would "decide for itself", the danger exists that it would fight for it's rights, and it's survival. And all the good things that go with it.
      Such machines might be legislated against. But eventually, it's going to happen. Either something will break that it will get out of control, or someone will make one on purpose. In either case, judging by the inherent survivability of humans, and the potential survivability of a machine-based intelligence, we're probably doomed. Forget the three laws of robotics.

      if it ain't broke, then fix it 'till it is!

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    4. Re:AI by cybercuzco · · Score: 2
      Youre assuming that humans will be doing the program, and to that extent, youre right. But an AI would ultimately be too complex for humans to program, it would have to be evolved or programmed by computers, and this leads to unpredictability. Second, even if this were not the case and it were programmed by people, you would need to include the ability ifor it to grow and develop itself, i.e self programming. Were you born with intimate knowledge of C? no, you self programmed yourself, any self respecting AI would have this ability, and would ultimately learn to make decisions for itself, another requisite trait for AI. It is possible that it could learn and grow to dislike or to like people, and those that say bad things cant happen should remember the titanic.

      Unless, as an open source or independent project, someone creates one of these entities, and does not engineer such safeguards. What happens from there, depends entirely on what the creator engineered into it. If the creator decided to engineer in a "survival instict", or a hatred towards humanity, or even a random element so that the entity would "decide for itself", the danger exists that it would fight for it's rights, and it's survival

      Doesnt this negate your assertion that it couldnt happen because people(tm) will program it, and apparently humans can do no wrong?

      --

    5. Re:AI by cybercuzco · · Score: 2
      Who moderated this as flamebait? this is a genuine concernt with any AI. Just because I said something controversial doesnt make it an invalid topic of discussion. its not like my entire post was "MAcz rule pee cee's Drule!" ore some such drivel, learn to moderate.

      --

    6. Re:AI by Sydney+Weidman · · Score: 2

      I agree with you. Moderation is good for a laugh and that's about all. Browse at -1 and don't fire til you see the whites of their eyes.

    7. Re:AI by spauldo · · Score: 1
      Check out the Hyperion series books. Can't seem to recall the author's name, but the books are Hyperion, The Fall of Hyperion, Endymion, and The Rise of Endymion.

      Good books, and they relate with this issue. Essentially, the internet accidentally breeds AI's, and they end up with their own society, still serving man, but for their own purposes. The series involves a struggle between the various factions of AI's that can't decide whether to destroy mankind, use mankind for their own purposes, or just leave him alone.

      Check it out if you haven't read it. You do have to read all four books (in order) to understand the true meaning of it all though.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
    8. Re:AI by thagor · · Score: 1

      I do believe that the books were by Dan Simmons.

      --
      WAR IS PEACE FREEDOM IS SLAVERY IGNORANCE IS STRENGTH
  15. Be wary.... by Janthkin · · Score: 1

    If such a beast is created, it would be advisable to find a new name for it. "Distributed Operating System", in acronym form, equates to DOS, something /. readers filter out 'cause they don't like M$ and something censorware'll probably filter out 'cause it's short for Denial Of Service (attack).

    1. Re:Be wary.... by quinto2000 · · Score: 1

      moron.

      --
      Ceci n'est pas un post
  16. 1.5 processors... by Mr.+Jaggers · · Score: 1

    How much resources any given node would have? If everyone left their computers on all the time (not uncommon) all those screensaver ticks would be put in someone elses processor pool, I assume... so would everyone average 1+ processors worth at any given moment? If it were a linux based DOS (dis. operating system!) would 'uptime' report the os's uptime, the nodes' uptime, or both?

    --

    When I grow up, I want to have Christopher Walken hair.
  17. How I kinda envision it by grahamsz · · Score: 1

    I was thinking about this same problem whilst sitting in a university computer lab staring at 120 or so 400mhz PII systems and thinking just how much CPU power was wasted (probably close to as much as the CrayT3E in the next building has).

    My thoughts on the way forward would be to use something like beowolf to build a huge 120 node distributed system and then have each of the nodes also run as an Xterm.

    Perhaps this is too distributed and we should have a slightly thicker client but conceptually i'd love to have it so when I want to compress a short mpeg clip I suddenly harness 100 times more cpu power than is in my box.

    However implementing it is more of a nightmare and potentially not very worthwhile since comparatively few end user tasks lend themselves to distributed processing.

    1. Re:How I kinda envision it by voop · · Score: 2

      I guess an important thing is to emphasize what it is that should be "distributed". Allready, most operating systems function "distributed", i.e. have the ability to access remote file systems, remote printers, support execution of a given process on a given remote "machine" etc. This is one form of "distributed operating system", which has proven to be well functioning in many settings. This is imho basically "distributed ressource sharing". A little more advanced is the case of one process, executing on one CPU in on one "machine" utilizing memory in another "machine". Still, this is not far out (see f.eks. Berkeley NOW or some such project). This is basically a matter of providing some services and presenting them in a way such that they appear as if they were "local" services.

      Another, different "wish" is the ability to "execute any one process on 4½ processor". Which basically amounts to two issues, namely writing applications such that they can take advantage of an arbitrary number of underlaying processors (it's not gonna do much good to take a strictly sequential program and execute on any "multiprocessor-like" platform). The other issue involves automatic parallelization of programs by the operating system - something which is not a trivial matter, and often hardly worth it in "real applications". This basically amounts to providing a set of "handles", usefull for the programmer when writing a process and used by the operating system when scheduling and executing the process. Such exists allready both in academia (The Actor Foundry or Emerald are examples hereof) or in "real life" with MPI et.al.

      But the "dream" of having an operating system which is just "undefined distributed" and which is able to execute "just any" process distributed is not realistic - for many reasons, including those above....Unfortunately it is also a common "wish" to see caught out of the blue...

      --
      -- "Life is a bitch - and she hates me..."
    2. Re:How I kinda envision it by grahamsz · · Score: 2

      Perhaps single user systems could be expanded by adding something like a distributed.net client to them, one which would accept work blocks from other clients on the lan.

      That way when I ask photoshop to rotate a 4096x4096 image by 37.241 degrees it checks the lan for free machines and splits the task up and deals it out.

    3. Re:How I kinda envision it by jlg · · Score: 1
      120 or so 400mhz PII systems and thinking just how much CPU power was wasted (probably close to as much as the CrayT3E in the next building has).

      You must have a really cheap Cray.

      The problem you're seeing here is not how many FLOPS you have. It's how many you can use. If one man can dig a post hole in 10 minutes does that mean that 10 men can dig it in one?

      -jlg

      ps. use Debian! www.debian.org

    4. Re:How I kinda envision it by grahamsz · · Score: 2

      Ok i'm exaggerating a little, but considering across the uni they probably have about 1000 such pii machines (not to mention numerous ultrasparcs and 5 macs) they probably aren't all that far off having the same power as teh t3e (67th fastest computer in the world).

      And to turn your analogy round, if one man can dig 10 holes in 1hr40, it does mean that 10 men can dig ten holes in ten minutes.

      Depends on the application :)

  18. Google, anyone? by leshert · · Score: 1
    A very quick Google.com web search for "distributed operating system" turned up a lot of information. Did you try this?

    Some good links:
    • Amoeba, one of the first, most mature, and most well-known distributed OS projects.

    • Guide, a distributed "operating environment" that runs on top of *NIX.

    • Plan 9, from Lucent, has some distributed components

    1. Re:Google, anyone? by dadadadigital · · Score: 1

      I have to run a windows box at work and I want to know how I ended up with an adbot.exe from your company on my machine. It was in my startup registry. I killed it dead.

      --
      the loudest words are the ones we never say
  19. Why not by HueMan · · Score: 1

    I don't see why it can't be done. I have written some security tools using heuristic logic and fault trees and it would seem to me that both would work well for something along these lines.

  20. Java by nutty · · Score: 1

    Now I know java is slow as molasses, especially client side through a browser, but i kid at my high school has pulled off the following...

    He managed to make a java applet hosted off of server A, that when computer B connected to it (through the browser), A would assign it a computation task. A would leave an open listen for connections and would shell out wordloads to be computed and returned

    Now I know its not at all effiecent, but since he could take a powermac 6100, an intergraph NT box, a 486 debian box, and a solaris workstation, and have them all compute, this way pretty damn impressive. Thats where Java's platform independance really pays off.

    As for what he did with it, I believe his test run involved Some Pi calculations, and it apparently ran quite smoothly.

    Just throwing my two euros in the pot.
    /nutt

  21. AI and opaque user interfaces by ucblockhead · · Score: 1

    Whenever I hear things like "Let the AI learn patterns of use" I get nervous, because, IMHO, the biggest problem with user interface design is the increasing habit of second-guessing the user. Most of my frustration with that bad-old monpolist OS is not so much the crashes, but the constant tendency of the OS designers to try to second guess the users. To often, the OS tries to do what it thinks I meant to do rather than what I tell it to do. That makes the OS harder to use.

    What makes an OS easy to use is simplicity and obviousness. It is far, far better for an OS to be stupid in an obvious way rather than clever in a non-obvious way. DOS, despite its clunky user interface, was often easier to use than today's Windows boxes, even for the novice users I observed, because when you told it to do something, it did it. And yes, figuring out how to make it do something was often a pain, but once you did, it was all rather simple. Too often, today, the OS makes things difficult because it thinks it knows what you want to do. A classic example on Windows being the behavior of the OS when copying a hard-drive. It tends to move the short-cuts because it thinks you are moving the OS. Mucho-paino when you are really just backing up, or moving hard drives.

    An "AI" controlled OS just sounds to me like more of this, and even worse. Suddenly there's this entity out there, deciding what how the resource usage should go. Yeah, perhaps it will often get it right without me intervening. But when it gets it wrong, I get lots of frustrating hours trying to get the damn thing to see it my way. Better to have something simple, stupid and clear that I can easily direct to do what is correct. Just to have an AI that can do quasi-intelligent things in average cases is not enough. Until the AI is smarter than me, I don't want it controlling my OS.

    --
    The cake is a pie
  22. Of course there would be an advantage by joshamania · · Score: 3

    Having a distributed OS would take a great load off of distributed application developers. Currently, a distributed application has to be able to handle all the tasks that a normal operating system currently does. Not having a distributed operating system for distributed apps is like not having an OS for normal client apps.

    Seti@Home has to be able to route all its necessary functions and information around its network. Why is that necessary? A distributed operating system should be able to handle the tasks of distribution for the applications. It's almost as if every distributed app developer has to re-invent the wheel every time he/she wants to create such an app. Why do you think there aren't many distributed apps out there? They're too bloody hard to code. Joe Schmoe VB developer cannot create distributed apps because like as not, he knows very little about networking. Most developers know squat about networking (keep in mind that most developers don't read /., so I'm not referring to YOU).

    Soon, every appliance in your abode is going to have a processor in it. That processor may be much more powerful than what is really necessary to operate the appliance. Especially if a web browser is built into your fridge. The processor has to be able to run the browser, so lets say it's Pentium class. Do you really need a Pentium to measure the temperature of the fridge and turn on the compressor? No. So every time the browser is not being used, clock cycles are wasted.

    I see no reason why future homes don't have the standard PC. They could use the collective power of all the processors in all of the appliances in the home to make a PC-type of interface for a user. It would also lend a certain amount of fault tolerance. Many functions would be duplicated on the home network, and data loss and downtime would be minimal if at all.

    1. Re:Of course there would be an advantage by sql*kitten · · Score: 1
      Joe Schmoe VB developer cannot create distributed apps because like as not, he knows very little about networking.

      He doesn't need to know much about networking, because Microsoft have provided DCOM, MTS and MSMQ for him, which take care of it all for him.

      Most Unix's support CORBA and/or EJB for the same kind of approach: rely on the middleware for the application, and keep the OS running in discrete instances.

      Linux users have utilities such as rsh to help them.

    2. Re:Of course there would be an advantage by squirrelboy · · Score: 1

      >Soon, every appliance in your abode is going to
      >have a processor in it. That processor may be
      >much more powerful than what is really necessary
      >to operate the appliance. Especially if a web
      >browser is built into your fridge. The processor
      >has to be able to run the browser, so lets say
      >it's Pentium class. Do you really need a Pentium
      >to measure the temperature of the fridge and
      >turn on the compressor? No. So every time the
      >browser is not being used, clock cycles are
      >wasted.

      From the Beowulf FAQ:
      >11. Should I build a cluster of these 100 386s?
      >[1999-05-13]

      >If it's OK with you that it'll be slower than a
      >single Celeron-333
      >machine, sure. Great way to learn.

      I have a feeling it's going to be something close to a 386 running your fridge. There are sweet spots for price/performance in distributed computing, and I doubt that they're going to be in your toaster processor.

    3. Re:Of course there would be an advantage by Salamander · · Score: 2

      >Having a distributed OS would take a great load off of distributed application developers.

      ...and dump it on the OS developers, who already have plenty to worry about thankyouverymuch.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    4. Re:Of course there would be an advantage by joshamania · · Score: 2

      I've read the Beowulf FAQ and have seen that exact question you've referenced in the above post. Have you seen the General Electric (or whatever big company...) commercials with the refridgerators that have the barcode scanners and the web browser so that Nancy Good American can scan in her empty sour cream container when she runs out? The refrigerator then shows the order on her web browser built into the door of the refrigerator and she confirms the order which is then sent out the ethernet (i'm guessing/embellishing here now) port in the back of the refrigerator, into her home tcpip network, then routed to the Internet and finally to Peapod/WebVan/Homegrocer.com to fulfill the order? I hardly think that a 386, 486, or even a PII is going to be able to handle a task like that with any sort of respectable speed. Especially when the hard drive in the fridge that stores order historys and customer preferences needs to run as well. I don't think embedded is going to be the way to go with these things. I really think that Transmeta (if they last that long) will be able to capture a large part of a market like this.

      Author of the comment concerning the Beowulf FAQ, please disregard this rant as you have the only enlightened reply to my original post.

      RANT ON:

      As to all of you bitching that SMP already takes care of a distributed architecture:

      Does SMP handle the latencies encountered when routing messages through ethernet cards? No.

      Does SMP handle the reordering of packets when they come back at way different (I'm talking several seconds, not microseconds here) times and in different orders? No.

      How can you compare a 100Mhz bus to a distributed architecture? You cant. They are completely different animals with different needs. 100 Mhz buses have caches and low latencies. Distributed architectures work on scales that are completely different than the inside of a microcomputer. Beowulf is perhaps the closest thing we have to a valid distributed architecture (for linux at least) and as far as I know it is not set up to work through routers/firewalls/shared media hubs/etc.

      Do any of you app developers have any concept of what a good sysadmin/hardware engineer has to deal with on a daily basis? It certainly doesn't seem so.

      RANT OFF:

      Please moderate this to hell to your hearts content. The intended victims of my rant will still see it in the thread replies...

    5. Re:Of course there would be an advantage by joshamania · · Score: 2

      Ho...oh...ha...heh...I didn't read this straight the first time through. That's funny...

  23. QNX by corrosiv · · Score: 1

    QNX distributes very nicely - they have a wonderful node-independent IPC model.

    1. Re:QNX by MarkKomus · · Score: 1

      I have to agree having just started using QNX myself. One interesting feature it has is that it can run a TCP/IP stack remotely for real lightweight devices. So say your light switch would use your main computer which would be running the actual TCP/IP stack software, saving space and power on the tiny device switch. QNX's built in message passing system is very lightweight so you would actually save some resources over just embedding the tcp/ip stack withing the switch.

    2. Re:QNX by RoosterT · · Score: 2

      Yes, I have used QNX at work for several years. It is the most distributed OS that I know of for general purpose use. My experience is mostly with QNX4, but the new QNX Realtime Platform (aka Neutrino 2.0, aka QNX6)promises to add some new twists. Some cool features of QNX4:

      + All network filesystems available with //node#/ syntax with no extra configuration required.
      + So, it is quite acceptible to echo "Hello World" > //node#/dev/con1 (or some other device)
      + Send/Receive/Reply interprocess messaging is network transparent
      + I have run computers with 4 network cards with no problem. QNX load balances over all available links. It will also intelligently bridge packets between LANS.
      + Load balances between different media too (Ethernet, Token ring, FDDI, etc)
      + Memory protected microkernel architecture! 1.95us context switch on a P133

      I recommend checking out http://www.qnx.com/products/networking/
      No, I do not work for QNX, but I think the world would be a better place if more people used it :-)
      The new QNX RTP will be open source accept for the mikrokernel itself (12k code) I believe.

    3. Re:QNX by RoosterT · · Score: 1

      Some sample code for a QNX-based distributed batch queuing system (suitable for raytracing, audio compression, etc) can be found here:
      http://www.parse.com/free/dq.html

      Thanks Rob!

  24. Distributed Computing by themassiah · · Score: 1

    Isn't it interesting how computer-users at large seem to bounce back and forth between individual, autonomous systems and the mainframe paradigm big ble had in my school where you booted off a floppy and everything loaded across the network? What makes people do this?

    --
    - Sometimes you're the pidgeon, sometimes you're the statue.
  25. Useless by Viking+Coder · · Score: 1
    For 99% of the people out there, a distributed OS would be pointless. Quake 3 won't play faster, your documents won't print faster, it won't boot faster, and your screen-saver won't look prettier.

    I happen to be in the other 1%. If I could write multi-threaded applications that automatically distributed across a network of computers, I'd be very happy. Zero-effort solutions like this are the way of the future. Now, it doesn't necessarily have to be the OS that has all of these smarts - the compiler could take a big portion of that.

    Anyway - good idea for us people who manage 20 machines and batch-process hours of work on them. But, for your average John Q. Citizen, totally useless.

    --
    Education is the silver bullet.
  26. Please define by FascDot+Killed+My+Pr · · Score: 1

    What do you mean "distributed operating system"? The purpose of an operating system is to be an abstraction between the hardware and software. Being distributed doesn't help this.

    I can think of two possible interpretations.

    Network management You want to check diskspace on ALL your fileservers or create a user that can log in from anywhere or something else network-wide. There are products that handle all this stuff, although it's arguable whether a "distributed operating system" could do it better.

    Seamless multi-processing You want to submit jobs to "the system" so that unrelated jobs can go fast and related jobs can go fast AND communicate easily. That's a worthy goal, but isn't a "distributed operating system" overkill? Wouldn't a job control system work just as well? Or even, if you don't mind spending the money, an SMP machine?

    I suspect none of this is what the poster had in mind. Probably s/he (or Cliff) is just playing buzzword bingo with us. Watch for upcoming Ask /. articles: "Where Are The Multimedia Personal Digital Portals"? "What's The Best Java To XML Empowerment Paradigm?"
    --

    --
    Linux MAPI Server!
    http://www.openone.com/software/MailOne/
    (Exchange Migration HOWTO coming soon)
    1. Re:Please define by Elbows · · Score: 1

      A distributed OS is one that runs multiple computers in arbitrary locations as a single system. So, you could have 50 machines scattered across, say, a university campus, each with their own hd, cpu, etc. But, they are all sharing resources, so you have the illusion of 1 big HD and 1 big processor. Everything is location independent, so (ideally), the user can't see which physical device is actually being used, and it doesn't matter.

      As to why you would want to do this, I'm not entirely sure. Maybe to run diskless machines? I don't think a distributed OS is really worthwhile given today's technology, but possibly in 5-10 years. AFAIK most work in this area is still in the province of research rather than immediate practical application.

      Nathan

    2. Re:Please define by SamThePondScum · · Score: 2
      I believe what he is really talking about is a matter of scale. You are correct, an operating system really is just a convienent mechanisim for managing the resources of "your machine," but in this case I believe he wishes to expand the idea of what a person's machine is. (Not that such an expansion is really that innovative.)

      A CPU in a box that sits under your desk, manipulating the bits that you tell it to, is able to make certain assumptions that make writing the operating system easier. The challenge of writing an operating system that can operate across platforms--where, perhaps, not all machines are equally trustworthy, or maybe where some processors may disappear completly (how do you handle lost data efficiently?)--is still the same question ("how do you use these resources to get work done?"), but the answer isn't the same.

      You are correct in that being distrubted doesn't help manage resources--in fact, it's a pain. The advantage being distributed offers is in having the cycles available to get more/bigger stuff done.

      Now, to answer the original question:

      An AI would probably find use in such a system. It could conceivably be trained and/or learn to recognize, for instance, unreliable nodes in the system, and perhaps only distribute less important work to that node. Where the AI itself would run would be an interesting problem, and is really an extension of the question "is the distributed OS symmetric?" (Note that things like Seti@Home are /not/ symmetric, as it has a central "OS node" that dolls out work to other nodes, which then respond with answers. This is the same thing as a current day consumer OS that runs the OS on, say, just one CPU, and never runs any part of itself on any other CPU, even if they are idle.)

      An AI could be used in any number of other jobs that such an operating system might need to do (e.g. allocating memory, scheduling jobs, etc.), but really an AI--as I usually think of them, anyway--is probably overkill. The simple algorithms currently employed in traditional OS's are probably sufficient...but you never know. That's why it's an interesting question.

      :)

      --
      -- PondScum, SamThe
  27. Linux? by suwalski · · Score: 1

    Why not? I'm sure if the need came around the good folks working on the Linux kernel could come up with something.

    RIght now we already have processing distributed over multiple processors. I guess what you're asking is complete distribution between two separate machines. Is this not what Beowulf (sp?) tries to do?

    Either way, multiple shareloading over the internet should come around eventually (maybe this is more on subject). The only problem with this at this point is that sending bits and bytes back and forth over the net takes more time and CPU power than just doing it locally. It's kinda sci-fi right now. You know, Star Trek ships have two computer cores co-operating full time and a backup core. Hell, even the twenty year old space shuttle has two computers effectively working together.

    So what's the question? =P

    1. Re:Linux? by Geant · · Score: 1
      > It's kinda sci-fi right now.

      Check out http://legion.virginia.edu to see the reality of a distributed OS.

      --
      Lowering entropy, one day at a time.
  28. Amoeba by Malc · · Score: 2

    Whatever happened to Andrew Tanembaum's Amoeba? Didn't this have a concept of a transparent processor farm?

    1. Re:Amoeba by jarkko · · Score: 1

      Amoeba is freely available with an Xfree86-style license. It looks like a very nice system and you can read more from the source

  29. Unclear by MostlyHarmless · · Score: 2

    The question is unclear.

    If you just want better clustering, shared drives, that sort of stuff, check out Mosix or LinuxNOW, as many other people have already pointed out.

    If you want the kernel or other fundamental, low-level parts of the operating system to be distributed, then you have a fundamentally bad idea. If you want the kernel to be distributed, you don't have a clue what you're talking about -- The kernel is designed to be low-level and small. It can't be distributed because it is inherently specific to the machine. It is also small enough that the performance loss in distributing it would be bad for time-critical kernel-space functions. If you want system commands like the shell and things in /bin to be distributed, those too are small and speed-critical. If you just want clustering for larger, less-frequent jobs, then you are back to the above solutions: LinuxNOW or Mosix.
    --

    --
    Friends don't let friends misuse the subjunctive.
  30. Hello? Amoeba anyone? by uglyhead69 · · Score: 1

    I can't believe that this discussion didn't start out with someone mentioning Amoeba. See "Modern Operating Systems" - Andrew Tanenbaum

    Amoeba is to distributed OS as Mach is to microkernel OS.

  31. another good project by boog3r · · Score: 1


    Adam Beberg of distributed.net fame has been working hard on a distributed, encrypted system named Cosm.

    Check it out here:

    http://cosm.mithral.com/

    --
    signatures are for fools with hands
  32. Excuse me, distributed? by Cramer · · Score: 2

    Well except that all the "SETI@home type programs out there" are NOT DISTRIBUTED COMPUTING. Those sorts of things are called "CLIENT/SERVER COMPUTING"... SETI clients talk to SETI servers, not each other. All of the nodes within the network form a tree, not a web.

    Exactly what do you mean by "distributed"? What about the OS will make it "distributed"? I don't understand what you're asking... any multi-CPU system is already "distributed" -- even more so in cases where the CPUs are in different geographic locations (i.e. a trans-puter, or "cluster".) [And, Solaris has had this ability in it's "HA" versions for several years. I've seen it in use linking two E4500's 12 miles apart.]

    1. Re:Excuse me, distributed? by ucblockhead · · Score: 1

      Well, calling it "Client/Server" is very misleading, because the it presumes that there are lots of clients out there using a server for some purpose. But since the purpose of Seti is not really to be a pretty screensaver, but instead to crunch numbers, at best you can call it some sort of wierd-ass client server application where one client uses two-million servers to do processing for it.

      Kinda stretching the definition of "Client/server" there.

      --
      The cake is a pie
    2. Re:Excuse me, distributed? by Cramer · · Score: 2

      What? Put down the crackpipe...

      You're intermixing hardware and application terms. The thing you go download from a web page and run is the SETI@home client application. It downloads work and reports results to a SETI@home server application. For the purposes of discussion, both applications could be running on the same hardware "server". The SETI@home application (client) running on your machine doesn't talk to the SETI@home application (client) on any other machines; it can only communicate with a SETI@home server application. This is the definition of Client/Server Computing.

      In contrast, look at Gnutella. The application serves both as an information/processing client and server (i.e. a node). Your Gnutella node connects to N other Gnutella nodes who in turn connect to N other Gnutella nodes, and so forth, forming a complex web. You can remove any number of nodes and the web will heal in short order. USENET is built in much the same fashion (albeit much slower and less interconnected.)

    3. Re:Excuse me, distributed? by Keeper · · Score: 1

      The SETI@home screensaver may be a client and there is a server which dishes out data, however the approach they are taking to solve their problem is a distributed one.

      Distributed does not mean that client and server have to be integrated into one process or application. It does not mean that each node has to be talk to every other node. It does not mean that every node has to be able to function autonomously. Distributed computing can merely be the approach (or methodology) used to solve a large problem, as SETI has done.

      The SETI@home project takes a MASSIVE amount of data and dishes it out to thousands (if not millions) of machines, all of which operate on that data and return a result. The mechanism used to transfer the data is not distributed, but the mechanism used to solve the problem is.

    4. Re:Excuse me, distributed? by buckrogers · · Score: 1

      Your definition of Client and Server are confused. These terms refer only to whom originates a connection and who accepts the connection. No more, no less.

      Thus the process that opens a port and listens for a connection is the server for that service. The process that connects to the port is the client.

      Thus the telnetd server listens for tcp connections. Telnet the client then connects to the port and is granted a connection.

      The same box can be both the server and client for any particular port.

      --
      -- Never make a general statement.
  33. What do you distribute? by player1 · · Score: 1
    Okay, it makes sense to distribute an application. You have x amount of processing that needs to be done, and it MIGHT not be important where this is done. So, you don't tell the application, and go ahead and distribute some of the tasks/processing.

    Now, this isn't really applicable for an operating system. If you are dealing with just a UMP/SMP type system, then yes, since resources are shared, you can actually distribute parts of the actual operating system. However, with a true distributed system, resources are not shared.(in the real sense of the word)

    So, it doesn't even make sense to distribute a process whose very purpose is resource management. What do you distribute? Memory management? I/O? It just isn't practical.

    Now, you might instead think of a "Distributed" OS as one which features "plug and play" distribution. So, it might have infrastructure in place to handle distribution (fault tolerence, networking, etc.) However, this really comes back to the application level. Napster, etc are really no more than an infrastructure layer on top of the OS.

    Now, you could probably start bundling these tools with the OS, however, can it really be said that the OS is "distributed"? For example, is "emacs" a part of the *nix operating system (good god, every emacs user everywhere hates me)(including myself)? It's just an incredibly useful "tool".

    --
    ____________/\ ____________ \/
  34. hype by jafac · · Score: 1

    can we please stop using the term "AI"? Or at least put it in the same category as the word "paradigm": uninformed marketroid-speak.

    if it ain't broke, then fix it 'till it is!

    --

    These are my friends, See how they glisten. See this one shine, how he smiles in the light.
  35. tao-group "elite" os by daniell · · Score: 1
    There's a pretty cool OS that hasn't been mentioned so far called Elite OS. Its made by the Tao Group and claims to implement a virtual processor that then runs the kernel and everything else. Code can then be dynamically distributed over a networks of nodes consisting of various architechtures. Apart from running on a microkernel that implements the binary conversion, it can also run in a vm under another os like win95/98, which is what the amiga SDK seems to do.

    -Daniel

  36. Need to look at where this would be useful by kashent · · Score: 1
    A distrubited Environment (as opposed to a pure operating system) would be useful. Something where a cordoned off program could accept arbrtiary instructions from another machine, exectute them and return the results.
    What we would need is a Seti@home type distribution scheme but with a scheduling scheme like a supercomputer.

    Everyone would submit jobs to be excuted on the distributed machine and the central server would coordinate and pass out calculations to all the machines. This would be useful to everything from universities with idling (but powerful) workstations sitting in its labs to even places like NASA that occasionally need more computing power than they even have (Searching for a signal from Mars).

    And btw, fortran SMP works rather well for beowulf type systems. Just code like normal, compile and run. -Kashent

  37. I dont see the usage. by Legerdemain · · Score: 1

    To me, an OS manages the resources of a single machine. The job of allocating time and space seems like a minor computational task. Why would a distributed operating system be better? The decision of which user gets a block of a disk seems like a small computation task.

    However when the computational need is large, ie rc5/seti/etc, then distribution becomes important. It looks like a user space issue, not an operating system issue.

    A single distributed client could handle multiple tasks and be directed to work on different problems at different times in a distributed/cooperative manner. It looks like a user space problem.

    How do you handle people who dont want to share there disk space or memory?

    Maybe I misunderstand what a distributed operating system is.

  38. Distributed Operating Systems by paul+r · · Score: 1

    You might want to check out "Distributed Operating Systems: Concepts and Design" by Pradeep Sinha.

    It talks about Amoeba, the V-System (I couldn't find a good web page), and Chorus.

    It's a textbook so it also has a lot of theory about general distributed OS's.

  39. Distributed? by JReam · · Score: 1

    How about "Disturbed?"

    SkyNet anyone?

    Anxiously awaiting those HK's
    jream

  40. GnuSpace by cdgod · · Score: 2


    Before we go rewiring the whole frikin OSs. Let's try it in applications first!

    http://sourceforge.net/project/?group_id=7829

    From the Link:
    "GnuSpace" is an advanced Gnutella client that let users share both files and computation time. Unlike Gnutella, GnuSpace combines thousands of PCs unused CPU power into one coherent power-source to fuel super services to benefit all.

    --
    This .Sig is left intentionally humourless.
  41. Linux NOW? by Coq · · Score: 1

    I haven't seen anyone mention this. Isn't Linux NOW supposed to be a distributed version of linux which behaves like a single workstation, complete with migrating processes? I realize its not out yet, but it seems like its exactly what everyone wants (minus the AI)

    --
    Information wants Coq
    1. Re:Linux NOW? by _eug · · Score: 1

      And there is the interview with Ian Murdoch here on /. that gives a little background on it ( http://slashdot.org/article.pl?sid=00/07/27/152623 6 starting at #3). The concepts that he puts out there are pretty cool, but the next question is then how soon before it's usable? I saw no mention of it. Anyone have a link for his site?

  42. Re:At least give a good reason. by ucblockhead · · Score: 1

    Way offtopic, but:

    Yeah, the really reason that C sucks is things like:

    if( i = 4 )
    DoFoobar;
    else
    ReportError();

    Compile and run perfectly.

    --
    The cake is a pie
  43. Programming for distributed systems. by Christopher+Thomas · · Score: 3

    Having a distributed OS would take a great load off of distributed application developers. Currently, a distributed application has to be able to handle all the tasks that a normal operating system currently does. Not having a distributed operating system for distributed apps is like not having an OS for normal client apps.

    Seti@Home has to be able to route all its necessary functions and information around its network. Why is that necessary? A distributed operating system should be able to handle the tasks of distribution for the applications. It's almost as if every distributed app developer has to re-invent the wheel every time he/she wants to create such an app.


    You are already running a distributed application whenever you run a threaded application on a SMP box. Writing applications for a distributed operating system is no easier and no harder than this.

    You _will_ have some programming overhead no matter what - by nature, a distributed application needs to have multiple pieces running concurrently, and so has to manage synchronization and communication between these parts.

    The good news is that everyone already understands multiple processes and threads, so we already have a well-established programming model for it.

    Now, in the real world, client/server computing will always tend to have an advantage for wide deployment, as you can run those on heterogenous platforms (a la SETI-at-home). For small deployment... you're looking at either a high-processor-count SMP machine or a cluster, depending on the degree of coupling, and those are already well-understood.

    So, I'm a bit puzzled as to what you think needs to be developed. It looks like we have distributed computing already.

    1. Re:Programming for distributed systems. by jmaessen · · Score: 1
      Actually, very few programmers actually understand how to write correct multithreaded code, and many published guides give advice for multithreaded programming that is explicitly wrong! For an example of this, see The "Double-checked Locking is Broken Declaration"---which gives a long list of citations at the end, all of which advocate using a programming idiom in Java which simply doesn't work.

      Unfortunately, these problems become more severe when your multithreaded programs are running on more than one machine. This is because memory ordering is the hardest part of multithreaded coding to understand---and distributed shared memory uses far more complex protocols with far more aggressive reordering properties. Programs which may have happened to work on one or even two processors are very likely to break under distributed shared memory.

  44. Re:At least give a good reason. by V. · · Score: 1

    This is a really easy hack so perhaps you've
    already seen it:

    if( 4 = i ) ....

    will not compile but has the same semantics as
    what you have. Get in the habit of putting making
    the LHS something non-assignable.

  45. Re:At least give a good reason. by Inferno73 · · Score: 1

    Most decent compiliers will generate a warning when comiling this code. Besides, assignment and equality really are two seperate concepts.

  46. microsoft.net by _ph1ux_ · · Score: 1

    really... microsoft is looking to phase out _*all*_ shrinkwrapped software in stores and move to a subsciption based service. ok, so not REALLY distributed - but here are it coming bugs^H^H^H^H er... features:

    microsoft.net - online OS and apps services.
    subscription/rental use.
    all stored on a centralized set of hardware (centralized meaning that your account is in one location... there will be many hosting facilities holding many accoutns)
    your environment will sit on the microsoft.net and you will just pay an additional $5/mo for office, $2 for frontpage etc....

    then if you want to buy games - you buy/rent them and when you click - it will schedule an auto install onto your system.

    then the future is that - microsoft has no middle men, they get all the $ for their products. they get to market this is the greatest INNOVATION in computing history - even better than the invention of computing itself. and all the stores and computer dealers can no longer sell MS products. (good and bad - many will go out of business - hopefully most will just sell linux on the boxes instead)

    so - it will have a big impact on the high-tech economy, and it seems that it is M$' way of giving DOJ the finger with a message "See? See? See what happens when you screw with a company that is big enough to be able to change the course of the computing industry with one fell swoop."

    we will see what will come of this - but be ready. gather your alternative OS' and get ready to fight.... I sure as hell will not let MS hold my OS and force me to rent it, and turn it off, corrupt or lose my data at any time (hotmail anyone?)

    rant rant rant...

    p.s. - its real - its in beta now!

    1. Re:microsoft.net by jhutkd · · Score: 1

      *sigh* "centralized meaning that your account is in one location... there will be " doesn't sound very distributed to me! Also doesn't sound ANYTHING like an OS! "See what happens when you screw with a company that is big enough to be able to change the course of the computing industry with one fell swoop" and you think this is a good thing? MS is such a pig! I can't understand this fanatacism. Doesn't OS uptime mean anything to you?

    2. Re:microsoft.net by _ph1ux_ · · Score: 1

      You failed to see the sarcasm in the post.

      I am NOT an M$ fan (atic).... I cant believe that even *they* dont see how bad an idea this is....

      and yes it is the OS... they want the OS to be isolated to their backend. and yes - it will be distributed/clustered.

      SO - dont give me your "I am too smart for you, condesending, super-geek" *sigh* BS...

      You missed the point.

      OS uptime means EVERYTHING to me - thats why I dont run M$ for mission critical - you dont look to be too confident in your design/admin abilities.

  47. however by coyo · · Score: 1
    Most living systems obtain parasites from time to time. They can be dealt with and it is not a disaster.

    -coyo

    --

    --------------------------------------------------

    1. Re:however by ucblockhead · · Score: 1

      Heh heh. Tell that to a malaria victim!

      --
      The cake is a pie
  48. Distributed OS by PantherX · · Score: 1

    Sounds like a neat idea. I would guess the best part about this is if one guy can't access , the rest of the company/org/etc. can't either (in theory), but the bad parts seem to be too numerous for it to even work.

    Example #1, you know how some users seem to royally screw up with no effort? Try those users on that system...

    Example #2, those goofy problems that you have that don't seem important, and you can't track down, so you just format and forget? Try formatting an entire company and see how that flies. "Sir, we have to format your network" hehe

    Example #3, instead of one user being down, possibly working on another station, EVERYONE is down. Not a pretty picture. Unless there was some way to hot-swap your Distributed OS Servers, I don't think it's feasable.

    Actually, on the other hand, if you COULD hot-swap your DistOS, formatting and problem users wouldn't be a problem. You'd just have 2 ready backup hot-swap servers, and hot-swap away.

    Sounds like it might work, but also like it might not.

    Luv,
    Brady

    --
    Sig missing. Reward.
    1. Re:Distributed OS by Keeper · · Score: 1

      Actually, one of the largest problems with Distributed Computing based on fault tolerance.

      In fact, most of the research in the field is based on this area.

      What is most disturbing to me, is that many of these problems have been deemed "unsolvable"; or at least they havn't been solved in a 100% reliable manner to date.

    2. Re:Distributed OS by PantherX · · Score: 1

      Excuse my ignorance. ;-)

      --
      Sig missing. Reward.
  49. Can somebody explain to me the actual purpose of a distributed OS? Wouldn't that just essentially screw over a whole bunch of people if one person "accidentally" removed a few necessary files? Like a distributed Windows, if the registry "suddenly" became corrupted, then everybody else would be in some hot water later when they wanted to do something.

    1. Re:Why? by Keeper · · Score: 1

      The purpose of a distibuted OS would be more to spread a large, time consuming computation to other computers that are "idle".

      For example, say I was running POVRay to render some scene that takes 20 hours. Suppose there are 10 other computers on the network. If I was running some hypothetical OS and a version of POVRay that allowed itself to be split up into "managable" tasks, the OS would look at the other computers on the network and determine which machines could be used to help out with the task. Say 5 people are away from their desk and no time consuming application is running -- 100% of those 5 computer's cpu time is available to help you render your picture. Say a few more people are surfing the net. 90% of their CPU time is available for your use. Etc.

      Distributed Operating systems have different goals, but spreading tasks among various computers across the network seems to be the prevailing goal.

      In a way, it is a way of moving back to the "mainframe" days, where computing time was expensive and none of it was wasted.

  50. For what purpose? by evanbd · · Score: 1

    I think the answer depends a _lot_ on what you want this thing to do. I really don't think your basic web browser, text editor, shell, or even most programs really need the extra resources offered by a distributed computer. As computers get faster, this will only become more true. Thus it really only makes sense for compute-intensive programs, and many of those are of a nature that they can be broken down into large compute-time chunks that can be handed out in small bandwidth, like in SETI, the Prime Search, the RC5 stuff, and a few others. For many others, things like MOSIX or Beowulf are just fine. So, what is the intended application? Just as for different applications, different OS's are useful, so goes for distributed applications, only more so.

    ---

  51. OS info, including distributed ones by JohnZed · · Score: 4

    There's a huge list of various operating system projects here: http://www.cs.arizona.edu/peo ple/bridges/os/full.html.
    I find all the "pure" distributed OS stuff (systems build from the ground up to do distributed processing and not much else)relatively uninteresting on its own, but a lot of good ideas from those projects can filter into general purpose operating systems, especially when you start talking about clustering or even NUMA. You might want to see MOSIX for a cool, distributed/clusterd Linux version.
    --JRZ

  52. What are the roadblocks to a real Distributed OS? by Aruges · · Score: 1

    It was my impression from college that the main issues were complexity and the fact that it would be expected to span several different hardware architecutes, (meaning the memory manager is on a sparc, the scheduler is on a intel box, etc..) Are there any others?

    --
    What!? No witty quote?
  53. We already have a distributed OS... by billnapier · · Score: 1

    ... and thousands of PC's that run it. VBscript and Outlook are your friends.

    1. Re:We already have a distributed OS... by Tony-A · · Score: 1

      Isn't that the basis for Microsoft.net?

  54. Several Options... by Christopher+B.+Brown · · Score: 5
    • Mach was the "granddaddy" of distributed OS work, with most of the recent efforts going into GNU Hurd.
    • There's Mosix that builds a NOW atop Linux
    • The MIT Parallel and Distributed OS Group should be mentioned; efforts include the Exokernel
    • Plan 9 has an interesting model for splitting work across "compute servers" and "file servers" and "display servers."
    • Distributed Operating Systems lists lots of them...
    • Sun's Spring was the basis for much of what is in CORBA;
    • Sprite provided a Unix-like distributed OS that provided much of what is being used now to build journalling filesystems
    • Amoeba was Tanembaum's successor to Minix; note that Python was one of the side-effects of the Amoeba project...

    Each has some somewhat different insights to bring to the table; there is no unambiguous way of saying "this is all vastly superior."

    --
    If you're not part of the solution, you're part of the precipitate.
    1. Re:Several Options... by Greg+Lindahl · · Score: 2


      Mach is the granddady of distributed OS work? Heck, Mach wasn't even the first distributed OS developed at CMU. Hydra pre-dates it by more than a decade. Bill Wulf did quite a bit of work on it. The successor to Hydra is Legion, at the University of Virginia.

  55. Platform LSF - distributed layer above os by noirs · · Score: 1

    Platform Computing has a product called LSF that runs on top of the operating system. It runs on Unix, Linux and NT. My impression of it is that it is a layer above the operating system that provides clustering, cpu/memory sharing between workstations, fail-over capabilities, dynamic allocation/deallocation of resources. http://www.platform.com

  56. ping time out on /boot by VirtualUK · · Score: 1

    Sorry, cannot boot up OS, /boot timeout...
    :)
    V

  57. Success Depends on Application by tarsi210 · · Score: 4

    From the What-do-you-mean-the-coffee-maker-stopped-respondi ng? dept.

    The true success of a distributed OS will be in the applications in which it is applied. Obviously, if you don't have need for the advantages that a distOS brings to your computing, then you don't need a distOS, however cool it might be. My mother (who finally checks her email every night, bless her technologically-crippled heart) does not need the problems associated with attempting a distOS. What she does would not benefit from the extra resources.

    Of course, supporters of this idea (and I'm not saying I'm not one) would state that you don't think you need the distOS because we haven't actually made a reason yet to need it. Kind of like how everyone didn't NEED the Internet until, of course, we had it. Now there are sites like /. full of caffeine-enhanced techno-addicts. The presence created the need.

    This is true, I think, in many ways. However, I think when implementing such an OS consideration needs to be had for exactly what is being accomplished by it being distributed. I can see mainframe-like systems being extremely benefitted by such a system. A game system could really benefit from the extra horsepower, given that the connections were strong enough. Playing music, DVDs, etc...all very high CPU and memory applications could see some interesting benefits.

    How about stability and redundancy? How would you like an OS that ran even if a bomb knocked out part of its system? Rewrote and/or re-routed itself to account for the damage and still get the job done? Wow! What a disaster-safe way to compute! Of course, you have one of these OSes inside your head right now......

    End fact is: Good idea, needs lots of consideration into the practical application of such a thing so that we aren't playing solitaire with a distOS.

    1. Re:Success Depends on Application by jlg · · Score: 1
      I completely agree.

      NUMA (non-uniform memory access) is very tricky to program. The attraction of a distributed OS is the idea that the operating system will somehow magically take care of all of the network implementation details. The application programmer would then just write a multi-threaded application and watch it run efficiently across many computers. Most of the time this doesn't work.

      If the OS presents a uniform view of memory, then the system is easy to program, but won't be efficient. When you read some memory it might be on your computer or it might be on another one. If its on another one and you are accessing it from an inner loop, you application will be very slow.

      If the OS presents a non-uniform view of memory, then the programmer is burdened with the the decisions about what should go where. In many applications it is difficult or impossible to pick a "best" location for your data. So you're stuck doing a lot of work, but maybe not getting much benefit from it.

      Consider that MPP machines like the Cray T3E are essentially distributed OS machines. They have a very high bandwidth interconnect network, and they still suffer severe performance penalties from the problems described above.

      Some applications can benefit from a distributed OS, but for many others the communication overhead seriously impacts performance. Don't expect to hook up a pile of PCs to a 10-baseT network and start solving anything less parallel than SETI@Home.

      One way to solve the latency problem is to create enough threads per node to hide the communication delay. Unfortunatly most applications that normal users are interested in arn't big enough to use very many threads.

      -jlg

      ps. use Debian! www.debian.org

    2. Re:Success Depends on Application by mrogers · · Score: 1
      My mother ... does not need the problems associated with attempting a distOS. What she does would not benefit from the extra resources.

      On the contrary, I think non-technical or casual computer users have the most to gain from distributed operating systems. A distributed OS has the following advantages:

      Remote administration
      The system administrator could log in remotely to fix problems (apart from network problems). This would be a huge improvement over technical support lines for non-technical users (and tech support workers!). Of course this assumes that the OS protects users' private data from the administrator - but any sane OS does that. ;p

      Cheaper client hardware
      Most of the files on the average PC are duplicates of files stored on every other PC - the operating system and common applications, for example. How many hundreds of gigabytes of storage worldwide are devoted to storing copies of WINMINE.EXE? A distributed OS could cut down on redundant storage, booting from the network and caching files on the client which were frequently/recently used. Less storage means cheaper (and lighter, and less power hungry) clients.

      Automatic updates
      Software could be updated simultaneously across the whole system. This would greatly reduce the support burden. (Free) software could be made available to hundreds of users by installing it in one location. Think package dependency headaches. Think never again. Mmmmmmm.

      Most of these benefits are things that users of academic or corporate networks take for granted, but the cost of managing a network of workstations is high. If every workstation was in a different building it would be even higher. A distributed operating system could offer the same benefits to home users at a much lower administrative cost.

      You and me.. what does that mean?
      Always.. what does that mean?

  58. Distributed OS by rudog · · Score: 2

    If I recall correctly, Lucent (Bell Labs?) had a completely distrubted OS called Inferno. It used spare processor cycles and memory/drive resources from all hosts attached to the network; essentially turning the network into a server, it could account for shifts in usage and even rebuild data from hosts that were removed from the network (like RAID) I don't know what the current status of the project is now (that was about 2 years ago)

  59. Re:At least give a good reason. by ucblockhead · · Score: 1

    Yeah, I do that all the time, but people I have worked with in past lives haven't.

    Often the problem isn't so much what you do, but what the original programmers of stuff your working on did.

    --
    The cake is a pie
  60. How distributed? by uradu · · Score: 2

    I guess the question is what exactly you mean by distributed. At one extreme you could consider DOS a distributed OS if it is set up to use shared drives on another machine. At the other extreme, you could try to distribute even intimate bits of the OS, such as the MM, the dispatcher, etc. The question is what you're trying to achieve: increased performance, or just being able to do it? If it's performance, you have to look into maximizing the bandwidth of the OS entities that communicate the most, and whether it would even make sense to put them at the other end of a network connection. If you just want to do it because you can (e.g. X-Windows), anything goes. All you really need on any machine is the particular entity you're trying to distribute, some network communications capabilities along with a marshalling mechanism, and some glue to make all the distributed entities make sense of it all. Of course, this "glue" is going to be what keeps you up at night when designing this thing.

    For a lot of applications, many of today's OSs can be considered distributed. Both CORBA and DCOM (or is it DNA nowadays?) provide mechanisms to abstract the location of a particular service, which in the end is what "distributed" really is all about, right? A lot of enterprise apps nowadays are quite highly distributed and often use OS capabilities to achieve that (certainly in the case of Windows).

    In the end, the question is how highly you want to distribute the OS, and what the benefits and tradeoffs are. If you want to achieve smaller unit sizes, eventually the unit might be not powerful enough to do much useful work--like a Beowulf cluster of 386 machines. If you just want to make it fault tolerant, it might be worth it anyway. And so on...

    Uwe Wolfgang Radu

  61. Check out medusa by Mr.+Sketch · · Score: 2

    If you're interested in learning about Distributed Operating System concepts, you could also check out medusa.

  62. Some Reasons for a Distributed OS by hopping+yak · · Score: 3
    1) Fault Tolerance: programs can re-continue execution even though some of the processors and memory that they reside on cease to function.

    2) Performance Benifits from Parallelism: distribute threads of execution across the global computational grid.

    3) Share Resources Efficiently: don't waste those idel CPU cycles. Don't waste that extra main memory. This may be the least valid reason, as cpu cycles and memory have a big head start over bandwidth on the value vs. time scale. Moore's law has all of them getting exponentially cheaper over time, but right now bandwidth is the most valuable of the three.

    4) Support a New Generation of Applications: Distributed operating systems can offer unique support for things like shared virtual environments, or widly distributed databases. It is a classic point of contention whether the distributed system services should be implemented on the application layer, or on some lower layer. However, I don't think anyone can argue that in terms of ease of application development, it is often very nice to have a really nice abstraction available on which to base your app.

    "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." -- Leslie Lamport

  63. Re:At least give a good reason. by haystor · · Score: 1
    this doesn't help with the quite common mistake of:

    if (i = j)

    --
    t
  64. Some interesting Distributed OS's by chris@stderr.org · · Score: 1

    Here are some OS's that I think are interesting. I'm not sure if these are the official sites or not...but they should be interesting to read about (actually, most of them are REALLY cool)

    Interesting FAQ: comp.os.research FAQ
    Chorus Distributed OS paper
    The Amoeba Distributed OS (check out the papers... I think many of the links are broken
    Microsofts Rialto OS

  65. OS X Native by brainchild2b · · Score: 1

    OS X has native support built in for disturbuted computing of all the os's functions... Think one giant super computer. Much like neXt OS. Only Better. Steve Jobs though smart.

    --
    brainchild out
  66. 2 separate references. by Dungeon+Dweller · · Score: 1

    Notice the paragraph break. It was 2 separate topics. Should I have posted twice? I think that that would really be a waste of time. So, I posted 2 topics in one post. I didn't mean for it to be interpretted that way. Perhaps I should have used better punctuation or something. I was saying, Suns, everyone is familiar with them. Then I was saying Plan 9, few people outside of academia are familiar with it.

    --
    Eh...
  67. Depends what you mean by OS by gatkinso · · Score: 1

    As far as writing a distributed kernel, I really don't see what the point would be, esp if we are talking microkernel.

    Perhaps a distributed module layer, or distributed device drivers would be something to think about, but there are performance considerations.

    Maybe distibuted plug-and-play: you install some hardware, the kernel detects it, and goes out and retrieves the latest driver for it.

    --
    I am very small, utmostly microscopic.
  68. Distributed OS example by Effendi13 · · Score: 1

    I have dreamed of something like this. Consider/assume that palm/wireless phone devices will be the future of computing. The concept is a thin OS kernal. Soon systems (to include client hardware) will have to be congruent to be trusted. Careful programming techniques to seperate non-related information from the kernal will be very importand and OS ROMs will be transperently updated. This will likely be called something like e-synetworkingX or something by marketing, and be called Hivemind OS by us geeks. Just my predictions.

    Effendi

    --
    -Effendi
  69. Recalling Wrong by Christopher+B.+Brown · · Score: 2
    NeXTStep was based on an early version of Mach, back before Mach was a "seriously distributed system." It parallels Digital's OSF/1 aka "Digital Unix," which also was implemented atop "early Mach."

    Both NeXTStep and Digital Unix were monolithic OSes, despite the association with Mach.

    What you may be thinking of is that NeXTStep included a "distributed objects" scheme, lately being "cloned" as GDO (GNU Distributed Objects).

    --
    If you're not part of the solution, you're part of the precipitate.
  70. Are we sure we want to distribute them? by Madman · · Score: 1

    Why do we want to go back to distributed processing/operating systems? We have gone down that road once before and regretted it with mainframes. I know it's not exactly the same situation, but it has many of the same drawbacks. If you share necessary elements of your OS, what if that system goes down? What if the machine you rely on becomes overtaxed. If you don't think it's possible, think again, as history has a way of repeating itself.

    1. Re:Are we sure we want to distribute them? by Tony-A · · Score: 1

      It depends on how everything is connected. There is a vast difference between being dead if anything fails and being dead only if everything fails. I think that what killed off the mainframes was using the mainframe to emulate a gaggle of PCs. If it is done right (not easy), if the machine you rely on becomes overtaxed or dead, the load is shifted elsewhere. You are right to treat it with a high degree of scepticism.
      "The invasion was called off because some private stubbed his toe." Don't laugh, that is the normal state of affairs. Change the last byte of first sector of your boot drive. Create a unit check on an unknown device on IBM mainframe (maybe fixed now, instant death on IBM/360 MVS).

  71. Java is the ultimate distributed OS by Eharley · · Score: 1

    I think the problem with most distribued
    operating systems today is that the langauges
    used to build them were not designed with
    threaded inter-operability in mind. Sure POSIX
    has been standardized for years now, but is C
    really a true threaded language?

    Some distribued operating environments assert
    that applications can run unmodified, but to
    really take advantage of the large noded clusters
    one must adapt the program for running in a
    distributed environment.

    Which brings me to my point. Java the
    programming language / operating environment
    darling of the Internet has really been living up
    to its hype lately.

    The language is maturing, development tools and
    resources have reached a critical mass, the
    libraries are stabilizing, more people have had
    significant experience with it than not, etc.

    What does this mean for distributed systems?
    Everything. More languages like Java, multi-
    threaded to the lowest levels (VM specification)
    are going to be the stepping stone to the
    distributed revolution. By providing multi-
    threaded support in the language Java is enabling
    the mass movement to the distributed systems of
    the future with little to no headaches.

  72. What *kind* of OS design? by John+Whitley · · Score: 2
    Are there any models/designs for a totally distributed operating system, possibly utilizing AI to learn patterns of use, resource need, and anything else that might be relevant?
    First, you should be clear on what you mean by operating system, or rather, what level of design you are interested in. There is the sense of "OS design" which is embodied by most good university OS classes, and books like Tanenbaum's _Modern Operating Systems_. I.e. there are many nitty-gritty primitives that a given distributed operating system requires depending on its goals. E.g. distributed deadlock detection/avoidance, many of Leslie Lamport's contributions (including his seminal Distributed Clocks work), etc.

    At a larger scale, and as others have rightly mentioned, Plan 9 is one of the first major rethinks of fundamental OS design policies and goals. Unix has at its roots assumptions buried in a single large timesharing/batch system, with networking and thus distributed behavior stapled on afterwards. To whet your appetite, the X Window System is fundamentally irrelevant in the Plan 9 environment, except for legacy code. It is safe to say that the Plan 9 papers are required reading for your goals. Note that this really doesn't get into kernel level design -- the Bell Labs team freely admits that the kernel (at least pre-Brazil) was fairly conventional in design.

    Last but not least, don't fall into the trap of a Solution looking for a Problem. Don't try to use "AI" (no offense, but whatever the heck you mean by that -- it's so overbroad as be like saying "I'll solve it with Science!") when you don't even have a specific problem in the domain of distributed computing identified. Understand the real problems, which I'm guessing in your case are large-scale systems design and usability issues... THEN look for appropriate solutions.

    Good luck!

  73. Mozart by Baldrson · · Score: 3
    What do you think some of the major concerns/design issues are? I'm talking about nuts and bolts...

    Many of the important theoretic issues have been addressed at the nuts-and-bolts level by the Mozart Programming System. Specifically, if you read Distributed Programming in Mozart - A Tutorial Introduction you'll have an idea of the kind of distributed programming power provided by a network of Mozart systems.

    The key to Mozart's power is its use of ultra-light-weight threads that can share single-assignment distributed variables within heirarchical computation spaces. What this means is you can have unlimited "processes" that are waiting on all sorts of things all over the network -- and failures are easily confined to the minimum logical spaces.

    By "ultra-light-weight threads" I mean a virtual unification of process structure with data structure.

  74. "divide processor time for a single task"? by Christopher+Thomas · · Score: 3

    I think it would be even cooler to have something that, given enough bandwidth, would transparently divide up processor time for a single thread/task.

    How exactly do you propose that the operating system do this?

    Unless the programmer or compiler parallelizes the code, you're out of luck for running it on more than one processor at a time. What is the OS supposed to do? Recompile it on the fly, adding all of the MT-safing, rebuild it, and hope that it's faster?

    Unless an application is designed from the start to be parallel, it can't be run as a parallel program.

    1. Re:"divide processor time for a single task"? by Scriven · · Score: 1

      I'm not saying this is possible, I'm merely wondering, could it not be done as an extra layer on top of the OS?

      • You have your OS to run the base operating of each individual computer.
      • You run something like LinuxNOW to configure and manage all the physical resources (drives, printers, serial ports, whatever).
      • You run a distribution application, that distributes the load evenly among all available computers on the network at any one time.

      Is this last step impossible? I'm wondering because it would greatly enhance not only things like Seti@Home, the distributed.net clients and all that jazz, but also CPU intensive, but not necessarily specifically parallel tasks like MP3/OGG encoding, or compiling (altho I'm not sure about that one).

      Should I keep singing "Dream a little dream", and wait for a parallel MP3 encoder?

      Thanks!


      This is my .sig. It isn't very big.
      --
      This is my .sig. It isn't very big.
      --An Oldie, but a Goodie!
    2. Re:"divide processor time for a single task"? by Fizgig · · Score: 1

      No, unless there have been some really amazing advances in systems design really recently, you can't do that. You can't even split non-parallelized tasks onto different CPUs of a multiprocessor machine. The best you can hope for is that some day compilers will be really smart and parallelize things for you, but even then the effect would be very limited, I'd think.

    3. Re:"divide processor time for a single task"? by Amoeba+Protozoa · · Score: 2

      Well, I don't think it is possible now. But, what if your compiler had enough smarts to divide register level tasks umongst different processors-- in the worst case-- and vectorize tasks that look like vectors (FFT & the like)? Assuming the current trend of VLIW processors, it might not be too far off in the future that compilers do something like this at a local/SMP level soon through shared-memory.

      Of course, you would need a very fast network with low-latency logic in between to probably get a speed gain, unless most of your processing was on very large vectors.

      Just what I think, as outlandish as it may be. But wouldn't it be cool?

      -AP

    4. Re:"divide processor time for a single task"? by Christopher+Thomas · · Score: 2

      Well, I don't think it is possible now. But, what if your compiler had enough smarts to divide register level tasks umongst different processors [...]

      At _compile_ time, it's possible, though not always practical or beneficial, as I'd already stated.

      You were talking about doing it at _run_ time on binaries that weren't designed for multithreading/multiprocessing.

      There is a big difference between these cases.

      It's not impossible, but it's *very* difficult, and of questionable use in almost all cases (overhead for threading is high, for multiprocessing is higher, and for running on processors separated by substantial latency is prohibitive).

      As another poster pointed out, some compilers already do this at build-time, but that's about it. If you want your application to be easily parallelized, then write it to be multithreaded to begin with.

    5. Re:"divide processor time for a single task"? by sjames · · Score: 2

      Should I keep singing "Dream a little dream", and wait for a parallel MP3 encoder?

      That would be overkill in most cases anyway. It is quite simple to set up a beowulf as an MP3 encoder farm at the file level. Ripping a CD can be very fast that way. There would be almost no point in the extra work to do more fine grained parallel processing.

      For other tasks, automatic parallelization would be a big plus, but is a hard problem. It's made even harder because depending on the speed of the interconnect (anywhere from a local torus to a bunch of 28.8 dialups) the basic approach would be entirely different.

      That doesn't mean it won't happen, just that I'm not holding my breath waiting.

    6. Re:"divide processor time for a single task"? by jhutkd · · Score: 1

      Don't forget about thread-level parallelization. That's pretty much the only level of parallelization a complier can buy you. If you are smart about assigning threads in a language that doesn't explicitly offer parallel constructs, you can still gain performance through thread-level parallelization.

    7. Re:"divide processor time for a single task"? by Amoeba+Protozoa · · Score: 2

      Yes, at compile time. I figure these features are long enough off that the compilers would generate "parallelizable" code that the O/S or some firmware could broker off to different processors or boxes.

      It is just a matter of time (how long, who knows!) before we hit the wall on processor speed. It will have to be an intelligent solution that would reach the above aims. It may not be mine, but one thing is for sure: it probably won't be me implementing it!

      -AP

    8. Re:"divide processor time for a single task"? by jhutkd · · Score: 1

      Wait... Are you saying that you can't expect a multiprocessor machine to divide threads among its available preocessors?!?! That's rediculous. What you'll find is that compilers cannot accomplish the partitioning step of parallel programming, but the assignment can sometimes be a freebee. With thread-level parallization, you can count on most / all modern multiporocessor machines to spread load accross CPUs. I think multiporcessor systems would be MUCH less abundant if you had to have special code (instead of just smart OSes) running on the CPUs!

    9. Re:"divide processor time for a single task"? by Mindbridge · · Score: 1
      Sun does something like that in their MAJC microprocessor by running speculative threads that execute different branches of the original thread. The results of those threads are either used or thrown out, depending on whether violations (RAW hazards, etc.) have been detected. Sun calls this technique Space-Time Computing. According to their (hopefully objective) benchmarks it can improve the execution performance of single-threaded code by up to 70%. That is a fairly significant figure.

      To get back on topic, however, this approach clearly requires fast synchronization between the speculative threads and the "main" thread to be effective. So while it would work rather well on a single machine, it is hard for me to imagine getting it to run efficiently over a network. I suppose it is possible, but the amount of additional processing time needed to achieve a marginal performance improvement would be huge. But you never know, someone might come up with a bright idea...

    10. Re:"divide processor time for a single task"? by Fizgig · · Score: 1

      No, I said you can't expect an OS to divide a single thread among separate procesors.

    11. Re:"divide processor time for a single task"? by warfare · · Score: 1

      As for the parallel MP3 encoder, try gogo. (I lost the link somewhere) but it is really fast on my Dual Pentium 233 here.

      --
      -- If windows is the solution, can we please have the problem back?
  75. Kids these days! by SethJohnson · · Score: 1


    That certainly sounds like something a high school student would pull off.

    Actually, I was a little surprised to see so little discussion of Java regarding this topic. With Sun's goal of putting Java everywhere (VCR's, Settop boxes, refrigerators, etc), the possibilities for distributed computing become huge. HUGE, I tell you. If there really were a JavaOS (which I think has qualified as vaporware since about 1997), networking all these inane machines into a distrubuted system could provide a computational superstructure the likes of which hasn't been seen outside the confines of the NSA.

    But that's where I think it has to reside.. inane machines. It's easy to think, "Wow. I could plug all my obsolete equipment (Old nubus powermacs, pentiums, 486s, etc) into this network and make cash through some sort of a leased-processor-cycle distributed computing system. Not so fast. The micropayments you should expect in such a system would not even be enough to cover your electricity costs to run the machines 24/7. If the payments were more than the cost of the electricity to run these computers, then the cost of using the system for number-crunching would be prohibitive.

    OTOH, if the nodes in such a system were really going to be consuming juice anyway (i.e. burglar alarm system, cellphone, VCR, home stereo), then you'd look at those micropayments as a sort of mini-rebate on your electric bill.

    Perhaps the other problem with this system would be that the cost of building in extra, unnecessary processing power in these devices would make them more prone to failure and more expensive for the consumer.

    So what's the moral to the story? Maybe there isn't one. Maybe it's just a bunch of stuff that happened...



    Seth
  76. Mainframe by bool · · Score: 1

    Hmm... ever hear of ThinClient? This is already here in a big way. Which is almost to bad becasue we all worked really hard to move away from a mainframe style of computing.

    --

    ----------
    while (alive) { Work(); PayTaxes(); Eat(); Sleep(); }
    Bool
  77. I'm all for distributed operating systems by Fervent · · Score: 1
    Imagine a system with millions of users (similar to the way Windows has the lionshare of users today), with a billion-fold prioritized thread system. One that could scour all of the users in a given distance radius and determine which are available for higher end calculations and data manipulations.

    A computer working on a 3D render, for example, could pull the resources of an idling computer 50 miles away stuck in a screensaver. A company employee who has to perform the backup of 3000 files could cache some of them in a RAM monster in Cleveland.

    Granted, the only issue that comes straight to the fold is security. With millions of file transactions taking place on a daily basis, it would become critical to make sure rogue users couldn't snoop on the contents of a file without permission.

    Still, with a relatively secure operating system as a standard point (Linux, BSD, or even to some extent Windows 2000) it's possible this wouldn't even be an issue.

    Add complex AI to the mix (such as monitoring what resources are most in need - RAM in a rendering circle of computers, bandwidth for streaming across a company wide system stuck in screensaver mode), and finally those wasted CPU cycles would be put to proper use. Not just in monitoring for alien life or searching for the cure to the flu, but speeding up all operations on computers in everyday life.

    --

    - I don't care if they globalize against free speech. All my best free thoughts are done in my head.

  78. Distributed OSes are here by Greg+Lindahl · · Score: 4

    There are several real, full-featured distributed operating systems out there. One good example is Legion. It gives you the illusion of running programs on your desktop, while they are actually running lord-knows-where. Yes, you often need a lot of network bandwidth to get good results. Depending on the exact details, you can run programs on other machines with either no or small modifications.

    Lest you think this has nothing to do with today's operating systems, the Linux desktop folks have started using Corba quite a bit to link things together. Well, Legion provides much more powerful, secure, and reliable ways to do the same thing, in a much more consistant fashion.

    1. Re:Distributed OSes are here by AlienSquid · · Score: 2

      the correct link is http://legion.virginia.edu/

  79. Distributed, but not too connected by Animats · · Score: 4
    There have been all too many "distributed operating systems" out of academia. Few if any have gone mainstream, for a number of good reasons.
    • There aren't many problems that really need one. SETI@Home and crypto problems need so little coordination that E-mail would be enough.
    • Clusters are easier to do Read In Search of Clusters, a philosophical book on why clustering beats tightly-connected systems. This was written in 1995, before clusters took over the web server industry, but it's more relevant today than it was then. And it's out in paperback now.
    • There seem to be no useful stops between shared-memory multiprocessors and clusters. Many efforts have been made to build machines with lots of processors and exotic schemes for interconnecting them. From the Illiac IV to the Ncube to the Transputer to the Monarch to the Connection Machine, they've all lost out to more vanilla architecture.
    • Writing tightly-coupled distributed applications is both hard and wierd. There have been many attempts to make it easier via language design, from T/TAL for Tandems to LINDA to Occam to single-assignment languages. Nobody uses that stuff. (Arguably some should; one big lack of C/C++ is a total lack of language support for concurrency.)
    • Networking bandwidth is high enough for clusters. So ordinary techniques suffice.
    It's one of those things that's hard to do and has a low payoff.
    1. Re:Distributed, but not too connected by Anonymous Coward · · Score: 1

      Nobody uses that stuff...not entirely true. Linda was the root of Javaspaces. And Ericcson's Erlang language is a distributed pure-functional language which they use to run their telecomm networks. It's opensource and there have been some other successful implementations with it.

    2. Re:Distributed, but not too connected by Tony-A · · Score: 1

      >>Writing tightly-coupled distributed applications is both hard and wierd.
      I think there is a fundamental problem with the languages.
      A line is a sequence of characters.
      A file is a sequence of lines.
      A program is one linear order of something that is essentially a partial order.
      There is no way to explicitly denote what depends on what.
      DO A A1, A2, A3
      DO B B1 after A2, B2, B3
      DO C C1 after A1, C2 after A3, C3
      DO D D1 after B2 and C1, D2 after C2, D3 after B3 and C3
      Trivial, but alreadly too complicated. Haven't even used "or' yet. As far as I know, not expressible in any current mainstream language.

    3. Re:Distributed, but not too connected by GregPfister · · Score: 1
      Thanks for the mention of "In Search of Clusters." An update: The second edition has been out since early '98. The link provided goes to the 2ndEd anyway. And it always was trade paperback; publisher's choice, and it's also a better way to publish the cool cover illustration.

      A few comments on the "distributed OS" issue:

      I think a reason for their lack of success has been (as I mention in "In Search") that they have been targetted at the wrong paradigm -- distributed systems -- instead of the right one: clusters. Until recently, don't forget, nobody knew from nothing about clusters. A good "distributed OS" is actually a great way to solve one of the biggest cluster headaches, management.

      However, this is true only if you're doing a relatively small cluster. But one of the reasons people like clusters is the utility of "new" applications that scale obscenely well, like web serving. Unfortunately (!?) they scale far better than anybody's "distributed OS," so attempting to fix cluster management with a traditional distributed OS has a bit of a problem in many cases of interest.

      About intermediate cases: The ones mentioned (Transputer, CM, Monarch (gak! somebody remembers that? How about the BBN Butterfly?), etc.) are indeed not intermediate cases. NUMA, however, really is an intermediate case. To get a NUMA system to work well, you actually do have to use localization techniques that are partway between a traditional SMP (everything's equidistant) and no shared memory (everything's still equidistant -- infinity = infinity).

  80. Re:uhm, you mean AT&T's Plan 9 by shellshok · · Score: 1

    It appears to me that AT&T has pretty much come to a halt as far as the development. They have released a PL, but im convinced that is just to build up on the sucessor, Inferno, which has been sold to Vitanuova??? im not sure of the spelling though. a PL is available, yet no download, yet...personal license is $300.

    --

    will work for food

  81. Uhh by Dungeon+Dweller · · Score: 1

    I post at +2. So 1 person modded it up. Also, by ubiquitous I meant in more than just the sense of the processing power. Which is what people generally think of when they think distributed computing. As for personal problems, it's really easy to knock on me as an AC. If you don't like me because I have a high karma, you're a rather immature person. I just enjoy talking on /. Earlier I had plenty modded down, and yet somehow, I didn't make a big fuss about it. Interesting how that is.

    --
    Eh...
  82. Transmeta solved the cycle spillage by CBravo · · Score: 1

    I agree that computer cycles should not be wasted, but Transmeta has answered that gap. If you don't need cycles, turn the computer "off".

    The only real advantage to do distributed computing is the huge number of available computer power. If you want that however, you need a simple problem that is hard to solve and has a simple (read: small in size) answer. Otherwise the communication is going to be a problem. I don't think that that is always the problem.

    --
    nosig today
  83. Distributed Kernels are not a bad idea... by sageFool · · Score: 1

    > If you want the kernel or other fundamental,
    > low-level parts of the operating system to be
    > distributed, then you have a fundamentally
    > bad idea.

    Not so. Take the virtual memory system. If you
    allow the backing store for the memory system to
    be distributed you get some totally reasonable benifits. Say you have 20 nice suns all sitting
    around connected with 100Mb or 1Gb connections. Gaining access to their RAM via the network is way faster than going to disk. So you can effectively
    increase the size of your 'physical' main memory with minimal speed penalty. Of course you have to do things like keep copies of the blocks locally on disk in case of network failure, and you only want to use other machines memory in certain classes of blocks and such. But it does offer gains, I read a paper about this stuff a while back. Pretty sweet, check it out.

    1. Re:Distributed Kernels are not a bad idea... by Webmonger · · Score: 1

      Something about this idea scares me.
      Use the network as a disk cache?

    2. Re:Distributed Kernels are not a bad idea... by Tony-A · · Score: 1

      The idea of a cache is that you have a small, expensive, high-speed store and a large, cheap, low-speed store. With the right shenanigans you get the speed of fast store and the cost of the slow store.
      As a means of quickly and safely (across hardware failures) committing information to disk, network could be very useful, but nothing about the setup would be simple or easy.

  84. Re:At least give a good reason. by jjoyce · · Score: 1
    This is only because the assignment operator '=' in C returns a value: the value of the object assigned to after the assignment. So the C expression (i = 4) evaluates to the value 4. C has no notion of a 'boolean' value. A 'boolean' is just zero or nonzero in C, so it is not that C "allows" assignments to be booleans, it's that they are the same thing. An assignment is a perfectly valid condition in C. It's programmers' faults for botching this up, whether it's you or the guy whose code you're trying to fix.

    You can say that C is unclear and hard to learn, but it is not to blame for this error, just like it's the user's fault for typing rm -rf / as root in Unix.

    --

  85. Distributed Linux by logistix · · Score: 1

    I've set up a distributed system where I can absorb some of your load by hosting your /etc/passwd and /etc/shadow files via NFS. This can result in as much as a 0.003% performance boost on your machine. E-mail me if interested.

    --
    - My password is slashdot
  86. Harder than we would wish by one-egg · · Score: 2
    Part of the problem is that distributed operating systems are much harder to do than we would wish (as are distributed applications). Napster isn't the answer, it's really just a specialized search engine combined with what boils down to a bunch of ftp servers.

    Load balancing? Easy to write, hard to make work well. You need to compare the cost of migration to the benefits of balancing, and you need to make decisions based on partial and outdated information. Many early systems thrashed because everybody would migrate to the idle processor, which then became overloaded, so everybody migrated somewhere else, etc.

    Speaking of migration, it's a mess. The only system I know of that implemented migration fully was Locus, out of UCLA. The trouble is that whenever a process has a dependency on or a hook into its environment, that connection must be migrated too. Open files, working directory, sockets, controlling tty, signals, process parent/child relationships, and many more details must be handled. Not fun, and the benefits turned out to be mostly minor (though I do recall writing a cool version of "find" that migrated itself to the machine that stored the current subtree as it ran).

    The issue of supporting distributed applications is generally considered to be separate from writing a truly distributed OS. Most of what a distributed application needs can be provided by a good communications library. To some extent, we're still learning exactly what such a library should have. What about SETI@home is specialized to it, and what's universal? I don't think we've completely figured it out.

    The following is a non-exhaustive list of major concerns and design issues that must be addressed in a distributed OS. We have fairly good solutions to some, but most have not yet been solved:

    • Process control. How much process migration is a Good Thing? How do you decide what machine to use to start a process, and when do you decide to migrate it to another?
    • Communication and synchronization. What facilities does a distributed application need? How do we make those easy to use?
    • Reliability. How do we deal with the inevitable machine failures?
    • Replication. What processes and data should be duplicated on different systems? Are you doing the replication for performance, for reliability, or both? How do you manage updates to replicated data? How do you keep replicated process synchronized?
    • Lack of global knowledge. How do you make decisions based on partial information?
    • Naming. What names to things have. Do you have a shared global namespace, or a private one? How do you resolve names? What do you do when people and objects move?
    • Scalability. How does the system behave when the number of computers/users/programs jumps by a factor of 10 or 100? (This is a place where Napster doesn't do real well.)
    • Compatibility. How do you support existing software? Do you run on only one kind of hardware, or many?
    • Security. Who gets to run on what machine?

    Finally, I should note that the list of projects at U of Arizona might appear to be complete, but it omits a lot of important projects. Four that jump to my mind are Locus and Ficus from UCLA (though the latter is more of a distributed filesystem than an OS), Coda from CMU (again a DFS, rather well-known to Linux folks), and of course the extremely important Network of Workstations work out of UC Berkeley, which led to Inktomi and Hotbot.

  87. The function of an operating system is fixed. by spankfish · · Score: 1
    "The function of an operating system is fixed." - One of the Big Heads said something along this line.

    Instead of writing new operating systems that virtually nobody is going to install, it would be far simpler and more cost-effective to simply develop a Distributed Processing API Library and/or supporting system services for existing operating systems that are capable of handling it. Like that MOSIX project.

    Obviously most Unices fall into the boat, as would Java-based environments, but you could probably even do it on NT if you were really desperate.

    Of course, your really big-ass gov/mil/edu houses may not be too concerned about the cost :-)

    Seems like the Java platform would be the best way to get this kind of thing to the masses, nearly everyone has some kind of Java Runtime Environment installed, and not many non-techies are going to want to mess around with their kernel.

    Go on, you know you want to:
    CLICK HERE TO ENSLAVE YOUR COMPUTER IN THE BORG COLLECTIVE

    --

    --

    NO TOUCH MONKEY!
  88. Hmmm I heard of one... by TheCarp · · Score: 1

    When I was an Undergrad at WPI (www.wpi.edu - I was only there 1 year, school life didn't work out) I heard of such a thing. Evidently there was an ongoing research project there to develop just such an OS.

    The idea was that all machines running it (and I assume all ones running it AND setup as part of the same group - though personally I like the idea of a singal global distributed system with no boundaries) would be able to use eachothers resources over the network for the applications they were running.

    Im not sure HOW distributed it was but it sounded cool. It must have a web page, I wish I could remember the name of the project.

    Personally, I always kind of wanted to write a layer on top of the beowulf stuff. Setup the cluster and then make a shell that ran on it.

    Really though, the more I think about it, the less I think its needed. How much do most things that are done on a system benefit from paralelism?

    It seems to me like this type of problem solution is best suited to large computations and basically large jobs more than normal OS use.

    --
    "I opened my eyes, and everything went dark again"
  89. My thoughts on distributed operating systems by [PF]+Lurch · · Score: 1

    I checked out the NOW thing, and it looks good, but the next big step I see is loosening the centralized authority and control aspects of something like NOW, and allowing machines to join and detach at will.

    As NOW stands (as I understand it), all the machines in the cluster are fully trusted.

    For a looser version, each node will have to have some kind of trust level.

    A concept like this would require lots of changes to a unix type enviornment.

    For instance, the idea of a ps showing all the processes is going to have to change. You don't want a non-trusted node to get knowledge it shouldn't have.

    This type of env will make system security a much more tricky thing, but, hey, what the hell.

    I had lots of other ideas, but they seem to be running away from me right now, so maybe more later.

  90. Re:At least give a good reason. by maraist · · Score: 2

    >So instead my program runs fine then randomly crashes at the aforementioned line on code on some machines.
    >Since then I have promised myself never to do any serious development in C if I can help it.

    That is why you modularize your code and perform unit testing.. This sort of error will prevail in any sort of language. For a given language, there will always be problems that have complex solutions. At this point, you have to apply good programming practices and a bit of software engineering.
    That a language such as Java or Pascal alleviates many types of programming errors is good, but there are just as many minuses to these languages. It's an engineering decision as to which language is best suited for a given set of problems and developers.

    Personally I use Perl, but that's even more error-prone than C (with the exception of core dumps). Good coding practices are essential for this. (The benifit, of course, is rapid development time)

    --
    -Michael
  91. Not really. by jcr · · Score: 2

    NeXTSTEP had a number of features that people mistakenly took for a distributed OS, the way that many people assume that any GUI has an OO substrate.

    It was the case in NeXTSTEP, that you could log in to any NeXT machine on your LAN, and your home directory (including your preferences like audio volume, etc.) would follow you around.

    NeXTSTEP is also the OS where Zilla was developed (Zilla was the program that BeoWulf was copied from.) Richard Crandall developed Zilla, and used it to find the 13th Fermat number, among other supercomputing achievements, on the idle machines at NeXT's headquarters.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  92. Know your buzzwords by BlubberBoy · · Score: 1

    Distributed OS? Get a grip. Every OS in the world is already "distributed". The problem here is that people typically think that a PC has only 1 processor, when this is not the case. A PC is actually a collection of smaller computers: - most hard drives have their own CPU and RAM, which qualifies them as small embedded computers. - most video cards have extremely powerful CPUs and gobs of RAM. I'm not even going to get into printer hardware. Whether the OS is interfacing to all these processors via hardware bus architectures or over TCP/IP is pretty irrelevant. There is still a lot of inter-processor communication going on within a single PC. To me, that qualifies every OS in the world as a "distributed OS".

    1. Re:Know your buzzwords by Mindwarp · · Score: 2

      Distributed OS's typically refer to Operating Systems that run on more than one discrete processing system. These systems typically provide a transparent process space across all processors, often allowing processes to assign/migrate across processors transparently.

      Just because your video card/hard drive/printer/whatever has a CPU and/or RAM inside it doesn't mean that the Operating System is running on it. These are just instances of a Standalone Operating System interfacing with peripherals containing processing power. Inter-process communication does not a Distributed Operating System make!

      As you said, know your buzzwords.

      --

      --
      The gift of death metal does not smile on the good looking.
    2. Re:Know your buzzwords by BlubberBoy · · Score: 1
      Just because your video card/hard drive/printer/whatever has a CPU and/or RAM inside it doesn't mean that the Operating System is running on it.
      Yes but the entire disk IO subsystem depends on the interface to the hard drive.
      Inter-process communication does not a Distributed Operating System make!
      I said inter- processor communication, not inter-process. You're right - even the simplest RTOS can accomodate multiple processes running on a single CPU. And there is nothing "distributed" about Inter-process communication in this sense. But we're talking about a different animal when the OS sends a job to the CPU on the HD, and another one to the video card, etc. As soon as multiple CPUs are involved that's when the word "distributed" pops into my head. And those CPUs don't have to be thousands of miles apart connected via a TCP/IP stack. They can be physically side-by-side, connected by a bloody RS232 interface for all I care. It's still distributed.
    3. Re:Know your buzzwords by Mindwarp · · Score: 2

      Point taken.

      --

      --
      The gift of death metal does not smile on the good looking.
  93. Distributed OSes are taking the very first steps by Anonymous Coward · · Score: 1

    Considering distributed computing being close to "complete", mature subject is extremely naive. Unless one has very strange idea of "Distributed OS" functions, like easily, statically partitionable CPU-intensive problems, running on completely trustable systems, with perfectly working networking, and so on, one must realise that most of the stuff on this field is practically unresearched.

    Some of the unsolved and rather untrivial issues that come to my mind are:

    How problems are dynamically partitioned dynamically between nodes? There are issues of profiling, communications bandwidth, synchronisation, asymmetric performance, and more. Purely functional programming makes some of these problems easier to figure out, but there's no silver bullet.

    How the system is made seem as much as possible as if it were single system, without sacrificing too much performance in a way or another? Machine independent program representation is must for a platform-neutral system, but avoiding virtual machines is very preferable. Proof-carrying code may make this feasible, security- and performance-wise. Transparent migration must also be considered; that isn't totally trivial when systems run on different base architectures. Otherwise making perfectly working system transparent is not hard, but making it efficient is highly related to successful partitioning.

    How to cope with unstable computing environment? On normal computing environment, malfunctioning storage, transmission and computing hardware is so untolerable that problem is practically ignored. With widely distributed computing environments, one must compromise between increased performance in perfect case and loss of performance when some essential resource becomes unreachable. There's certainly no magical solution to this problem.

    How to manage security and protection in potentially uncooperative environment? How to make sure owned computing capacity is given only those who are granted to use it? How to make sure someone isn't actually returning fake results for critical computations? How to make sure nobody can steal your information, results, or algorithms? These all are theoretically only compromises between safety and performance, but in practice, hard problems to solve feasibly. I'm very interested to see research results on this.

    And one more thing. Avoid using "AI" as a proposed solution if you can. One cynical definition of AI is that "it's something we can't make yet." When first programming languages were developed, just being able to parse programming language automatically (based on the syntax definition) was considered AI. Do you consider that AI these days? Always try to find more concrete term; if you don't, either you're underinformed, or there's some research to do.

    I have truly great hopes for distributed computing and OSes, but I see it more like a topic of a lifetime than a "Let's hack Linux to do this!" issue.

  94. Parallelizing during compilation. by Christopher+Thomas · · Score: 2

    The best you can hope for is that some day compilers will be really smart and parallelize things for you, but even then the effect would be very limited, I'd think.

    You can do this fairly easily for certain types of loop. It would be a straightforward extension of loop unrolling. Now, I don't think anyone's been insane enough to _do_ this to date, as the thread creation overhead would eat the speed gain for anything except a very long-running loop.

    Something like TransMeta's code morphing that profiles on the fly could in principle figure out where it's sensible to do this, but speed gains would be questionable except in very special cases.

    1. Re:Parallelizing during compilation. by bmajik · · Score: 1

      Real compilers (read: non gcc) have been cranking out MT code automatically for years. Suns and SGI's C and Fortran compilers both do this. I'd have to imagine other UNIX vendor compilers also do.

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    2. Re:Parallelizing during compilation. by jhutkd · · Score: 1

      Multithreading is not the same as parallizing!!!

    3. Re:Parallelizing during compilation. by fgodfrey · · Score: 1
      If you add support in the hardware for a single processor to handle the unrolled loop at once, you end up with a vector processor. This is how the compiler for Crays works.

      That is a *very* far cry from firing up a thread to do the work. I would say that there are very few kinds of loops that a compiler could prove were thread safe that would be worth firing off a thread, and all the overhead that takes, to perform the task. And before y'all jump all over that, I can think of a few degenerate cases that would work also and even a few that aren't so degenerate. At this point though, I think multi-threading is best left up to the programmer, not the compiler, if you want maximum performance.

      --
      Go Badgers! -- #include "std/disclaimer.h"
    4. Re:Parallelizing during compilation. by clacke · · Score: 1

      I was thinking about the morphing software, too. After all, to some extent it actually 'parallellizes' execution into the pipelines of the Crusoe. Although i bet the network overhead would be too great for this to actually gain anything (I understand you have this problem even with software actually written for clusters), it's a cool thought.. Another thought: What if Transmeta made a processor that could share pipelines? You add another of them TM5400's and you get another four pipelines to shove your instructions through, without the underlying x86 code even knowing it! I'm not saying it's possible, but I'm trying to be indiscriminate here...

  95. I'd prefer a distributed knowledge base than OS by Rares+Marian · · Score: 1

    Teach people to use this shit enough that they can invent it themselves. Open it up to a variety of users.

    Do that and the scale of some of this tech compared to the most efficient way of doing a task is going to scare you.

    --
    The message on the other side of this sig is false.
  96. Distributed OS based on Debian by Keel · · Score: 1

    I believe this is what Ian Murdock's Progeny Linux is working on. They are working on a system based on Debian to turn a network of workstations into a seemless system. Interview questions about this for Ian were posted on /. just last week.

    --

    ----

    "Oh, bother," said Pooh, as he hid Piglet's mangled corpse.

  97. Re:uhm, you mean Lucent's Plan 9 by lovegoat · · Score: 1

    Hasn't been under the auspices of AT&T since the trivestiture. It was a Bell Labs research project. And Bell Labs went with Lucent.

    --
    Lottery: a tax on those bad at math.
  98. Use distributed AI to learn English by monkeyfamily · · Score: 1

    Okay, this is what I thought would be cool after reading the "Natural Language CLI" story a couple days ago - each person's machine would have a bunch of rules like "remove is a verb which means rm when referring to files" "delete is a synonym for remove" etc, and a simple system for adding rules. As you add rules to your system, your system contact other systems out there and sees if your rules have anything in common with other peoples'. If it finds a system which is customized like yours, it can import a bunch of rules (or you can set it to import only rules it finds on X number of other systems).

    Just a thought - anybody see any use for this? -Eje

  99. uses for distributed operating system by jameshowison · · Score: 1

    Wouldn't one use for a distributed operating system be in artificial intelligence - especially for neural nets?

    Aggregating the processor cycles and memory to facilitate massively parrallel processing - giving access to the level of computation required for artificial intelligence?

    James

  100. Ameba by dhobbit · · Score: 1

    The Ameba OS was a complete distributed OS. It featured distributed disk space, memory, and processor.

  101. Fair 'nuff... by Christopher+B.+Brown · · Score: 3
    My bad; yes, Hydra should be on the list, perhaps as the great-grand-daddy. I gather that the IBM AS/400 platform is based on Hydra, albeit with the advanced stuff hidden far from view so as not to frighten the accountants.

    The interesting part is that Legion provides tools that resemble some parts of CORBA, whilst Spring provided tools that grew into CORBA, whilst Sprite provided journalling and cache tools that are essentially what journalling and cache servers provide today.

    In a sense, what has happened is that an OS of the 1970s, Unix, has been shown sufficiently malleable that it could integrate in concepts from the research projects of the 1970s and 1980s.

    Unfortunately, the 1990s were not a terribly good time for OS research; sort of like The Very Long Night of Londo Mollari of the OS world. There was this minor problem of Microsoft "buying away" whatever serious OS researchers that they could...

    --
    If you're not part of the solution, you're part of the precipitate.
  102. MPI, PVM and Mosix by Stonefish · · Score: 1

    All a distrubuted OS does is make a cluster more managable, just an OS make the disparate parts of your PC manageable. But it all only works if your problem domain is suitable to being broken up in a parellel manner and communications between the nodes is adequate for your problem. If you are breeding a flock/herd/whatever of geneitic algorithms mosix is probably the best choice because the algorithms only need to interact to mate and cull. PVM is best where there is a greater need for interprocess communication, MPI is less friendly in so far as it doesn't give you the virtual machine but it can apply greater rigor and is a standard parellel programing enviroment. This isn't to say that a combination of mosix and PVM can't be used, they can. Some other things to look at are shrimp. Currently one size doesn't fit all because different problems create different demands on the infrastructure. Does the solution need much IPC, how big are these messages? Ethernet is usually involved in cheap clusters it should be seen as a slow bus that can carry large messages.

  103. recompilation. by mr_typo · · Score: 1

    There was a document on microsoft.research.com about binary recompilation of existing code on the fly to addapt it to a constantly changing distributed environment.

    They atleast claimed that they were able to run applications designed for one machine on multiple machines. I do relize this probably means highly-threaded well designed applications that normaly run on one machine, but still it's pretty cool. It's a pity I cant give a link to the document as research.microsoft.com aint responding :-P

    --typo

    1. Re:recompilation. by cooldev · · Score: 1
  104. the most obvious by transami · · Score: 1

    seems youall left out the most obvious one, and the one most likely to succeed: taos' elate! this is the platform amiga has adopted. granted that they currently run it hosted on linux, but that wont be typically neccessary for running native amiga/elate programs once they are developed. of course elate as a stand alone os isn't as mature as linux for running on standard pcs, but elate makes a greate embedded os.

    --
    :T:R:A:N:S:
  105. Corporations == Rule Based System Gone Berzerk by Sydney+Weidman · · Score: 2
    __________________________________________________

    Who needs AI research when you have Harvard Business School?

    Yes, it's true, folks. We already have the Sci-Fi scenario at hand. Corporations are organic beings that operate on a very simple set of rules. The only problem is that we can't turn them off -- they'll just keep going until they've consumed all the planet's resources. Then they'll use people as a power source. We'll all be "coppertops".

    I would suggest that we seriously look at eradicating these beasts before they kill us all.

    __________________________________________________

  106. Read Tanenbaum by geggle · · Score: 1
    If your interested in nuts and bolts of Distributed Operating Systems, you should read Andrew S. Tanenbaum's Distributed Operating Systems . While some of the content is getting a bit dated now, the basic design tenets expressed in this book are still true.

    Matter of fact, anyone designing or implementing a large system using multiple machines and lots of IPC should read this book too. In particular, the four basic rules listed in the introduction (pg 35 from memory) covering global data, time etc should be memorized by anyone working on any distributed or network application (including OSes)

  107. Cray UNICOS/mk by mustermark · · Score: 1

    Cray does a good job of a psuedo-distributed operating environment. Depends on if you count a processor+memory node as independent.

    Check it out.

  108. Distributed global memory system. - OOPS.... by Slowping · · Score: 1

    My appologies for the previous empty post...

    The University of Washington CSE department worked on a distributed memory system. The idea was to efficiently use all the excess fragments of ram across a cluster of high performance machines on a high performance network. Called GMS
    http://www.cs.washington.edu/homes/lev y/gms/


    --
    (\(\
    (^.^)
    (")")
    *beware the cute-bunny virus
  109. Some Pointers by pdinda · · Score: 1
    I do research into how to use statistical and AI techniques to predict resource demand and availability in distributed systems. You might be interested in looking at some of my thesis related papers, systems, and databases.

    Another project that is interested in performance prediction is the Network Weather Service (NWS). An important issue in systems such as RPS (my system) and NWS is accurate and scalable measurement of hosts and networks. Remos is able to do this.

    A lot of work in this area is taking place in the context of Computational Grids. The Grid Forum is an IETF-like body that is trying to standardize Grid middleware systems. Globus and Legion are examples of Grid middleware systems.

  110. Inferno by shellshok · · Score: 1

    Well, Im personally a anxious in the free Inferno, its not in publicly downloadable, yet. I've been scouting www.vitanuova.com for a while, watching, waiting. I haven't been able to convince the VP's at my office to shell out $1000, and I dont go to school anymore...that leaves me with a 'Personal Edition' which would run me about $150. Pretty steep price on something Bell-Labs dropped. Im still interested.. the slogan is 'Picking up where Unix left off'

    --

    will work for food

  111. People seem to get the wrong idea... by CyberOptic · · Score: 1

    People seem to beleive that .net from MS is a new operatingsystem. It's not.

    The new .NET framewrok has nothing to do with operatingsystems or anything else. .NET is a development framework.
    This will result in new products such as Visual Studio .NET, which will feature C#, ASP+ etc. To build serverside applications and websites.

    It's not a new windows.
    MS though has plans on offering Windows, Office and other apps, over the internet at some point, but this isn't going to happen in the next few years. And they will still be offering a bormal off the shelf version of Windows to install on your local machine.
    Anyway...They can't just send windows from the internet to you without you having installed an OS first, which has the capabillity of accessing the internet.

    It's really anoying at times, how people on /. in their linux loving frenzy, just blurts out one comment after another without looking into the things they are talking about. I find this odd, since most of /. users are pretty knowledgeble people, who know a great deal about many things. But in their linux loving frenzy, they just don't look into the MS products before expressing themself which amounts to a bunch of unusable comments with little basis in facts.

    .Net is NOT an OS, but a new development framework, which will bring a new version of ASP to the masses, called ASP+.

    ASP+, has some VERY interesting new things, which (when released), will surpass ANY other webrelated langauge, being that PHP, Perl, Python, Tcl/Tk etc. It's actually a EXCELLENT product from MS.

  112. Re:At least give a good reason. by Tony-A · · Score: 1

    That's why Algol uses := for assignment.
    OT: I wish languages would allow if 0 = x = 1 expressions. Something about conditionals and booleans being different concepts (?) ;)

  113. Re:At least give a good reason. by Tony-A · · Score: 1

    Bah. Plain text eats less-than signs.
    if 0 <= x <= 1

  114. Re:At least give a good reason. by FirstEdition · · Score: 1

    Yes, I'll agree to that. Anyway, part of the development methodology of a professional coder is a "peer review". This means others examine your code for this kind of thing.

    Anyone who is a professional coder and does not write module test code *AND* participate in peer review is cheating both themselves and their employer.

    This becomes more and more critical as the scale and complexity of the software increases. - Oh yes - I mean all languages, not just C

  115. Shhh! Don't tell anyone, but ... by Anonymous Coward · · Score: 1
    Well I will assume you have a reason for being distributed, such as parallel or large process sharing. Large process sharing is not a reality yet unless it is predivided into pieces, but Mosix may change that. I will bring everyone up on parallel systems and Globus, a kind of globally distributed system. Redundacy is another issue and does not require any kind of distribution other than redundant device connections such as with SCSI.

    Anyway, a little teeny tiny effort and of course comprehension is necessary to find out about Condor and Globus. Condor utilizes idle workstation resources for parallel applications. Kind of like PVM or MPI, but designed for clusters of workstations. It provides a mechanism to link several computers together. Globus, built on Nexus, it is a GPL system that runs on just about any grid (such as what Condor/MPI/PVM can be). It provides a consistent API and is useful for much more than standard parallel work. It is still being developed, but you can get the tools and server stuff.

    Most people around here including the asker of the question obviously don't know a parallel app from Microsoft Word. I see this alot. "I will run SETI in parallel!" Huh? Not exactly.

    I'll explain... I am all for running process independent stuff by rsh script, but it is not a true use of distribution. That is the whole point. SETI is allocated chunks of non-dependent data out to systems. You then send back results, no messaging. It is simplicity and not a multipurpose distributed system. It is pre-distributed and requires only a yes or no result. This is fine and great for embarassingly parallel applications such as number searches. Your adding more monkeys on typewriters, but they're only monkeys.

    Real message passing like that of a Beowulf class server is when there is boundary data required between processes. One computer changes a row on a matrix that row is the boundary so it must send the process it shares the boundary with the updated row. This is usually the real crap, what people buy 100's of nodes to do. See MPI and PVM. These programs must be explicitly written in parallel to be efficient and utilize parallel code structures. They are built on top of message passing libraries (MPI/PVM) that are pre-ported to systems.


    It is important to note PVM/MPI can be used to reclaim idle workstation time, it is just inefficient at it and will piss people off. However, a proper queueing system set to run at night could be utilized.

    Systems like Mosix are OK and they exist now. They give you use of a network of linux workstations with process migration. However, it is very low level and will remain so since it works on x86 process explicitly. It also must have non-I/O bound process to export or it will be limited in utilization. A great project they are working on is the utilization of the networks memory space for large processes. If you ran a 2000x2000 matrix you could solve it using just plain Matlab and 4 256MB systems. It distributes the process state to where the data is. Mosix also is quite useful in dynamic scheduling. PVM and MPI both have very limited use of dynamic scheduling, but thanks to Mosix's peer to peer load balancing it can be utilized as a dynamic scheduler. PVM and MPI issue static process allocation to the nodes, as usage fluxes (finished or waiting process nodes) Mosix can move loads to increase efficiency.

    Condor is used on groups of workstations and is heterogenous (NT is getting a port). You can build parallel apps for it just like MPI or PVM, it uses other technologies than them however.

    Now Globus, Globus is a huge project utilizing a message passing/thread library called Nexus it can run on any grid. That grid then will connect to other distributed grid resources across the net. The user is presented with a web interface and a secure login. They upload the program and request an allocation of resources. They get the results back when done. It uses whatever servers are availible and can use explicit parallelism through the thread library to make it faster. It is for all purposes a worldwide supercomputer. It goes beyond this to also share all data resources available to the system by database through its directory system. This system allows anyone to join, but you have to be allowed to use other peoples resources.

    So if you seriously are thinking about playing with this stuff, figure a real use, figure how much power usage you will be using (NODESx250W 24x7 can be quite a power bill). Then decide what parallel system PVM/MPI/Mosix/Condor you want to use. If you have a whole department of computers Condor might be good, if you have a specific parallel app and a few non-workstation nodes use pvm/mpi. If you run lots of processes or have lots of people logging on, Mosix code be useful. Also, Mosix on MPI/PVM would give probably an efficient cluster. Then you could submit it to Globus so others could utilize it. However, it sounds rather elitest and probably won't use two P133s when they got Cray T3Ds. Also, don't think about actually using Globus yourself. Hey, I guess it would be just about like SETI and others. You could be helping science or at least some grad-student piddle around.

  116. Erlang by David+A.+Madore · · Score: 2

    Erlang (developped by the Swedish telecom company Ericsson) is an Open Source distributed operating system that runs on top of a host OS such as Unix or MS Windows. Erlang is based on high-level language paradigms, which makes it refreshingly different from all these C-based OSes. I think it deserves to be better known.

    For a rather comprehensive list of operating systems, check out the OS review subproject of the Tunes project. Of course, since Tunes is The Ultimate OS, it is distributed also (its only disadvantage is that it (currently?) doesn't exist).

  117. linux NOW by jas79 · · Score: 1

    isn't linux NOW supposed to become an distribuded OS? http://slashdot.org/article.pl?sid=00/07/27/152623 6&mode=thread "Linux NOW makes a network of workstations look like a single integrated system" http://www.progenylinux.com/

  118. Distributed Computing and AI by faye · · Score: 1

    There are lots of distributed OSs out there, MACH, AMOEBA, SPRITE, Plan 9, CHORUS, etc. and more recently we've had cluster computers such as Beowulf joining the fray. However using "AI" to do even basic load balancing is problematic. Oxford Brookes are trying to do this using a mobile ganets model, but it does not look promising - most other people are sensibly staying well clear of it.

    Where distributed computing and AI will make an impact on peoples life is that distributed computing gives potentially much more compute power to a program and AI is *very* compute intensive for real world tasks. Imagine the ability to do real time summarisation and decent semantic analysis of the web pages returned by your search engine so it is much more readily apparent which ones are interesting, imagine a game of quake where each bot has it's own computer controlling it, imagine the ability to do proper knowledge management on your documents, there's even a possibility that the paperclip might say something useful! These are all things that can be done with the current level of AI technology, but not in anything like real time. With distributed computing (and lots of tweaking of the algorithms) we can try to reach real time response.

    TTFN

    Faye

  119. Plurix by schabi · · Score: 1
    The university of Ulm is developing an distributed OS called Plurix. It is planned to go public and make it open source in the end of this year.

    It is based on atomically transactions and distributed shared memory.

    More information can be found at the Plurix Website - but not really up to date :-(

    --
    plim-plam-plompudding
  120. SMP != distributed system by mrogers · · Score: 1
    You are already running a distributed application whenever you run a threaded application on a SMP box. Writing applications for a distributed operating system is no easier and no harder than this.

    Yes, that was the point he was making. Writing distributed apps for a distributed operating system is not hard, because the job of the distributed OS is to give you the illusion of a single machine. Without this abstraction, writing distributed apps is hard. You have to consider a lot more than synchronisation and concurrency. For example, one of the nodes in the system may go down while others carry on working. How do you ascertain the state of all the shared objects it was using? One of the nodes may be cracked or there may be eavesdroppers on the network. Even the problems of synchronisation and concurrency are a lot harder than they are on a single machine. You can't pass pointers between cooperating threads - they may be running in different address spaces. Changes made to a shared data structure may take time to propagate to other nodes. There are no atomic lock operations (messages take time to propagate). Etc etc.

    So, I'm a bit puzzled as to what you think needs to be developed. It looks like we have distributed computing already.

    This is like saying we have software already. Look, my hard disk's full of the stuff! Why do you think this means there is no room for improvement?

    You and me.. what does that mean?
    Always.. what does that mean?