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