Basics of cross-platform software

I was looking for days at “crossplatform installer tools " suggestion in my Skribit widget. Thinking how should I spin it – despite well accepted poking Ubuntu post this blog is still about Windows software.

Let’s start with basics:

  • why software doesn’t easily work on all operating systems;
  • what software does work on numerous operating systems.



Operating system incompatibilities

Operating systems are used for same tasks and may even look similar but they are very different inside:

  • kernels (core part of OS) are different;
  • graphical interfaces are different;
  • file systems (the way files are stored on hard drives) are different;
  • software installation and distribution methods are different.

So it’s extremely unlikely that software written for one OS would simply run on another.

Cross-platform software

  • Software that has versions for different platforms.
    Some developers don’t limit themselves to single platform. In case of open source even if original developer is not interested others can port application to another OS.
  • Online services.
    It’s common sense but plenty of people miss that any major OS has browser and online services are working exactly same way everywhere. They simply don’t care about OS as long as it has browser supporting common web technology (mostly JavaScript and/or Flash).
  • Software that runs on top of framework. Applications coded for specific framework would often work on any OS that has that framework installed. Common examples are Java and Adobe AIR .
  • Compatibility layers and virtualization.
    Even if software completely incompatible with specific OS it can be tricked into running on it. This requires either special software that would make it all look as compatible OS (best example is WINE project that makes Windows software run under Linux) or creating virtual machines running copy of needed OS (see my post on VirtualBox ).

How to prepare

So if you want to check out another OS or even migrate to it:

  1. Make list of all software you are currently using.
  2. Check with developer sites and cross out those that have needed cross-platform version.
  3. Add to the list functions that remaining software performs.
  4. Look up alternatives and cross out those that fulfill your needs.
  5. Look for posts that suggest sets of applications when moving to specific OS.
  6. If you still have items left on the list - look into virtualization or dig deeper into research.

Had you tried wandering out of comfortable Windows zone? How easy is it for you to adapt for software on other platform?

Related Posts