Hacker News new | ask | show | jobs
by mrbig4545 3923 days ago
I'd quite like to see the NT kernel with gnu userland, and unixy virtual filesystems.

There's no denying the NT kernel is an excellent piece of engineering.

2 comments

Interix. Microsoft's Unix. It runs on the NT kernel alongside win32 as another process personality. Most windowses come with the Interix core, and you can get the userland part from Microsoft --- it's called Services For Unix these days, I think. It even comes with GCC. It's a pretty nice piece of work, behaving just like an old school Unix.

But it's largely been abandoned by Microsoft and is buggy as hell and difficult to install; and its an old old-school Unix, so it's missing a lot of the modern system calls and libraries that make Unixes nice. (I don't even know if win10 supports it.)

Interesting. I didn't know they had a replacement after they dumped the POSIX kernel personality in Windows XP.

Wikipedia says that "Interix will not be included in Windows versions after Windows 8" though.

https://en.wikipedia.org/wiki/Interix

...that page cites one of my projects as a reference? May all the gods have mercy on our souls...

Yeah, it's obviously been destaffed at Microsoft. There's a blog, last updated years ago. http://blogs.msdn.com/b/sfu/

I know it's likely to be impossible, but if anyone at Microsoft's reading this (and chances are they are), whacking all the source code up on codeplex or github would be awesome. It worked so, so much better than Cygwin.

MSYS2 can be nicer, depending on what you're doing.
What if you start a java process in cygwin? Path names mess me up.
Not sure about Java, but Scala works fine for me in cygwin after doing this[1][2]. I'd have to have a more detailed example (that I can reproduce myself) of what gets messed up though if it's something beyond that, since I can't remember anymore exactly what else I had to do offhand.

[1] http://stackoverflow.com/questions/17124689/i-really-would-l...

[2] http://stackoverflow.com/questions/4468967/two-problems-with...

Cygwin does not alter the behaviour of existing programs. It is a DLL that can be compiled into new programs to provide lots of POSIX/Linux compatibility. It also comes shipped with lots of pre-compiled Linux binaries of common tools.

If you run your pre-existing JRE, its behaviour won't change. If you run a JRE compiled with cygwin (I've no idea if they provide one or not) then it will have UNIX-style path support.

Don't believe there is such a JRE. I mostly handle paths like I would normally on windows and they work ok on the JVM:

"c:/whatever/another_dir/some.file"

There's also cygpath to convert between Windows/Unix style paths: http://cygwin-lite.sourceforge.net/html/cygpath.html