[HN Gopher] Welcome to the M1 Windows project ___________________________________________________________________ Welcome to the M1 Windows project Author : giuliomagnifico Score : 329 points Date : 2022-06-07 17:31 UTC (5 hours ago) (HTM) web link (amarioguy.github.io) (TXT) w3m dump (amarioguy.github.io) | mikece wrote: | Why would Apple want to make it hard to run aarch64 Windows on an | M1 device? Their support for Windows in Boot Camp drove a lot of | sales of Mac hardware after the switch to Intel. Seems Apple is | limiting their hardware sales to not support Windows on M-series | Macs. | | (Then again, if they are having supply/capacity issues then maybe | it's a matter it being on the roadmap but they want their | hardware running macOS until that demand is fully met?) | r00fus wrote: | They're not making it hard but they are definitely not wanting | to expose any details of their implementation of aarch64 to any | would-be ARM hardware competitors. | | They have about a 3 year lead as I see it on performance/watt. | [deleted] | kitsunesoba wrote: | Apple has stated that they won't stand in the way of Microsoft | porting Windows to M1 Macs[0], and indeed M-series Macs have | the bits needed to boot alternative operating systems that | M-series iDevices lack. Currently Microsoft only licenses | Windows for ARM to device makers (and potentially has an | exclusivity agreement with Qualcomm[1]) and has stated that | they don't support Windows on M-series. The ball in is | Microsoft's court on this one. | | [0]: https://9to5mac.com/2020/11/20/windows-can-run- | natively-m1-m... [1]: https://www.xda-developers.com/qualcomm- | exclusivity-deal-mic... | reaperducer wrote: | _Currently Microsoft only licenses Windows for ARM to device | makers_ | | Apple is a device maker. I wonder if Apple could buy a | license from Microsoft. | | I'd like to see either Apple or Microsoft officially support | Windows on the M-series machines. Not because I give fig one | about Windows. But I'd like to see the chaos that follows. | | The operating systems industry could use a bit of a shake up. | behnamoh wrote: | > The operating systems industry could use a bit of a shake | up. | | There is no OS industry anymore. What's left is OS's that | ship telemetry and ads to customers (both Apple and MS do | this). Linux-based OS's made a lot of progress, but still | they're not ready for mass adoption. | hoistbypetard wrote: | I have a pretty good handle on what ads and telemetry MS | ships. What ads and telemetry does Apple ship to their | customers? | kitsunesoba wrote: | I would guess that this scenario is unlikely at best. Even | if Apple expressed interest in purchasing a license, | Microsoft would likely not sell one to them because their | primary interest in licensing Windows is getting devices to | ship with Windows preinstalled, and Apple is most certainly | not ever going to do that. | oneplane wrote: | They did, but Microsoft said no. | Someone wrote: | Who says Apple wants to make it hard? Not prioritizing making | it not hard probably is enough to make it hard for those | outside of Apple (and "not prioritizing" probably comes about | because they don't see many people running essential software | on aarch64 Windows that doesn't run on Apple hardware, or has | equivalent tools on Apple hardware) | tl wrote: | Apple is in a very different position than they were with the | switch to Intel. Some versions of Microsoft Office lack | "legacy" features like Excel macros [1] and collaborative | editing [2]. Microsoft would love to run Office inside a | version of Windows on the Mac, as part of an on-ramp to people | buying Surface-branded hardware. Apple isn't going to be an | euthastic provider of this. | | [1] Works-ish on Mac, not at all on iPhone. | | [2] Collaborative editing on the Mac version works until you | point at a file hosted on an on-premise Sharepoint instance, | then it's Windows only. | johnwalkr wrote: | I'm confused by this comment. Apple seems to be fine with | Windows running on M1, it's MS that doesn't provide licenses, | although they do provide easy access to software images. And | anecdotally, I can say that x86 windows apps running on ARM | windows running on Parallels on an M1 mac works fine for the | most part. And on my mac/in my org, collaborative features of | Office (both in-browser and in-app) work equally well in | Windows and MacOS. | [deleted] | meepmorp wrote: | Why would Apple want to go out of their way to make it easy to | run Windows on an M1 device? Maybe they just developed the | platform to run the intended target OS, and didn't bother to | include features that weren't necessary to meet that goal. | hoistbypetard wrote: | I don't have the impression that they're doing anything | specifically to make it hard. But right now users would have to | pirate Windows in order to run it on Apple Silicon hardware, so | it's hard to argue for an official solution. And they're not | currently publishing specs in the open that would really speed | it along. | | But the Asahi Linux developers say Apple is helping in some | measure[1], so it doesn't seem likely that they're hostile to | running Windows on these devices. | | [1](https://twitter.com/marcan42/status/1471799568807636994) | spacedcowboy wrote: | You don't have to pirate windows, you have to buy Parallels, | which then downloads and installs Arm windows onto your M1 - | and Arm Windows will run x86 binaries. | | I used this to run FPGA bitstream-creation software on my Mac | Studio. Worked like a dream. I'm generally fine with running | on the PC on the bookshelf and serving s/w via MS Remote | Desktop, but having it on the machine itself is a bit more | useful in terms of screen real-estate (3x 4K monitors on the | Mac). | fckgw wrote: | Parallels in operating in a legal gray area and using | Insider builds of Windows on ARM that are not licensed for | M1 hardware. There is currently no legal way, from a | licensing standpoint, to have an ARM build running on a | device that Microsoft does not have an existing agreement | with. | | If you're running an M1 with Parallels in any type of | business or money-making environment then you're putting | yourself at risk. | matthewmacleod wrote: | What's the basis for this view? Microsoft will happily | sell me a license key for Windows 11, will let me | download a Windows arm64 build and activate it, with the | license explicitly stating that installation on a single | virtual machine is permitted, and with no apparent | restrictions on the hardware which can be used. | | It's totally possible that I'm just missing something but | I don't really see what it is - as far as I can tell I | purchased and activated a copy of Windows 11 21H2 | directly from Microsoft. | n8cpdx wrote: | I don't get it. Microsoft just refuses to license windows | on ARM to end users. | | There's a VS community post about it, and I think there | must be some denial or something going on. Lots of | deliberately obtuse thinking and circular reasoning for | why this can never ever happen, despite 100,000 Parallels | users demonstrating that it works. | | https://developercommunity.visualstudio.com/t/Native-ARM- | Sup... | olliej wrote: | My interpretation of the MS insanity was that windows/ARM | is currently exclusively licensed for Qualcomm chips or | something similarly absurd? | duskwuff wrote: | Interestingly, the availability of Rosetta for Linux | suggests a much cleaner solution for FPGA development. :) | kitsunesoba wrote: | It's technically pirating because the license of Windows | for ARM does not allow end users to run it on arbitrary | hardware or virtualize it. I have doubts that they'd ever | actually enforce those terms though. | Flankk wrote: | It is a problem for businesses though. If they were going | to go after anyone, it would be a business violating the | EULA. Same problem with running macOS on Windows. | amarioguy wrote: | to be fair unofficial ports like this are never really | meant for production use, and I'm going to make sure | that's clear moving forward lol | ndiddy wrote: | Parallels uses Insider builds of Windows ARM, which aren't | useful if you want a stable system. Additionally, Microsoft | only offers those builds for people who have Windows ARM | licenses, so you can't use this in a professional setting | since you're violating the EULA. | JonathonW wrote: | The current version of Parallels uses the stable build of | Windows 11 for ARM. | | Once you've installed Windows, it's possible to pay for | and license Windows directly from Microsoft via the | Windows Store app. There might be a brief period where | you're technically unlicensed (not sure what the exact | verbiage is in the current Windows EULA about trial/grace | periods), but the end result is a properly-licensed | Windows 11 install. | can16358p wrote: | Last time I checked I could not purchase a license to | activate Windows 11 ARM on Parallels on Mac. | | It gave all sorts of not founds/errors in the store app. | | This was a few months ago. Did it change or am I missing | something? | JonathonW wrote: | Probably changed-- I had no issues buying a license back | in March. | striking wrote: | This isn't quite the intent of the project here, though, | which aims to run the ARM build of Windows as close to the | hardware as possible. Not through a VM running inside | macOS, but rather under a lightweight hypervisor running on | the bare metal. | | You might not have to pirate Windows to do this, but I feel | the rest of your comment is missing the mark. | bubblethink wrote: | The limitation may be on the windows side due to their | exclusivity agreements with qualcomm. | jokoon wrote: | Can't microsoft work on this instead? | | I don't get it. | usrn wrote: | I don't think Microsoft sees a future in Windows. Their current | strategy seems to be one of extracting as much value from it as | possible until it dies. | singhrac wrote: | Really? I think Windows is in the best state it's ever | been... WSL is incredibly nice to use as a development | platform, and many well-designed apps have a Windows version | ever since Electron started becoming the de facto standard. | usrn wrote: | So Linux/GNU is a great dev environment and Electron is the | standard for building apps. | | Tell me how exactly you think this means Windows is a | healthy platform? | singhrac wrote: | Hmm, I guess you must mean that the native Windows | development environment (i.e. .NET/Windows App SDK) isn't | very developer friendly; I'm afraid I don't have any idea | or how to compare it to Swift or Cocoa. As a user, | though, I have better access to software and tools than | ever before! | skohan wrote: | I'm not sure why you would want to run Windows at all honestly. | It seems like the OS you use when there's literally no other | option. | sdflhasjd wrote: | Microsoft aren't going to write drivers for the M1 - it's not | their job , even if Apple provided sufficient documentation. | JumpCrisscross wrote: | > _Microsoft aren 't going to write drivers for the M1 - it's | not their job_ | | It's absolutely their job to make Excel less of a P.O.S. on | Mac. | rdsnsca wrote: | Excel on Mac is a P.O.S. because Microsoft wants it to be | one, they don't want users switching to Macs. | spacedcowboy wrote: | They can. For whatever reason, they're not. | xeromal wrote: | Because this is hackernews and this guy seems to find it | interesting to work on. | glmdev wrote: | Surprised I had to scroll this far to see this. It's an | objectively cool project, even if it doesn't make the most | financial/business sense. Doesn't seem like that's the point. | oofbey wrote: | Microsoft and Apple are traditional enemies. Microsoft has no | reason to make Apple's hardware more attractive to customers. | | The thing I don't get is why a consumer would want this. You | want an _extremely expensive_ windows laptop. I guess the hope | would be that the battery life is worlds better than anything | you'd get in standard windows-land. But in reality battery life | optimization requires paying careful to the devices and their | drivers -- e.g. when parts of the system shut down because | they're not in use. Not easy for a project like this. | | So I'd sadly guess you end up with an expensive windows laptop | with battery life comparable to a standard windows laptop. But | you get that nice minimal Apple industrial design. :shrug: | GeekyBear wrote: | > Microsoft has no reason to make Apple's hardware more | attractive to customers. | | Microsoft released a touch version of Office for iOS before | they had a touch version of Office for their own Surface | hardware. | | This isn't the Ballmer/Gates era anymore. | technovader wrote: | You can't imagine why a Windows user would want to run it on | better hardware? | | Or that there are Windows workflows that just don't work on | OSX? | | Or want a fanless laptop with good performance? | rollinggoron wrote: | Why would Microsoft not want this? They make money off of | selling Windows licenses, not selling hardware (Yes, I'm | aware the Surface exists). The more available hardware to | install Windows etc on, the more $ Microsoft makes. | travisathougies wrote: | I agree. I understand volunteering to make Linux work, since | Linux is an open-source project. But why do all this work for | Microsoft for free? | tclancy wrote: | I am with you but would guess it's for the same reason one | climbs Mount Everest. | | (To leave a bunch of trash around for the next set of people | who attempt it?) | treesknees wrote: | I refuse to believe that there isn't at least one person or | team at Microsoft looking at this already, so it's not only | free work but may also be redundant. | foo92691 wrote: | I'm a bit shocked that it would even be possible for a third | party to implement such a thing without rebuilding Windows | itself. Is it a matter of implementing "device drivers"? | brundolf wrote: | My understanding is that drivers aren't part of the kernel in | Windows like they are in Linux. And I believe an ARM build of | some kind or another already exists out there for Windows | Arnavion wrote: | Yes, there is a public stable API for Windows drivers. Even | the built-in drivers are dynamically loaded. | | Windows on ARM isn't new. The oldest Windows on ARM was | Windows 8 RT (ARM32 only, I believe). Right now it seems | Windows 10 and Windows 11 have ARM64 versions, but there was | also Windows IoT Core from the Windows IoT OS branch a few | years ago. | oneplane wrote: | Windows CE on ARM and Windows PocketPC on ARM is older than | that. But all of it has the same issue: you nearly always | need a specific rebuild for a different ARM-machine because | there isn't a single "ARM PC". Just like x86 pre-ACPI where | you need different HALs and bringups for different systems. | The problem here is twofold: firstly windows is closed so | you can't actually add/modify components and rebuild it, | only binary hacks and additive installation (like driver | packages). Second issue: licensing. ARM isn't available | unless you are an OEM. So there is no legal way to run | Windows on M1 unless you are Apple and Microsoft signs you | a contract (and that hasn't happened either). | Arnavion wrote: | Haha, yes, I completely forgot about PocketPC. | TheNewsIsHere wrote: | It does. Officially there is an ARM build of Windows that | Microsoft licenses to OEMs, and there is (or maybe was?) | Windows IoT Core which has a build for ARM. | | If I recall (grain of salt then) a while after the first M1 | Mac came out one of Apple's VPs had said something on the | record about Apple having tried to get Microsoft to sell | retail licenses of a Windows 10 for ARM build, because they | didn't want to deprecate Boot Camp for Windows. But Microsoft | said no. | johnwalkr wrote: | I don't remember that, but Apple have actively made changes | to support Asahi Linux (I wouldn't go so far as to say they | support Asahi Linux) and not backtracked on not-blocking | other OSs. | wolpoli wrote: | It seem a bit disingenuous for Apple to shift blames to | Microsoft. | | Microsoft does not sell retail licenses of Windows for ARM | devices and what Apple proposed isn't the way Microsoft | currently does business for ARM hardware. | | Yes, Microsoft could change how they do business to | accommodate, but so too could Apple. | | If Microsoft turn around and ask Apple to license Windows | and provide the OS as an option to buyers, or ask Apple to | supply Macbook hardware so Microsoft could sell Macbooks | with Windows on it, Apple likely would have said no too. | FireBeyond wrote: | Yeah. "Well Microsoft has Windows running on Surface ARM | tablets, so..." | | Maybe Apple can offer to run Windows on iPad? No...? | | I agree with you. | GeekyBear wrote: | >a while after the first M1 Mac came out one of Apple's VPs | had said something on the record about Apple having tried | to get Microsoft to sell retail licenses of a Windows 10 | for ARM build | | Not quite. The Craig Federighi quote is: | | >As for Windows running natively on the machine, "that's | really up to Microsoft," he said. "We have the core | technologies for them to do that, to run their ARM version | of Windows, which in turn of course supports x86 user mode | applications. But that's a decision Microsoft has to make, | to bring to license that technology for users to run on | these Macs. But the Macs are certainly very capable of it." | | https://arstechnica.com/gadgets/2020/11/we-are-giddy- | intervi... | | The scuttlebutt says that Microsoft is locked into a | requirement to only run Windows ARM on Qualcomm chips for | an unknown period of time, although I've never seen | anything from Microsoft to confirm that. | gjsman-1000 wrote: | We learned last November that Qualcomm had an exclusivity | agreement for Windows on ARM that lasted a (speculated) 5 | years... which they then did almost absolutely nothing | worthwhile with. As of November it was "expiring soon" but | what "soon" means is still not clear. Perhaps it was | renewed. | | However, just two weeks ago Microsoft announced their | "Project Volterra" Mac mini clone for Windows on ARM | development, which makes it seem mighty certain that | Windows on ARM for Mac is not coming anytime soon because | otherwise why on earth would anyone buy that thing... | | On the other hand, if Project Volterra doesn't sell very | well and Windows on ARM continues to flounder, maybe | Microsoft will finally make Windows on ARM for Mac a real | option in the hopes of capturing mindshare and gathering | interest from all the people with Macs. | twoodfin wrote: | _However, just two weeks ago Microsoft announced their | "Project Volterra" Mac mini clone for Windows on ARM | development, which makes it seem mighty certain that | Windows on ARM for Mac is not coming anytime soon because | otherwise why on earth would anyone buy that thing..._ | | Reading the tea leaves, if Windows were to come to Apple | silicon Macs in an Apple-Microsoft mutually supported | form, it would almost certainly be as a guest VM under | the macOS hypervisor rather than as Boot Camp 2.0. | | That would still leave room for Project Volterra. | gjsman-1000 wrote: | Well, if you ask the Asahi Linux team, heck no this isn't | possible. Windows doesn't understand the Apple Interrupt | Controller and a driver (at least in theory) should not be able | to fix that without major kernel changes. | | _However_ , they actually address this with the "What makes | Windows on M1 hard?" area and talk about using a vGIC to do an | extremely lightweight pseudo-hypervisor as a workaround. An | interesting theory. | | The main issue though is that Windows for ARM isn't for sale | and can't be legally purchased outside of buying a WoA device. | Microsoft could send a legal letter at any time. | dboreham wrote: | Windows (really: NT) has always been hardware independent. So | it's a matter of a) having binaries and a HAL (Hardware | Abstraction Layer) for aarm64 (this exists -- Microsoft already | sells arm-based devices such as the Surface Pro X), and b) | having the necessary set of device drivers. These may exit | already from MS, or may need to be compiled from source already | used for x86, or may need to be written from scratch if no | driver exists already. But you definitely don't need to build | Windows in order to port it to new hardware, unless it's using | an unsupported CPU (and then you'll have much bigger problems | than just building it). | roblabla wrote: | That's only true up to a certain point. ARM is a very weird | target, because a lot of standardized stuff we take for | granted in x86/PC land aren't standardized on ARM. In | particular, take the Interrupt Controller: x86 has a standard | for it (well, technically has two, the PIC and APIC). The | "standard" in ARM-land is the GICv3 or GICv4, but many | different CPU vendors have their own. Apple has the "Apple | Interrupt Controller", or AIC. | | The thing is, AFAIK, how to talk to the interrupt controller | isn't part of the drivers, but part of the kernel. So you | can't just "write a driver" for it. So if Windows doesn't | support apple's interrupt controllers, I guess a lot of | shenanigans will be needed. | mlyle wrote: | > The thing is, AFAIK, how to talk to the interrupt | controller isn't part of the drivers, but part of the | kernel. So you can't just "write a driver" for it. So if | Windows doesn't support apple's interrupt controllers, I | guess a lot of shenanigans will be needed. | | He's planning on a thin hypervisor layer to map GIC to AIC. | emptysongglass wrote: | This part is why I hope x86 has a long life ahead of it. | Everybody and their dog have their own standard for things | in ARM-land. | jhgb wrote: | One can hope that RISC-V in the future will not follow | ARM's past mistakes. | als0 wrote: | The mistakes are already happening. There are RISC-V | processors being shipped with unfinished extensions and | weird MMUs and now Linux has to decide whether to support | those or only support finished standards | amarioguy wrote: | for what it's worth amd64 is not going anywhere outside | of Macs for at least the next decade, possibly two. | | Despite the benefits ARM provides amd64 undeniably has | advantages and non-trivial ones at that. | | personally, I'm of the opinion it'll come to a | coexistence for a time rather than one dominating the | other immediately. | AshamedCaptain wrote: | Actually you might be surprised. Windows NT is _older_ than | many of the "standards we take for granted in x86/PC land", | and for example it does support multiple types of pre-ACPI | ways of bringing up multiprocessor systems and specifically | multiple types of interrupt controllers. Heck, x86 Windows | even supports non-PC servers from Compaq and others; ever | tried to press F5 during (old) Windows NT setup ? | | As the OP said, all of this is abstracted by the Windows | HAL, so it's just a matter of replacing the HAL (a separate | binary). The problem is that the HAL is closed source. | Outside of simple binary patches, I don't think anyone has | come close to writing a new one. | xattt wrote: | > x86 Windows even supports non-PC servers from Compaq | | Were there x86 but non-IBM compatible models or did you | mean the alternate instruction sets (Alpha, PPC, RISC)? | amarioguy wrote: | Generally speaking part of the issue with a custom HAL | nowadays is that Microsoft moved the HAL from being a DLL | to being a statically linked library within the kernel | (likely as a performance optimization and because there's | no real need for a new HAL in most instances when HAL | Extensions exist) | | This merger of the kernel and HAL invariably means | patching the HAL is now equivalent to patching the kernel | monocasa wrote: | ReactOS has written their own HALs. | anyfoo wrote: | You also have to have the abstractions and hooks at the right | places, though. Linux had that problem: The AIC (interrupt | controller) is sufficiently different from the standard ARM | GIC that ARMv8 Linux had to receive more fundamental patches | before AIC support could be cleanly added. | | To illustrate the issue with a silly example, imagine the | Windows kernel assumes that every interrupt controller speaks | Spanish, but suddenly AIC comes along and speaks Portuguese. | The driver is going to have a hard time communicating. | | A sibling commenter, gjsman-1000, explains that the idea is | apparently to instead have a very lightweight hypervisor that | actually presents a GIC to Windows, instead of trying to add | an AIC driver, which might also have needed further kernel | changes if Windows even has the concept of interrupt | controller support being abstracted away enough to support | interrupt controller "drivers" in its HAL. (I am not a | Windows person at all, I don't know.) Basically not only | having someone in between that seamlessly translates between | Portuguese and Spanish, but actually pretending to be the | interrupt controller itself. | shtopointo wrote: | Parallels Desktop is able to run Windows on an M1. | | I work on Electron apps and I've been happy with how it works. | | Why not use that? | buffington wrote: | Have you actually tried running Windows using Parallels on an | M1? I have, and it's hardly worth the effort. | | As for Electron apps - huh? Are you actually suggesting that | you can just use Electron apps to accomplish what the OP has | set out to accomplish? | zaptrem wrote: | Why does Asahi Linux exist when you can just virtualize it? | Same answer: better performance, avoiding Apple, an interesting | challenge, a learning opportunity, the cool factor, and many | more reasons. | fold3 wrote: | Do you think it would eventually be possible to run amd64 | programs on it (like rosetta2 but for Microsoft Windows?) The | main feature of Windows is legacy compatibility and that is | perhaps why arm Windows doesn't seems to gain much traction. | Eventually I wonder if this project could be helpful to run wine | on asahi linux, which would be awesome. | timw4mail wrote: | Arm windows already has that functionality. | ntoskrnl wrote: | Windows on ARM supports that already[1]. The low traction is | probably because of the (sorry) bad hardware. Windows branded | ARM as the budget option so nobody wanted it. Then Apple came | along and flipped the script. | | [1]: https://blogs.windows.com/windows- | insider/2020/12/10/introdu... | johnwalkr wrote: | amd64 programs on Windows for ARM already work almost as well | as intel mac apps do on an M1 mac with Rosetta2. Even in case | of amd64, on Windows for ARM, on Parallels for M1 MacOS! This | was true even 1 year ago. | | I think Windows for ARM is still suffering from a previous | release several years ago without the equivalent of Rosetta 2, | and since then no hardware that actually offers an advantage in | terms of battery life in the same way M1 macs did. | amarioguy wrote: | Project developer here, Windows actually has a x64 | compatibility layer now for ARM64 systems in general, so any | ARM64 Windows device should be able to run x64 apps (granted | the performance penalty is worse than Rosetta since Rosetta | relies on Apple SoCs actually implementing small slices of x86 | (memory ordering model for instance) which isn't true for any | Qualcomm SoC at the moment.) | | The problem with x64 on arm64 is no longer if it's possible, | but rather the performance penalty. As for whether I'll try to | make a Rosetta-like compat layer using the hardware | optimizations: not sure yet, I have bigger fish to fry before I | get there. | thedudeabides5 wrote: | Yaaaay | | Thank you guys. | | My entire company will run off this if you can get it working | well. | boardwaalk wrote: | I'd frankly be surprised if you were able to muster the | talent/willpower for something like this. | | 1. Most of the people able to do this sort of thing probably work | in Linux/FreeBSD/etc land. 2. You're really working doubly | against the tide here. You have proprietary stuff on the Mac and | on the Windows side. 3. (Personal opinion) Dear God that sounds | like a lot of work for something that is a fairly unfriendly | experience on a few levels. | | At least they have Linux/BSD people trailblazing here (they | acknowledge as much). | | If they can actually pull this off without changing something | deeper than a what's already exposed to kernel driver developers | without horrible hacks or inefficiencies, I would be surprised. | | Disclaimer: Not really a kernel dev of any sort. | newaccount2021 wrote: | yazaddaruvala wrote: | Fortunately, Microsoft seems to be moving towards: Windows as | "just another Linux distribution" with a backwards | compatibility layer. | | Previous Step: Linux compatibility layer on Windows. | https://docs.microsoft.com/en-us/windows/wsl/install | | Current Step: Get DirectX to be first-class on Linux. | https://www.phoronix.com/scan.php?page=news_item&px=Microsof... | | Next Steps: Get the Windows GUI + Win32 APIs + backwards | compatibility layer to run on WSL2. Port the best parts of NT | to the Linux kernel. | | Final Step: Replace NT+WSL2, with the Linux kernel. Use the | current devs/tests/etc working on NT for better ROI (from a | business customer perspective the NT kernel is no longer a | positive differentiation). | loudmax wrote: | After embracing Linux, that would definitely extend it. | Wonder what would come next. | noveltyaccount wrote: | Are those final two steps (next, final) pure speculation on | your part? I'd be surprised if Windows threw out NT and moved | to Linux kernel, and yet at the same time, it sounds like a | great idea IMO (WSL2 + Docker is already a great experience | for software development). | stevewatson301 wrote: | Not the parent commenter but this isn't as far fetched as | it seems. Since much is abstracted by the Win32 and other | APIs, they could write something to do exactly this. | layer8 wrote: | This seems unlikely to me. For example, the threading | model (non-forking) and file system semantics (locking, | permissions, etc.) are wildly different. You'd need a | complex compatibility layer and effectively two classes | of applications (legacy and linux-y). | zeusk wrote: | I work on the NT kernel and DirectX, I'll definitely take a | look at this over the weekend. | amarioguy wrote: | hey, I'm the person embarking on the project, thanks for | checking it out! | | one of the big reasons I started this project is that I've | really been wanting to work on a project that deals with | bootloader and kernel level code, and doing Windows bringup | on the M1 seemed like a really interesting thing to tackle. | | While initial progress might be slow, it is indeed happening, | I'm planning to post an update tonight actually, but I | realize you're busy so feel free to check the website | whenever you have a free moment. (It's basic I know i'm not a | web person lol) | frostwarrior wrote: | Did you start working since the Windows NT era? I'm curious. | | IMHO, windows things aside, the NT kernel is an impressive | feat of engineering and I'm surprised it's still going after | so many years. | ragnarok451 wrote: | Why be so negative? The world is better for ambitious people | like this | boardwaalk wrote: | Sorry, I'm not specifically trying to be negative, these were | just my honest first reactions. If they can do it, more power | to 'em. | sumy23 wrote: | I feel like there should be a common etiquette rule on HN where | if you don't care about a particular project / technology / | initiative that you skip commenting and move on. For example, | your comment says that this initiative will not work out. | Should there be a debate whether or not it's theoretically | possibly for this to work out logistically? What is the value | in that? Even if there is a convincing argument that this | initiative could theoretically be successful, would that | convince anyone to use the technology? No, it would not. | vlunkr wrote: | They didn't say they aren't interested in the idea, they just | expressed skepticism. | | > Should there be a debate whether or not it's theoretically | possibly for this to work out logistically? What is the value | in that? | | Certainly if you're going to work on this you'd like to know | if it's just a dead end. | tobylane wrote: | You'll only know by doing it. It is especially blind | because, as you say, it's bringing two black boxes | together. It's a sufficiently major point of interest to | such a large number of people that I hope people feel | motivated to try. | evanmoran wrote: | This is an incredibly challenging problem so I imagine if | you have any chance of coding it you probably know what | you're getting yourself into. | majormajor wrote: | I would be with you except for the "Disclaimer: Not really | a kernel dev of any sort." bit at the end. Skepticism from | people not in the field is far less meaningful (as is | booster-ism, for that matter). | diffeomorphism wrote: | I feel that this is "rule" would be either incredibly harmful | or effectively empty. | | The post you are criticizing is quite obviously not an | example of "don't care", nor is your "summary" anywhere close | to accurate. Yet you want to remove such posts? Do you want | to remove all constructive criticism or debate while you are | at it? Only echo chambers allowed? | smm11 wrote: | Why? | thatsnotmepls wrote: | Why not? | jarjoura wrote: | Can you dual boot any other OS on ARM Macs yet? Seems like this | project might have missed a few steps along the way. | | This really should be a Microsoft effort. They just announced | that they have Visual Studio compiling in ARM64 finally, so it's | only a matter of time before the only thing standing in the way | is backroom deals that we don't know about. Qualcomm? | | I mean, I do want to see Qualcomm ship their M1 competitor, but | given the state of the economy and world recession we're about to | enter, I am skeptical it would survive fat trimming cuts that are | about to sweep the industry. The money for them is in mobile and | automotive projects. | gpm wrote: | Yes, the asahi linux people have had linux booting for quite | awhile now. They're still working on all the drivers that you | want for a good desktop operating system. | bri3d wrote: | > Can you dual boot any other OS on ARM Macs yet? | | Yes, https://asahilinux.org . I think this is coming at about | the right stage in the game - the Asahi folks have figured out | the baseline needs for booting another OS and have a basic | bootstrap loader and hypervisor (m1n1) as mentioned in the M1 | Windows writeup. | | I think the OP writeup is fairly clear-eyed in terms of what | needs doing - bring up the basic interrupt controller setup and | IOMMU oddities needed to get UEFI and then the kernel to come | up, and then start chipping away driver by driver until the | system is usable. | | This is basically what Asahi did and it's worked out well for | them. | [deleted] | jarjoura wrote: | Oh, that's very cool, I haven't heard of them! | amarioguy wrote: | The Asahi folks are some of the best hackers I've talked to | lol (project dev here) so definitely give their IRC a | visit! | | Fun side note I volunteered to help fix up the Apple | silicon I2C driver to use interrupts instead of polling, so | I'm definitely also trying to get more involved with Asahi | too | JoshTko wrote: | Why? | buffington wrote: | The OP expresses exactly why on their site. | | Let's assume you didn't read their site though. Why not? | playbooks wrote: | baggy_trough wrote: | Runs great in Parallels! | withinboredom wrote: | This isn't the same thing at all. | toniks wrote: | dsposable51772 wrote: | I would be surprised if Microsoft doesn't cease & desist this | jmkni wrote: | Awesome work, I'd love to be able to dual boot Windows on my M1 | machine | | Hopefully Microsoft just hires you and gives you the resources | you need to do this properly | amarioguy wrote: | hey, OP here, figured i'd clarify some things about this project: | | 1) yes, I realize this is going to be way harder than it seems, | but I'm actually going to do my best to hopefully get a good user | experience out of this and I'm easily preparing for this to be a | multi-year effort, but I'm not going to give up right at the gate | | 2) Custom HALs were actually an option, up until very recently, | since as of Windows 10, version 2004, the HAL is now statically | linked into the kernel, meaning that if I wanted to use the AIC | natively I'd need to write a patch finder that runs before the | Windows kernel loads (This is what EfiGuard does for example to | disable PatchGuard) | | (Yes this is actually more tenable than it may seem, due to some | undocumented policy files Windows is able to use, but I have | already decided to hold off on this until after I get Windows | working under the thin hypervisor) | | 3) HAL Extensions (for those unaware they are tiny modules that | allow you to extend the Windows HAL with functions for non | standard hardware) are not tenable at the moment since they're | limited in the APIs they use | | 4) I am well aware that Windows is going to need a lot more help | than just purely the interrupt controller, I'm currently trying | to bring up the vGIC first since the distributor and | redistributors need to be emulated and I need to bring up Project | Mu first | | 5) as for the GPU, I'm way too far away from that being a concern | to figure out the approach lol | | if you have any feedback btw, please do feel free to comment it | i'll try to address it as best as I can | | yes I'll update the website theme soon enough, thanks to the | commenter who remarked about readability. | matthewfcarlson wrote: | I do love the Project Mu shout out at the bottom. Best of luck | with your project! | noveltyaccount wrote: | Good on you for this ambitious project. Wishing you success. | abledon wrote: | I like your crazy energy, goodluck | scoopertrooper wrote: | > I have already delegated this to after I get Windows working | under the thin hypervisor | | Not to be 'that guy', but that's an odd use of of the word | 'delegated'. 'Relegated' might have been the word for which you | were looking. | | Edit: I know this will be down voted because I'm critiquing the | word usage of OP instead of focusing on how cool their project | is. I get that. I'm just pedantic and this sort of thing eats | me alive. | nomel wrote: | Personally, I've learned to talk more precisely from these | sorts of comments than anywhere else. In real life, people | will rarely correct you. I think the concept of a "meta | comment" is interesting, where you could push this sort of | thing into a separate parallel thread that would normally be | hidden. | maleldil wrote: | That's an interesting point. It's much easier to correct a | stranger on the Internet, but it's also harder to be kind. | Comments that manage to do both (like GP) are great, and I | always like to see them. | tonguez wrote: | unholiness wrote: | Following this completely imaginary "never end a sentence | with a preposition" rule is some bullshit up with which I | will not put. | stevage wrote: | My gripe here is saying "not to be that guy". Just own it. | | Also my tip: if you're providing pedantry, it's much better | if you contribute something substantive first. | dataflow wrote: | May I suggest you don't license the work in a way that allows | it to be commercialized without your explicit permission and | handsome compensation to you and any other contributors. You'll | need this to be sustainable and it'll be incredibly frustrating | if a company de-facto hijacks the development and takes it in a | direction you don't expect or want. | j1elo wrote: | Oh but then half of HN will complain about how that's not | _truly_ open according to a dictionary definition thus | automatically becomes untrustworthy and they won 't touch it | with a ten foot pole. (/s) | | Jokes aside, technically I don't disagree on the "dictionary | definition" thing there... but it's interesting how the | current landscape has shifted and now more control for the | developer starts to become a common interest between | "hackers". | | The original OSS licenses protected users (as in, final | users) from predatory devs; nowadays, small devs and hackers | talk in their forums about how to preemptively protect | themselves against predatory users (as in, not final users, | but other bigger devs that leech on other's work) | colordrops wrote: | You're confusing closed source blobs and proprietary | licenses with restrictive but truly open licenses like AGPL | which would also protect the authors. | j1elo wrote: | It doesn't look like we can say " _licenses like AGPL_ ". | It's more that AGPL is basically the only one in that | vein. Remove the A, if you please, but that's pretty much | it in terms of variety. | | On the other hand, reading HN over time I also got the | idea that *GPL has been tried with the intention of | avoiding abuse, and it failed several of those | intentions. I now regret not having taken note each time | I saw comments in that regard, for quick references. | | But there are big cases, not only small comments spread | over HN; I guess the stereotypical one is MongoDB, which | tried the AGPL path and in the end was not satisfactory | enough for them. | wmf wrote: | In this case I don't think AGPL does what you want; it's | oriented towards SaaS but this project is a bootloader. | tediousdemise wrote: | IANAL but I'd like a license that goes something like this: | | Companies: If you are working for a | company/corporation/profit-generating entity, or otherwise | intend to sell or use such code derived from this repository | for profit-generating purposes, you shall not be permitted to | use any of the source code herein until you email me (author | email here) and we can come up with the appropriate terms and | conditions for your use case. | | Everyone else: Have fun! | | Obviously it's missing some necessary edge cases and | disclaimers, but yeah. | stevage wrote: | I mean, that's basically what CC-BY-NC is. Any licence that | prohibits commercial use does not prohibit an alternative | commercial licence being negotiated. | amarioguy wrote: | I'll definitely take this into account thanks for bringing it | up! Licensing is something I've thought about a bit before | starting, right now since m1n1 (the hypervisor I'm iterating | on) is MIT licensed for the most part, I'm inheriting that | license too for my fork of m1n1 (i'll mainline the changes | btw! need to work with marcan once they're done), but as the | project goes further I'll definitely consider the question of | licensing again. | stevage wrote: | I was just really curious what your motivation for this project | is. Just an interesting technical challenge? I'm impressed at | anyone taking on something that is just so obviously | ...difficult. | | And don't you worry that if you succeed, either Apple or | Microsoft will make some small change to kill it? | Aleksdev wrote: | Good luck! At best you create something very cool. At the worst | you learn something new. | [deleted] | tobylane wrote: | I'm interested in Windows VMs that have minimal | overhead/maximum speed. As far as I understand that's done by | it being installed as native to the hardware as the native OS, | but with generic drivers. Roughly what % of the work for | running Windows on M1 is running Windows in a VM on M1? | Melatonic wrote: | Good on you! | f311a wrote: | I think it's very hard to reverse engineer all the parts of m1. | Such projects are fun research, but they won't be able to use the | full m1 potential. The software must be optimized as well. | 58028641 wrote: | Hector Martin and others have had decent success with reverse | engineering so far. | f311a wrote: | Only the CPU part, GPU is much harder. | Retr0id wrote: | They're making great headway there, too. | stewx wrote: | Dear site owner: your grey-on-grey text is nearly illegible. | ravisutrave wrote: | Looks like the site does not play well with Dark reader (On | firefox). I had to disable it, to read this. | mixmastamyk wrote: | Probably using !important somewhere. | GnarfGnarf wrote: | Textbook case for Firefox' "Reader View" (F9). | nxoxn wrote: | Are you using Dark Reader? It definitely made it gray-on-gray | for me and I needed to turn it off to make it look normal. | amarioguy wrote: | hey, thanks for bringing this up, I'll change the theme to make | it more readable | | sorry about that, it looked readable on my end, but remedying | this asap | jamesfmilne wrote: | m1n1 in this case is a bit like ESXi, and this overall will be a | bit like running Windows under VMware. | | I imagine this will be quite achievable. Windows 11 already runs | ok in Parallels. | | Doing it "properly" native will require Microsoft to make changes | to Windows though. | bpye wrote: | I'm not convinced the distinction is really important. Would | you say running Windows with Hyper-V enabled is non-native for | example? | w7 wrote: | People will reflexively see virtualization and figure it | means noticeable hit in performance. | | Unfortunately many Windows users and developers are unaware | their "Desktop" becomes a VM on Hyper-V installation. | | I see it all the time when people start arguing "type-1" vs | "type-2" hypervisors. | | Usually if they have some experience with Xen comparing it to | a Dom0 helps, but understandably people usually first compare | it to VirtualBox because the process is opaque. | finnh wrote: | Nice! My friend blanka was the first person to do this with the | first generation of Intel Macs, back in 2006: | | https://www.macworld.com/article/179192/xponmac.html | Uptrenda wrote: | So its a plan for a project and not an actual project? lmao, why | is this on hacker news front page? | buffington wrote: | Because it perfectly satisfies the first guideline of "What To | Submit": | | > Anything that good hackers would find interesting. That | includes more than hacking and startups. If you had to reduce | it to a sentence, the answer might be: anything that gratifies | one's intellectual curiosity. | what-imright wrote: | ah dirty ice cream | 0des wrote: | Is Windows RT usable in any of this? For a while there, RT was | the Windows 8 equivalent for their ARM tech. | jarjoura wrote: | At this point it would be hard for any normal user of Windows | to tell the difference between the Intel and ARM variants of | Windows 11. Things that haven't been ported to ARM will run | slower, but they're already on par with low-end intel laptops. | ComradePhil wrote: | Why Windows? Why not ReactOS? | mschuster91 wrote: | ReactOS is nowhere near enough the quality you'd need - you | don't want to waste time figuring out if you are fighting a bug | in ReactOS or in your own code. | sassy_quat wrote: | If ReactOS crashes, it is quite clear where the problem lies, | but I would'nt wait on them to fix it. | SyneRyder wrote: | Agreed. Just last night I tried installing ReactOS in a | Parallels VM on Intel, and their ISO installer couldn't get | beyond "Failed to open txtsetup.sif" at the very start. The | last ReactOS ISO I could get to work was 0.4.11 (three | releases / three years ago). It's a worry that such a | critical showstopper regression has gone unpatched over 3 | years. | | 0.4.11 did run a lot of Windows software that I use | (including my own) & I was impressed with what they'd | achieved, but it regularly corrupted the file system and | required a full reformat & reinstall, so not something I | could actively use. | yjftsjthsd-h wrote: | Windows, for its many faults, is feature complete and | officially supports ARM today. Neither is true of ReactOS. | Thus, it's currently much easier and more useful to port | windows. | buffington wrote: | Why ReactOS? Why not AmigaOS? Why not any other OS? | | The OP wants to boot Windows on an M1. That's why. | rvz wrote: | Now this is will be interesting to see and will give a killer | reason for Apple Silicon. My guess is that this will take some | years to be usable, given that Linux on M1 still isn't complete | by the time M2 is announced. | | But if a small amount of hackers were able to install Windows 11 | ARM on a Raspberry Pi 4, then I won't be surprised to see the | same to be done for Apple Silicon. ___________________________________________________________________ (page generated 2022-06-07 23:00 UTC)