8 ms·
wait what? using a whole linux kernel as firmware before booting another OS to improve speed, reliability, security? does this seem strange to anyone else?
by Palomides 9y ago
wait what? using a whole linux kernel as firmware before booting another OS to improve speed, reliability, security? does this seem strange to anyone else?
- euyyn 9y agoCheck Ron Minnich's talk explaining the why: https://schd.ws/hosted_files/osseu17/84/Replace%20UEFI%20with%20Linux.pdf https://schd.ws/hosted_files/osseu17/84/Replace%20UEFI%20wit... (The video of the presentation is linked in the OP). There's already two and a half obscure OS's running underneath the OS for booting. So this replaces all that crap with something lean and good.
- mevile 9y agoFirmware with a built in web server is pretty spooky. Why do they have that?
- AceJohnny2 9y agoTo administer a fleet of computers remotely. HTTP is a widely-implemented and tested protocol that fits the problem domain well.
- kevin_thibedeau 9y agoAs opposed to something like SNMP that was designed for remote management.
- y0ssar1an 9y agoMost UEFI implementations have a network stack these days. It's horrible.
- yuhong 9y agoDon't forget OpenSSL. Imagine how long SSLv3 or export ciphers would last if this was done in the 1990s
- Hello71 9y agoI agree, but it's not exactly like PXE didn't exist before EFI was invented, and AIUI EFI actually decided to reuse PXE instead of NIHing another overengineered non-solution, so honestly that's not even so bad.
- carussell 9y agoSee https://en.wikipedia.org/wiki/Intel_Active_Management_Technology https://en.wikipedia.org/wiki/Intel_Active_Management_Techno... and https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface https://en.wikipedia.org/wiki/Intelligent_Platform_Managemen...
- kodablah 9y ago> So this replaces all that crap with something lean and good. I think the concern is about "lean". I don't think there's a lot of code yet, but I do see it will use http://u-root.tk/ http://u-root.tk/.
- hugelgupf 9y agoLinuxBoot is trying to be agnostic to the initramfs. We don't want to prescribe what tools you use to boot your system. When there is a build system, you'll be able to choose whatever initramfs you want to implement your boot policies. The two choices we have today are NERF (= LinuxBoot + u-root as initramfs, as you linked) and Heads (LinuxBoot with Heads kernel and runtime, see http://osresearch.net http://osresearch.net).
- vanderZwan 9y ago> DigitalTermometerSensor (sic) Heh, that gave me a chuckle > Userland written in Go (http://u-root.tk http://u-root.tk) So much for Go not being a systems programming language.
- justincormack 9y agoIts kind if weird, they compile at runtime as Go is a bit bloated. But userspace is a good fit for Go. GC timing is not an issue, it has good libraries. Much better choice than C for almost all userspace bringup.
- hugelgupf 9y agoWe also have a mode that rewrites all commands' sources given so it can be compiled into one binary. It ahem needs some improvements, though :)
- pjmlp 9y ago> So much for Go not being a systems programming language. There are other examples already. Fuchsia TCP/IP stack and file system driver management utilities are implemented in Go. https://groups.google.com/d/msg/golang-dev/2xuYHcP0Fdc/tKb1PgTXAwAJ https://groups.google.com/d/msg/golang-dev/2xuYHcP0Fdc/tKb1P... Android's new GPU debugger is written in Go. https://github.com/google/gapid https://github.com/google/gapid An then there are some bare-metal experiments like G.E.R.T. https://github.com/ycoroneos/G.E.R.T https://github.com/ycoroneos/G.E.R.T
- vanderZwan 9y agoI knew about G.E.R.T. but the other two are new to me, very nice! (I was going for a tongue-in-cheek ribbing of the Go-haters - in retrospect my wording sounds a bit passive-aggressive, probably should have ended with an exclamation mark and a smily or something)
- pjmlp 9y agoI do share a love-hate relation to Go. I love it is based on a mix of Oberon and Limbo, compiled to native code and an improvement for what a safe C like language should probably look like, and who knows maybe someone decides a day to do a "Goberon" OS for they OS PhD research. Basically what Java and C# 1.0 should have been all along, about 20 years ago. However I also dislike some of the design decisions regarding features that will never come to Go, regardless of how much we get to discuss them, even with the mirage of Go 2.0.
- mikepurvis 9y agoSimilar philosophy to Petitboot, for which the rationale is given here: https://www.youtube.com/watch?v=CQueOHKO58M https://www.youtube.com/watch?v=CQueOHKO58M Obviously it's a heavy weight solution, but the idea of having more drivers and better support is compelling— it's a much easier path to exotic boot setups, eg over wifi, off a SAN, whatever.
- throwaway2048 9y agowhy boot linux then boot linux again, rather than just booting linux once?
- megous 9y agobootstrapping
- ganshun 9y agoThe current way an x86 platform is booted to linux today uses mostly closed source UEFI DXE drivers, so the current boot flow is really (simplified) like this: UEFI DXE loads disk/network -> Linux We're doing Linux (with commonly used open source drivers)-> Linux It's possible that if your end goal is a Linux system without too many requirements, you could stop at the first Linux system without ever booting the second. However the bios rom memory is pretty small, and we're mostly working with about 4-8mb of free space left not including the ME region or UEFI PEI.
- krylon 9y ago> you could stop at the first Linux system without ever booting the second Someone did that! Well, something like it, anyway.I have an Asus EeeBox sitting on my desk, gathering dust, that has something called "SplashTop" - if I hit the right key during the POST screen, it boots into a minimalistic Linux desktop in about 2 seconds. There is networking and a browser. I haven't used it in ages, but I think the problem was that it could not access the file system, so one could not do very much, and I think settings did not persist across reboots. But the general idea seemed appealing at the time.
- kruhft 9y agoTROLL
- dbcurtis 9y agoWell, it depends on your definition of "whole Linux". By it's nature, it can be stripped down fairly lean, especially if you know precisely which drivers you need, and don't need a lot of user-space support libraries, etc. It is possible for *nix to be very minimal, less so than in the old days, of course. But speaking of the old days, when I earned my bread as a CPU logic designer, I recall one grizzled OS developer's reaction to the looooong errata list for the A0 stepping of some new silicon: "Pffft. I can bring up Unix on a broken washing machine."