HNHacker News
TopNewBestAskShowJobs

amarioguy

148 karma · joined June 7, 2022

submissionscomments
amarioguy··on Welcome to the M1 Windows project
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.
amarioguy··on Welcome to the M1 Windows project
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.

amarioguy··on Welcome to the M1 Windows project
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

amarioguy··on Welcome to the M1 Windows project
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

amarioguy··on Welcome to the M1 Windows project
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
amarioguy··on Welcome to the M1 Windows project
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.

amarioguy··on Welcome to the M1 Windows project
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)

amarioguy··on Welcome to the M1 Windows project
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

amarioguy··on Welcome to the M1 Windows project
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.