10: Wstęp do Linuksa
Historia
PDP-11
UNIX (1970…)
- Bell Labs
- język C
- przeznaczenie:
- centrale telefoniczne
- mainframe (serwery)
Ken Thompson & Dennis Ritchie

1943- (KT)
1941-2011 (DR)
- pionierzy informatyki
- twórcy m.in. UNIX-a i C
- laureaci Nagrody Turinga
Cechy UNIXa
- wielozadaniowość
- wielodostępność
- hierarchiczny system plików
- pliki tekstowe
Filozofia UNIXa
- proste programy wykonujące jedno zadanie
- wynik działania programu łatwy do dalszego przetwarzania
- unikanie plików binarnych
- unikanie interaktywności
- rozbijanie problemów i rozwiązań na mniejsze
- tworzenie narzędzi pomocniczych, w tym generujących kod
- samowystarczalność
- nadrzędność przenośności nad wydajnością
IBM PC (1981)

- architektura Intel 8088/x86
(8088, 8086, 286, 386...)
- MS-DOS, MS Windows
DOS (1981)

- brak wielozadaniowości
- brak wielodostępności
- brak natywnej obsługi sieci
- bezpośredni dostęp do zasobów
- gry, programy
Andrew Tanenbaum

1944-
- profesor nauk technicznych
- wykładowca na Wolnym Uniwersytecie w Amsterdamie
- specjalizacja: systemy operacyjne
Książka “Systemy Operacyjne”

Minix (1987)
- mini Unix
- prosty, do celów dydaktycznych
- dostępny dla 8088, potem x86
- ograniczona licencja
Richard Stallman

1953-
- programista
- aktywista
- działacz społeczny
- filozof
4 wolności
- uruchamianie programu w dowolnym celu
- analiza działania i modyfikacja (→ open source)
- rozpowszechnianie
- rozpowszechnianie swoich modyfikacji
“copyleft”
@COPYLEFT
ALL WRONGS RESERVED
GNU is not in the public domain. Everyone will be permitted
to modify and redistribute GNU, but no distributor will be
allowed to restrict its further redistribution. That is to say,
proprietary modifications will not be allowed. I want to make
sure that all versions of GNU remain free.
General Public License
- GPLv1 (1989)
- GPLv2 (1991)
- GPLv3 (2007)
GNU GPL
Licencja MIT
Massachusetts Institute of Technology (1980s)
MIT License
Inne wolne licencje
- public domain
- LGPL
- AGPL
- BSD License
- Creative Commons
- Apache License
- Mozilla Public License
- Unlicense
- Apple Public Source License
- WTFPL
- Netscape Public License
- ISC
- Microsoft Public License
Porównanie licencji: Wikipedia
Opis licencji prostym językiem: tl;drLegal
Free as in freedom, not free as in free beer
Free Software Foundation (1985)
- Wspieranie ruchu wolnego oprogramowania
- Tworzenie oprogramowania
- Tropienie naruszeń licencji GPL
- Walka ze złymi praktykami twórców oprogramowania
GNU (1983)

GNU is Not Unix
- system operacyjny
- kernel
- oprogramowanie
- programy użytkowe
Oprogramowanie GNU
- shell: GNU Bash
- polecenia: GNU Coreutils, grep, tar
- bootloader: GRUB
- kompilatory: GCC, Make
- biblioteki: Lib C, readline
- kernel: GNU Mach/GNU Hurd
- narzędzia: GnuPG, Octave, Emacs, GDB
- desktop, aplikacje: GNOME, GIMP
- i wiele innych
Linus Torvalds

1969-
- szwedzkojęzyczny Fin
- student Uniwersytetu Helsińskiego (w 1991)
- obywatelstwo USA (od 2010)
My new operating system
Linux (1991)
- inspirowany Miniksem
(ale nie bazujący na nim)
- główne różnice:
- architektura kernela
- licencjonowanie
GNU/Linux
POSIX (1988)
IEEE Standard 1003.1
Portable Operating System Interface
POSIX
- procesy
- sygnały
- pliki i katalogi (+operacje)
- standardowa biblioteka C
- I/O
- shell - polecenia
- i inne
Certyfikowane z POSIX
- Solaris (SunOS)
- macOS (Apple)
- AIX
- HP-UX
- IRIX
- UnixWare
- QNX Neutrino
Prawie zgodne z POSIX
- MINIX
- Linux
- Android
- BSD (FreeBSD, OpenBSD, NetBSD, Dragonfly BSD)
Dlaczego prawie?
- brak formalnej certyfikacji
- minimalne odstępstwa od standardu
Microsoft Windows?
Ranking 500 najpotężniejszych nierozproszonych komputerów.
Linux na TOP500
- pierwszy raz na liście w 1998
- 100% udziału od 2017
- Unix (w tym BSD): spadek z prawie 100% do 0%
- Windows: w porywach 0.8% (4/500)
[1]
Timeline
GNU/Linux Copypasta
I’d just like to interject for a moment. What you’re refering to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Linux, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux!
https://www.gnu.org/gnu/incorrect-quotation.en.html
Pojęcia
- UNIX
- Linux
- GNU/Linux
- dystrybucja Linuksa
- Ubuntu
- Red Hat Enterprise Linux
Linux
GNU/Linux
- system operacyjny z kernelem Linuksa
- oprogramowanie z projektu GNU
Dystrybucja Linuksa
System operacyjny oparty na Linuksie
- dostosowany do konkretnego zastosowania
- wydany przez konkretny podmiot
- instalator i system pakietów
- usługi dodatkowe
- niekoniecznie GNU (np. Alpine Linux)
Dystrybucje
Również inne Uniksy i Uniksopodobne
- BSD
(FreeBSD, OpenBSD, NetBSD…)
- Solarisy
- …
Komponenty
kernel: v5.4.x v5.10.x v6.6.x v6.14.x
init: systemd SysVinit OpenRC Runit
pulpit: GNOME KDE MATE XFCE
web: Firefox Konqueror Chrome ...
shell: bash ash tcsh zsh
narzędzia: coreutils busybox rust-cu go-cu
pakiety: deb rpm apk xbps
... ... ... ... ...
Wersje (wydania)
rok |
dystrybucja |
kernel |
GNOME |
GCC |
Python |
2019 |
RHEL 8 |
4.18 |
3.28 |
8.2 |
3.6 |
2020 |
Ubuntu 20.04 |
5.4 |
36 (3.36) |
9.0 |
3.8 |
2021 |
Debian 11 |
5.10 |
38 (3.38) |
10.2 |
3.9 |
2022 |
Ubuntu 22.04 |
5.15 |
42 (3.42) |
11.0 |
3.10 |
2022 |
RHEL 9 |
5.14 |
40 (3.40) |
11.2 |
3.9 |
2022 |
Ubuntu 22.10 |
5.19 |
43 (3.43) |
12.2 |
3.10 |
2023 |
Debian 12 |
6.1 |
43 (3.43) |
12.2 |
3.11 |
2024 |
Ubuntu 24.04 |
6.8 |
46 (3.46) |
13.0 |
3.12 |
Koniec