Introduction to
GNU, Free Software, FSF, Copyleft,
GNU/Linux System

Alireza Afzalaghaei

B.Sc. Computer Science

Damghan University

Operating System Definition

In general, there is no universally accepted definition of what is a part of the Operating System

  • A simple viewpoint is that it includes everything a supplier ships when you order 'The Operating System'

 

  • A more common definition is that the Operating System is the one program running at all time (usually called the Kernel which performs the functions of controlling and allocating resources), with all else being System Programs and Application Programs

Computer System Structure

UNIX (1969)

the Unix operating system was conceived and implemented by Ken Thompson and Dennis Ritchie in 1969 and first released in 1970.

Later they rewrote it in a new programming language, C, to make it portable.

UNIX System Architecture

The GNU Project (1984)

The GNU Project was launched in 1984 by Richard Stallman, to develop a complete Unix-like System called GNU which is free software. Unix—like Systems are built from a collection of libraries, applications and developer tools — plus a program to allocate resources and talk to the hardware, known as a kernel

The name “GNU" is a recursive acronym for “GNU‘s Not Unix!";

it's pronounced g-noo, as one syllable with no vowel sound between G and N

Free Software


'Free software' is a matter of liberty, not price. To understand the concept, one should think of 'free' as in 'free speech' not as in 'free lunch'

 

Free Software

It means that the program's users have the four essential freedoms:

  • 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.  Access to the source code is a precondition for this
  • The freedom to redistribute copies so you can help your neighbor
  • The freedom to distribute copies of your modified versions to others

Free Software

Since “free refers to freedom, not to price, there is no contradiction between selling copies and free software.

 

In fact, the freedom to sell copies is crucial: collections of free software sold on CD-ROMs are important for the community, and selling them is an important way to raise funds for free software development

Free Software Foundation (1985)

  • The Free Software Movement (FSM) is a social and political movement with the goal of ensuring software users' four basic freedoms (Definition of 'Free Software')
  • The Free Software Foundation (FSF) is a nonprofit founded by Richard Stallman in 1985 to support the Free Software Movement

Free Software Foundation

The core work:

  • Maintains historic articles covering Free Software Philosophy and maintains the Free Software Definition
  • Sponsors the GNU Project
  • The FSF holds copyright on a large proportion of the GNU system, and other free software
  • The FSF publishes different licenses e.g. GNU GPL, etc
  • The FSF campaigns for free software adoption and against proprietary software
  • The FSF also provides important resources to the community

Making a Program Free Software

  • The simplest way:

Put it in the public domain, uncopyrighted. This allows people to share the program and their improvements

 

  • The Problem:

It also allows uncooperative people to convert the program into proprietary

software. They can make changes, many or few, and distribute the

result as a proprietary product. People who receive the program in that

modified form do not have the freedom that the original author gave them;

the middleman has stripped it away

 

Copyleft

Copyleft is a general method for making a program (or other work) free and requiring all modified and extended versions of the program to be free as well

To copyleft a program:

  • State that it is copyrighted
  • Add distribution terms, which are a legal instrument that gives everyone the rights to use, modify, and redistribute the program's code, or any program derived from it, but only if the distribution terms are unchanged. Thus, the code and the freedoms become legally inseparable

Copyleft Implementation

Copyleft is a general concept, and you can't use a general concept directly; you can only use a specific implementation of the concept

The FSF defines the following implementations:

  • GNU General Public License (GNU GPL): Used for most software in the GNU Project
  • GNU Lesser General Public License (GNU LGPL): Applies to a few (but not all) GNU Libraries
  • GNU Affero General Public License (GNU AGPL): Specifically designed to ensure cooperation with the community in the case of network server software
  • GNU Free Documentation License (GNU FDL): Intended for use on a manual, textbook or other document to assure everyone the effective freedom to copy and redistribute it, with or without modifications, either commercially or noncommercially

Minix (1987)

MINIX (from "mini-Unix") is a POSIX-compliant Unix-like computer operating system based on a microkernel architecture created by Andrew S. Tanenbaum.

Monolithic Kernel Vs Microkernel

GNU Hurd (1990)

By 1990 almost all of the important System/Application programs which were

required for the GNU System had been written. The only important program
that was missing was the 'Kernel'

The GNU Hurd is the GNU project‘s replacement for the Unix kernel

  • Microkernel Based Operating system
  • It is a collection of servers that run on the Mach microkernel to implement file systems, network protocols, file access control, and other features that are implemented by the Unix kernel

GNU System

LInux(1991)

In 1991 Linus Torvalds started a personal project to implement a new

kernel called 'Linux' for his Intel 80386 PC, which was released under GNU GPL

 

  • Monolothic Kernel
  • Soon it became very popular and filled the gap in the GNU System: The Kernel

GNU/LInux System

On 25 August 1991, he (at age 21) announced this system in a Usenet:

Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)

Just for Fun: The Story of an Accidental Revolutionary is a humorous autobiography of Linus Torvalds, the creator of the Linux kernel, co-written with David Diamond. The book primarily theorizes the Law of Linus that all evolution contributed by humanity starts for survival, sustains socially and entertains at last.

Just for Fun

Version 3.10 of the Linux kernel, released in June 2013, contains 15,803,499 lines of code, while the version 4.1, released in June 2015, has grown to over 19.5 million lines of code contributed by almost 14,000 programmers.

More About Kernel

The fact that Linux is a monolithic kernel rather than a microkernel was the topic of a debate between Andrew S. Tanenbaum, the creator of MINIX, and Linus Torvalds. The debate, started in 1992 on the Usenet discussion group comp.os.minix, was about Linux and kernel architecture in general. Tanenbaum argued that microkernels are superior to monolithic kernels and that therefore Linux is obsolete.

Tanenbaum–Torvalds debate

Where Linux is used

  • Server
  • Embedded System
  • Desktop
  • Mobile
  • TV
  • Car
  • ...

Why should we use linux?

  • Customizable
  • Open Source
  • Free
  • Reliable
  • Fast
  • Secure
  • Stable

Because it's: 

  • Runs on any hardware
  • it's easy to Update
  • Includes drivers
  • has community support
  • has many tools for programmers

Because it: 

Linux distribution

A Linux distribution (often abbreviated as distro) is an operating system made from a software collection, which is based upon the Linux kernel and, often, a package management system.

widely used GNU/linux distributions

  • Debian
    • Ubuntu
      • Kubuntu, Xubuntu, Lubuntu, Linux Mint, ...
  • Fedora
    • RedHat
      • CentOS
  • ArchLinux
  • Gentoo
  • Open Suse
  • Deepin
  • Kali
  • ...
  • And some Persian distros: SLG, Kosar, Ghasedak, Arios

Best linux Desktop Environments

  • Plasma
  • Xfce
  • Mate
  • Gnome
  • Unity
  • Cinnamon
  • Budgie

Linux Package Managers

  • Debian
    • APT
    • Aptitude
    • Synaptic
  • RedHat
    • YUM
    • DNF
  • Arch Linux
    • PacMan
  • OpenSuse
    • Zypper

Conclusion

  • Linux  is not GNU/Linux
  • GNU/Linux is not Windows

Useful links

Any Question?

Thank you

Made with Slides.com