Quite a while ago I found an old laptop at my parent’s place. A very old machine, I used back when I was like 15 years old. Not very flashy but at that time a good device to do what I needed to do, which was school work and playing Minecraft. At that time I was really into home automation, doing things myself, creating my own NAS (Network Attached Storage) or hosting other applications. So after getting my old Laptop, I started to test some stuff. The first thing, I noticed was that the laptop was very slow. I don’t know what 15 year old me did to that thing but it sure wasn’t the best for the hardware.
After doing a little research, on how to breathe life into an old laptop, I stumbled across Linux. For those who don’t know, Linux is a light weight open source, mostly free, operating system. Just like Windows or MacOS. And let me tell you, choosing the right Linux distribution to run on my machine was another rabbit hole, since there are so many. There are ones optimised for hacking, or to look like MacOS, or to be very light weight (ArchLinux). In the end I decided to use the most common Linux “Distro” (short for distribution): Ubuntu. Which is supposed to give me a similar experience to windows and is one of the most widely used Distros. (Which comes in handy, when trying to troubleshoot anything, since someone most likely already fixed that same problem.)
Next steps included, going through old data and clearing out old junk, erasing all data and installing a fresh installation of Ubuntu. And I got to say getting to this point too a while, but after the laptop booted into the home screen of Ubuntu it felt great! But what to do now? One of the “simplest” thing I could think of was trying to connect the laptops storage to my home network, so I could use the old guys storage capacity to exchange data from one device to another, without plugging in an USB stick, or saving backups of very important data. To accomplish this, I used Samba (another open source project), which let me expose a folder to my network. Setting this up took a lot of trail and error, as well as a lot of terminal commands. But now I can get data from my MacBook to my Windows PC without attaching and detaching anything.
Starting this project was a lot of fun. A bunch of new things to learn and new possibilities arise. After this first success I got a bunch of other ideas which I could now host on my own, a cloud service, a Minecraft server or a google photos like application to save and share pictures.
Impact for my Masters Thesis
But what does this have to do with my masters thesis? A lot of the software used when creating a home lab is free and open source. Additionally the freedom to host your own services for free, because someone created free software for you to use, is great! Nevertheless it is a fun project, to get into computers and hosting one’s own cloud service feels great and has a lot of advantages (and disadvantages).
All those possibilities got me thinking, why and how do people create software used by thousands and millions of users? What drives open source projects? How are they financed? So in short this was the start of my interest in open source and the reason, why I want to dive deeper into this topic in my masters thesis. I am sure, there is more to uncover, to try out and to learn.
Accompanying Links
If you start to build your home lab, there is a bunch of stuff you need to know about and Network Chuck provides an amazing overview of most relevant topics. From explaining Linux to n8n (an Ai automation software) to hosting your own NAS. The videos are easy to follow and beginner friendly, in other words the perfect start for newcomers.
Here is a link top his YouTube channel: https://www.youtube.com/networkchuck
When trying to do anything on Linux you will need to use the terminal. Installing apps, bluetooth doesn’t work, advanced settings. open the terminal. As a beginner, I didn’t understand what I was writing in this text input. So I used this website: https://explainshell.com/# (another open source project), that explains every command that is put into the terminal.
The last link I want to share is the website of samba, the software I used to open up a folder to my home network. As they say on the website: “Samba is an important component to seamlessly integrate Linux/Unix Servers and Desktops into Active Directory environments.”
https://www.samba.org