Introduction to


GNU/Linux

Concepts

By Seyyed Ali Hosseini

Index:
Operation System
GNU
Free Software
Linux
GNU/Linux
Distribution


FHS
Repository
Package Manager
Permissions
Configuration Files
Shared Libraries

What is Operating System?


A Unix-like "Operating System" is a software collection of applications, libraries, developer tools, and a kernel.


Kernel is a program to allocate resources and talk to the hardware.

What is GNU?


Founded in 1983, "GNU" is a project to provide a complete Unix-like Operating System which is entirely based on Free Software.


GNU is recursive acronym of "GNU's Not Unix". It was intended to show how it is Free unlike the old Unix.

What is Free Software?


“Free Software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech”, not as in “free beer”.


Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software.

What is Linux?


"Linux" is a kernel for GNU Operating System, released in 1991 and licensed under GNU GPL later.


It is important to know despite the general belief, Linux is NOT an Operating System. It is just another system software for GNU OS!

What is GNU/Linux?


"GNU/Linux" is a term for a GNU Operating system which uses Linux as it's kernel.


There are Operating Systems either are GNU without Linux (e.g. GNU/HURD) or are not GNU but use Linux as their kernels (e.g. Android).

What is a Distribution?


A GNU/Linux Distribution (Distro) is a collection of [mostly] Free software avialable for install or live run, plus a repository of other software packaged to be installed on system.


Many groups around the world make their own distro based on their needs.

Debian




  • August 1993
  • Widely used in servers
  • Universal OS!

ubuntu




  • October 2004
  • Focused on Desktops
  • Humanity to others

Filesystem Hierarchy Standard


The Filesystem Hierarchy Standard (FHS) defines the directory structure and directory contents in Unix-like operating systems. It is maintained by the Linux Foundation.

Repository


A software repository is a storage location from which software packages may be retrieved and installed on a computer.

Package Manager


A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer's operating system in a consistent manner.

  • APT
  • YUM / DNF
  • Pacman
  • Portage
  • Permissions


    file systems have methods to assign permissions or access rights to specific users and groups of users. These systems control the ability of the users to view, change, navigate, and execute the contents of the file system.

    Configuration Files


    configure the parameters and initial settings for some computer programs. They are used for user applications, server processes and operating system settings.
    System-wide software often uses configuration files stored in /etc, while user applications often use a "dotfile" - a file or directory in the home directory prefixed with a period, which in Unix hides the file or directory from casual listing.

    Libraries


    In computer science, a library is a collection of non-volatile resources used by computer programs, often to develop software. These may include configuration data, documentation, help data, message templates, pre-written code and subroutines, classes, values or type specifications.

    Shared Libraries


    A shared library or shared object is a file that is intended to be shared by executable files and further shared object files. Modules used by a program are loaded from individual shared objects into memory at load time or run time, rather than being copied by a linker when it creates a single monolithic executable file for the program.

    Your Turn


    ?


    Back to Cover