Chapter 1 - The first goal #
Art by @monoxromatik
Every journey needs a place to start, and while many may like to start slow, I think a head first approach is best. So that’s exactly what we’re gonna do. The very first thing we’re going to do is install a new Operating System (OS)(1) on your computer. This is a pretty involved process. It will require you to Repartition(2) your drive, change settings in your BIOS or UEFI(3), and install a new Bootloader(4). I know this sounds really hard, but it’s not as bad as it sounds, and I assure you it’s worth it. The OS we’ll be installing is called Linux. Linux is actually what powers both Android and ChromeOS, and is a common descendant of the same system as Mac OSX. Linux is the OS that almost all of the servers on the internet use - from massive website like Facebook and Google to small Minecraft servers you can rent online to play with friends. What’s cool about Linux is it lets you get much closer to the hardware and see what’s going on, and it just generally makes writing code much easier.
Furthermore, it’s super easy to set up an amazing development environment in Linux for getting work done with code or electronics, and at the end of the day you can still watch YouTube, play most games that are on Steam, or open up an office suite, just like Windows or Mac. Unlike Windows and (to a lesser extent) Mac though, the system is laid out in a way so that all the moving parts are exposed and able to be tinkered with. No setting or configuration is locked in and you have total control over your computer with Linux. It’s not just easier to run and use software and tools for doing hardware and programming development on Linux, but it’s also easier to find and install the tools in the first place, as you’ll see shortly. Finally, Linux has a great track record of stability(5), as there are many Linux servers that run 24/7/365 to serve web pages, host services like games, and crunch big data in real time. In fact, all of the world’s top 500 super computers run Linux.
Add to this the fact that Microsoft basically laid off their entire testing department, and the nightmare that Windows 10 updates have cause, forced online accounts, or well, just read this list. You’ll see pretty quickly why most ’nerds’ have a pretty deep seeded hatred for Microsoft.
Honestly, the big one for me is just how much Windows tries to force their tools down my throat.
I mean, this was a real error message I saw when trying to upgrade my system from 8.1 to 10:
do you really think Microsoft is at all competent anymore?
Note, for everything above, I mostly picked on Microsoft and Windows as that’s what most people run. I have just as many, if not more, complaints for Apple and OSX. It’s just that I suspect there will be far more Windows users reading this than Apple users.
- According to Wikipedia, "An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs." put simply on your hardware this is probably Windows or Mac OS, and it's what everything else runs on top of
- To partition a drive means to take all the space on the hard drive and divide it into partitions onto which you can put a file system. Most operating systems like Windows, Mac OsX, or Linux, use multiple partitions for the operating system to function. Usually a filesystem is set up on each of these partitions, in windows this is typically NTFS for Hard Drives and FAT32 for flash drives, these file systems are effectively the index for all the files you'll put on the drive, and as you may have multiple partitions and multiple file systems on one disk each will have an index to match. As complicated as it may seem this means the partition table can be seen as an 'index of indices' of sorts. Don't worry if that's a lot to understand right now, we'll come back to this topic in depth.You may also need to know how your drive is formatted, this is if it is using MBR (Master Boot Record) or GPT (GUID Partition Table), again, we'll cover this. Don't stress over all the new terms.
- The Binary Input Output System (BIOS) or Unified Extensible Firmware Interface (UEFI) is the thing you see before you computer loads the operating system, usually prompting to press delete or f2 to change settings. This is the system that is used to change the way all the components around the computer talk to one another and at what speed.
- The bootloader sits at a special place on the hard drive selected for boot in the UEFI or BIOS, and is what the computer uses to load the full operating system, most will let you choose what operating system you want to boot if you have multiple installed on you computer at once
- I'll admit, it's less stable and performant on laptops than desktops and servers. This is usually due to laptops having switchable graphics - using a graphics chip integrated into the CPU to save power until it has hard work to do where it'll flip to the stronger graphics card. Not all laptops do this, and on those that do it does often work, but sometimes it doesn't easily (and rarely not at all). It's also the case that, very rarely, you'll stumble into a laptop that has issues with WiFi on Linux. Overall though, the experiance is usually fine.