0% found this document useful (0 votes)
192 views18 pages

1.2 Linux Is A Kernel: Share

This document discusses the history and evolution of Linux, including its origins as a hobby project, its adoption of open source principles, the rise of distributions, and its embrace of the command line interface. It provides context around key concepts like the Linux kernel, the GNU project, and differences between popular distributions.

Uploaded by

Choy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
192 views18 pages

1.2 Linux Is A Kernel: Share

This document discusses the history and evolution of Linux, including its origins as a hobby project, its adoption of open source principles, the rise of distributions, and its embrace of the command line interface. It provides context around key concepts like the Linux kernel, the GNU project, and differences between popular distributions.

Uploaded by

Choy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Hello and welcome to 

NDG Linux Essentials!


Linux is everywhere; Linux jobs are everywhere. There is a demand for Linux skills in just about
every industry and job category on the planet, and not enough Linux talent to meet this growing
demand. It’s also fun and rewarding to work with something that’s so much a part of our modern
lives yet which so few people understand.
If someone says they have Linux experience, it might refer to configuring systems, running web
servers, or any number of other services and programs that operate on top of Linux. Over time,
Linux administration has evolved to encompass just about every task that a modern business,
educational institution or government organization might use in their daily operations.
The journey of learning you are beginning today has no ending point. It can take you in a myriad of
different directions, from cybersecurity to application and game development, system administration,
networking, big data, and artificial intelligence; all of these fields are rooted in Linux.
Every time you execute a search on the internet, watch a video on your phone or order something
online, that’s likely Linux at work. It epitomizes a whole that is greater than the sum of its parts, a
vast undertaking, done voluntarily, by some of the smartest people on the planet.
While your journey will be ongoing, be comforted that you are learning a set of technologies,
commands, and methods that have stood the test of time. Linux utilizes and expands upon many of
the commands and ways of accomplishing computing that UNIX began, with a rate of change per
year that’s very manageable. Now, some 30+ years on, many of those learned commands are still
active and used every day by sysadmins, devops, and architects. Linux is a revolution of evolution,
allowing you to learn the majority once and keep up with the small percentage of changes in a
continual learning process

 Share 

 NDG Linux Essentials

 Content

  Devices
 Sections

1.2 Linux is a Kernel


The definition of the word Linux depends on the context in which it is used. Linux means
the kernel of the system, which is the central controller of everything that happens on the computer.
When most people refer to Linux, they are really referring to a combination of software
called GNU/Linux, which defines the operating system. GNU is the free software that provides open
source equivalents of many common UNIX commands. The Linux part of this combination is
the Linux kernel, which is the core of the operating system. The kernel is loaded at boot time and
stays running to manage every aspect of the functioning system.
The story of Linux begins with UNIX, an operating system developed at AT&T Bell Labs in the
1970s. UNIX is written in the C language making it uniquely portable amongst competing operating
systems, which were typically closely tied to the hardware for which they were written. It quickly
gained popularity in research and academic settings, as well as amongst programmers who were
attracted to its modularity. Over time it was modified and forked (that is, people modified it, and
those modifications served as the basis for other systems) such that at present there are many
different variants of UNIX. However, UNIX is now both a trademark and a specification, owned by an
industry consortium called the Open Group. Only software that has been certified by the Open
Group may call itself UNIX.
Linux started in 1991 as a hobby project of Linus Torvalds, a Finnish-born computer scientist
studying at the University of Helsinki. Frustrated by the licensing of MINIX, a UNIX-like operating
system designed for educational use, and its creator’s desire not to make it a full operating system,
Linus decided to create his own OS kernel.
From this humble beginning, Linux has grown to be the dominant operating system on the Internet,
and arguably the most important computer program of any kind. Despite adopting all the
requirements of the UNIX specification, Linux has not been certified, so Linux really isn’t UNIX! It’s
just… UNIX-like.
Prior to and alongside this development was the GNU Project, created by Richard Stallman in
1983. While GNU initially focused on building their own operating system, they ultimately were far
more effective at building tools that go along with a UNIX-like operating system, such as the editors,
compilers and user interfaces that make a kernel usable. Since the source was all freely available,
Linux programmers were able to incorporate the GNU tools to provide a complete operating system.
As such, many of the tools and utilities that are part of the Linux system evolved from these early
GNU tools.
Consider This
Linus originally named the project Freax, however, an administrator of the server where the
development files were uploaded renamed it Linux, a portmanteau of Linus’ name and UNIX. The
name stuck.
GNU is a recursive acronym for “GNU’s Not Unix,” and it’s pronounced just like the African horned
antelope that is its namesake.

1.3 Linux is Open Source


Historically, most software has been issued under a closed-source license, meaning that you get the
right to use the machine code, but cannot see the source code. Often the license explicitly says that
you may not attempt to reverse engineer the machine code back to source code to figure out what it
does!
The development of Linux closely parallels the rise of open source software. Open source takes a
source-centric view of software. The open source philosophy is that you have a right to obtain the
software source code and to modify it for your own use.
Linux adopted this philosophy to great success. Linus made the source programming code (the
instructions a computer uses to operate) freely available, allowing others to join in and shape this
fledgling operating system. It was not the first system to be developed by a volunteer group, but
since it was built from scratch, early adopters could influence the project’s direction. People took the
source, made changes, and shared them back with the rest of the group, greatly accelerating the
pace of development, and ensuring mistakes from other operating systems were not repeated.
Consider This
The source code may be written in any of hundreds of different languages. Linux happens to be
written in C, a versatile and relatively easy language to learn, which shares history with the original
UNIX. This decision, made long before it’s utility was proven, turned out to be crucial in its nearly
universal adoption as the primary operating system for internet servers.

1.4 Linux Has Distributions


People that say their computer runs Linux usually refer to the kernel, tools, and suite of applications
that come bundled together in what is referred to as a distribution.
Take Linux and the GNU tools, add some user-facing applications like a web browser and an email
client, and you have a full Linux system. Individuals and even companies started bundling all this
software into distributions almost as soon as Linux became usable. The distribution includes tools
that take care of setting up the storage, installing the kernel, and installing the rest of the software.
The full-featured distributions also include tools to manage the system and a package manager to
help you add and remove software after the installation is complete.
Like UNIX, there are distributions suited to every imaginable purpose. There are distributions that
focus on running servers, desktops, or even industry-specific tools such as electronics design or
statistical computing. The major players in the market can be traced back to either Red Hat, Debian
or Slackware. The most visible difference between Red Hat and Debian derivatives is the package
manager though there are other differences in everything from file locations to political philosophies.

1.5 Linux Embraces the CLI


There are two basic types of interfaces available that allow you to interact with the operating system.
The typical computer user today is most familiar with a graphical user interface (GUI). In a GUI,
applications present themselves in windows that can be resized and moved around. There are
menus and tools to help users navigate. Graphical applications include web browsers, graphics
editing tools and email, to name a few.
Below is an example of a graphical desktop, with a menu bar of popular applications to the left, a
LibreOffice document being edited in the foreground and a web browser in the background.
The second type of interface is the command line interface (CLI), a text-based interface to the
computer. The CLI relies primarily on keyboard input. Everything the user wants the computer to do
is relayed by typing commands rather than clicking on icons. It can be said that when a user clicks
on an icon, the computer is telling the user what to do, but, when the user types a command, they
are telling the computer what to do.
Typically operating systems offer both GUI and CLI interfaces. However, most consumer operating
systems (Windows, macOS) are designed to shield the user from the complexity of the CLI. The
Linux community is different in that it positively celebrates the CLI for its power, speed and ability to
accomplish a vast array of tasks with a single command line instruction. The virtual machines used
for the chapters and labs in this course provide a CLI for you to practice on without fear of damaging
anything.
When a user first encounters the CLI, they can find it challenging because it requires memorizing a
dizzying amount of commands and their options. However, once a user has learned the structure of
how commands are used, where the necessary files and directories are located and how to navigate
the hierarchy of a filesystem, they can be immensely productive. This capability provides more
precise control, greater speed and the ability to easily automate tasks through scripting.
Furthermore, by learning the CLI, a user can easily be productive almost instantly on ANY
distribution of Linux, reducing the amount of time needed to familiarize themselves with a system
because of variations in a GUI.
2.1 Operating Systems
An operating system is software that runs on a computing device and manages the hardware and
software components that make up a functional computing system.
Modern operating systems don’t just manage hardware and software resources, they schedule
programs to run in a multi-tasking manner (sharing the processor so that multiple tasks can occur
apparently simultaneously), provide standard services that allow users and programs to request
something happen (for example a print job) from the operating system, and provided it’s properly
requested, the operating system will accept the request and perform the function needed.
Desktop and server operating systems are by nature more complex than an operating system that
runs on a single-purpose device such as a firewall, or a mobile phone. From a simple set-top box
that provides a menu interface for a cable provider, to supercomputers and massive, parallel
computing clusters, the generic term operating system is used to describe whatever software is
booted and run on that device.
Computer users today have a choice mainly between three major operating systems: Microsoft
Windows, Apple macOS, and Linux.
Of the three major operating systems listed only Microsoft Windows is unique in its underlying code.
Apple’s macOS is a fully-qualified UNIX distribution based on BSD Unix (an operating system
distributed until 1995), complemented by a large amount of proprietary code. It runs on hardware
specifically optimized to work with Apple software. Linux can be any one of hundreds of distribution
packages designed or optimized for whatever task is required. Only Microsoft Windows is based on
a proprietary code base that isn’t either UNIX- or Linux-based.
A user can easily interact with any of these systems by pointing and clicking their way through
everyday productivity tasks that all behave similarly regardless of the underlying operating system.
Except for Windows, which is mostly administered via the GUI, most system administration tasks are
performed using typed commands in a terminal. An administrator that is familiar with UNIX can
typically perform tasks on a Linux system and vice versa. Many Linux command line functions also
have Microsoft equivalents that administrators use to do their work efficiently.

 Share 

 NDG Linux Essentials

 Content

 Objectives
 Key Terms

  Devices
 Sections

2.1.1 Decision Points


Role
The first decision when specifying any computer system is the machine’s role. Will you be sitting at
the console running productivity applications or web browsing? If so, a familiar desktop is best. Will
the machine be accessed remotely by many users or provide services to remote users? Then it’s
a server.
Servers typically sit in a rack and share a keyboard and monitor with many other computers, since
console access is generally only used for configuration and troubleshooting. Servers generally run
as a CLI, which frees up resources for the real purpose of the computer: serving information to
clients (any user or system that accesses resources remotely). Desktop systems primarily run a GUI
for the ease of use of their users.
Function
Next, determine the functions of the machine. Is there specific software it needs to run, or specific
functions it needs to perform? Will there be hundreds, even thousands, of these machines running at
the same time? What is the skill-set of the team managing the computer and software?

Life Cycle
The service lifetime and risk tolerance of the server also needs to be determined. Operating systems
and software upgrades come on a periodic basis, called a release cycle. Vendors only support older
versions of software for a certain period of time before not offering any updates; this is called
a maintenance cycle or life cycle.
In an enterprise server environment, maintenance and release cycles are critical considerations
because it is time-consuming and expensive to do major upgrades. Instead, the server hardware
itself is often replaced because increased performance is worth the extra expense, and the
resources involved are often many times more costly than the hardware.
Consider This
There is a fair amount of work involved in upgrading a server due to specialized configurations,
application software patching and user testing, so a proactive organization will seek to maximize
their return on investment in both human and monetary capital.
Modern data centers are addressing this challenge through virtualization. In a virtual environment,
one physical machine can host dozens, or even hundreds of virtual machines, decreasing space and
power requirements, as well as providing for automation of many of the tasks previously done
manually by systems administrators. Scripting programs allow virtual machines to be created,
configured, deployed and removed from a network without the need for human intervention. Of
course, a human still needs to write the script and monitor these systems, at least for now.
The need for physical hardware upgrades has also been decreased immensely with the advent of
cloud services providers like Amazon Web Services, Rackspace, and Microsoft Azure. Similar
advances have helped desktop administrators manage upgrades in an automated fashion and with
little to no user interruption.
‌Stability
Individual software releases can be characterized as beta or stable depending on where they are in
the release cycle. When a software release has many new features that haven’t been tested, it’s
typically referred to as beta. After being tested in the field, its designation changes to stable.
Users who need the latest features can decide to use beta software. This is often done in the
development phase of a new deployment and provides the ability to request features not available
on the stable release.
Production servers typically use stable software unless needed features are not available, and the
risk of running code that has not been thoroughly tested is outweighed by the utility provided.
Software in the open source realm is often released for peer review very early on in its development
process, and can very quickly be put into testing and even production environments, providing
extremely useful feedback and code submissions to fix issues found or features needed.
Conversely, proprietary software will often be kept secret for most of its development, only reaching
a public beta stage when it’s almost ready for release.
Compatibility
Another loosely-related concept is backward compatibility which refers to the ability of later operating
systems to be compatible with software made for earlier versions. This is usually a concern when it
is necessary to upgrade an operating system, but an application software upgrade is not possible
due to cost or lack of availability.
The norm for open source software development is to ensure backward compatibility first and break
things only as a last resort. The common practice of maintaining and versioning libraries of functions
helps this greatly. Typically, a library that is used by one or more programs is versioned as a new
release when significant changes have occurred but also keeps all the functions (and compatibility)
of earlier versions that may be hard-coded or referred to by existing software.

Cost
Cost is always a factor when specifying new systems. Microsoft has annual licensing fees that apply
to users, servers and other software, as do many other software companies. Ultimately, the choice
of operating system will be affected by available hardware, staff resources and skill, cost of
purchase, maintenance, and projected future requirements.
Virtualization and outsourced support services offer the modern IT organization the promise of
having to pay for only what it uses rather than building in excess capacity. This not only controls
costs but offers opportunities for people both inside and outside the organization to provide expertise
and value.

Interface
The first electronic computer systems were controlled by means of switches and plugboards similar
to those used by telephone operators at the time. Then came punch cards and finally a text-based
terminal system similar to the Linux command line interface (CLI) in use today. The graphical user
interface (GUI), with a mouse and buttons to click, was pioneered at Xerox PARC (Palo Alto
Research Center) in the early 1970s and popularized by Apple Computer in the 1980s.
Today, operating systems offer both GUI and CLI interfaces, however, most consumer operating
systems (Windows, macOS) are designed to shield the user from the ins and outs of the CLI.

2.2 Microsoft Windows


Microsoft offers different operating systems according to the machine’s role: desktop or server? The
desktop version of Windows has undergone various naming schemes with the current version (as of
this writing) being simply Windows 10. New versions of this OS come out every 3-5 years and tend
to be supported for many years. Backward compatibility is a priority for Microsoft, even going so far
as to bundle virtual machine technology so that users can run older software.
Windows Server currently (as of this writing) is at version 2019 to denote the release date. The
server can run a GUI but recently Microsoft, largely as a competitive response to Linux, has made
incredible strides in its command line scripting capabilities through PowerShell. There is also an
optional Desktop Experience package which mimics a standard productivity machine. Microsoft also
actively encourages enterprise customers to incorporate its Azure cloud service.
2.3 Apple macOS
Apple makes the macOS operating system, which is partially based on software from the FreeBSD
project and has undergone UNIX certification. macOS is well known for being “easy to use”, and as
such has continued to be favored by users with limited access to IT resources like schools and small
businesses. It is also very popular with programmers due to its robust UNIX underpinnings.
On the server side, macOS Server is primarily aimed at smaller organizations. This low-cost
addition to macOS desktop allows users to collaborate, and administrators to control access to
shared resources. It also provides integration with iOS devices like the iPhone and iPad.
Some large corporate IT departments allow users to choose macOS since users often require less
support than standard Microsoft productivity deployments. The continued popularity of macOS has
ensured healthy support from software vendors. macOS is also quite popular in the creative
industries such as graphics and video production. For many of these users, application choice drives
the operating system decision. Apple hardware, being integrated so closely with the operating
system, and their insistence on adherence to standards in application programming gives these
creative professionals a stable platform to perform many computing-intense functions with fewer
concerns about compatibility.

2.4 Linux
Linux users typically obtain an operating system by downloading a distribution. A Linux distribution is
a bundle of software, typically comprised of the Linux kernel, utilities, management tools, and even
some application software in a package which also includes the means to update core software and
install additional applications.
The distribution takes care of setting up the storage, building the kernel and installing hardware
drivers, as well as installing applications and utilities to make a fully functional computer system. The
organizations that create distributions also include tools to manage the system, a package manager
to add and remove software, as well as update programs to provide security and functionality
patches.
The number of Linux distributions available numbers in the hundreds, so the choice can seem
daunting at first. However, the decision points are mostly the same as those highlighted for choosing
an operating system.

Role
With Linux, there are multiple options to choose from depending on organizational needs. The
variety of distributions and accompanying software allows the operating system to be significantly
more flexible and customizable. Distributions are available for a much wider variety of systems, from
commercial offerings for the traditional server or desktop roles, to specialized distributions designed
to turn an old computer into a network firewall; from distributions created to power a supercomputer,
to those that enable embedded systems. These might focus on running application or web servers,
productivity desktops, point-of-sale systems, or even tools dedicated to electronics design or
statistical computing.

Function
Governments and large enterprises may also limit their choices to distributions that offer commercial
support because paying for another tier of support may be better than risking extensive outages. For
the most part, concerns over security have been addressed through the large open source
community, which monitors kernel changes for vulnerabilities and provides bug reporting and fixes at
a much larger scale than closed source vendors can achieve.
Support for necessary applications may vary and is, therefore, an additional consideration. Often
application vendors choose a subset of distributions to support. Different distributions have different
versions of key libraries, and it is difficult for a company to support all these different versions.
However, some applications like Firefox and LibreOffice are widely supported and available for all
major distributions.

Life Cycle
Most distributions have both major and minor update cycles to introduce new features and fix
existing bugs. Additionally, there are development packages where users can contribute code and
submit patches for possible inclusion into new releases.
Linux distributions can be broadly classed in two main categories: enthusiast and enterprise. An
enthusiast distribution such as openSUSE’s Tumbleweed has a fast update cycle, is not supported
for enterprise and may not contain (or drop) features or software in the next version that are in the
current one. Red Hat’s Fedora project uses a similar method of development and release cycle, as
does Ubuntu Desktop.
Enterprise distributions are almost the exact opposite, in that they take care to be stable and
consistent, and offer enterprise-grade support for extended periods, anywhere from 5-13 years in the
case of SUSE. Enterprise distributions are fewer by far, being offered mainly by Red Hat, Canonical
and SUSE.
Application software may be written such that it only supports a specific release of a distribution,
requiring users to remain on an older, less secure operating system than they might like. Therefore,
some Linux releases are considered to have long-term support (LTS) of 5 years or more while others
are only supported for two years or less.

Stability
Some distributions offer stable, testing, and unstable releases. When choosing an unstable release
for required features, consideration must be given to the fact that those features may change at any
point during the development cycle. When features have been integrated into the system for a long
time, with most of the bugs and issues addressed, the software moves through testing into the stable
release.
Other releases depend on beta distributions. For instance, the Fedora distribution releases beta or
pre-releases of its software ahead of the full release to minimize bugs. Fedora is often considered
the community-oriented beta release of RedHat. Features are added and changed in the Fedora
release before finding their way into the enterprise-ready RedHat distribution.
openSUSE and its enterprise counterpart SLES (SUSE Linux Enterprise Server) are similar, in that
the community edition is used as a testing ground for the features and functions that will eventually
be migrated into the enterprise version. Previously somewhat dissimilar, later versions of the
openSUSE and SLES distribution codebases are nearly identical, allowing for easier migration of
features and code from one to the other.
Consider This
The Debian distribution warns users about the pitfalls of using the “sid” (unstable) release with the
following warning:
‘"sid" is subject to massive changes and in-place library updates. This can result in a very "unstable"
system which contains packages that cannot be installed due to missing libraries, dependencies that
cannot be fulfilled, etc. Use it at your own risk!’
Cost
Your chosen Linux distribution itself might be zero cost, but paying for support may be worthwhile
depending on organizational needs and capabilities.

Interface
Like most operating systems, Linux can be used in one of two ways: graphical (GUI) and non-
graphical (CLI). Below is an example of a graphical desktop, with a menu bar of popular applications
to the left, a LibreOffice document being edited in the foreground, and a web browser in the
background.

In graphical mode, users can have several different windows with terminal applications (shells) open,
which is very helpful when performing tasks on multiple remote computers. Administrators and users
can log-in with their username and password through a graphical interface.
The second type of interface, the CLI, is a text-based interface to the computer, where the user
types in a command and the computer then executes it. The CLI environment is provided by an
application on the computer known as a terminal. ‌ The terminal accepts what the user types and
passes to a shell. The shell interprets what the user has typed into instructions that can be executed
by the operating system. If output is produced by the command, then this text is displayed in the
terminal. If problems with the command are encountered, then an error message is displayed.
The CLI starts with a text-based login as shown below. In a successful login, after being prompted
for a username and password, you are taken CLI shell customized for the particular user.

ubuntu 18.04 ubuntu tty2

ubuntu login:

In CLI mode there are no windows to move around. Text editors, web browsers, and email clients
are all presented in text format only. This is how UNIX operated before graphical environments were
the norm. Most servers run in this mode too, since people don’t log into them directly, making a
graphical interface a waste of resources. Here is an example of a CLI screen after logging in:

ubuntu 18.04 ubuntu tty2

ubuntu login: sue


Password:

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.



Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.4.0-72-generic x86_64)

* Documentation: https://help.ubuntu.com/

212 packages can be updated.


91 updates are security updates.

sue@ubuntu:~$ w
17:27:22 up 14 min, 2 users, load average: 1.73, 1.83, 1.69
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
sue tty2 20:08 14.35 0.05s 0.00s w

The original login prompt is at the top, with newer text added below. During login there may be some
text displayed called the message of the day (MOTD). This is an opportunity for the systems
administrator to pass information to users, or just make a silly joke. Following the MOTD is the
command prompt, in the example above, the user has entered the w command which shows who is
logged in. As new commands are entered and processed, the window scrolls up and older text is lost
across the top. The terminal itself is responsible for keeping any history, such as to allow the user to
scroll up and see previously entered commands. As far as Linux is concerned, what is on the screen
is all that there is. There’s nothing to move around.

 Share 

 NDG Linux Essentials

 Content

 Objectives
 Key Terms

  Devices
 Sections

2.4.1 Linux Distributions


Red Hat
Red Hat started as a simple distribution that introduced the Red Hat Package Manager (RPM). The
developer eventually formed a company around it, which tried to commercialize a Linux desktop for
business. Over time, Red Hat started to focus more on the server applications, such as web- and
file-serving and released Red Hat Enterprise Linux (RHEL), which was a paid service on a long
release cycle. The release cycle dictates how often software is upgraded. A business may value
stability and want long release cycles, while a hobbyist or a startup may want the latest software and
opt for a shorter release cycle. To satisfy the latter group, Red Hat sponsors the Fedora
Project which makes a personal desktop comprising the latest software but is still built on the same
foundations as the enterprise version.
Because everything in Red Hat Enterprise Linux is open source, a project called CentOS came to
be. It recompiled all the RHEL packages (converting their source code from the programming
language they were written into language usable by the system) and gave them away for free.
CentOS and others like it (such as Scientific Linux) are largely compatible with RHEL and integrate
some newer software, but do not offer the paid support that Red Hat does.
Scientific Linux is an example of a specific-use distribution based on Red Hat. The project is a
Fermilab-sponsored distribution designed to enable scientific computing. Among its many
applications, Scientific Linux is used with particle accelerators including the Large Hadron Collider at
CERN.

SUSE
SUSE, originally derived from Slackware, was one of the first comprehensive Linux distributions, it
has many similarities to Red Hat Enterprise Linux. The original company was purchased by Novell in
2003, which was then purchased by the Attachmate Group in 2011. The Attachmate group then
merged with Micro Focus International in 2014, and in 2018 SUSE announced plans to go forward
as an independent business. Through all of the mergers and acquisitions, SUSE has managed to
continue and grow.
While SUSE Linux Enterprise contains proprietary code and is sold as a server
product, openSUSE is a completely open, free version with multiple desktop packages similar to
CentOS and Linux Mint.

Debian
Debian is more of a community effort, and as such, also promotes the use of open source software
and adherence to standards. Debian came up with its own package management system based on
the .deb file format. While Red Hat leaves non-Intel and AMD platform support to derivative
projects, Debian supports many of these platforms directly.
Ubuntu is the most popular Debian-derived distribution. It is the creation of Canonical, a company
that was made to further the growth of Ubuntu and makes money by providing support. Ubuntu has
several different variants for desktop, server and various specialized applications. They also offer an
LTS version that is kept up-to-date for 3 years on desktops and 5 years on servers, which gives
developers and the companies they work for confidence to build solutions based on a stable
distribution.
‌ inux Mint was started as a fork of Ubuntu Linux, while still relying upon the Ubuntu repositories.
L
There are various versions, all free of cost, but some include proprietary codecs, which cannot be
distributed without license restrictions in certain countries.

Android
Linux is a kernel, and many of the commands covered in this course are actually part of the GNU
package. That is why some people insist on using the term GNU/Linux instead of Linux alone.
Android, sponsored by Google, is the world’s most popular Linux distribution. It is fundamentally
different from its counterparts. Android uses the Dalvik virtual machine with Linux, providing a robust
platform for mobile devices such as phones and tablets. However, lacking the traditional packages
that are often distributed with Linux (such as GNU and Xorg), Android is generally incompatible with
desktop Linux distributions.
This incompatibility means that a Red Hat or Ubuntu user cannot download software from the
Google Play store. Likewise, a terminal emulator in Android lacks many of the commands of its Linux
counterparts. It is possible, however, to use BusyBox with Android to enable most commands to
work.

Other
Raspbian is a specialized Linux distribution optimized to run on Raspberry Pi hardware. This
combination has seen significant use in training for programmers and hardware designers at all
levels. Its low cost and ease of use have made it a favorite of educators worldwide, and many add-
on devices are available to extend its capabilities into the physical world. There is a multitude of labs
and projects available that teach everything from environmental monitoring to circuit design,
machine learning, and robotics.
Linux From Scratch (LFS) is more of a learning tool than a working distribution. This project
consists of an online book, and source code, with “step-by-step instructions” for building a custom
Linux distribution from the source code up. This “distribution” embodies the true spirit of Linux
whereby users can modify any aspect of the operating system and learn how all the pieces work
together. It’s also a good starting point for anyone who needs specialized functionality or an ultra-
compact build for an embedded system project.
We have discussed the distributions explicitly mentioned in the Linux Essentials objectives. Be
aware that there are hundreds, if not thousands more that are available. While there are many
different distributions of Linux, many of the programs and commands remain the same or are very
similar.
2.4.2 Embedded Systems
Linux started out as something that would only run on a computer like Linus Torvald's: an Intel 386
PC with a specific hard drive controller, but since anyone could add to or change Linux, people
started building support for other hardware. Eventually, Linux started supporting other chips with an
emphasis on small size and low power consumption.
Because of this flexibility, a significant number of device makers have used Linux as the operating
system for their hardware products. Today we call these embedded systems because they are
designed to do a specific task on hardware optimized for only that purpose. These systems
encompass a tremendous diversity of devices that are used today, from cell phones to smart TVs
and appliances, to remote monitoring systems for pipelines and factories.
As Linux evolved, specialized processor chips were developed for consumer and industrial devices
to take advantage of its capabilities. Support for Linux has become so ubiquitous that it is possible to
prototype and bring to market new devices using off-the-shelf components. The rise of cheap, small,
adaptable single-board computers like the Raspberry Pi has given experimenters and entrepreneurs
everywhere tools to quickly build custom solutions, powered by Linux, that would have taken months
of work by specialized teams just a few years ago.
While consumers are familiar with embedded Linux entertainment devices like digital video recorders
(DVRs) and “smart TVs,” the real impact of embedded Linux is just starting to be realized.
The internet of things (IoT) is just ramping up with cheap, ubiquitous devices being deployed on
everything from oil wells to solar generating farms. These networks of smart sensors and controllers
enable engineers to adjust critical processes in real time while monitoring and reporting back to
central control stations. As more processes are being monitored and more data is being integrated
with machine learning and artificial intelligence (AI) we can anticipate gains in efficiency, safety and
productivity only dreamed of by past generations.

You might also like