So, I have been working on a multi-threaded JavaScript runtime, Nexus.js. You can think of it as the mad cousin of Node.js.
First of all: there is no event loop.
You heard that right, there is no event loop. Everything is scheduled on a thread pool, which picks “tasks” from a priority-queue and begins executing them — in parallel — on all CPU cores, simultaneously.
Internally, the Scheduler uses native C++ coroutines and all kinds of trickery to make asynchronous I/O possible.
Chestia asta mi se pare mai mult un experiment decat ceva stabil si utilizabil. Unul din selling points-urile Node-ului a fost ca nu mai avem treaba cu thread-uri, asa ca nu cred ca va avea prea mult succes (dupa cum n-a avut nici fibers de ex).
Cel putin oricine ar putea face template-uri, cu doar niste CSS… ceea ce nu stiu sa se poata in Windows, Linux sau Mac OSX… dar, daca s-ar putea, as folosi asa ceva… din plin!
Scuze, dar nu m-am putut abtine din a reinvia topicul, cand am vazut titlul.
NodeOS is a Node.js based operating system, built-off of the Linux kernel.
The NodeOS Project is aiming to, and can already run on some of the following platforms:
real hardware like desktops, laptops, or SoC’s (Raspberry Pi)
cloud providers like Joyent, Amazon or Rackspace
virtual machines like QEmu, VirtualBox, VMWare and KVM
PaaS providers like Heroku or Joyent’s Manta
container providers like Docker & Vagga
Core development is being done in layers. There could be some differences to
adjust better to each target platform, but the general structure is:
barebones custom Linux kernel with an initramfs that boots to a Node.js REPL
initramfs Initram environment to mount the users partition & boot the system
rootfs Read-only partition image to host Linux kernel and initramfs files
usersfs multi-user environment with the same behaviour of traditional OSes
Cine naiba vrea un OS pe node? Oricum kernelul e linux obviously, deci nu inteleg ce e nou aici. Ca ruleaza pe arm? Sau ca se vrea sa ruleze pe arm? Si ce ne facem cand o librarie gen leftpad nu o sa mai se updateze?
Nu e ca si cum ar exista vreo 20 de desktop managers pentru linux in momentul asta, trebuie neaparat sa scriem altul nou, toata lumea vrea ca javascript sa ruleze pe orice. As vrea daca e posibil ca node.js sa ruleze si pe pacemakerul bunicului, daca se poate, sa ma pot juca snake pe el in timp ce il vizitez, asta chiar ar fi un concurrency adevarat. Sau si mai bine, sa jucam amandoi snake multiplayer pe pacemakerul lui care ruleaza node.js. Asta merita banii.
Inca un hype, am trecut prin atatatea incat nici macar nu mi se mai pare interesant, cum au fost altele. Asta e doar o discutie normala care entuziasmeaza doar populatia de pe Hacker News si atat, in celelalte comunitati de developeri prin care ma mai invart s-a discutat cam 5 minute despre si atat.
Nu inteleg care ar fi selling-pointul noului OS. Ce are el si nu are alt sistem de operare?
Il poti rula in browser… iar cu browser-ul in Electron/NW.js, poti avea OS in OS… sau doar OS in Browser… rezulta in mai multe (posibile) vulnerabilitati… fiindca acum, daca ai infectat VirtualOS-ul, HostOS-ul este pe duca… Plus ca producatorii antivirus vor avea locul de munca asigurat inca vre-o 2-3 ani…
Sunt curios cu ce va fi inlocuit… si cine va incepe inlocuirea. (Hoping for multi-threaded client-side php)
Chestia este ca lumea nu vrea sa ruleze totul in browser, nu e un lucru placut ca browserul (FF in cazul asta) sa ocupe ~800Mb de RAM cu doar tabul DevForum deschis, pentru ca JS-ul s-a decis sa rupa procesorul si RAM-ul in doua. Nu este normal, sincer, omul a ajuns in spatiu in masini cu resurse infinit mai mici decat ocupa un browser din zilele noastre. Browserul meu vreau doar sa … browsuie si atat, sa-mi afiseze niste pagini, nu sa imi ruleze sisteme de operare. Daca vreau masini virtuale si sisteme de operare sub sisteme de operare, am alte variante, in nici un caz browserul.
Atunci ar insemna ca toate browserele sa fie inlocuite, html-ul sa fie un fel de xhtml + sa accepte alte tag-uri cu orice nume (eventual sa aiba minim un - pentru a scapa de compatibilitatea cu versiunile viitoare), atata timp cat sunt inchise (<img /> sau <a></a>), iar din css sa fie scoase floaturile, precum si tot ce nu este display:flex; si poate fi inlocuit de flexbox).
Nu intelege gresit, nu sunt de parere ca nu avem nevoie de asa ceva, dar nu cred ca se va incumeta lumea sa faca asa ceva. Plus ca chiar daca ar fi facut un nou browser, tot ar fi nevoie de masini virtuale, ca sa se asigure securitatea… doar ca ar fi mai mici ca spatiu pe disc si resurse utilizate (fiindca nu ar trebui sa fie compatibile cu js, precum si gunoiul din (x)html-ul si css-ul actual).