Russian Phantom OS Never Dies

Creating a new operating system isn’t an easy task. Even if you have dozens, hundreds of people, it may still take years. And even if you do get some code out there, chances are no one will really give a flying monkey butt, and your hard work will wither away in irrelevance. You really need something unique in order to stand out and be noticed, and Dmitry Zavalishin claims he has that something: his Phantom OS never dies.

Phantom OS has a mechanism that allows it to never really die; applications running on Phantom OS never lose their state, even when the machine is turned off – turn the machine back on and they will simply pick up where they left off. This may sound an awful lot like suspend-to-disk and suspend-to-RAM, and in a way, it actually does.

Phantom OS’ persistence is achieved by continuously making snapshots of the memory contents and writing those snapshots to disk, much in the same way suspend-to-disk works – but then all the time. In case you’re thinking this is a bad idea, then you’re not alone. My first response was that this would have to be a major strain on system resources, since you’d have constant disk activity, and applications freezing up because their memory contents are saying cheese for a snapshot. Zavalishin claims, however, that if you design your operating system and programming model around this concept, performance stops being an issue. One of the key things Phantom does differently is that it does away with the concept of files. As the El Reg article explains:

Because of this different line of thinking, Phantom doesn’t have files. Well, there are no files in the sense that a developer opens a file handle, writes to it, and closes the file handle. From the user’s perspective, things still look familiar – a desktop, directories, and file icons. But a file in Phantom is simply an object whose state is persisted. You don’t have to explicitly open it. As long as your program has some kind of reference to that object, all you need to do is call methods on it, and the data is there as you would expect.

The next question probably up there in your mind right now is whether or not you have to re-write all your code to actually make use of this fancy persistence thing. According to Zavalishin, you actually don’t have to, thanks to VM languages like Java and c#. Unaltered code should run fine as long as it doesn’t do a whole lot of disk i/o, and in order to take full advantage of persistence, you only need to make small changes to your code.

While this all sounds very promising, the truth of the matter is that persistence isn’t exactly something new in the field of operating systems. There are several operating systems out there that try to achieve the same goal. I also recall Unununium to have a form of persistence, but their website is down so I’m unable to verify.

Despite the fact his ideas aren’t new, Zavalishin is quite confident his project has a chance of making some serious ripples across the pond, despite the project still being in development and “only” having a CLI interface (so no GUI). He is particularly keen on emphasising that Phantom is not Linux. “You can not compete with Windows, repeating it,” Zavalishin says, “It is impossible to compete with Windows, creating a functionally weaker system, such as Linux.”

Sadly, I’m unable to find anything like a website or something similar for the project, leaving me wondering how serious this actually all is. Here we go. Still, that doesn’t negate the fact that some interesting ideas are being thrown around, and it certainly is a topic that should create some interesting debate.


  1. 2009-02-03 2:22 pm
    • 2009-02-03 2:23 pm
      • 2009-02-03 2:36 pm
      • 2009-02-03 2:39 pm
    • 2009-02-03 3:14 pm
  • 2009-02-03 2:29 pm
  • 2009-02-03 2:43 pm
  • 2009-02-03 2:53 pm
  • 2009-02-03 3:07 pm
  • 2009-02-03 3:07 pm
  • 2009-02-03 3:14 pm
    • 2009-02-03 5:02 pm
      • 2009-02-04 1:37 am
      • 2009-02-04 8:51 am
  • 2009-02-03 3:43 pm
  • 2009-02-03 4:26 pm
    • 2009-02-03 4:47 pm
  • 2009-02-03 5:02 pm
    • 2009-02-03 6:18 pm
      • 2009-02-03 8:15 pm
    • 2009-02-03 6:57 pm
  • 2009-02-03 6:11 pm
  • 2009-02-03 8:31 pm
  • 2009-02-03 9:20 pm
  • 2009-02-04 12:07 am
  • 2009-02-04 1:35 am
  • 2009-02-04 2:31 am
  • 2009-02-04 2:54 am
    • 2009-02-04 8:29 am
  • 2009-02-04 8:15 am
    • 2009-02-05 7:37 pm
  • 2009-02-04 10:47 pm
  • 2009-02-06 2:48 pm