Istorie Unix/Linux
Total Page:16
File Type:pdf, Size:1020Kb
1. Introducere & Instalare 1.1 Istorie Unix/Linux Istorie Unix/Linux Anii 60 Bell Laboratories (divizie de cercetare a AT&T) formeaza un consortiu impreuna cu MIT (Massachusetts Institute of Technology) si General Electric pentru a dezvolta un sistem de operare interactiv, multiuser si multi-tasking numit Multics (Multiplexed Information and Computing Service) care sa ruleze pe Mainframe-uri GE-645. Proiectul nu a avut succesul scontat, iar Bell Labs se retrage. Un programator pe nume Ken Thompson nu renunta si continua dezvoltarea proiectului impreuna cu un alt programator pe nume Dennies Ritchie. 1970 Noul proiect este numit Unics (Uniplexed Information and Computing Service). Numele este atribuit de Brian Kernighan, iar mai tarziu este schimbat in UNIX. Sistemul de operare este scris in limbaj de asamblare. 1973 Unix este rescris in C pentru a putea fi portabil (sa ruleze si pe alte masini). Acest lucru a dus la o dezvoltare accelerata. AT&T distribuie noul sistem universitatilor, marilor firme dar si guvernului USA. 1973-1979 Unix-ul este in continuare dezvoltat in cadrul Universitatii Berkeley din California. Printre imbunatatiri sunt shell-ul C, editorul VI precum si alte utilitare necesare. Tot aici este adaugat suportul pentru lucrul in retea. 1980-1983 AT&T lanseaza prima versiune comerciala de UNIX fara a introduce modificarile aduse de Berkeley. 1982 Un programator din cadrul proiectului BSD (Berkeley Software Distribution - Berkeley Unix) impreuna cu cativa colegi de la Stanford University creaza firma SUN - Stanford University Network. Prima lansare de Unix are loc in 1983 si se numeste SunOS. Printre altele sunt introduse NFS (Network File System) care devine un standard. 1984 Richard Matthew Stallman (nickname RMS) paraseste MIT (care crea doar software proprietar) pentru a crea un sistem de operare complet FREE (Free as in Freedom) - FREE (Free as in Freedom). Noul proiect poarta numele de GNU (GNU's not UNIX). Primul program creat a fost editorul emacs. In 1985 RMS creaza fundatia FSF - Free Software Foundation. Scopul acesteia este ca software-ul sa fie free in sensul de liber si oricine sa poata avea acces liber si fara restrictii la sursa. Acest tip de licenta se numeste GPL - General Public License. 1988 SunOS/BSD, AT&T System V Release 3 si Xenix ( Microsoft version of Unix pentru PC cu procesoare Intel cumparat de la AT&T in 1979) au fost combinate in System V Release 4 (SVR4). Nota Xenix a fost versiunea Microsoft de Unix pentru PC cu procesoare Intel cumparata de la AT&T in 1979. Aceasta a fost ulterior vanduta firmei Santa Cruz Operation(SCO) si a devenit SCO UNIX. 1990 GNU continea aproape toate componentele necesare unui nou sistem de operare, mai putin kernel-ul. 1991 Profesorul olandez Andrew Tanenbaum scrie o carte intitulata "Operating System" in care explica conceptul unui nou sistem de operare numit Minix. Un student finlandez pe nume Linus Torvalds de la Universitatea din Helsinki scrie un Kernel pentru GNU care sa ruleze pe calculatoarele AT-386 si 484, bazandu-se pe anumite concepte din cartea lui Tanenbaum. Ulterior intre Linus Torvalds si Andrew Tanenbaum se isca un conflict bazat pe viziunea diferita pe care acestia o aveau asupra noului Kernel. Detalii Celebrul anunt al lui Linus Torwalds precum ca a dezvoltat un kernel a fost postat pe un newsgroup comp.os.minix: Nota 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 ([email protected]) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have:-(. Sistemul de operare creat astfel prin folosirea kernelului lui Linus Torvalds si a programelor si utilitarelor GNU poarta numele de GNU/Linux. Nota Numele complet si corect al sistemului de operare nu este Linux ci GNU/Linux. Detalii GNU/Linux este un sistem de operare multiuser si multitasking care ruleaza pe procesoare 32 si 64 biti pe aproape toate platformele hardware existente. Este format din kernelul lui Linus Torvalds si programele de la GNU. Intre Linux si Unix exista o mare diferenta. Unix-ul este un sistem de operare proprietar cu sursa inchisa, iar GNU/Linux este un sistem de operare FREE cu sursa deshisa care la inceput a incercat sa imite sistemul Unix original. Marile firme private si-au dezvoltat propriile sisteme de operare Unix astfel: - HP-UX - Unix-ul celor de la Hewlett-Packard (SVR4). Versiunea actuala este 11.i - AIX - Unix-ul celor de la IBM bazat pe SVR4 - BSD - Unix-ul celor de la universitatea din California. In prezent exista FreeBSD, OpenBSD, NetBSD Prima distributie de Linux a fost Slackware lansata in 1993. Ulterior au aparut multe alte distributii fiecare avand specificul sau: RHEL (RedHat Enterprise Linux - Sistem Comercial) Fedora (varianta free de la RedHat) SuSE (cumparat de Novell, Sistem Comercial) Debian Ubuntu Gentoo Mandriva CentOS (bazat pe RHEL, necomercial) Knoppix (prima distributie de Linux care ruleaza direct de pe CD - LiveCD) Puppy MEPIS Nota Sistemul de operare Android folosit pe Smartphone-uri si tablete este o versiune de Linux aflata sub mentenanta Google. Detalii. Exista in prezent mai multe sute de distributii de Linux. Detalii Resurse Linux - The Code Unix Linux Richard Stallman Linus Torvalds 1.2 Consideratii Hardware 1.2.1 ACPI ACPI ACPI (Advanced Configuration and Power Interface) este un standard dezvoltat de un consortiu format din HP, Intel, Microsoft, Phoenix si Toshiba in 1996. Ultima versiune dateaza din Noiembrie 2011. ACPI reprezinta un standard prin care OS are controlul asupra recunoasterii elementelor hardware si power management. Folosind aceasta interfata BIOS-ul furnizeaza OS toate mecanismele necesare pentru controlul low-level al componentelor hardware. OS poate determina ca sistemul sa consume putina energie in anumite perioade si multa energie cand este cazul (ca si in cazul laptop-urilor). Exista pe tastatura "power management keys" pentru oprirea sistemului, cresterea luminozitatii monitorului etc. Hardware-ul (placa de baza si chiar CPU) trebuie sa fie compatibil cu acest standard. Un sistem compatibil ACPI poate sa se gaseasca in urmatoarele stari: a) G0 - Working - starea normala de operare a unui calculator cand aplicatiile ruleaza, CPU executa instructiuni etc b) G1 - Sleeping - are 4 substari ( Standby, Hybernation etc) c) G2 - Soft off - Aproximativ asemanator cu G3 (mechanical off) doar ca anumite componente raman alimentate cu energie astfel incat diferite evenimente sa poate aduce statia in starea G0 (keyboard, LAN, USB). Din aceasta stare sistemul trebuie sa buteze pentru a intra in starea G0. d) G3 - Mechanical Off - Nivelul de energie consumat este aproape zero. Wake on LAN (WoL) WoL este o tehnologie care permite pornirea unui calculator de la distanta prin trimiterea unui frame Ethernet special. Placa de retea este alimentata continuu cu energie si asculta primirea frame-ului special. Supportul pentru Wake on Lan (WoL) este implementat pe placa de baza. NIC-ul (care inca primeste energie) asculta dupa acel pachet special numit "Magic Packet". Daca acesta este valid buteaza calculatorul. Magic Packet: se trimite pe adresa de broadcast folosind UDP si portul 0 (la inceput), 7 sau 9 (mai recent). Datele din MagicPacket: FFFFFFFFFFFF urmat de 16 repetitii ale MAC-ului targetului si eventual o parola formata din 4 sau 6 bytes In afara de hardware (placa de baza) compatibil exista si componenta software si anume programul care genereaza si trimite target-ului magic packet. Exista mai multe astfel de aplicatii atat pentru Windows cat si pentru Linux. Un exemplu de astfel de program este Wake on LAN GUI Nota Daca se doreste pornirea calculatorului dintr-o alta retea de exemplu Internet, Routerul trebuie configurat pentru redirectarea pachetelor "Directed Broadcast" Resurse Linux ACPI ACPI Wake On Lan 1.2.2 Hard Disks Hard Disks In prezent pentru PC-uri exista 2 standarde de conectare a hard disk-urilor la placa de baza: SATA si PATA ATA - Advanced Technology Attachment reprezinta o interfata prin care hard disk-urile, CD/DVD se conecteaza la placa de baza. Odata cu introducerea SATA (Serial ATA) in 2003, ATA a fost redenumita PATA (Parallel ATA). Pe placa de baza a arhitecturii X86 exista 2 sloturi pentru conectarea hardiskurilor PATA. Pe fiecare cablu paralel se pot conecta 2 hdd. Avem astfel in total maxim 4 hdd. Ele sunt reprezentate in Linux astfel: /dev/hda - primary master hard disk /dev/hdb - primary slave hard disk /dev/hdc - secondary master /dev/hdd - secondary slave Important Fiecare Hard Disk poate contine partitii primare care pot fi maxim 4 si partitii logice care se gasesc in cadrul unei partitii extinse. A 4-a partitie primara este considerata partitia extinsa, este unica si va contine restul partitiilor logice. Nota In cazul hard disk-urilor SATA sau SCSI acestea sunt reprezentate prin fisierele /dev/sda, /dev/sdb, /dev/sdc si /dev/sdd. Notiunile de primary master, primary slave etc nu mai exista. De asemenea ultimele versiuni de kernel folosesc o interfata standard de accesare atat pt. PATA cat si pt.