What is "Firmware as a Service" ?<p>In my mind, firmware is the low-level software that's embedded in a device, and is both hard to change and unlikely to need to change, because it provides utility foundational to using your hardware. How do you turn that into a service?<p>Edit: apparently I can't read because it was right in there: <i>"Firmware as a Service optimizes UEFI and other system firmware for timely quality patches that keep firmware up to date and enables efficient development of post-launch features."</i> So basically, take the limitations I mentioned and get rid of them.
Not to be too anti-microsoft. But this seems like they're bringing the EUFI into windows, therefor allowing them in the future to make it harder than it already is(or eventually impossible) to actually get into the EUFI to install a competing OS.<p>I admit I'm decently "tin-foil hat" about microsoft, but every new laptop I've bought over the last 10 years have been progressively harder to get into UEFI/BIOS to remove windows and install a new OS.
In the "Introducing Project Mu" blog post it says "The Microsoft Devices Team is excited to announce Project Mu, the open-source release of the Unified Extensible Firmware Interface (UEFI) core leveraged by Microsoft products including both Surface and the latest releases of Hyper-V."<p>And I saw in one of the tickets for Virtualbox [1] that:<p><i>You go VM-entry, execute guest, VM-exit. Cooperatively. Unfortunately MS launches Hyper-V at boot time as a service and keeps a hold of the VT-x, regardless of use or not</i><p>and<p><i>This is a problem with Hyper-V being too aggressive and not releasing VT-x once it's got a hold of it. VMWare and VirtualBox for example can not only coexist, but they can run concurrently. Not so with Hyper-V.</i><p>So does that mean that we can finally have virtualbox/vmware when hyper-v is enabled but not in use, or do they have to open up more in order to get this fixed?<p>I am afraid that may be the case as the only thing I saw in my first quick glance was VTd(directed io) code[2] and in a quick glance in other repositories I saw VMCALL but I haven't found VMXON yet, so maybe it is a step in the right direction.<p>[1] <a href="https://www.virtualbox.org/ticket/16801" rel="nofollow">https://www.virtualbox.org/ticket/16801</a><p>[2] <a href="https://github.com/Microsoft/mu_silicon_intel_tiano/tree/release/201808/IntelSiliconPkg/Feature/VTd" rel="nofollow">https://github.com/Microsoft/mu_silicon_intel_tiano/tree/rel...</a>
Wow, I'm excited to dig into this.<p>Crazy to imagine that you could buy a _Microsoft_ Surface, strip Windows and replace with Debian and have a fully open source device.<p>This raises my odds that they open source the Windows Kernel from ~2% to 4%.
Riiight... as the author of the Mu editor (a volunteer led code editor aimed at beginner Python programmers and educators -- <a href="https://codewith.mu/" rel="nofollow">https://codewith.mu/</a>), this was rather a surprising turn up for the books this morning.<p>I guess "just Google for Mu" won't work any more. Beginner coders are just gonna love "Firmware as a service". ;-)
Microsoft could have contributed to coreboot instead if they claim to be so opensource-friendly. Or wrote firmware in safer language like Rust. Tradional UEFI code is a total mess, from programming practices view and from security/safety point of view too. For a long time they stuck with Python 2 only for their tooling, C89 compatibility, non-standard types, etc.<p>P.S. Note, that most of the UEFI is not open source - so called PI code (Platform Initialization), which performs real platform booting is closed source in almost any board. Coreboot is targeting this stage too.
>Firmware as a Service<p>You may be a victim of firmware counterfeiting, please make sure you paid your subscription fee before we let you change your boot options.
Suppose I want to get into hacking UEFI firmware. Does this mean I can buy some Microsoft device, download the C++ code for the firmware, make some changes if I want to, compile it, and load it onto the device?<p>If so, that's really cool.
A whole bunch of links don't work or have empty pages:<p>Code Development Overview
<a href="https://microsoft.github.io/mu/CodeDevelopment/overview/" rel="nofollow">https://microsoft.github.io/mu/CodeDevelopment/overview/</a><p>Code requirements:
<a href="https://microsoft.github.io/DeveloperDocs/code_requirements" rel="nofollow">https://microsoft.github.io/DeveloperDocs/code_requirements</a><p>Has someone been able to build the code and reflash their surface? I'm trying to understand whether the code posted online is complete.
Project Mu[1] is already a taken name. It's not in the same field, so not a trademark violation, but for those of us who fall into both categories I will never mentally think of this product when I hear Project Mu, because there's so much history behind the original.<p>[1]: <a href="https://www.project-mu.co.jp/en/index.html" rel="nofollow">https://www.project-mu.co.jp/en/index.html</a>
Do they just not check to see if their names are already established brands?<p>I don't think Microsoft is in the performance braking market.<p><a href="https://www.project-mu.co.jp/en/index.html" rel="nofollow">https://www.project-mu.co.jp/en/index.html</a>
Great. So we have now another meaning for FaaS (Functions as a Service vs. Firmware as a Service). I was slightly confused while reading that article until I noticed that they're talking about Firmware as a Service (whatever that even means).
I wonder if MS will eventually opensource Windows as they see declining revenue and focus more on the store aspect.<p>Seems like MS has been seeing alot of benefits to open sourcing their stuff they are beginning to release more and more.
Unfortunate name collision with the excellent mu editor for python. I wish people would Google the name of the product they're launching before launching it.
Opening up easier ways to modify firmware? Yeah, I just can't see how that will ever be abused...<p>Ransomware/cryptominer worm writers are probably salivating over this news.
Mu is one of the few Python code editors that is actually great when teaching kids "normal" (i.e. non-visual) programming: <a href="https://codewith.mu/" rel="nofollow">https://codewith.mu/</a>. It has several modes that make it easy to e.g. start developing for the micro:bit or create PyGame games. It's not nice if a big company takes over a name already used by an open project - whether by ignorance or negligence.
<a href="https://github.com/Microsoft/mu_basecore" rel="nofollow">https://github.com/Microsoft/mu_basecore</a><p>> Copyright (c) 2016-2018, Microsoft Corporation<p>yet most of the files have<p>> Copyright (c) 2012 - 2017, Intel Corporation. All rights reserved.
> Copyright (c) 2017, AMD Incorporated. All rights reserved.
> THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE
From the boot options screenshot, I can't find any trace of the <i>one</i> thing I look for in UEFI implementations - ability to <i>easily</i> unlock the secure boot state and boot some arbitrary OS. This seemingly fails to meet even the lowest bar for a good-enough UEFI implementation.
Reminds me of Mu, <a href="https://codewith.mu/" rel="nofollow">https://codewith.mu/</a><p>Mu is an editor for python. I thought Microsoft were going to start sponsoring Mu. Doh.