The best free cross-platform software
12th Feb 2011 | 12:00
Apps you can use on Linux, Windows and OS X
Windows on Linux
One of the buzzwords that's kept the IT department on its toes since there have been multiple OSes is interoperability. Despite all the talk of standardised formats, when it comes to switching platforms, taking files and data and then getting them to render properly on a different OS leaves room for improvement.
Don't sweat, though. Once again, Linux and open source software has risen to the challenge. From connecting to servers running proprietary collaboration suites to powering devices with non-native Linux drivers, it's got all the bases covered.
If you really want to juggle between OSes seamlessly, though, what you need are apps that run across various platforms and store data in formats that allow for easier importing and exporting. This is where web apps outshine their offline cousins.
By design, they're platform agnostic, and offer a consistent interface irrespective of OS. So whether you're at work or home, here's all you need to know to remain omnipresent across OSes.
Windows on Linux
Proprietary programs and OSes are an inconvenient fact of life, but they're not going away soon. Here's how to live with them
Proprietary programs and OSes are an inconvenient fact of life, but they're not going away soon. Here's how to live with them.
Like it or not, there's a lot of proprietary software floating all around us. Be it blobs of code that power cheap USB webcams or enterprise-grade collaboration suites, it comes in all shapes and sizes.
It might cost you nothing or a small fortune, but either way the most puritanical advocates of free and open source software would want nothing to do with it. However, not all of us can afford to cherish the luxury of exclusivity, especially with a looming deadline and a stubborn system administrator who swears by Windows.
Enterprise settings aside, there's a lot of proprietary software even in places you think you control. Your home computer probably came equipped with a proprietary OS, while your school, college or university might require you to install a bunch of closed source apps as well. Don't forget that cheap dictaphone, exotic pen tablet or the popular first-person shooter your mates are all crazy about either.
Installing Windows drivers in Linux
The good news is that more and more device manufacturers are releasing their devices with Linux drivers, or at least make the specifications available to the open source community to let it have a go at making the devices work on Linux.
Some even offer up a bounty for writing device drivers. Thanks to this approach, Microsoft's motion-sensing Kinect peripheral now connects to, and works with, a Linux machine.
COMPATIBILITY:Is your hardware compatible with a Linux machine? To find out, head over to www.linux-drivers.org
What if you're stuck with unsupported hardware, though? Well, if it's a network card – either USB, PCI or PCMCIA – without native Linux drivers, all is not lost. The NdisWrapper project produces a module that creates a Windows kernel API and an NDIS API within the Linux kernel, which a Windows only device can connect to.
In addition to loads of wireless cards, NdisWrapper works with all sorts of networking gear. The project maintains a list of devices that work with NdisWrapper at sourceforge.
NdisWrapper is available in the software repositories of all major distros. Although the tool is command-line based, there are several GUIs available as well, such as ndisgtk. Besides the software, you'll also need the proprietary drivers for your cards.
Also check out the Madwifi project, which produces Linux kernel drivers for wireless LAN devices with Atheros chipsets. To assist you with the job, distros such as SimplyMepis come bundled with NdisWrapper and several popular proprietary drivers.
Hardware and software on Linux
When it comes to buying new hardware for your Linux machine, there are an increasing number of devices on the shelves that either work on Linux as soon as you plug them in, or come bundled with Linux drivers, whether those are proprietary or free.
If you dig a little, though, you'll save yourself a lot of time trying to get your shiny new device to work with Linux. When you shortlist a device, get an opinion on its Linux-friendliness from your distro's hardware forum or IRC channel.
DRIVER SUPPORT:Most mainstream distributions include a GUI to install Windows drivers
Most major distros also maintain a detailed list of compatible hardware, such as the one on the Ubuntu wiki. Canonical also maintains a list of laptops, desktops, servers and netbooks that are certified to run Ubuntu.
Running Windows apps on Linux
The next stepping stone in Windows-Linux interoperability is getting Windows applications to run on Linux. Sure, there's no dearth of quality open source apps that outshine proprietary equivalents, but forget the alternatives list for the moment.
There's a range of software that hasn't been ported to Linux, including heavily tuned accounting apps, small customised ones, common office programs and the latest games.
While it's convenient to turn a blind eye towards such software and stick to our open source equivalents, it isn't always practical. Neither is it feasible to purchase a complete operating system just to run a handful of apps.
Fortunately, there's the excellent Wine project, which is primarily developed to run Windows programs in Linux, but also runs on OS X. Wine supports over 15,000 Windows apps, including all genres of games, educational software, multimedia apps, office suites and so on.
WINDOWS APPS:PlayOnLinux installs each program within its own environment
A large number of the supported apps run flawlessly out of the box, but some require a few special tweaks. There are also several projects to assist you in getting the most out of Wine.
There's PlayOnLinux, which eases the installation of Windows apps, primarily games, with its specially tweaked set of scripts. Then there's the Bordeaux GUI configuration manager, a commercial implementation of the Wine project that aims to make the whole process of installing Windows apps easier.
There's another proprietary version of Wine called CrossOver Linux that's specially tuned for running Windows office apps on Linux and Mac too. It's available from CodeWeavers and comes with both user-friendly configuration tools and commercial support.
Finally, TransGaming produces a version of Wine tuned to playing Windows games called Cedega, so there's no shortage of ways of getting that must-have app to work on Linux.
Disk space and sharing
Want to run multiple OSes on the same machine? Well, before you can multi-boot your computer, you need to divide the disk up to make room for the new OS.
The process doesn't sound easy, and depending on the default layout of the disk, might be more cumbersome than you can imagine.
WARNING: GParted can be unforgiving if taken lightly
Thankfully, the brilliant GParted can help. It enables you to manipulate partitions in over a dozen formats, be that resizing and creating a Linux ext3 partition from the HFS+ partition on an Intel-based Mac, or altering an NTFS drive segment.
GParted is a GUI wrapper to the GNU Parted tool. It's available in almost every distro's repository and as a live CD – handy for operations on partitions without mounting them. It can create partitions as well as grow and shrink existing ones. Not all operations can be done on all partition types, though. For instance, GParted can't yet expand HFS+ partitions, although it can shrink them.
The program's also useful when you have to move or copy partitions between disks. Note that on Linux you'll need the hfsprogs module to manipulate HFS+ partitions, and that NTFS ones require the ntfsprogs module.As an alternative to GParted, check out the proprietary and paid-for Paragon Partition Manager.
Control remote desktops
One of an admin's best tricks is the ability to access desktops remotely. There are lots of tools out there that enable users to share their desktops, but setting one up can be quite a task.
TeamViewer is the no-brainer solution. It's free for non-commercial use, and works on Linux, Mac OS X and Windows. Just grab and install the binary for your platform. Although it's proprietary, TeamViewer shields users from the learning curve involved in establishing remote connections.
REMOTE ACCESS:TeamViewer shields you from the murky task of establishing remote connections
When launched, the TeamViewer client gives you a unique, password-protected session ID. Pass this to whoever you want to control your desktop, or use a received one to gain control of another machine; connections are encrypted and encoded.
You can also use the Presentation option to share desktops without the ability to control them. TeamViewer can copy files to and from the remote desktops too.
What's more, there are options to create a template for custom invites, set a permanent password for unattended access, create a blacklist of users and customise access control settings, such as disabling file transfers.
Taking your files from one OS to another isn't such a hassle if you multi-boot, as long as the files are resident on the same disk. However, it can be quite a tricky task if you switch between different machines.
What you need in the latter instance is the convenience of an online sharing service, and there are lots to choose from, each with pros and cons.
Newer versions of Ubuntu come equipped with clients for the Ubuntu One service, for example, but there are no clients for OS X users. The popular Dropbox service, meanwhile, has clients for Mac, Windows, Linux and mobile devices, but limits you to a single directory for backups and synchronisation.
If you need a service that has a consistent interface across platforms and enables you to back up any file or folder, then SpiderOak is worth a look. It offers the usual 2GB of free space, with paid-for plans for heavier data use, but it's more than just an online storage service.
STORAGE: You can share documents via a personal SpiderOak ShareRoom URL. Handy.
With the service, you can share files with others via virtual isolated silos. Users can subscribe to these silos via RSS, which keeps them updated of any new file additions.
The paranoid will appreciate SpiderOak's security mechanism too. When you install the client and register for the service, the SpiderOak installer generates encryption keys, which it then uses to encrypt your data before transmission. This means that whatever you store really is for your eyes only.
SpiderOak's interface has five tabs. When you're ready to back up, head to the Backup tab, and select the files or directories that you want to back up. Switch to the Advanced view to fine-tune your file selection. When you're done, click on the Save Settings button.
Since the files on your SpiderOak account and your disk are out of sync, the client automatically starts the backing up process. Now head to the Status tab to keep an eye on the status of the upload.
Brilliantly, SpiderOak even keeps track of changes to the files using version control with a date stamp. This enables you to roll back to previous versions of a file, which are kept on the server unless you explicitly ask SpiderOak to remove them from the network.
What's the one program that nearly everyone shuttles between, even if they don't juggle OSes? That's right, the omnipresent web browser.
Sure, there might be just a handful of these programs and most run on several different operating systems, but if you often switch from Internet Explorer to Safari to Google Chrome, you need a convenient method to take your bookmarks with you.
Every browser has the option to export and import bookmarks, but it can be a cumbersome process if you shuttle back and forth between machines. What if, for instance, you need to read that review of 24-hour decongestant nasal sprays you found and bookmarked in your work browser when it's the middle of the night?
That's when you need the seamless synchronising abilities of Xmarks. This nifty little browser extension works on Internet Explorer, Safari, Firefox (as well as its IceWeasel cousin) and Google Chrome, and syncs bookmarks across Windows, Linux and OS X.
BOOKMARKS:Xmarks lets you encrypt the uploaded bookmarks, and protects your passwords with a secret PIN
In addition to bookmarks, which you can also access online, the extension syncs passwords and open tabs. There are even some neat browser-specific features on offer here. This means that if you're using Firefox, you can sync your history across platforms, or you can access your Safari bookmarks on the iPhone.
The best thing about Xmarks is that it can be set up to sync automatically at regular intervals. You can also create different profiles – handy, for example, if you want to separate your work intranet bookmarks from the 'lolz hamster videos' bookmarks you keep on your home machine.
As well as helping you synchronise bookmarks, the Xmarks extension even enhances your browsing experience. It enables you to rate and review the sites you're visiting, and helps you discover similar ones.
Web services may be platform agnostic, but if you want to consolidate them all, you need a desktop client. There's no shortage of ones that support the most popular web services and work across multiple platforms.
For example, there's TweetDeck, which relies on Adobe's Air to give a consistent environment across Linux, Mac, and Windows.
If you want something that works across platforms and is open source, there's the StatusNet Desktop client, but it only supports StatusNet installations such as Identica.
If you don't want to go near Air, but are keen to use something that gives a consistent user experience across platforms, try Yoono. It supports all the popular social networking services, such as Twitter, Facebook, LinkedIn, Flickr and YouTube, as well as instant messaging services, including AIM, Gtalk and Yahoo Chat.
CONNECTED:Yoono's desktop client offers a lot of functionality in a form that's consistent across OSes
The client's interface is divided into columns, which can be customised to display whichever stream you prefer, in whichever order. There's also a mini browser that displays links in your stream without stepping out of the client. You can even share pages open in the mini browser, or elements inside those pages, such as images, and text.
Besides the desktop client, Yoono works on both the iPhone, iPad, and as an extension for Firefox, and Chrome. You can even configure it to use upload services such as Twitpic and Drop.io to complement your social networking experience. By default, Yoono alerts you of updates to any networks you're subscribed to via pop-ups.
Software for power users
Want to deploy a web app, but don't want to spend hours setting up servers to deploy that software?
Take a look at BitNami. The project produces ready-to-use stacks of popular web apps, such as Drupal, Joomla, Moodle, phpBB, Trac, Redmine, SugarCRM, Subversion, WordPress and more.
DEVELOPING:Bitnami stacks are also available in a virtual machine
All the BitNami stacks can be deployed on Linux and Windows, as well as Intel- and PPC-based Macs. BitNami stacks are different from native installers, in that they come equipped with their own servers, software and libraries so as to not interfere with the ones installed on your system.
For example, a WordPress stack will have the WordPress web app, and also the MySQL database to manage data, Apache to serve the pages, and phpMyAdmin to administer MySQL.
All BitNami stacks have a BIN extension and a similar installation procedure. Typically, you should make the stack executable with:
chmod 755 foo-bar-stack.bin
Now run it using the following:
This will launch its graphical installer. The installer will prompt you to select the components you want in addition to the web app itself. After installation you can manage stacks with the ctlscript file inside their respective installation directories.
The following will start the various services and the CMS:
Stop them with:
If you've used 127.0.0.1 as the hostname, you can access the CMS by pointing your browser to http://127.0.0.1:8080, where 8080 is the default Apache port.
To run multiple stacks, run their servers on different ports. You could have WordPress on http://127.0.0.1:8080 and Drupal on http://127.0.0.1:8081, for example. The MySQL port (by default 3306) isn't part of the URL, but is used by the CMS to store and retrieve information from the database.
In addition to the various web apps, BitNami also releases infrastructure stacks that bundle the building blocks of a web server. These are useful for testing and deploying your own Web apps. There's a Ruby stack (Ruby, Rails, MySQL, Subversion) for Linux and Windows, and the LAMP, WAMP, and MAMP stacks ( Apache, MySQL, PHP, phpMyAdmin) for Linux, Windows and Mac respectively.
Liked this? Then check out The best Linux distros you've never heard of
Sign up for TechRadar's free Weird Week in Tech newsletter
Get the oddest tech stories of the week, plus the most popular news and reviews delivered straight to your inbox. Sign up at http://www.techradar.com/register