Server Based OS

20 May 2014

As my inaugral post I thought I'd write a little bit about an idea I've been toying around with today. It is quite possible that the following idea has been implemented in part or completely and I'm unaware of it, in which case I'd be very interested to learn more.

I just got a new (used) laptop, and set it up with the latest Linux Mint. I also have Mint installed on my desktop, and I would like to sync the two. Not just the files (I have already achieved this through Dropbox), but the programs, configurations, and everything else. There is no reason for me to maintain two different systems on my two computers, I would have them completely synced.

Of course, this is not entirely true. Obviously the computers need different drivers. But I also have two monitors hooked up to my desktop, and only one on my laptop. The desktop has a little more RAM. There are programs (for example some games) that I definitely do not need on my laptop. But I want the preferences I set on say, Gedit on my desktop to be the same as on my laptop. And I definitely don't want Gedit on one machine and Pluma on the other (thanks, MATE).

Here's the system I want: I set up an OS, system preferences, applications and files, on a private server. No more syncing by entrusting all my data to Dropbox or any other third party (though I'd still use such services for other purposes). Then I set up several different profiles (think user profiles of the type modern OSs have) and indicate which applications I want to be installed in each, and which configurations I want to apply to each. Some configurations will be global, some specific to certain profiles. Right now I could personally use a desktop profile, a laptop profile, and a smartphone profile. Well, I wouldn't currently know how to (or want to) install Mint on my phone, but eventually this might extend to phones and other smart devices, if the OS is sufficiently flexible.

When I have a device (say, a new laptop), I select the profile I want to install on the device. This could be an old profile, or it could be a new one I created just for the new device. I should be able to tell whether the configuration profile will work with the hardware of the device (e.g. nothing requiring two screens for my laptop), and ideally the necessary changes might be made automatically. So far this doesn't sound very different from the type of server installation that has existed for a long time.

But after installation, if I install a program on my laptop, I should be able to install it to the global profile, which would cause it to be installed on my other devices. Programs that I want on all my devices are installed simultaneously and kept in sync. Furthermore, if my laptop dies, I still have a copy of the configuration on the server, so I can easily install when I get another laptop.

I'm going to try to look into whether the type of system I'm describing already exists, and I'll update with what I find. I'm fairly sure all the pieces are around, between server installation, backup software, and synchronization software. I'm not sure there's anything that pulls it all together.

comments powered by Disqus