Hacker News new | past | comments | ask | show | jobs | submit login

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.




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.


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)


You're confusing closed source blobs and proprietary licenses with restrictive but truly open licenses like AGPL which would also protect the authors.


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.


The problem is not with the GPL. The GPL is just as enforceable as any other proprietary license. The difference is that these amateur projects often don't have the resources to fight infringement.


If the problem is that there are no resources to fight infringement, then how would changing the license help at all?


I was addressing what seems to be an unfair criticism of the GPL, and not claiming that the license would help. In fact your comment reinforces the point - even a proprietary license wouldn't help with no legal backing.


You have a legal leg to stand on that some lawyer might potentially fight for you, that's still better than just giving up and surrendering your weapons.


In this case I don't think AGPL does what you want; it's oriented towards SaaS but this project is a bootloader.


Sure, hence the "like". They could create or use a license that is fully open but prevents commercial use without a license.


Such a license is not possible.


How exactly is that? There are plenty of licenses that don't allow commercial usage.


You cannot have a "fully open" license which disallows commercial usage. Both the OSI and FSF definitions of "open source" and "free software" licenses would exclude such a license. Of course you can create a proprietary license which disallows commercial usage, but it won't be "fully open".


FSF-compatible licenses absolutely can exclude commercial usage, and software can be made simultaneously available under a separate (paid) commercial license if the authors wish. It's only the OSI that doesn't allow this.


> FSF-compatible licenses absolutely can exclude commercial usage

Can they? The FSF seems pretty strict on saying that commercial usage cannot be excluded.

> “Free software” does not mean “noncommercial.” On the contrary, a free program must be available for commercial use, commercial development, and commercial distribution. This policy is of fundamental importance—without this, free software could not achieve its aims.

From https://www.gnu.org/philosophy/free-sw.html


> FSF-compatible licenses absolutely can exclude commercial usage

No, they can't, use-restricted licenses are non-free, by the FSF definition.

> software can be made simultaneously available under a separate (paid) commercial license if the authors wish.

This is true, but the Free license cannot be use-restricted, or it ceases to be a Free license (if the copyright owner, owing no obligation to any upstream licensor, does it, they could add the use restriction to a Free license, but it would by that act cease to be a free license; that violates Freedom 0.)


Discriminating against commercial usage is not allowed under the Open Source Definition:

https://opensource.org/osd


Hence the full circle to my original sarcastic joke. The OS definition serves a purpose of protecting users, even the bad ones, and maybe that worked when the "bad ones" where a minority with small impact.

But nowadays things have changed. The "bad ones" are big fish, and have enormous impact. A growing subset of devs now start looking elsewhere, and a plethora of non-OS licenses start to pop out. People still want to give their work for free, as long as it is not going to help someone else get rich while the original author doesn't see a cent.

One day, maybe, some organization will study the current landscape, and write a new set of definitions that are able to catch the spirit of this new situation. I guess it's just a natural part of how things evolve.


There is the Ethical Source movement, that aims to prevent use of software by bad people. The FLOSS community doesn't even have resources enough to enforce the widespread violations of copyleft licenses, so it seems even more unlikely that Ethical Source folks will be able to enforce their licenses. There are lots of other reasons for the FLOSS approach too.

https://ethicalsource.dev/ https://sfconservancy.org/blog/2022/mar/17/copyleft-ethical-...



It didn't really come across as a joke despite the /s, it seemed like an earnestly held opinion that is, TBH quite reasonable, although it isn't something I would agree with.


In fact this is whole point of open source VS free source.


Doesn't seem accurate?

Both Free (of the FSF meaning) and Open Source (of the OSI meaning) software explicitly allow for commercial usage.


Read history guys. I even did a master thesis cf the two. The open source is against the free source by deliberating allow commerical software. Down vote you may, you cannot change the history. In fact learn seriously about that part, otherwise you miss the whole point of open source.

Well, whilst down voted let me repeat the thing - some Vp did not invent internet but he did let go of only education institute used that network. Now it allows commercial activities.

The mix is hard. The pure is ease. But without the mix and the complexity dealing with this, you do not have today open word of software and even internet.

And mix is hard. (And pure like free source is so pure it is a cult those days.)


> The open source is against the free source by deliberating allow commerical software.

Again, and to put it even more clearly... you're very wrong.

Source, from the actual "Free source" people you're talking about:

https://www.gnu.org/philosophy/selling.html

> Read history guys. I even did a master thesis cf the two.

Interesting. Is your master thesis available for me to take a look at?

I'd be interested in seeing how and why you arrived at your current viewpoint.


I don't generally like restrictive licenses but in this case we're taking about running closed, commercial software on closed, commercial hardware. It makes sense to use a GPL to prevent one of those companies from taking all of that hard work and incorporating it back into their platforms for free.


Mine was just a lighthearted reflection on the issue, but in general I'm supportive of the copyleft ethos. And yes, in this case it would make a lot of sense.

Actually my first reaction was to think, "Why are Microsoft themselves not doing this job?"


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.


It'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...


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.


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.



I would love a reference to a formalized version of this..

Edit: Found Polyform! https://polyformproject.org/what-is-polyform/


Found one - Polyform

https://polyformproject.org/what-is-polyform/

> PolyForm is a project to draft and make freely available plain-language source code licenses with limited rights. > > Source code licenses with limited rights? What does that mean? Many software developers want to make software available under source code licenses that grant some, but not all rights. Some licenses that have been released before include the Commons Clause, Elastic and Confluent licenses, and others. These licenses grant broad rights, including source code access, but reserve some rights to the licensor.


Imagine you license a word processor this way, would it then be a violation to use that word processor to edit your resume?


Microsoft Office does that: https://answers.microsoft.com/en-us/msoffice/forum/all/licen...

It might be technically a violation, but nobody’s going to send a license audit to a private citizen.


Technically, yes! A perfect example of an edge case that I knew would be difficult to find.

Very clever!


To be clear I'm not just trying to be a pedant and poke holes in your legalese here. I'm trying to show that it is genuinely hard to draw a line between what kinds of profit seeking are morally acceptable and what are not. People generally deserve to seek out prosperity, and I suspect in most cases trying to differentiate between these cases will end up being a game of "people richer than me have to pay, people poorer get it for free" which is way less morally justified than the current situation with software licenses.


Do this, but make allowances for small businesses under a certain MRR.


> 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.


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.


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.


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.


[flagged]


Following this completely imaginary "never end a sentence with a preposition" rule is some bullshit up with which I will not put.


> 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/t...

[1] https://infocon.org/cons/SyScan/SyScan%202012%20Singapore/Sy...


> 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.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/ha...

Microsoft used to include HAL extension samples in the Windows 10 driver samples – 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/96e...


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?


Good on you for this ambitious project. Wishing you success.


Technically you're the author, not OP. (Please don't kill me)


Good 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.


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?


Good luck! At best you create something very cool. At the worst you learn something new.


I do love the Project Mu shout out at the bottom. Best of luck with your project!


I like your crazy energy, goodluck


Good on you!




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: