Astăzi, în acest articol vom explora lumea fascinantă a lui Linux (nucleul). De la origine până la impactul său astăzi, Linux (nucleul) a fost un subiect de interes și dezbatere în mai multe domenii. De-a lungul anilor, Linux (nucleul) a jucat un rol crucial în societate, cultură și istorie, lăsând o amprentă de neșters în mintea și inimile oamenilor. Prin acest articol, vom aprofunda detaliile și complexitățile lui Linux (nucleul), examinând importanța, implicațiile și evoluția acestuia în timp. Pregătește-te pentru o călătorie fascinantă prin Linux (nucleul) și descoperi tot ce are de oferit această temă.
Deși acest articol conține o listă de referințe bibliografice, sursele sale rămân neclare deoarece îi lipsesc notele de subsol. Puteți ajuta introducând citări mai precise ale surselor. |
Linux | |
![]() | |
Autor inițial | Linus Torvalds[1] ![]() |
---|---|
Dezvoltator | Linus Torvalds și mii de colaboratori |
Versiune inițială | [2] |
Ultima versiune | 6.14[3] ![]() |
Repo | git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git ![]() |
Scris în | C |
Platformă | Arhitectură ARM Atmel AVR Blackfin DEC Alpha ETRAX CRIS Itanium Arhitectură MIPS PA-RISC PowerPC SPARC SuperH TILE64 Unicore Xtensa Motorola 68000 family IBM S/390 x86 x86_64 z/Architecture ![]() |
Tip | Nucleu |
Licență | Licența Publică Generală GNU versiunea 2 |
Prezență online | |
kernel.org | |
Modifică date / text ![]() |
Nucleul Linux (în engleză „kernel”) reprezintă nucleul sistemului de operare deschis care a fost creat de Linus Torvalds în 1991 și care a fost îmbunătățit ulterior cu ajutorul programatorilor din întreaga lume.
Acesta a fost dezvoltat inițial pentru microprocesorul Intel 80386, însă ulterior a fost portat pe multe alte platforme. Este scris aproape în întregime în limbajul de programare C, împreună cu niște extensii GNU C și cu câteva linii de cod scrise în limbajul de asamblare.
Dezvoltat sub licența GNU GPL (GNU General Public License), codul sursă al nucleului Linux este software liber.
Nucleul este cel mai bine cunoscut ca fiind principala componentă a sistemului de operare GNU/Linux. Distribuțiile de software bazate pe nucleul Linux se numesc Distribuții GNU/Linux.
Proiectul a fost lansat în anul 1991 cu faimosul mesaj apărut în rețeaua Usenet comp.os.minix care includea următoarea frază:
Până în acel moment, proiectul GNU crease multe componente necesare unui sistem de operare liber, dar nucleul său, numit "GNU Hurd", nu era complet si nici disponibil. Sistemul de operare BSD nu era încă eliberat de constrângerile legale, ceea ce a permis nucleului Linux să umple golul respectiv și, deși avea inițial o funcționalitate limitată, a atras comunitatea dezvoltatorilor de software și a utilizatorilor. Până astăzi, mii de programatori și-au adus contribuția la codul sursă al nucleului.
La început, "Linux" a fost numele nativ al nucleului. Termenul "nucleu" inseamnă aplicația de sistem de nivel scăzut ("low-level") care creează nivelul de abstractizare a componentelor hardware, controlează accesul la hard-disc și la sistemul de fișiere, permite lucrul multitasking, accesul distribuit și la rețeaua (locală), constrângerile de securitate informatică. Nucleul Linux nu este un sistem de operare complet (cum este el cunoscut în mod uzual). Un sistem complet bazat pe nucleul Linux este mai cunoscut ca "Linux", deși unii preferă să-l numească GNU/Linux. Există și o controversă privind modul de referire la acest sistem de operare. Oamenii fac deseori confuzie între nucleul și sistemul de operare Linux, ceea ce poate duce la apariția unor termeni greșiți, cum ar fi ideea că Linus Torvalds a scris sau a coordonat și alte componente ale sistemului de operare, în afară de nucleu.
Dezvoltând mai departe propriul cod și integrând modificări operate de alți programatori, Linus Torvalds continuă să lanseze noi versiuni ale nucleului Linux. Aceste versiuni se numesc nucleuri vanilla, însemnând că nu au fost modificate pentru nimeni. Mulți furnizori de sisteme de operare GNU/Linux își modifică kernelul produsului lor, în principal pentru a adăuga suport pentru drivere sau feature-uri care nu au fost oficial etichetate ca stabile, în timp ce alte distribuții, cum ar fi Slackware, se bazează pe nucleuri vanilla.
Numărul de versiune al nucleului Linux constă în prezent din patru numere, ca urmare a unei recente modificări în vechea politică a schemei de versiuni cu trei numere. De exemplu, să presupunem că numărul versiunii se compune astfel: A.B.C (de ex. 2.2.1, 2.4.13 sau 2.6.12.3).
În timp ce Linus Torvalds supervizează modificările codului și release-urile ultimelor versiuni de nucleu, el a delegat mentenanța versiunilor mai vechi altor programatori:
Versiunea nucleului | Menținător |
---|---|
2.0 | David Weinehall |
2.2 | Marc-Christian Petersen (fost Alan Cox) |
2.4 | Marcelo Tosatti |
2.6 | Andrew Morton / Linus Torvalds |
Alți programatori de nucleu linux sunt Robert Love și Ingo Molnar . (Vezi fișierul cu echipa de mentenanță Linux).
Nucleul Linux include multitasking real, memorie virtuală, biblioteci partajate, demand loading, executabile partajate copy-on-write, gestiunea memoriei corectă, și rețele TCP/IP.
Astăzi, Linux este un nucleu monolitic cu încărcare de module. Device driver-e și extensii de nucleu rulează tipic în inelul 0, cu acces total la hardware, deși unele rulează în spațiul utilizator. Spre deosebire de nucleele monolitice standard, device driver-ele se configurează ușor ca module, și se încarcă sau se descarcă în timpul rulării sistemului. Tot spre deosebire de nucleele monolitice standard, device driver-ele pot fi pre-empted în anumite condiții. Acest din urmă feature a fost adăugat pentru a trata întreruperile hardware corect, și pentru a îmbunătăți suportul pentru multiprocesare simetrică. Preemptiunea de asemenea ameliorează latența, crescând viteza de răspuns și făcând Linux mai potrivit pentru aplicații de timp real.
Faptul că Linux nu este un microkernel a fost subiectul principal al celebrului flame war între Linus Torvalds și Andy Tanenbaum pe comp.os.minix în 1992. Arhivat în , la Wayback Machine.
Codul sursă complet al diferitelor versiuni ale nucleului Linux pot fi găsite la http://lxr.linux.no .
Nucleul Linux este scris în versiunea limbajului de programare C suportată de compilatorul GNU GCC (care suportă un superset al C-ului standard), împreună cu unele secțiuni relativ scurte de cod scrise în limbajul de asamblare al arhitecturii țintă (la ultima numărătoare, Linux suporta aproximativ 20 de familii diferite de procesoare). Datorită extensiilor C suportate de compilatorul GCC, acesta a fost (împreună cu setul de unelte asociat) multă vreme singurul compilator capabil să compileze corect un nucleu Linux. Mai recent, Intel susține că și-a modificat compilatorul C astfel încât și acesta să poată modifica nucleul.
Sunt folosite, pe lângă C, și multe alte limbaje, în primul rând în legătură cu procesul de 'construire' a nucleului (metodele prin care este creată din surse imaginea bootabilă). Printre acestea se numără Perl, Python, și diferite limbaje de shell scripting. Unele driver-e ar putea fi scrise și în C++, Fortran, sau alte limbaje, dar acest comportament este cu tărie nerecomandat. Sistemul de construire a nucleului suportă doar GCC pentru compilarea nucleului și a driver-elor.
Deși inițial nu s-a intenționat ca Linux să fie un sistem de operare portabil, el este acum unul din cele mai mult portate nuclee de sistem de operare (deși NetBSD a fost portat și el pe aproape tot atâtea arhitecturi), rulând pe o gamă largă de sisteme, de la iPAQ (un calculator handheld) până la IBM System z9 (un server mainframe masiv care poate rula sute sau chiar mii de instanțe concurente de Linux). Linux este gândit pentru a rula ca sistem de operare principal pe noua arhitectură de supercalculator Blue Gene de la IBM, când aceasta va fi terminată. Linus a inclus, probabil în glumă, BogoMips în nucleu ca pseudo-unealtă de comparare a performanțelor.
Este important de notat că eforturile lui Linus au fost îndreptate cu succes și către un alt fel de portabilitate. Portabilitate, conform lui Linus, era abilitatea de a compila aplicații dintr-o varietate de surse pe sistemul său; astfel Linux a devenit la început popular în parte pentru că necesita cel mai mic efort de a face să funcționeze pe el aplicații populare sub licență GPL, precum și alte aplicații open source.
Linux rulează în prezent pe următoarele arhitecturi:
O listă completă a portărilor Linux se găsește aici Arhivat în , la Wayback Machine..
Inițial, Torvalds a lansat Linux sub o licență care interzicea orice exploatare comercială a lui. Aceasta a fost însă înlocuită curând cu GNU General Public License (exclusiv versiunea 2). Această licență permite distribuirea și chiar vânzarea unor versiuni posibil modificate de Linux dar necesita ca toate copiile să fie eliberate sub aceeași licență și însoțite de codul sursă.
Torvalds a descris decizia de a licenția Linux sub GPL ca fiind "cel mai bun lucru pe care l-am făcut vreodată." Arhivat în , la Wayback Machine.
O întrebare generală privind aplicarea GPL al Linux este dacă modulele de nucleu încărcabile sunt considerate "lucrări derivate" sub legea dreptului de autor, și de aceea intră sub incidența GPL. Torvalds și-a afirmat opinia că modulele care folosesc doar o sumulțime limitată, "publică" a interfețelor nucleului pot fi uneori considerate lucrări independente, permițând astfel unele driver-e doar binare (fără sursă publică) și alte module care nu respectă GPL. Însă nu toți contribuitorii la nucleu sunt de acord cu această interpretare, și chiar și Torvalds admite că multe module de nucleu sunt evident lucrări derivate, și într-adevăr el afirmă că „modulele de nucleu SUNT implicit derivate"; finalmente, asemenea chestiuni se pot rezolva doar în tribunal.
Linux este o marcă înregistrată a lui Linus Torvalds.
Mascota Linux este un pinguin numit Tux, creat de Larry Ewing folosind prima versiune publică a lui GIMP (0.54).
Există mai multe variante ale pinguinului Tux, unele în 3D.
Mascota este un pinguin pentru că, așa cum a spus Torvalds, "Lui Linus îi plac pinguinii. Asta e." Numele Tux vine de la (T)orvalds (U)ni(X).
În Linux, un "panic" este o eroare de sistem nerecuperabilă detectată de nucleu, spre deosebire de unele erori similare detectate de cod din spațiul utilizator. Codul nucleului poate indica o astfel de stare prin apelul funcției panic
aflate în fișierul header sys/system.h. Totuși, majoritatea panic-urilor sunt rezultatul unor excepții procesor netratate în codul de nucleu, cum ar fi referințe la adrese de memorie invalide. Acestea indică în mod tipic un bug undeva pe lanțul de apel care a condus la panic.
|title=
(ajutor)
(Carte electronică Softpanorama).
![]() |
Wikibooks are mai multe despre subiectul: Linux (nucleul) |
Urmatoarele ar trebui adăugate