Preface
Computers are everywhere in today's world. They have become an essential part in the lives of almost every person in the world. Whether it be cellphones, desktop computers, servers, supercomputers or embedded systems that are almost everywhere; computers have an important role for making controlling and processing data easier. A lot of people use their computers for executing their daily tasks and gathering the information they need, such as looking for a recipe, checking news, paying bills and connecting with their loved ones. The difficulty of using a computer has significantly decreased since the beginning of current milenium. In those times, touchscreens weren't mainstream, Internet wasn't as big as today, many tasks which involve at least a brief understanding of the computing environment weren't done automatically by the software. Nowadays, operating a computer has become so easy that even a baby can operate a computer with a touchscreen. Although the simplicity of using a computer has increased, the knowledge of people didn't increase at the same rate. Even though people are naturally more knowledgable about computers, people are still afraid of the world of computers and they see it as a place only the nerdiest of the nerds can dare to deal with. As the majority of people only use a computer to reach the internet or do simple tasks, they don't have to acquire a lot of information about computers. However, computers aren't the simplest of the tools. They are one of the machinery which people use to make their lives easier, along with things like washing machines, dishwashers, refrigators and televisions. Those devices are complicated and you need to learn about them more to use them more efficiently. Sure, you can wash your dishes without adjusting the settings and performing periodic maintenance on the dishwasher. However, if you learn more about your dishwasher, you can wash your dishes more efficiently. The same thing is also true for computers. You can use it without acquiring knowledge about it. However, you are going to use it more efficiently if you learn about it more. Computers are our main tools for processing, storing and sharing information today, so why not learn more about a device that has gained a lot of importance in our lives?
Although hardware is the part where the code gets executed and the data get actually manipulated, software is as important as the hardware that runs it. Hardware can virtually execute any task that can be simplified to basic instructions but it's the software's task to tell the hardware what task will be executed. People don't really care about software as much as hardware but software can actually have an important impact on the usability of hardware. A bad software can limit the hardware from unleashing its full capabilities. That's why the software used is as important as the hardware. There are a lot of types of software, such as web browsers, office programs and text editing software. While most types of software doesn't affect the other software that runs, there are some special types of software which affects the other software used by nature. These can be drivers, resource-hungry programs and most importantly, kernels and operating systems. Since dealing with the hardware directly is ineffective and sometimes dangerous, these tasks are usually left to some special kinds of software. With that, programs can focus on important things like the actual purpose of the program rather than with things like ensuring all devices are ready and preventing other programs from accessing the memory. When you think about tasks that operating systems do, the importance of the operating system used becomes clear. Learning more about the operating system will naturally allow more tasks to be done efficiently.
When all these information served, some questions may come to the mind? Why (GNU/)Linux based operating systems instead of other operating systems such as MS Windows or MacOS? What is the advantage of using (GNU/)Linux based operating systems instead of others? While the architectural discussions are out of my expertise and are too technical for the most end-users, there are other answers than the architectural upsides and downsides. (GNU/)Linux is a free and open source software. The "free" in the term "free software" doesn't mean without any cost. It means it's freely changable and distributable. You can modify it as you want, there are no person which can tell you to use the software as the way as they wrote. That prevents shady business practices and keeps the software always alive. The second reason that (GNU/)Linux based operating systems are chosen is that it's one of the most active UNIX-inspired operating systems. Sure, there are other UNIX-based/inspired operating systems such as FreeBSD but they require more knowledge to use and are less supported by software vendors. The UNIX architecture is one of the oldest and robust architectures in operating system world, while there are other architectures that are robust too, I am sure that people can benefit from using UNIX architecture.
That's why I am writing this guide. This guide is more like an introduction and handbook rather than a source that goes deep into how things actually work. There are other guides on how to use (GNU/)Linux operating systems too but I want to have another approach to teaching (GNU/)Linux. I don't have neither the expertise nor the authority to say that all other approaches are inefficient, that would be immature to say. But I want to get out from the traditional ways of teaching. Learning doesn't have to be fun, but it doesn't have to be unbearable. Learning things without learning why they are the way they are will often make the information learned less permanent and more confusing. Spitting random commands without explaining why they are written the way they are written will only encourage memorization, not learning. Actually learning the way why things are the way they are will improve understanding of that things and will enable usage in real life situations. I hope this guide will help people benefit from (GNU/)Linux. I hope this guide will help people to use their computers more efficiently. I don't want to claim that you will 100% benefit from this guide. There is always a possibility that this guide won't be suitable for someone, but I am ready to give all the experience and knowledge I have and the help and feedback of others to give you a pleasant experience.