Submitted by Robert Szeleney on Tue, 2006-12-05 16:02.

BranchFS is a new virtual filesystem for SkyOS.

The main purposes for BranchFS are:

  • Make it possible to create a branch of an entire filesystem. This means that right after branching the filesystem all filesystem modifications are reversible to the previous state. This can especially be interesting when updating your system with drivers or other critical components, or if you want to install a few applications and make sure that you can revert your system to a working state.
  • LiveCD
    By branching the read-only ISO9660 LiveCD filesystem, one can immediately convert a read only medium to a full read-write system, branching future the modifications on volatile (Ramdisk) or non-volatile devices (harddisk, USB drive, …)
  • Attributes
    Using BranchFS alien filesystem "magically" get full SkyFS attribute style support. This makes it possible to use all filesystem with the IndexFeeder, meaning, the entire filesystem content can be indexed

A reversible system

At anytime you can branch your system. By pressing a hotkey (CTRL+ALT+F12) a little window will appear on the desktop telling you that the system will get branched on the next reboot. (The actual branching just takes a few seconds)


If the branch device is a volatile device like a ramdisk, all modifications from now on will be lost on reboot.
On an non-volatile branch device all modifications are permanent until you manually revert (CTRL+ALT+F11) your system. After reverting your system will be in the exact state it has been in before branching.

The proof-of-concept phase of BranchFS/ Reversible-System has successfully finished and developing is progressing rapidly.

Branching a LiveCD to an USB disk

Imagine following situation:

You have a LiveCD and two USB sticks.
By branching the LiveCD to an USB stick right after booting the LiveCD you can make any modification to your system, meaning the LiveCD magically converted into a full modifiable read/write device. For instance, you can update the system, compile applications or configure the system as you desire.

If you reboot your computer, but this time with the other USB stick plugged in, you have a immediately a fresh system, and you can make different configurations to it.

You can now switch between the two modified systems by just switching the USB stick and rebooting.

To conclude, you have a LiveCD with around 600MB of data.
- USB Stick 1 contains a branch for lets say a game setup. (~30MB after configuration on installation of Quake II)
- USB Stick 2 contains a full development suite and source code for your project. (~20MB).

So with just two 32MB USB sticks you have two full dedicated installations, one configured for playing and one configured for developing. No changes to the game system can interference with your development configuration.

How to make a branch
Making a branch is a rather easy operation, you just specify the filesystem you want to branch (you can branch any filesystem, be it SkyFS, ISO9660 or any other physical filesystem), you select a device which will hold the filesystem differences (ramdisk, partition, USB device, …) and activate ‘Branching’ via a hotkey. Immediately after activating ‘Branching’ you can make any modification your desire, knowing that you always can revert to the state your system has been in right before activating ‘Branching’.

BranchFS makes it possible to make a reversible filesystem. By using your system partition you can revert to a previous state (with just one reboot) and and when using a CD BranchFS makes it possible to make changes to the content.
BranchFS is still in heavy development but branching a LiveCD works quite well already. The first SkyOS LiveCD will be based on BranchFS.

Furthermore, BranchFS is designed to be well intergrated into the system, meaning there is no manual configuration required expect specifing the device you want to branch to. (using a system manager plugin)
(This is well intended and there are no plans to allow for complex manual configuration as you can do with other similar filesystems.)

In this screenshot you can see the two physical branch filesystems (/dev/cd0 which is a read-only CDROM and /dev/hd0a containing the modifications. These folders are hidden normally)


QIyxeVY ujpfzg


uzyVwmrP HhCzSOpr


BranchFS is a new virtual filesystem for SkyOS. It gives better result but old version is causing some trouble. If you update latest version it will bring good result. You can do it recently.
Chair Guide

Hi, Please Show me live


Please Show me live CD...

Austin Home Builder

Cheap web site hosting

Cheap web site hosting proton Convectional


vqfnRqG lXmZMVu


a LiveCD and two USB sticks. thats good
scan tool


all file system modifications are reversible to the previous state
scan tool


i need the liveCD

I need liveCD

I need liveCD


Sono italiano e sto raccogliendo su Internet diversi sistemi operativi innovativi§: sceglierò il migliore.

A presto

I need the liveCD

I want to inspect whether SkyOS moves with a PC of DELL which I use.


the free livecd is not available yet


LiveCD, FTW!! :)

Nicely played, Robert. :)



This is a bit like taking snapshots, right ?

Does it duplicate the files at branching ?

If I branch, say 4 times, will there be a simple interface that let us choose between the branch 1/branch2/branch3/branch4 that are on my HD ? ?

Or will we just have the choice to restore the system before the last branch ?

...with this...we are able to save a stable 'n fast configuration of our system... ^_^

This is cool! Is it based on

This is cool! Is it based on another codebase?

Very Nice

I really like this bit. I have a tendency to kill my SkyOS installs accidentally, so I'm definitely going to branch right after I install.
Is it possible to boot directly a branch in your system, or do you have to use the Ctrl+Alt+F11?

Merge back in?

So, after a branch, can you merge those changes back into the original filesystem? I would assume not on read-only filesystems or devices, but perhaps with a SkyFS filesystem or a similar writable filesystem?

I'm guessing you're storing a journal of all the changes made by the VFS according to that branched partition, and storing that journal on the "branch device". Does this introduce scalability concerns based on the number of changes? i.e. will the cost of the initialization of the branch on boot be proportional to the amount of changes made?

After going to you site to

After going to you site to try to
make sense of this, I found that it costs $30 to try the beta
version. Well anyway, I don't know what he did but the computer
only boots up to the "Gateway" screen and won't let me change bios
or other adjustments. If you can help me media assignment
fix this I would appreciate it. If I need to pay for a $30 beta installation I would do that because I see what he found to be so nice about your
SkyOS. I believe it could possibly give Microsoft a run for the money. I have windows xp and Suse linux on the physics assignment broken computer.
Please reply to me at the email address: Please include information on getting also a copy of your newest version, so that I may install psychology assignment it where my poor grandson tried to install it. He feels awful about this. Live and learn.

No, its not based on another

No, its not based on another codebase which anyway would be almost impossible because such a filesystem has to be exactely designed for the VFS of the OS itself.

Yes, its similar to taking

Yes, its similar to taking snapshot, but the purpose of BranchFS is not that you can revert to any previous snapshot. Main usage is that you know you are going to make something dangerous now and you know that you will definitely revert right after trying this.
So, once you tried the "dangerous" thing you just revert and all changes will be lost.