I Went Open Source

What is Open Source?

In software, “open source” is a concept that promotes decentralization. In other words, it takes the control further away from any single entity, and puts control in the hands of the community.

The name comes from the term “source code,” or the underlying, comprehensible code that a program is built out of. The problem with editing the code of a closed-source program is that the source code is already compiled, a process that effectively turns the comprehensible source code into gibberish that only your computer understands (called machine code) and that you won’t possibly hope to be able to understand, much less reliably edit.

So with an open-source program, developers publish the program’s source code online and allow anybody to look at it. This has a security benefit as well: there are millions of creative people inspecting your program to make sure that there aren’t any bugs that could be used to release sensitive information.

But looking at the source code is just half of open source software. The other half is being able to edit that source code. Websites like Github allow users to publish source code, and if another user decides that the software has some sort of bug, they can “commit” code that they think will fix the issue. If enough people decide that the code works, it’s implemented into the software.

My IT Journey: Elementary School

Like most people, my first computer was running Windows. I got my first laptop when I was around 8, which I got as a Christmas present from my father. The only reason I was so young was because that was when I first started really getting excited about computers, and my dad was getting annoyed with me bogging down our family desktop with junk programs.

So I got my laptop. It was dandy. I was in an endless loop of breaking and fixing my computer, learning the ins and outs of how and why computers run, making batch files that did stupid things, etc.

There’s a funny story there too, about how I got in trouble at school for opening a command prompt in the library and everyone thought I was “hacking the matrix” or whatever. But that’s irrelevant.

My IT Journey: Middle School

A few years later, I got a new laptop; a fresh slate; something I could start off with right. You know that awful feeling, where you realize that if you had just kept your bedroom clean in the first place, you wouldn’t have to clean it every weekend? Yeah, this was basically the same thing. I had the opportunity to keep my computer clean instead of having to clean it all the time.
And I failed miserably.
But hey, I was young, leave me alone.

At this point, I was a little bit better versed in the art of running computers. I was learning how the internet worked, understanding IP addresses, port forwarding, dynamic DNS, etc. It was really cool! (I was finally able to run a Minecraft server without paying a dime to a hosting company!)

My IT Journey: High School (the transition)

Oooooh boy. This is when the heat really started kicking up. See, the summer before high school started, I went through a phase.
I wanted to be l33t h@x0r.

So I googled around, trying to figure out how the pros did it. Of course, I realize now how stupid it was to google “How to hack,” but hey, we all start somewhere.

And I came across the jewel, the creme de la creme, the ultimate tool: Linux. Specifically, Kali Linux. It was free, it was downloadable, and holy cow it was only a few GB. It looked SO COOL and I was very excited.

I downloaded my fresh copy, and spent countless hours painstakingly going through trial-and-error about why little things would break. I’d try to flash it to a thumb drive, only to find that I did it wrong. I’d get it right, only to find that I had to reconfigure my BIOS. I reconfigured my BIOS, only to figure out that now my computer wouldn’t boot from anything.

But I finally got it to boot. And I loved it. Not only did it have a bunch of really cool l33t h@x0r tools, but it was…. faster. Oh my god it was so much faster! For the first time in my life, I escaped the Windows jail, the sewers of Microsoft, and I realized just how powerful my computer was when it wasn’t saddled with all the bloatware and garbage in Windows that nobody ever uses. Even running off a 4GB USB 2.0 flash drive, Linux was lightning fast.

I wouldn’t use Windows for months on end. There was no reason to: I had Kali Linux to do all my homework, web browsing, and occasional late-night security tinkering (a phrase I developed to describe my haphazard attempt at running hacking scripts that did things I couldn’t comprehend). Of course, my dad threw a fit, talking about how it was dangerous and stuffed with malware and viruses that would compromise the network, blah blah blah. But he was a Microsoft guy, and had never touched a Linux box in his life.

Just spending time around Linux, I started learning about how it worked, which was monumentally easier than learning Windows. Linux is open source, which meant everything was public and well documented, not just people ranting about how a driver broke on a Microsoft support forum.

I grabbed a 15-year-old Dell desktop from my basement (2GB of RAM, Intel Duo @2.2GHz, with a 150GB HDD), fixed it up, blew the dust out, and loaded Linux onto it. It was running Kali of course, because I really didn’t know anything else. For the first time ever, I was able to set up a website, a file server, or anything else I wanted, and it would just sit there and run, even while I was away from home or asleep. The possibilities were endless.

Today

I eventually got rid of that “server” in favor of an HP Proliant ML350 G6, which had a 2TB RAID5 array, 2 hexacore Intel Xeon X5650 @2.7GHz, and an astonishing 24GB of RAM.

This, I thought, would be shameful if I put Kali Linux on it. So I switched over to plain old Debian (which I soon found out, was literally the same OS). Ported all of my old stuff over (which was pretty much just a website and some files).

But at my high school, the IT team runs a Computer Club. This is run by a guy named Calvin, who is now a good friend of mine. Calvin is the Linux guru in our school district. At our high school, they use a distribution of Linux called Proxmox‌ to run their servers. It’s a virtualization hypervisor, open source of course.

After playing around with the Computer Club Proxmox server, Calvin eventually convinced me to switch my home server to Proxmox. So I made backups, burned a boot CD, and loaded it on. I was so excited to see the flashy web interface with a bunch of options and configurations. I quickly started an excessive number of virtual machines and reinstalled all my backed-up programs.

Since then, I’ve slimmed it down. My server consistently runs about 9 KVMs at once, with about 12 on standby, and plenty of resources to spare. I semi-manually keep everything updated on a weekly basis. I trim the filesystems, and manage the backups, etc etc etc. It’s crucially important to me that my server (named FishServer) is running smoothly all the time.

Back to the Point

This transition to open-source software has had 1 very clear benefit: streamlined functionality. I didn’t need to download some random program off a Chinese website just to play with PGP encryption, to run network scans, to run generate OTP codes, because Linux already had a documented and low-overhead program to do it.

The second biggest benefit has been speed: since Windows is meant to be a one-size-fits-all solution, it’s packed with a lot of stuff that most people just never use. So it takes up space and precious processor time and RAM. But plain old Debian Linux has tools that the average user may want, the options to install random tools that just you may want, and that’s about it. With the lack of bloat, Linux is able to speed through things that Windows may take 5x longer to do.

Arguably most importantly, security: since Linux is open-source, the moment a security vulnerability is discovered, there is already a patch release for it. If you stay on top of your updates, and you don’t do stupid things, then your Linux computers are basically impenetrable. Windows on the other hand, you’d have to wait hours, sometimes even days for a security patch to be released.

Just as a side note: moving away from Windows has been a blessing in the form of no more damned update screens. Yes, Linux has updates, but they’re totally optional, so you can choose to run them at any time. You don’t have to reboot after them, and they usually aren’t that big, so even on a 1 Mb/s connection, you can probably finish updates in just a few minutes.

Final Thoughts

If you’re a die-hard Windows fan, power to ya. Windows can be much easier to use for some people, and its universality has compatibility benefits beyond recognition. But if you’re on the edge, I highly recommend you go download a live-bootable version of Linux (I recommend Debian, because it’s clean, straightforward, and popularly supported). Load a computer up with it and see how much you like it. Linux isn’t for everybody, but if you want to go into IT, you’ll come across it at some point. I highly recommend that you’re Linux literate by time you do.