Universitatea Politehnica din Virginia pentru discuții între dezvoltatorii nucleului Linux despre un set de patch-uri pentru implementarea unui sistem de execuție distribuită a firelor (Execuție Distribuită a Firelor), care permite organizarea execuției aplicațiilor pe mai multe computere, cu distribuirea și migrarea transparentă a firelor între gazde. Cu ajutorul Popcorn, aplicațiile pot fi lansate pe o gazdă, apoi mutați fără a opri funcționarea pe o altă gazdă. În programele multi-frate, migrarea unor fire pe alte gazde este permisă.
Spre deosebire de proiectul , care permite salvarea stării unui proces și reluarea execuției pe un alt sistem, Popcorn oferă migrare fără întreruperi și dinamică între gazde în timpul execuției aplicației, fără a necesita acțiuni din partea utilizatorului și garantând coerența memoriei virtuale pe toate gazdele pe care firele sunt executate simultan.
Stiva software Popcorn include în nucleul Linux și cu teste care demonstrează cum pot fi folosite apelurile de sistem Popcorn pentru migrarea firelor în aplicațiile executate distribuit. La nivelul nucleului, sunt propuse extensii pentru subsistemul memoriei virtuale, cu implementarea memoriei partajate distribuite (distributed shared memory), care permite proceselor de pe diferite gazde să acceseze un spațiu de adresă virtual comun și coerent. Coerența paginilor din memoria virtuală este asigurată printr-un protocol care replică pe gazdă paginile de memorie la accesul pentru citire și anulează paginile de memorie la efectuarea scrierii.
Interacțiunea dintre gazde se realizează printr-un handler de mesaje care operează la nivel de nucleu, transmițându-se printr-un socket TCP. Se observă că TCP/IP este utilizat pentru a simplifica depanarea și testarea în timpul dezvoltării. Dezvoltatorii înțeleg că, din punct de vedere al securității și performanței, TCP/IP nu este cea mai bună metodă de transmitere a conținutului structurilor nucleului și a paginilor de memorie între gazde. Toate gazdele pe care rulează aplicații distribuite trebuie să aibă un nivel de încredere identic. După stabilizarea algoritmilor de bază, va fi aplicat un mijloc de transport mai eficient.
Popcorn evoluează din 2014 ca un proiect de cercetare pentru a explora posibilitățile creării de aplicații distribuite, fluxurile cărora pot fi executate pe diferite noduri în , în care pot fi combinate nuclee pe baza unor arhitecturi diferite de seturi de instrucțiuni (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Setul de patch-uri propus pentru dezvoltatorii kernel-ului Linux suportă doar execuția pe gazde cu CPU x86, dar există și o variantă mai funcțională, Popcorn Linux, care permite rularea aplicațiilor pe gazde cu arhitecturi CPU diferite (x86 și ARM). Pentru a utiliza Popcorn în medii heterogene, este necesar să se folosească un bazat pe LLVM. În cazul execuției distribuite pe gazde cu o singură arhitectură, recompilarea cu un anumit compiler nu este necesară.
cu privire la dependența Tor Browser de infrastructura Mozilla. Să reamintim că utilizatorilor Tor Browser, din cauza problemei cu certificatul, despre un proiect asemănător cu implementarea unui prototip inițial de API pentru a rula procese fiice pe alte computere din cluster (similar cu fork(), dar mută procesul ramificat pe un alt computer).
Codul este scris în limbajul Rust și deocamdată permite doar clonarea celor mai simple procese, care nu utilizează resurse sistemice, cum ar fi fișierele. Atunci când se efectuează apelul telefork, memoria și structurile legate de proces sunt clonate pe o altă gazdă, pe care rulează un procesor server (telepad). Prin ptrace, reflecția memoriei procesului este serializată și, împreună cu starea procesului și registrele, este transferată pe o altă gazdă. API-ul permite, de asemenea, salvarea stării procesului într-un fișier și restaurarea prin intermediul acestuia.
Sursa: opennet.ro
