Node-Red has been the go-to use tool for Prototyping IOT projects and the same goes for Raspberry Pi. But till recent times Raspberry Pi OS (RIP Raspbian) was only available in 32bit armhf architecture. However, a 64bit image for Raspberry was released in beta mode and it’s quite stable.
I don’t what took these guys to release a 64bit image so late even though raspberries have been fitted with 64bit processors for quite some time, but better stable than crashing.
To understand the co-relation between all these terms we need to go back a little bit in time, say the 1960’s. In early 1960, the AT&T Bell Laboratories, MIT and General Electric started developing a time-sharing operating system called MULTICS (Multiplexed Information and Computing Service). The project went on till 1967 when things didn’t work out and the project was dropped.
But, Interestingly two of the scientists named Ken Thompson and Dennis Ritchie (creator of C language) continued their work. They worked on UNICS (Uniplexed Information and computing system) which was made on a machine named PDP-7. Later this was renamed UNIX (but license fees were not affordable by everyone especially students)
Then from where did, LINUX came into the picture?
So there was a guy named Linus Torvalds who was pursuing his masters in a Finnish university. He wanted to buy a license for UNIX but luckily he didn’t have enough money (which turned out good for us). So he decided to make a clone of UNIX from scratch called LINUX [“Linux: A Portable Operating System” was the title of his thesis in M.Sc.]. JFYI he also created GIT to manage the files while he was creating Linux.
Now its time to get Technical!!!!!!!
Let’s again start from the beginning.
A Computer OS is a piece of software that acts as the base of a computer. It does critical tasks like assign memory and start applications.
An OS runs on top of an even lower level program called a Kernel. A Kernel is written in machine-level languages, and interacts directly with the hardware and gives driver support.
Now that you know the base, let’s start with the answer. Unix and Linux are both popular Kernels. Both have their own advantages and fans.
Unfortunately, a kernel cannot act as an OS on its own. It misses essential features, such as – putting an image to a screen, copying data to the hard drive and basic software like a text editor. That is where GNU comes in. When Linus Torvalds wrote an awesome piece of open-source software called Linux, Richard Stallman wrote a suite to run on it called GNU. The combination of GNU and Linux has become ubiquitous to the point that the duo is often referred to as just “Linux“
When it comes to Linux, GNU/Linux isn’t enough to run a modern PC on its own. So it gives programmers the ability to go ahead and write their own versions of GNU/Linux. These different versions, called Distros or Distributions, differ in their base software. So two Distros can have different package managers, text editors, terminal applications, calculator apps, etc.
Each Linux Distribution is typically tailored for specific target systems, such as servers, desktops, mobile devices, embedded devices, etc.
There are mainly 3 popular parent Linux distros
(1 more mention being android)
All the software present in a Linux distro is managed by a Package Management System. This manager keeps a log of all the programs installed on your system, keeps a listing of all programs NOT installed on your system, and easily identifies upgradable programs. A Linux user MUST be familiar with the package manager in order to install the software.
Below is the list of package management systems of popular Linux distros
Now, on top of a Linux Distro, run certain programs called Desktop Environment. These DEs are used to change the look and feel of the distro. Most DEs can run on the majority of Distros, so you have your own choice when customising your desktop. Popular DEs include
Wrapping up all and bonus point
– Kernel interacts with hardware
– Linux distro adds software(using a package manager) on top of the kernel
– Linux flavors add more features as per their unique use case
– Desktop Environment gives GUI interface