Hacker Newsnew | past | comments | ask | show | jobs | submit | signal11's commentslogin

For the MS folk reading this: native zsh on Windows, please?

WSL2 is great, but native POSIX is even better. Of course it’s a big undertaking, but it makes Windows a first-class dev platform for those who need POSIX in production.


The NT kernel could never implement full POSIX semantics. It would have to be another UN*X clone to do so.

And that would suck.


NT kernel can and did implement POSIX. Multiple times even. That's how WSL1 works. NTFS can also support Unix-like permissions. There are ACLs for Owner and Group.

However, I'm not keen on using yet another Unix clone as well. At least Windows NT brought the world into 90s in the OS state-of-the-art where Unix clones are stuck in 80s and each of them patch around the deficiencies of POSIX. Native asynchronous APIs and truly object-oriented system call infrastructure is nowhere to be found in POSIX.


POSIX was implemented as a subsystem.

And it was never _fully_ implemented, as my post said. The NT kernel doesn't support certain POSIX semantics (fork).


WSL1 DOES implement fork() for WSL1 lightweight processes in the lxcore.sys driver: https://learn.microsoft.com/en-gb/archive/blogs/wsl/windows-...

The NT kernel does not understand fork(). You can-sorta-fake-it, which is what WSL1 did. There's no equivalent to fork() in any version of Windows. From your link:

> As an example, the Linux fork() syscall has no direct equivalent call documented for Windows. When a fork system call is made to the Windows Subsystem for Linux, lxcore.sys does some of the initial work to prepare for copying the process. It then calls internal Windows NT kernel APIs to create the process with the correct semantics, and completes copying additional data for the new process.

The MSFT driver prepped something-like-fork and then called the native NtCreateProcess, which does not implement anything like fork().


In the next post they literally tell that NT kernel "supports" it https://learn.microsoft.com/en-gb/archive/blogs/wsl/pico-pro... . In the same post if you scroll down into the comments they also say that their fork implementation

Just because YOU don't have access to the functionality used for fork, it doesn't mean that there are no internal API calls that can do a fork or do something very similar that it is indistinguishable. A ring-0 driver (like lxcore.sys) that can access a non-standard special process model (pico processes) and is allowed to register its own syscall entry/exit points can also access lower level functionality like accessing the page table of a pico process, modifying it and responding to non-Win32 syscalls.

When you run fork in a WSL1 program now, its effects are the same as doing a fork natively on a Linux kernel: the memory space view is cloned as CoW, a new stack is allocated and the execution is resumed in both processes. If it forks like a duck, it is a duck.

Yes standard Win32 cannot do forks. However, Win32 isn't the only identity NT can expose and NT provides functionality to do forks. Just not to the normal programmers.

Actually a further research reveals that it is very much possible to trigger forking behavior even from the user space. Here is the proof: https://github.com/mobdk/CloneProcess https://stackoverflow.com/questions/985281/what-is-the-close... . You just need to use ZwCreateProcess.


NT does not have a fork-alike API. The NT internal APIs are all known.

Isn’t Win32 also implemented as a subsystem?

Yes, but the Executive has a hard dependence on Win32 for service control.

Surely WSL1 proves that it mostly can

Does this explain the numerous password reset messages I’ve received over the past year?

Those are just bots sending reset attempts to obtain your email or phone hint. I receive hundreds per year. All you need to send a password reset link is the account's username, which is, of course, publicly accessible.

One of the things I like about Steam is that your email address, username, display name and id slug (/id/*) aren't required to be the same. All public identifiers should be changeable (regardless of whether or not making the change is a publicly available option).

Yes, I was wondering about this. Old iPads running iPad OS 15 received updates last month. So even an iPad Air 2 from 2014 could receive updates in 2026.

The big issue with old iPads though is that apps drop support for older iPad OS versions. Usually their older versions do keep working, though.


I was using poetry pretty happily before uv came along. I’d probably go back.

Note that uv is fast because — yes, Rust, but also because it doesn’t have to handle a lot of legacy that pip does[1], and some smart language independent design choices.

If uv became unavailable, it’d suck but the world would move on.

[1] https://nesbitt.io/2025/12/26/how-uv-got-so-fast.html


Maybe I could give up uv, but giving up ruff would suck.


This is just the weirdest thread.

Like, the whole point of open source is that this thread is not a thing. The whole point is "if this software is taken on by a malevolent dictator for life, we'll just fork it and keep going with our own thing." Or like if I'm evaluating whether to open-source stuff at a startup, the question is "if this startup fails to get funding and we have to close up shop, do I want the team to still have access to these tools at my next gig?" -- there are other reasons it might be in the company's interests, like getting free feature development or hiring better devs, but that's the main reason it'd be in the employees' best interests to want to contribute to an open-source legacy rather than keep everything proprietary.


The leadership and product direction work are at least as hard as the code work. Astral/uv has absolutely proven this, otherwise Python wouldn't be a boneyard for build tools.

Projects - including forks - fail all the time because the leadership/product direction on a project goes missing despite the tech still being viable, which is why people are concerned about these people being locked up inside OpenAI. Successfully forking is much easier said than done.


I had a lot of trouble convincing people that a correct Python package manager was even possible. uv proved it was possible and won people over with speed.

I had a sketched out design for a correct package manager in 2018 but when I talked to people about it I couldn't get any interest in it. I think the brilliant idea that uv had that I missed was that it can't be written in Python because if is written in Python developers are going to corrupt its environment sooner or later and you lose your correctness.

I think that now that people are used to uv it won't be that hard to develop a competitor and get people to switch.


If you believe the rumor mill, Touch-enabled Macs may launch this year[1].

[1] https://www.macrumors.com/2026/03/08/apple-planning-macbook-...


> There's so much extra padding and rounding now

I don’t like it either, but I wonder if that’s to support the touch-enabled Macs that the rumor mill is reporting about right now.

In any case, Tahoe has many other issues beyond padding.


There are definitely other ways to do it than making everything look like this.


Liquid Glass is Apple’s Windows Vista. They had a ton of fun with Vista in their “switch” ads, if the Windows team were in better shape they could have a field day just screenshotting Tahoe on Social Media. Lucky they’re distracted with their own challenges.

Liquid Glass does have some good points, but it feels like someone turned in C- level work.


I see the Vista comparison a lot but I'm not sure I agree with it. I never thought Vista was that ugly, I thought it was more most of the computer hardware people were buying at the time just wasn't capable of running those visual effects (and I recall it was pretty buggy too)

It had a glassy aesthetic but the similarity doesn't go much further than that description. They didn't make all the buttons into glass blobs floating on top of the content with distracting warping effects; the window chrome was still generally separated from the content.


The EU’s tech regulation has always been a bit “off”, like they don’t really understand tech or how to encourage improved behaviour. Eg cookie popups, those are a blight and it’s the EU’s fault — to the point they’re working to roll them back[1] after all these years, because informed consent is impossible at the scale at which cookie popups hit users.

Then there was the whole “pay or okay” controversy around paywalls or tracking ads.

My observation is: saying no to tech rarely works. Building a more compelling alternative does. But the EU would rather regulate than build.

[1] https://www.politico.eu/article/europe-cookie-law-messed-up-...


> those are a blight and it’s the EU’s fault

This is the fault of people using unnecessary cookies.


Shafting open source projects that implement your spec is not okay, and is terrible optics.

Tech journalists should ask the FIDO Alliance if they’re just Google+Apple+Microsoft in a trenchcoat. Definitely not very open!


I do get that there are use cases for actual hardware bound keys for enterprise settings. But having non-exportable credentials (effectively non-ownable) is not acceptable in a consumer setting. This is a thinly veiled attempt at strengthening platform lock-in.

Look, the spec says you can't export the keys to a file! Too bad, go re-register your 120 websites if you want to stop using iCloud/Google!


Particularly because "you must use only an approved passkey manager" is fairly easily solved by MDM, which is already widespread.

It's DRM, and it will go down exactly the same anti-user and anti-competitive route as every other DRM. Fight it with fervor.


Last I checked, they were working on interop so you can move your keys from one provider to another without creating CSV files or equivalent[1].

However from my PoV — if the user or an open source project wants to create CSV files, they should be free to do so. That’s part of putting the user in control.

For me, KeePass XC is the canary in the coal mine that helps me figure out what FIDO’s priorities are. I don’t have a problem with crypto around passkeys. They’re great. The non-functionals though (including shipping passkeys without good import/export) are a bit of a mess.

[1] https://fidoalliance.org/fido-alliance-publishes-new-specifi...


Yes, UIDocumentPickerViewController is 10+ years old at this point.

There’s also a similar photos picker (PHPicker) which is especially good from 2023 on. Signal uses this for instance.


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

Search: