A Little About Linux
Published: 2024-02-25 16:36:21


Linux is a Unix-like, monolith and modular, open source, multitasking [kernel](https://en.wikipedia.org/wiki/Linux_kernel) released in 1991 by Linus Torvalds and not much later it was adopted as the kernel for the _GNU operating system_. Since then Linux has contributed to a vast number of operating system distributions. A solid amount of these distributions use _Linux_ in their name, but to emphasize the importance of _GNU Software_, the Free Software Foundation insists on the use of the name <u>_GNU/Linux_</u>. GNU Software was written to be a Libre Software (free software), replacement for Unix, thus causing a bit of controversy.

---
[Open source](https://www.linux.com/what-is-linux/) follows these key tenets:
- The freedom to run the program, for any purpose.
- The freedom to study how the program works, and change it to make it do what you wish.
- The freedom to redistribute copies so you can help your neighbor.
- The freedom to distribute copies of your modified versions to others.

---


 

## Programming
Either directly, or through third-party ports, a majority of programming languages provide support for Linux in some way. I mean, the intention behind Linux-based distributions is for developers for interoperability across different operating systems. Additionally, Linux contains a broad treasure chest of programming tools necessary in Linux development for building operating system programs and/or applications. These tools can be located inside the _GNU ToolChain_, luckily this also entails other useful items such as the _GNU Build System_ and the _GNU Compiler System_. Linux, like other Unix-like systems that include traditional specific-purpose programming languages targeted at scripting, also includes general management, text processing, and system configuration capabilities. Multiple programming languages, such as Python, GO, Rust, Ruby, Perl, and Java contain a cross-platform reference Implementation that supports Linux. Majority distributions can include support for many dynamic languages and CLI Languages, while also allowing languages that target the _GNU system utilities_, like _Guile Scheme_, an extension language that can make static, compiled programs of Unix Design quickly and efficiently through a high-level, functional scripting system.


<u>**System**</u>
Linux Systems are used anywhere from embedded systems, the top 500 supercomputers in the world, which is nearly all of them, and even solidified a place among server installations.
Linux popularity and success has even outreached to various national governments around the world. For example places like China ONLY uses Linux, Spain for education, France, North Korea, Germany, even the Russian government developed their own Linux distribution named G.H.ost Project. Taking a step from desktops for a second, arguably Linux's greatest success, in the consumer market, has to be with mobile devices. Smartphones and tablets are dominantly Android, consisting of a modified version of Linux Kernel, not to mention the accessories that pairs with them like smartwatches, for example. Later in this article I will mention Microsoft's previous hold on the desktop operation system market, but when comparing video game availability for Linux versus Microsoft you can see that Microsoft holds that title. That may not be your thing, but it's interesting to note how large of a gap there is. If it so happens to be an interest of yours then it wouldn't hurt to mention that Valve, the developer of a software distribution platform ([Steam](https://store.steampowered.com/steamdeck)) and famously known for their game Half-Life, has adopted Linux create their own gaming-oriented operating system, [SteamOS](https://repo.steampowered.com/steamos/), that has been implemented into their Stream Deck platform. Neat.


![SteamOS Logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tzswccjwttgpfbkxpwv7.png)





<u>**Kernel?**</u>
A kernel is a computer program at the heart of an operating system. Generally this has absolute control over everything in the system. Including mitigating and preventing conflicts
between processes, facilitating interactions between both the hardware and the software components. The best way to sum up each of their roles is: A computer's central component of
it's system is responsible for executing programs, whereas the kernel's responsibility lies with deciding which of the current running programs should ne allocated to the processor
(s). The most important parts of this is code is loaded into a safe location in the operating system address space called the 'kernel Space'. This is to protect itself by denying
application software and other less vital parts access, so it can safely handle hardware devices, manage interrupts, and run processes. On the other side of the address space lies the
'user space', a separate part of memory for browsers, video and music players, and other application programs. These kernels can have different architectural designs like [monolithic](https://en.wikipedia.org/wiki/Monolithic_kernel),
operating only in a single address space. And [modular](https://en.wikipedia.org/wiki/Modular_programming), which runs majority of it's process in the user's space. The [Linux Kernel](https://en.wikipedia.org/wiki/Linux_kernel) is monolithic, but with a modular design, meaning it
has the capability to extend influence beyond it's Kernel space at runtime, through the use of inserting and removing loadable kernel modules(LKM) to aid with adding system calls,
support for new hardware, and file systems.


![Tux](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2l1s4q6uefld0tk8k54t.png)



<u>~~Designed~~</u <u>**Evolved!**</u>
At AT&T's Bell Labs, in 1969 Unix Operating system was brought to life and then later released in 1971, though it was written entirely symbolic machine code, alternatively assembly language. Between 1972 & 1973 it was rewritten in the 'C' programming language by AT&T's very own Dennis Ritchie. Due to the growth of Unix and becoming a proprietary product, the GNU Project was founded, with the goal of developing a 'Complete Unix-compatible software system' made solely from free software. Then, [MINIX](https://en.wikipedia.org/wiki/Minix), a minimal Unix-like operating system (Mini-Unix) was created in 1987 with a specific purpose: To teach students and those wanting to learn the principles of operation systems. Three years later Linus Torvalds decides to enroll in a college course and obtained the textbook _Operating Systems: Design and Implementation_ by [Andrew S. Tenenbaum](https://en.wikipedia.org/wiki/Andrew_S._Tanenbaum), the created of MINIX. This exposure to Unix is what sparked curiosity in Torvalds and he began working on his operating system kernel, later becoming Linux Kernel.


---

> Honest I didn't want to ever release it under the name
> Linux because it was too egotistical. What was the name I reserved
> for any eventual release? Freax. (Get it? Freaks with the 
 requisite -X.) In fact, some of the early make files --the files that describe
> how to compile the sources-- included the word "Freax" for about
> half a year. But it really didn't matter. At that point I didn't need a
> name for it because I wasn't releasing it to anybody.
> And Ari Lemke, who insured that it made its way to the ftp
> site, hated the name Freax. He preferred the other working name I
> admit that I didn't put up much of a fight. But it was his doing. So
> I can honestly say I wasn't egotistical, or half-honestly say I wasn't
> egotistical. But I thought okay, that's a good name, and I can
> always blame somebody else for it, which I'm doing now.

<u>Linus Torvalds p84 and p88 "[Just for fun](https://www.amazon.com/Just-Fun-Story-Accidental-Revolutionary/dp/0066620732)"</u>

---



<u>**Business is Booming!**</u>
Rather than Linux based production environments being solely used by hobbyists, it soon became popular in the supercomputing community. Even organizations, like NASA, made the financial decision to replace their current machines with computer clusters made of commodity computers operating on Linux. I briefly mentioned that there was a point when a monopoly was on the Desktop Operating System Market and in an attempt to break free of Microsoft's reign, Linux support was offered by other technology companies, like Dell and IBM.

<u>**Market**</u>
There has been numerous studies on free/open-source software focusing on subjects like reliability as well as market share. Linux is no exception and a large amount of the studies have been specifically on Linux and it's ever-growing market. In fact, it's expected that the growth of the Linux operating system market size will see an increase of over 19% by 2027. Compared to 2019, which had them set at $3.89 billion, this has them expected to reach $15.64 billion. These predictions are attributed by Linux's relative success due low cost, security, reliability, and freedom from proprietary lock-in.

 <u>**Final Thoughts**</u>
Although I will always own a PC it's hard ignore the advantages to learning and creativity that Linux Systems can provide.  Now, I want you to take a second and think about your opinion on Linux. Now your opinion on Windows. Got it? Ok. Here is a situation: You need a server for your project. How many team members do you plan to have?




![Always watching...](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/obqrtdv16wv1y8obycg0.png)





**<u>Cost of Windows Server 2016: Standard Edition:</u>**

_Windows Server 2016: Standard Edition -<u> $882._</u>
_Client Access License: <u>$38.00_</u> (per person)


**<u>Cost of a Linux Server</u>**

_Linux Server: <u>$0_</u>
_Client Access License: <u> _$0_</u>


If you want to see the actual [scenario](https://www.linux.com/what-is-linux/) with more detains