Can someone break this down for me? Looks like it's using... C? to load a js interpreter which bootstraps an API around all UEFI features? Do I have that right?
And, if so, does that mean that once the API has been bootstrapped, one could actually write an OS in js? Or are there other abstractions that would need to be migrated first?
Does it manage to support floats? I am not sure if those can be safely used in the UEFI environment. (I recall GRUB’s build of Lua being integer-only, and Linux avoiding the use of floating-point arithmetic in kernel mode, but I don’t remember the reason.)
Why is it a new surface? Either you can run UEFI code, or you can't. Attacking the JS interpreter itself is unrealistic IMHO, it's the poorly written JavaScript running on top of this that might open new surfaces of attack. But other UEFI code is mostly written in C or C++, so let's call that a wash?
Oh hey, we've reached the "Metal" stage! https://www.destroyallsoftware.com/talks/the-birth-and-death...
> If this makes you grin, you are probably holding the torch.
What if it makes me recoil in horror? screams into the void
Love this. An example of complete and total dominion over the machine. Great quote here too lol
> Prometheus stole fire from the gods and gave it to man. For this he was chained to a rock and tortured for eternity.
Can someone break this down for me? Looks like it's using... C? to load a js interpreter which bootstraps an API around all UEFI features? Do I have that right?
And, if so, does that mean that once the API has been bootstrapped, one could actually write an OS in js? Or are there other abstractions that would need to be migrated first?
> And, if so, does that mean that once the API has been bootstrapped, one could actually write an OS in js?
I bet somebody has done that.
https://www.google.com/search?q=os+kernel+in+javascript
Seems like a small number of hobbyists have attempted.
OS in JS, ok I am interested now...
Depending on your definition of OS, yeah you could do that :)
Hey, when Apple transitioned from m68k to PowerPC, it took them a hell of a long time to rewrite massive parts of their OS. It's a low bar, though...
I presume you'll add the network stack next, so that I can use my favourite, most useful packages?
Well, there's a network stack already there, including HTTP and HTTPS on newer firmwares.
We are getting isOdd in the bootloader before GTA-IV
Wait, when did I time-travel?
oops typo
Does it manage to support floats? I am not sure if those can be safely used in the UEFI environment. (I recall GRUB’s build of Lua being integer-only, and Linux avoiding the use of floating-point arithmetic in kernel mode, but I don’t remember the reason.)
Yeah floats works
This project will go places. Like every silly project not intended for production. :)
next step is to create a UEFI TUI using react (please don't)
you may just have casted a curse on our future motherboards, damn you
OMG we can use ink for that
"The Birth and Death of JavaScript" is coming true after all.
Wow, this is cursed.
I think the proper term is blursed.
I think r/unixporn will love it once it gets DOM support :^)
Finally, we can create splash screen animations in pure CSS!
Turning in the widening gyre, the falcon cannot hear the falconer. The center cannot hold.. The old prophesy is coming true.
This is incredible.
Awesome! Everything will be rewritten in JS
> If this makes you grin you are probably holding a torch
Hilarious
Can't wait for browser support for this... ;-)
Soon™
It begins!
Yeah, but your [developers] were so preoccupied with whether or not they could, they didn't stop to think if they should.
Cursed
Finally!
"Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should."
Pretty neat, though.
I love it.
Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should!
But why?
It's just a silly experiment; the real endgame is to make a bootloader that is customisable using HTML/CSS/JS
Since PDFs can contain JS, presumably that should be the preferred way of modifying your boot loader.
Yeah that's the natural next step, I'll work on that next
Why not?
Because this can end very badly. It is a new surface to attack
Why is it a new surface? Either you can run UEFI code, or you can't. Attacking the JS interpreter itself is unrealistic IMHO, it's the poorly written JavaScript running on top of this that might open new surfaces of attack. But other UEFI code is mostly written in C or C++, so let's call that a wash?
Exactly! It's actually great! More ways to jailbreak stuff.
Maybe? What's your threat model?