Since I discovered Linux and open source software in general, I’ve been wanting to get to grips with it. Really learn it. So I wrote myself a road-map, a step-by-step lifestyle that would eventually get me where I want to be.
You don’t have to follow this advice. It’s mine. I’m only really putting it up because I had to do all this without the benefit of a University education, funding, or even much spare time, and thought it might help somebody in the same boat…
Stage 1 – Scope it Out
A great place to start is Wikipedia and Google. Simple searches like UNIX, Linux, GNU, Open Source, Free Software, and all the links those pages will bring will teach you enough to get started.
Watch the movie Revolution OS – it’s available all over the web. It’s a documentary looking at the rise of GNU and Linux round the world, interviewing some of the main characters involved in the development of the Free Software and Open Source movements. It’s a great introduction.
Watch a few tutorials on YouTube of open source software. Just type, for instance Blender and watch a few demos and tutorials.
Stage 2 – Dip Your Toes
The world of Open Source software is vast and varied. If you’re used to using Internet Explorer for your browser, try out Firefox. You might like it, you might hate it. Download and install other software. GIMP, Inkscape, MyPaint, Blender and Pencil for graphic stuff. OpenOffice and LibreOffice instead of Microsoft Office. Try using VLC for watching DVD’s. Like making music? Give MuseScore, LMMS, Audacity and Traverso a whirl.
Check some of the amazing educational software like Celestia and Stellarium
There’s also tons of other software. Look round Sourceforge. Can any of this stuff replace your everyday software? If so, that’s groovy. You can move onto the next stage. If not, before you simply say “That’s rubbish, never again!” please think about what it is exactly that it lacks.
GIMP, for example, has limitations that make it useless for certain professional photographers. So most simply go back to Adobe’s Creative Suite. Now, Adobe sells it’s CS for between hundreds and thousands of pounds. If, say, a collective of one hundred photographers (who would otherwise have paid £500 for Photoshop) put their money together (making £50,000!) and hired a developer, they could have a GIMP plug-in or fork ready in a few months. That’s the beauty of open source.
Sadly, most users fail to see this amazing advantage, and would happily fork over thousands of pounds for the license of a software title with the same feature they could have had created for now and all future users of the software, for the same money. Sad, really.
Stage 3 – Go Paddling
So, assuming you’re happy with the amazing range of open source free software out there, it’s time to start taking a look at a GNU/Linux system itself. You’ll need a stack of blank CD’s and DVD’s.
What you’re looking for is an ISO file. This is simply an exact copy of what goes on a CD or DVD. Most burning software can handle turning an ISO file into a real CD. Just make sure you’re burning an image, not just burning the ISO file onto a CD as ordinary data. You’ll know it’s worked because when you look at the contents of the CD it will have loads of stuff on it. If the contents of the CD is a single ISO file, you did it wrong!
You will need to pick the CD that is right for your PC. If you have a 32-bit system, don’t pick a 64-bit version (although it works the other way, so if you’re not sure, choose a 32-bit).
You will be running these straight from the CD. Nothing of your computer will be changed or broken. If you’ve ever used a Windows Recovery Disk, you’ll be fine. Once the CD is burned, leave it in the drive and reboot the PC. On reboot, you should be in Linux. If not, you might have to choose in the BIOS or boot menu to boot from CD first.
Some live distros to try out: Knoppix, the daddy of them all. Puppy and DSL for if your computer is a dinosaur. Check out Slax, and Fedora Desktop. The various Ubuntu flavours, like Lubuntu, Xubuntu and Kubuntu all have live CD’s. All the Linux Mints.
Running a computer from a CD or DVD is a bit slower than running from a HD install (except for Puppy and DSL!) but even so, just playing around with all the different liveCD’s will give you a good idea of what to expect from GNU/Linux. Surf the web, try out all the menus. You can’t break anything because it will all disappear when you shut down the PC. Windows will boot back when there’s no CD in the drive.
Stage 5 – Soft Install
Okay, so you’ve been messing with your live CD’s, trying them all out. It’s a confusing and complicated universe, isn’t it! Now you’ve seen the variety out there, it’s time to settle on one variety and get a bit used to it. If you’re not entirely sure if you really want to have Linux as your main OS, you can Wubi it. A Wubi-based distribution is a flavour of Linux that you install on Windows as a program. You don’t need to partition your disks, or worry about ruining your Windows intallation. It’s all fine! Linux Mint has the same thing, it’s called Mint4Win and comes on the install DVD.
You install the distro like any other Windows program, and reboot your PC. When your PC starts, it will give you the option to boot into Linux or Windows. If you choose Linux, it takes it all from the installation on the Windows disk. If you need to un-install it later, it’s as simple as un-installing any piece of software. Magic, eh? Again, because it’s Open Source, anything that can be done, usually will!
So you now have the option to take Linux for a whirl. Get used to how it works, how software is installed, and whether it works on your hardware or not.
Stage 6 – Install Proper
It’s time to take the plunge and install the OS. If you have Windows on your machine, you can dual boot it. Start by defragmenting your Windows drives. Insert your Linux Mint DVD and reboot the PC into Linux. Click the “Install Linux Mint” icon, and you’re away.
If you need to keep your Windows installation, you will choose the Guided Installation that automatically resizes and partitions the hard disk for you. When it’s done installing, take out the DVD and boot to Windows. Windows might be shocked and confused at the resize so it might take a minute to check it’s data. Once it seems fine, you can boot into Linux. You can choose Windows or Linux when you start the PC up.
If the PC has no operating system, or you really want to get rid of your Windows, choose the Use Entire Disk option. You now have a bona fide Linux box!
Work with it every day you can. Read around the forums. Try out a few simple command line things, like wandering around directories, or installing software.
Stage 7 – Distro Hopping
This simply means trying one Distribution of Linux out after another, until you’ve seen a few. For my purposes, I don’t want to learn everything, just enough to make me feel as confident with my Linux Mint as I do with my Windows. To distro-hop properly, try each one out for at least a week (rather than a day or hour or two), if you possibly can.
Linux Mint itself has some nice flavours to start with. They have a KDE version, an LXDE version, Xfce, and a “GNOME” version which these days is really just Mate and Cinnamon. They also have a version based on Debian proper, which is for slightly more advanced users. Try it anyway, what the heck. You can always install something else over the top of it…
The main releases of Linux Mint are based around a distribution called Ubuntu. Ubuntu comes from space-tourist billionaire Mark Shuttleworth’s company, Canonical. It comes in a few desktop flavours, like Kubuntu, Lubuntu, Xubuntu, Edubuntu, and so on. Pick one to “live in” for a while. Ubuntu takes a little more time to set up right, but that extra knowledge is valuable, so worth it if you want to learn. Ubuntu’s tagline is “Linux for Human Beings” so don’t use it if you’re a basket stinkhorn, hyrax or marshmallow plant. Otherwise, hit the forums and FAQ’s…
Onto Debian. Ubuntu takes most of it’s stuff from the Debian distribution. In fact, there’s a bit of a joke going around the Internet that Ubuntu is an African word meaning “Can’t configure Debian” That’ll give you a little glimpse of the world you’re about to enter.
A word of caution: The Mint and Ubuntu forums are filled with a different kind of people, doing different things than the Debian people. Debian is for experienced users, and users should fill their heads with forums, FAQ’s and man pages before they even think about posting. If all else fails, Debian forum members are very friendly, and always keen to point you in a learning direction if you don’t know where to begin. Get their “Stable” version to start off with.
Stage 8 – Dig Deeper Down into Debian
It’s easy enough to use an operating system when it’s full of graphical settings management and tools. But are you learning enough about the insides? Linux user settings from boot-up to desktop environments are mainly held in text files. Learning to set these up manually from the command line will give you a massive boost to your Linux confidence, and you’ll know what to do if something goes nasty with your settings.
For your first step, I recommend a Debian Netinst CD. If you have a blank PC to play with it really helps. All that gets installed are the GNU userland, the Linux kernel, and the apt-get command. From there, you go superuser (su), then apt-get install anything you want. I recommend learning the Vi editor, just to say you can. Mutt email works seamlessly with Gmail after a bit of Googling, so give that a go. Midnight Commander (mc) for file management, the Lynx browser, MP3 players, and even a command-line ASCII-art movie player can be found. The trick is to give yourself a good grounding in commandline-land before you install X. What’s the most you can do without needing a mouse or windowing system?
Once you’re sufficiently sick of a text-screen, you can apt-get install X, Fluxbox Xterm and Leafpad, the Worker file manager (I love it!) and any of the other stuff you use, like LibreOffice, GIMP and Firefox. The startx command can be replaced with a display/login manager when you get the hang of customising your desktop…
To get a modern experience out of an ancient laptop I own, I used Debian Netinst, with TinyWM so I could fit Chromium and Thunderbird. Seamless Youtube on 128Mb RAM? Yeah…
The other great thing about a Debian Netinst build is that you can take your time, adding little bits once you’ve got the hang of the last. Get the hang of command line, then install X. Get the hang of configuring and starting software from the command line, and then install a window manager. Try a few different window managers out, and learn to configure your favourite. Do the same with desktops, file managers, and all the other stuff you use. Add a bit, learn it, configure it, add a bit more.
Stage 9 – Compile Programs from Source!
No, you don’t have to be a programmer – that’s been done for you! You just need to learn to run a few simple commands, and get to grips with why it’s done like that. Google for “Linux GCC Hello World” or “compile C beginner linux” and try it out.
You can do this from a terminal window in Linux Mint, or in your command line environment. Take a piece of software (I like BeebEm and SmillaEnlarger), grab the source code, and make it into an application. Most of the time there will be simple install instructions on the developers’ website, even if they’re weird and complicated-looking – the instructions, that is, not the developers (who invariably will be) – doing the steps one by one will result in working software.
For a few distros like Arch and Gentoo, this is the normal way to install software. If installing from source feels okay so far, it might be time to try one of these out. If any time you have any problems, remember there are countless forums, mailing lists and documentation to help you.
Stage 10 – Compile Linux from Source!
Yes, it can be done. The Linux from Scratch distro isn’t really a distro. It’s more of a book.
80’s 8-bit micros used to have software you could buy in a book and type it all in yourself, save to tape, and you’d have an adventure game! This is in the same spirit, I think. Except you’re just compiling, not actually programming, and the book is online, as is all the source code you require.
At the end of a few days of headaches, palpitations, agony, and ecstasy, you’ll have the equivalent of a Debian Netinst. Just Linux and the GNU basics. Beyond LFS will expand that, helping you compile all the extra bits and bobs you might want on your machine. You could never learn Microsoft Windows this well!
Another great thing about an LFS install is that every component has been compiled specifically for your system. You don’t need all the extra compatibility stuff that goes into a normal distro’s CD or DVD.
Stage 11 – More Distro-Hopping
Debian is the largest community distro out of the Big Three “Godfather” distros (Debian, Red Hat, and Slackware – most of the others are based on these). The largest commercial distro is Red Hat. If anyone has any doubts that money can be made from Free Software, they should take a look at Red Hat’s one billion dollars worth. Fedora is Red Hat’s community release, and CentOS is a free Linux system that aims to work like Red Hat. If you’re learning Red Hat for college or work, having CentOS on your own PC will help.
Another commercial distro, if you happen to be wandering into the Linux support world, is SUSE, is run by Novell. OpenSUSE is the community edition. It uses the same package manager as Redhat (the RPM), so you’ll be at home if you’ve used Fedora. SUSE is the oldest commercial distro (1993 – about ten years before the first Red Hat distribution).
A company called Software und System-Entwicklung (Software and system development) released a Linux package called Softlanding Linux System. SuSE went on to release it’s own distribution, and become the international company SUSE, mentioned above. The SLS distribution also inspired our next hop – Slackware.
They call Slackware the “most UNIX-like” of our three “Godfather” distributions. They also say: “If you use Ubuntu, you’ll learn Ubuntu. If you use Debian, you’ll learn Debian. If you use Slackware, you’ll learn Linux”. I don’t know who “they” are, and I’m probably misquoting, but it gives you an idea of why Slackware is such a popular distribution for Linux-heads and hacker culture (not to mention all those Subgenius references!). If you want to start with a user-friendly version, go with Vector Linux. It’s based on Slackware but is intended to be easy to use for newcomers.
Stage 12 – GNU’s
I dream of a day when all software is free software, all hardware is open source, freely 3D-printable, or commissioned from crowd-sourced funding. I would like a nice open standard binary internet, (Not Flash or Java!), free software BIOS and hardware makers to release the specifications for open drivers to be created. It’s not going to happen today.
Proprietary software is the jungle we must live in and work with. That’s why copyleft exists. Ghandi said “You must be the change you want to see in the world”, but it’s tough when your kids are moaning that they can’t play Flash games, or use the 3D bits of the No-Videa graphics card, your web designer girlfriend complains that she can’t check her sites on Internet Explorer, and all your photographer friends say they need Photoshop for it’s 16-bit image support, CMYK, Pantone’s special colours, and the latest “Do The Work For Me” filter. Proprietary software is here, there’s no getting around it (note that I did not say “here to stay” – that would be presumptuous).
Still, the completely free distributions have a lot to offer. GnewSense is based on Ubuntu, it just has any software or kernel modules that aren’t free stripped out and banned from the repositories. BLAG is the same, but based on Fedora.
Even if you absolutely need your 3D graphics drivers, your Flashy websites, and the other proprietary blobs you have lying around on your system, it’s a good thing to have a look at the limitations and at least try and work around them. Simply saying “it doesn’t work”, er…, doesn’t work. It’s best to say why, how, and to somebody who can change things.
Stage 13 – Beyond Linux
Linux isn’t the only free UNIX-like operating system. The code of Berkeley UNIX (from California University) was released as Free Software not long after GNU/Linux happened. Actually, Berkeley UNIX has been kind of open source since 1977, but due to trademark, copyright, and other reasons, had trouble releasing it under a Free Software license. They don’t call it UNIX (for the aforementioned reason), they just call it the Berkeley Software Distribution, or BSD.
There are a few flavours you can try, and FreeBSD is probably the most popular. Because it has a more permissive license than GPL, code can be included in proprietary software without releasing the source. For instance, the internet stack code has been used in MS Windows, and the kernel is an important part of Darwin, the free bits of OS X. Their Secure Shell remote terminal software (openSSH) is everywhere, from Linux to OS X.
Also, ReactOS. If GNU/Linux and FreeBSD are free software alternatives to UNIX, then ReactOS is the same for Windows NT (Which is 2000, XP, Vista, and 7). Go and give these guys some love. Or, better still, some money. They’re finally prioritising their development funding, so expect some good things to come out in that area soon. I think it’s incredibly exciting and really hope they make it.
Stage 14 – Back Home to Mint!
You might find that you prefer a Linux-Libre system, or a Gentoo install after you’ve been through this stuff. Personally, I like that Mint does everything for you. A ten minute install from LiveCD and everything’s set up. Every distro has it’s advantages and disadvantages, but by creative distro-hopping and a grim determination to work with limitations, you can be comfortable in all areas of your Linux, whichever you end up using.
For me, I have a family computer. That gets Mint. I also have my own PC – it runs Mint Debian Edition. Then I have an ancient laptop with a Debian Net Installation. A spare computer has a Peppermint OS (think Mint for old PC’s), and I try to dual-boot with other OS’s just to keep me fresh. My partner’s web development PC is Windows 7, but she uses entirely Free Software on top of it (apart from the different browsers you need to have!). Notepad++, Inkscape, Thunderbird, GIMP, XAMPP, and so on, and they all come in portable pen-drive versions so she’s never stuck!
If you’ve gone through the Linux From Scratch book (even if you failed and had to re-install Mint!), you’ll appreciate the complexity of your Linux install, and will probably have learned some shell scripting along the way, through setting up the more advanced distros.
This is a long and frustrating project. You have to try to live with a particular distro for a while, to be able to set it up properly how you like, and by then it’s time to move on! But at the end of it, you’ll have a good grounding in Linux, and will appreciate all the hard work that goes into making a distribution like Mint.
From here, you could relax and just get on with the rest of your life. Alternatively, you could also learn more than just compiling – learning to program in Python or C will give you a huge boost. Even if you’re just wanting to get on with your work as a writer, graphic designer or whatever, learning to write simple scripts for software like GIMP can increase your productivity immensely. The very essence of computers is automating boring tasks you do over and over again, so give it a try, at least.
Of course, you could also get yourself a prototyping kit and some transistors, learning how to build yourself logic gates, adders, ALU’s and the likes from scratch. This will give you an incredible insight into how computers work. Grab a Raspberry Pi and relive the spirit of 80’s DIY programming on a modern machine with Internet (that fits in your hand and plugs into a TV).
Go Now, Understand Linux…