Introducing Project Mu
blogs.windows.com
blogs.windows.com
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?
Edit: apparently I can't read because it was right in there: "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." So basically, take the limitations I mentioned and get rid of them.
Seriously though, being "hard to change" on some parts of the system can be a feature.
Firmware does change and often has security vulnerabilities, so you do need to be keeping it up to date the way you keep your OS up to date. Among other things, it includes processor microcode / errata fixes like some of the Spectre, Meltdown, etc. mitigations. It would be nice if we lived in a world where this doesn't need to change, but it does, and thankfully it is firmware and not hardware.
Cheers :)
Or, in other words, any code which hooks directly to the hardware on one side and exposes abstractions (like an instruction set) that software can code against on the other.
I always assumed "firm" stuck, as in "You'll have a helluva time changing it, because it's the code that has to deal with all the complex electrical engineering stuff."
(E.g. processor errata, patched board mistakes via fuse or EEPROM, side effects of power supply undervolting or clock skew, or pre-initialized system murkiness)
* hard -> firm -> soft -> wet ware
https://en.wikipedia.org/wiki/Wetware_(brain)
Although this one is usually just referred to as the "user" ;)
But only because you pointed it out in your comment, thanks.
It's the newest thing, and it's going thermonuclear!
But then please introduce also the relevant variants of realtime (in analogy of hard, firm and soft realtime): vapor realtime and plasma realtime.
Presently they met Firmware, who was dressed in tattered rags and hobbled along propped on a thorny stick. Firmware said to them: “The Tao lies beyond yin and yang. It is silent and still as a pool of water.
It does not seek fame, therefore nobody knows its presence. It does not seek fortune, for it is complete within itself. It exists beyond space and time.”
Hardware and Software, ashamed, returned to their homes.
— The Tao of Programming, Geoffrey James, 1987
https://github.com/hughsie/fwupd
It's integrated into recent distros, seamlessly shipping firmwares for supported vendors (Dell came first, HP arrived soon after, and I think I read Lenovo was being worked on) like this MS project does, or Apple has been doing for years.
That may be a model suitable for a single machine. Once you get to hundreds, you get intimately familiar with how to update everything and how common firmware bugs are.
However, I can't help but think that this is yet another thing on NSA/FBI's wishlist to Microsoft, just as most of the tracking stuff in Windows 10 seems to be. Say hello to "targeted malicious updates" by the U.S. government.
Yes, I know this was probably possible with the Windows updates already, but I imagine the malicious firmware will be much less likely to detect = the agencies can use this against many more people.
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.
I am one of those wary of Microsoft. The current CEO was around during the Halloween Diaries. Even if he is well meaning, he is just an employee who can be replaced any day at the whim of large shareholders like Ballmer and Gates who consider Linux to be a virus.
Nobody at Microsoft ever had a committed ideological opposition to Linux, it was a pragmatic decision based on what they perceived as a threat to their business. That certainly doesn’t negate the damage of all the shit they pulled, but it does mean that it is highly unlikely that they’re going to reverse course and start extinguishing Linux for ideological reasons now that they’ve figured out how to make money without Linux being the enemy.
It's similar to how you don't want companies to have your personal data, even if you trust them "100%". When money becomes a problem, or a solution, you'll be their last priority.
Some of the news about Windows 10 would be unthinkable a few years ago. Priorities change, and this company in particular has a history of being extremely hostile.
But that’s not saying that Microsoft is 100% trustworthy or that they will never do anything bad ever again. I’m only saying that the “sinister plan” for this one particular software component is to make Windows more useful to Unix-land developers, to try and get them to buy Windows PCs instead of the usual MacBook Pro. Notice how that explanation still assumes Microsoft is still doing it for their own financial benefit, but doesn’t require an agenda to destroy Linux. They have realized that this isn’t a zero-sum game.
It's disappointing that literally anything that Microsoft does has this same comment right on top. Does it add anything to the discussion? We've all seen this comment at least a thousand times in the last 15 years. You haven't even taken the trouble to chalk out a plausible path for embracing and extending. Forget that, you haven't mentioned who they're embracing and extinguishing. At this point it's just repeating a tired meme for the sake of karma.
Not calling you out in particular, but here are other tired HN memes that can be reliably milked for karma
* If you're not paying, you're not the consumer, you're the product.
* It can be difficult to explain to something to someone when their job depends on not understanding it
* Joel Spolsky's article on rewrites
A bit of a rant/recall follows: I had lost content to a doublespace bug and was asked to pay for drive space via an MS DOS upgrade to 6.22, I have seen how Microsoft encouraged piracy in schools and colleges in India, how they have used FUD to suppress open source education and adoption efforts in the government and education spaces. I also recollect all the dirty stuff around Frontpage "extensions", IE extensions + IE's excessively forgiving tendencies to HTML violations and incorrectness, how MS took spyglass software and did bad things with it. Later, the Haloween Documents showed how MS said one thing in public and plotted another thing in private. They were Gurus of scheming behaviour. Then there was the Microsoft Windows tax, where you had to pay the Windows license fee even if you planned to run Linux on your computer. I also had to struggle with the MS Java, J++ rubbish. Microsoft used to do such bad things so deliberately. I also recall bad things around UEFI, around making it difficult for Linux distros to dual boot on laptops (which got resolved later).
Recollecting all of the above doesn't make it easy for me just to accept that with some code releases and PR announcements, MS would have turned over a new leaf.
People behave as they are measured. Satya Nadella is changing the public image of Microsoft, and even walking the talk. I learned just now on Wikipedia that he tripled MS stock, and that anonymous polls within MS have called him the best CEO of a US company. I am not an MS employee, so I won't know if he has managed to change the internal cultural tendency of being insincere and vicious (see above for examples).
I'm just apprehensive that at the end of the day, he is just an employee. Employees can get fired anytime, overruled anytime.
Perhaps I am being unfair to MS and Satya Nadella, and to all those MS employees who are giving their best. To them all - I apologise for my ill will.
I don't apologize for my "ill will" and suspicion. You lie down with dogs; you wake up with fleas. I get it: in some cases, you play the hand you're dealt. But don't expect me to make or infer some distinction about which side you're on.
I think a lot of the apologists for Microsoft here on HN just didn't grow up with the Microsoft of the 90's, and didn't see them buy, steal, or destroy every interesting technology to come along in the late 90's and 2000's. (Shall I go through THAT list?) I suppose they can be forgiven for having rose-tinted lenses that only see back about 5 years. To them I say, just let us have our bitterness. It's been earned.
You can use some other words instead, for example "abbandon". Or they leave the product/feature so buggy that its useless. If you rely in MS tech, you always run the risk that it will be discontinued, or became unusable. I don't suppose this is done out of malice, MS is a corporation, it operates organically. I can imagine one manager fighting for his feature to get into the Windows OS, because then he can get a bigger bonus. Even if the feature is not complete, even if the users wouldn't want it, he can use internal politics to get the feature in, so he can get his bonus.
No, some of us have. Lots of us haven't.
So it is valuable for "today's lucky 10000" and obviously relevant to the discussion. Also, the phrases you list are less "memes" and more "truisms".
Microsoft has seen huge growth under Nadella, and that was accomplished through selling cloud services. Linux does not threaten this business model or the future of the company in any way. There's nothing to "Embrace, extend, extinguish".
When I had Windows 10 dual booted with Linux, Windows had this extremely annoying habit of changing my UEFI boot order when it updated so that Windows was the first to boot, rather than Linux (where I can use GRUB to load Windows). I then had to manually revert the change at the bootloader.
With this exposed, it would not surprise me if their "default" implementation is to make sure Windows boots first, and revert the UEFI boot up that upon every boot up. An average user will likely not be aware of that, or the heavy Linux user who only boots into Windows occasionally.
But isn't that IMPROVED by open sourcing the implementation? It exposes that kind of stupid behavior, and for the implementation to be useful, that stuff can't be in there anyway. Maybe I'm completely misunderstanding what's being open sourced?
Also, I didn't even have bitlocker turned on, that was just Windows being a PITA with regards to daul booting
And I saw in one of the tickets for Virtualbox [1] that:
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
and
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.
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?
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.
[1] https://www.virtualbox.org/ticket/16801
[2] https://github.com/Microsoft/mu_silicon_intel_tiano/tree/rel...
For that reason, no, it's non-trivial to do that. Instead Microsoft recently did what Apple did with their Hypervisor Platform API: https://docs.microsoft.com/en-us/virtualization/api/
More to the point though, MS recently made a public Hyper-V API thingy. Windows Hypervisor Platform I think it's called. It's similar to how KVM, bhyve (vmm.ko) and Apple's Hypervisor.framework (its kernel counterpart actually) work. Now you can use Hyper-V itself + any third party frontends that use that API. E.g. the Android emulator is going to switch to this.
VirtualBox/VMWare should leverage these APIs but they don't because they're way too invested in their custom kernel modules already.
I wonder why they're expecting "performance degradation" though…
Crazy to imagine that you could buy a _Microsoft_ Surface, strip Windows and replace with Debian and have a fully open source device.
This raises my odds that they open source the Windows Kernel from ~2% to 4%.
[1] https://www.reddit.com/r/SurfaceLinux/comments/7kazwp/curren...
Nothing, anywhere, indicates that Project Mu has anything to do with "other OSes" on Surface devices. And the grandparent comment is a direct implication that Project Mu would/will be critical to Linux on Surface.
This isn't to say that this is not neat, from what I've heard about TianoCore and the codebase, but linking this to Linux on Surface seems completely invented and just a weird comment given that it already works pretty well, minus missing drivers that will still be missing even with an OSS UEFI core.
Though the surface laptop does have an Nvidia GPU, so there's that piece of proprietary bullshit. :)
Where "working" includes problems like multitouch not working, pen not working, some problems with wifi and cameras not working. Some of that can be made to work by using a custom kernel, but the compatibility is decidedly worse than comparable devices.
I guess "just Google for Mu" won't work any more. Beginner coders are just gonna love "Firmware as a service". ;-)
You can see what folks have been doing with Mu (the editor) here: https://madewith.mu/ :-)
Reminds all over the GVFS story again:
1. GVFS name is trivial, but less trivial than just "Mu"
2. Mu Project vs. Mu Editor makes it still distinguishable
3. GVFS (now gio?) exists for ages, Mu Editor and Project Mu are two fairly new projects.
I guess I'm just still upset about how people at Microsoft picked the name back then and how little they initially considered changing their name.
And it never did work for such an ambiguous term (greek letter? Micron Technology stocks? Manchester United?), unless you googled "mu editor" in which case you're still fine.
Sidenote: If you want a unique name don't pick one that is 2 letters (or 1 technically).
Has it so far? Did you say "Mu"? In that case people could have googled for all kinds of things: Mew or moo or me or something else. And even if they knew how it is spelled the first results would have been the greek letter mu, the zen mu, or the football team Manchester United. In Sweden a lot of the results were about a children's tv-programme, Mamma Mu.
Your editor is not on the first, second or third page of Google, I didn't look any further, because who does?
It's probably good for you that you realised saying "just Google for Mu" won't work "anymore".
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.
Disclaimer: I do work for MSFT but never on UEFI - this is an outside observation
Coreboot, like other offerings, sets up the basic stack and jumps to Intel provided blob, which then jumps to the provided hook in Coreboot when a particular part of initialization is done. DDR controller, microcode patching are all done at start-up via this mechanism.
You may be a victim of firmware counterfeiting, please make sure you paid your subscription fee before we let you change your boot options.
If so, that's really cool.
On the "embedded" side, I'm pretty sure u-boot can load EFI binaries now.
Code Development Overview https://microsoft.github.io/mu/CodeDevelopment/overview/
Code requirements: https://microsoft.github.io/DeveloperDocs/code_requirements
Has someone been able to build the code and reflash their surface? I'm trying to understand whether the code posted online is complete.
I don't think Microsoft is in the performance braking market.
and Mu Online, an MMO... Yeah they didn't research this _at all_.
It's not exactly a unique name...
Seems like MS has been seeing alot of benefits to open sourcing their stuff they are beginning to release more and more.
Ransomware/cryptominer worm writers are probably salivating over this news.
Relevant Ubuntu bug report from when it was happening: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1734147
> Copyright (c) 2016-2018, Microsoft Corporation
yet most of the files have
> 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
Mu is an editor for python. I thought Microsoft were going to start sponsoring Mu. Doh.