DragonFly BSD
Această intrare sau secțiune despre subiectele de operare nu menționează sursele necesare sau cei prezenți sunt insuficienți . |
DragonFly BSD sistem de operare | |
---|---|
Dezvoltator | Matt Dillon |
Familie | BSD |
Eliberarea inițială | 1.0 (12 iulie 2004 [1] ) |
Lansare curentă | 5.8.3 (24 septembrie 2020 [2] ) |
Tipul de nucleu | Kernel hibrid |
Platforme acceptate | x86-64 |
Manager de pachete | DPorts, pkgng |
Tipul licenței | Software gratuit |
Licență | BSD |
Etapă de dezvoltare | in productie |
Site-ul web | www.dragonflybsd.org/ |
Dragonfly BSD este un sistem de operare asemănător Unix pentru mașini multiprocesor derivat din versiunea 4.8 a FreeBSD . În prezent, acceptă doar arhitectura x86-64 . Arhitectura pe 32 de biți a fost scoasă din funcțiune pe 15 noiembrie 2014.
Istorie
Proiectul s-a născut din ideea lui Matthew Dillon , un dezvoltator Amiga , deoarece nu era mulțumit de metoda prin care FreeBSD gestiona sistemele multiprocesor, prin SMPng (derivat din codul BSD / OS 5).
Dezvoltarea Dragonfly BSD a început în iunie 2003 și a fost anunțată în iulie a aceluiași an. [3] Baza de cod a fost preluată din versiunea FreeBSD 4.8, care oferea cele mai bune performanțe și cele mai complete caracteristici. S-a decis să se utilizeze o arhitectură care să țină seama de viteza de acces diferită la amintirile prezente într-un sistem, precum cache și RAM (Random Access Memory), care este de o importanță fundamentală în crearea sistemelor multiprocesor.
Această arhitectură se numește NUMA (Non Uniform Memory Access) și permite utilizarea unui sistem cu un număr mare de canale, accelerând tranzitul de date între CPU și memorie. Filosofia Dragonfly este împărțirea explicită a muncii între procesoare, ceea ce înseamnă că un proces nu va fi transferat niciodată către un alt procesor, permițându-vă astfel să faceți cea mai bună utilizare a datelor conținute în cache și fără a fi nevoie să îl blocați.
Dragonfly BSD este dezvoltat de mulți programatori din întreaga lume. Nu există un proces de calificare; oricine își poate trimite codul, documentația sau desenele pentru a fi utilizate în proiect.
Caracteristici
Nucleul
Dragonfly BSD este primul sistem de operare de tip BSD care adoptă o arhitectură kernel hibridă, adică nucleul împărtășește conceptele și mecanismele arhitecturale atât ale nucleelor monolitice, cât și ale celor de tip micro. Modelul Light Threading Kernel ( LWKT ) funcționează prin asocierea fiecărui proces cu un thread. Fiecare procesor are propriul programator LWKT . În acest fel, firele sunt atribuite unui anumit CPU , permițând astfel gestionarea fără a fi nevoie să utilizați o blocare MP .
De asemenea, datorită protecției memoriei, un fir de execuție nu poate fi mutat pe un alt procesor de un fir de prioritate mai mare, iar aplicațiile nu vor interfera niciodată unul cu celălalt.
Gestionarea firelor de utilizator este realizată de un programator dedicat, numit Userland și executarea acestuia este reglementată, chiar și în cazul unei întreruperi, de datele conținute în cache.
Comunicarea subsistemelor
Comunicarea implementată în majoritatea subsistemelor de comunicații Dragonfly are loc prin Inter-Process Interrupt . Acest sistem este folosit pentru a împărți firele și a elibera memoria pe alte procesoare . Mesajele generate de acesta din urmă constau dintr-un apel având un pointer funcțional și date conexe pe care CPU-ul receptor le va executa asincron. În acest fel, veți avea avantaje mari din punct de vedere al performanței, deoarece CPU apelant nu va aștepta executarea procesorului țintă. Primirea unui mesaj IP de la un CPU suspendă firul care rulează în prezent, făcându-l deblocabil.
Gestionarea firelor din kernel
Gestionarea thread-urilor din nucleu are loc prin distribuitorul de slab , un subsistem care permite accesul la porțiuni de cod critic fără a refuza altor procesoare utilizarea nucleului rămas. Cu alte cuvinte, atunci când un procesor trebuie să utilizeze o parte a nucleului, acesta blochează global accesul la nucleu pentru timpul necesar pentru a exclude acea secțiune particulară de la execuția de către celălalt procesor.
Acest proces necesită ca alocatorul de plăci al fiecărui procesor să se ocupe de 128k de nuclee care vor fi apoi distribuite și împărțite în zone mai mici în funcție de cererea firelor.
Notă
- ^ ( EN ) https://www.dragonflybsd.org/mailarchive/kernel/2004-07/msg00143.html
- ^ ( EN ) https://www.dragonflybsd.org/release58/
- ^(RO) Matthew Dillon, „Anunțarea DragonFly BSD!” 16/07/2003 Depus la 2 octombrie 2018 în Arhiva Internet .