Introduction to Linux Fundamentals.
Tags: beginners, linux, git, computerscience
Published: 2022-03-08 00:08:37

Yes, I have started my 'Learn To Code' journey and today, here is my first blog about it. The goal here is to provide an overview of the topics that I have learned and maintain a public record of my learning process and showcase my steady resolve and coding acumen along the way in a hope that it will prove informative or even inspirational to you, my precious readers and fellow learners. I want to share with you my understanding of the subject I because I truly believe I can add more granularity to the already grained but complex concepts that collectively make up the Linux fundamentals.

The awe inspiring technological innovation and computing speed of the modern day computers had always intrigued me in ways that could have lead to only one possible outcome -  I actually ending up learning the fundamental concepts of modern day computers upon which this tremendous industry and the underlying science they’re built upon. 

Mathematics, computing science is built upon a branched out study of mathematics that specifically deals with studying the automatic computational processing of data. It is more focused on developing the theoretical fundamentals of computing science, which in turn are used to lay foundations for building useful practical applications. For e.g. A computer scientist named Ken Thompson based on his research on basic file systems along with his colleague Dennis Ritchie implemented and developed the Unix operating system. An operating system which went through its own hero’s journey several times before it became what we learn, use and know as the Linux operating system. 

Today over 65% of world’s internet servers (computers which ’serve’ webpages upon ‘request’ to the ‘client’) use Unix and Unix-like operating system to maintain and develop its task specific functionality since Unix is also the world’s most popular open source (free to be tweaked and developed) operating system. It is according to the official website of Nokia Bell-Labs (also the birthplace of Unix OS) arguably the most important operating system of the world. I think reasonably so as it is the core technology of the super giant willow ball of fibre optic cable networks  — the Internet!

And after learning this super riveting Linux trivia, when plotting my roadmap to mastering web development I marked learning Linux fundamentals as my first milestone. 

A kernel is the core process manager of an operating system i.e. it is an intermediary between software applications and the hardware of a computer.  It is the first program to be loaded on start up and it is the computer program that leads to the subsequent loading of input output processing, memory devices, peripherals and provides data processing instructions to the CPU. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6fqwnaoff6ay6obuss0.jpeg)￼

A GUI (Graphical User Interface) is your computer’s desktop window, the visual component which you use to access various softwares and applications to serve your business and personal needs but in a professional environment it is not sufficient for furnishing high end business needs. For e.g. if you were required to create 100 files with another 10 files nested in each of those 100 files it would certainly result in a waste of your intellect and time if you were to accomplish said task by using your mouse and keyboard. This is where command line interface (CLI) a Terminal application comes in handy. 

The modern day terminal program is an emulator of an electromechanical hardware with a video display that was used for transcribing data. Usually connected to a computer with microprocessors.

The Terminal is a text based application that allows you to access your computer’s operating system. It allows you to input single line command while another program working in conjunction with the CLI known as the ‘shell’ interprets the command inputted by the user and executes it i.e. it looks for the binary file containing the machine code of the command entered and then the code creates a cycle of command execution passing through the OS and ultimately kernel using the hardware power of the system to perform said function of say creating 100 files with 10 nested file in each of those 100 files. 

Vim (Visual Instrument iMproved) is a text editor in the shell program that is used to edit text files created within the shell. 

There are over 100 commands in Linux which one can only learn through practice. I have planned to routinely practice exercises to learn Linux commands and develop my proficiency over it. I have also oriented myself with some basic GIT commands, a version control system, a computer program which basically tracks the development process of your code file. It deserves a detailed overview of its own, one which I shall provide in future when I have started my work on more complex coding jobs. 

I intend to do a Youtube video in near future where I shall provide an even more detailed introduction of Linux and its useful commands. If you have read this far I thank you for the time and attention you have given to my blog. I hope I was able to provide some useful insight on the fundamentals of Linux operating system. 

In conclusion, Linux is in my opinion by far the most developed and worked on operating system mainly on account of the open source nature of accessibility to its source code. Learning and understanding Linux command line is an absolute essential skill, in fact it is the ultimate difference between a professional and amateur computer programmer. 

My next milestone is learning the fundamentals of HTML.