14 ms·
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
by amarioguy 4y ago
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.
- noveltyaccount 4y agoGood on you for this ambitious project. Wishing you success.
- tobylane 4y agoI’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?
- scoopertrooper 4y ago> 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.
- tonguez 4y ago
- unholiness 4y agoFollowing this completely imaginary "never end a sentence with a preposition" rule is some bullshit up with which I will not put.
- nomel 4y agoPersonally, 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 4y agoThat'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.
- stevage 4y agoMy 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.
- Melatonic 4y agoGood on you!
- deleted 4y ago[deleted]
- matthewfcarlson 4y agoI do love the Project Mu shout out at the bottom. Best of luck with your project!
- dataflow 4y agoMay 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.
- amarioguy 4y agoI'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.
- mekster 4y agoIt'll just be sad to see apps like VMware or Parallels release a new version claiming they made a breakthrough after you've made some milestone release...
- j1elo 4y agoOh 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 4y agoYou're confusing closed source blobs and proprietary licenses with restrictive but truly open licenses like AGPL which would also protect the authors.
- abledon 4y agoI like your crazy energy, goodluck
- stevage 4y agoI 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 4y agoGood luck! At best you create something very cool. At the worst you learn something new.
- airstrike 4y agoTechnically you're the author, not OP. (Please don't kill me)
- skissane 4y ago> 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 I haven't heard of those before, and I'm fascinated by them. I go looking for documentation – and I can't find any on Microsoft's website – some documentation which mentions their existence, [0] but no details on the API or how to write them. Is this something you have to sign an NDA with Microsoft to get access to the headers and docs for it? Or will I find the headers hidden away in the WDK somewhere? Is there any good public source of info on them? The best I've found is [1] – which includes some important details but isn't comprehensive (not that anyone would expect a slide deck to be). [0] e.g. https://docs.microsoft.com/en-us/windows-hardware/test/hlk/testref/de119483-e85e-4f19-ba05-202a7219b43f https://docs.microsoft.com/en-us/windows-hardware/test/hlk/t... [1] https://infocon.org/cons/SyScan/SyScan%202012%20Singapore/SyScan%202012%20Singapore%20presentations/Day2-6Alex%20Ionescu/AlexSyScan12.pdf https://infocon.org/cons/SyScan/SyScan%202012%20Singapore/Sy...
- skissane 4y ago> Is this something you have to sign an NDA with Microsoft to get access to the headers and docs for it? Or will I find the headers hidden away in the WDK somewhere? Turns out the header file is included in the Windows 10 SDK, as km/nthalext.h Not the very latest version, but someone posted it on GitHub here: https://github.com/tpn/winsdk-10/blob/master/Include/10.0.16299.0/km/nthalext.h https://github.com/tpn/winsdk-10/blob/master/Include/10.0.16... (You can download the multi-gigabyte Windows 10/11/2022 SDKs to get a more recent one, although not sure if anything has changed.) Still doesn't seem to be any public documentation. The header includes very detailed comments, but (as you'd expect for header file comments) they concentrate on the nitty-gritty and omit the big picture. Searching "nthalext.h" on GitHub finds source code for a handful of HAL extensions, so at least there is some sample code to look at. Microsoft has even open-sourced a few – see https://github.com/ms-iot/imx-iotcore/tree/public_preview/hals/halext https://github.com/ms-iot/imx-iotcore/tree/public_preview/ha... Microsoft used to include HAL extension samples in the Windows 10 driver samples – https://github.com/microsoft/Windows-driver-samples/tree/5b815f85ef86b2c2522dbd79e9b1b900f8fb77e4/general/HalExtensionSample https://github.com/microsoft/Windows-driver-samples/tree/5b8... – but removed them as part of the Anniversary update – https://github.com/microsoft/Windows-driver-samples/tree/96eb96dfb613e4c745db6bd1f53a92fe7e2290fc https://github.com/microsoft/Windows-driver-samples/tree/96e...
- lasereyes136 4y agoGood luck, I hope it works out. It is hard to be in between two of the largest and most established tech companies in the world. If Apple or Microsoft wanted it, they could make it happen. I assume neither want it, at least not right now, so it is clearly an uphill battle.