[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)