Live data from Hacker News

Ubuntu on Windows

blog.dustinkirkland.com

311–320 of 933 posts

Re: Ubuntu on Windows

#312

I wonder what implications this has for SSH for PowerShell... Microsoft were originally planning to release native SSH in PowerShell this summer. But now it seems redundant when you could just use Bash anyway...

Some sysadmins might want to be able to SSH into their servers from Windows without actually having a complete Linux userspace installed.

Re: Ubuntu on Windows

#313
post #53

A few random thoughts: - Wow, hell is really freezing over! - The hardest part of running bash and other posix things under windows is filesystem access. Windows uses drive letters and backslashes, unix has a root filesystem with forward slashes. It seems they are taking the same route as cygwin by "mounting" windows drives in /mnt/c (or /cygdrive/c). - If you just wanted bash and some posix tools, the harder but nic…

I expect they implemented a subsystem for Linux at the syscall level - i.e. they implemented the Linux kernel's interface at the ABI level. No headers would need to intermingle with open source; compile on Linux, run on Windows.

From the screenshots, it seems there is a full kernel in there - e.g. you have /proc/cpuinfo, and it identifies as Linux 3.4.0.

If they just implemented all Linux syscalls on top of NT, that would replace a Linux kernel. There would be no Linux kernel running on top. But in that case they would also need to emulate stuff like /proc. (This is the "reverse Wine" scenario.)

So I personally think it is either: - There is no new subsystem, this is just a linux.exe running the Linux kernel as a process, like CoLinux does or - There is a new subsystem. One way to do this is to port Linux to a new "architecture", namely the NT HAL. You'd call into the NT native API from the linux kernel, which would mean you'd have to put the headers with the native APIs you use under the GPL.

Armchair kernel development is fun :-)

Re: Ubuntu on Windows

#314
post #29

What? This is sick!? I can't wait for this to happen! Maybe I am gonna get one of those Surface Books after all... though I am gonna miss my i3 setup... I wonder if X (or wayland! or wayland...) can run as well... Native Emacs FTW :)

1) You have native EMacs for W32 since forever 2) Run XMing in fullscreen mode 3) Compaile and run i3.

Re: Ubuntu on Windows

#315

A few random thoughts: - Wow, hell is really freezing over! - The hardest part of running bash and other posix things under windows is filesystem access. Windows uses drive letters and backslashes, unix has a root filesystem with forward slashes. It seems they are taking the same route as cygwin by "mounting" windows drives in /mnt/c (or /cygdrive/c). - If you just wanted bash and some posix tools, the harder but nic…

Regarding the AppX thing... Actually AppX packaged apps (even from the Store in AppContainer) have always had direct filesystem access, but only from their install directory and to/from their AppData directories. It's only access outside those areas which requires use of the picker and/or library capabilities (which both go through a broker process).

They can also of course load DLLs, and there are APIs for moving your app Windows around (with some limitations).

That said, I do not know exactly what they're doing here, and it may be using some new capabilities being added to the system in the rs1 release.

Re: Ubuntu on Windows

#318
Given that I work on a cross platform application for linux & windows... I'll be interested to see if they try to hide some of the more annoying platform compatibility problems.... like the fact that many linux applications assume you can rename/delete a file while it's still open, and windows won't let you.

Also filesystem ACLs are quite different on linux and windows, it'll be interesting to see exactly how the one maps to the other. What will chown and chmod do?

Re: Ubuntu on Windows

#319
post #75
post #8

So what OS you're going to get when you run an application under this? So if I run this: node -e 'console.log(require("os").type())' What it's going to print?

Depends if the node is a Windows executable or a Linux binary.

So if I install Node as a Linux binary. Can I access it in Windows "environment" too?

Does that mean I can do "apt-get install nginx" from their new "bash" terminal app? Does that then run under port 80 in Windows? Since no VM is involved.

I'm still a bit confused.

Post reply on HN