Showing posts with label Canonical. Show all posts
Showing posts with label Canonical. Show all posts

Thursday, March 31, 2016

Microsoft supporting Ubuntu apps running on Windows

By Vasudev Ram


WINDOWS <-> UBUNTU

Seen today on HN:

Ubuntu on Windows (dustinkirkland.com)

(It's the top post on HN at the time I'm writing this, and for a while before.)

Original post here: Ubuntu on Windows -- The Ubuntu Userspace for Windows Developers by Dustin Kirkland of Canonical, the maker of Ubuntu.

I commented a few times and asked a few questions too.

It's a pretty interesting thread, IMO, for those with interest in the Windows and Linux operating systems.

There are a lot of technical topics discussed and also some business ones, related to this move. Senior people from the Linux and Windows camps participating.

E.g.:

[ > So do Cygwin and/or MSYS emulate the fork() system call

Yes. That's one thing we spent considerable engineering effort on in this first version of the Windows Subsystem for Linux: We implement fork in the Windows kernel, along with the other POSIX and Linux syscalls.
This allows us to build a very efficient fork() and expose it to the GNU/Ubuntu user-mode apps via the fork(syscall).
We'll be publishing more details on this very soon. ]

There was also discussion of the POSIX subsystem that was there on Windows for a few Windows versions (from NT). I had used it to run some of my Unix command-line utilities (that used mainly the stdio and stdlib C libraries [1]) on Windows, in the Windows NT and Windows 2000 days.

[1] Because the POSIX subsystem support on Windows was limited.

Here is another HN thread about it, at around the same time, though this one is off the front page now:

Microsoft and Canonical partner to bring Ubuntu to Windows 10 (zdnet.com)

- Vasudev Ram - Online Python training and programming

Signup to hear about new products and services I create.

Posts about Python  Posts about xtopdf

My ActiveState recipes

Wednesday, May 29, 2013

Unix-like pipes in Go, from labix.org

pipe - Unix-like pipelines for Go

Looks interesting.

This pipe Go package, by Gustavo Niemeyer of labix.org, allows you to programmatically set up and run a pipeline of processes in Go, and to get the pipe's standard output and standard error, either combined, or separately.

The page has some examples of creating pipelines using the package.

The approach he uses is more like the original Unix pipes concept:

http://en.wikipedia.org/wiki/Pipeline_(Unix)

in that it creates pipelines out of multiple processes, whereas the approach I took with my Python pipe_controller module was different: instead of multiple processes, I used multiple Python functions in a single process:

http://www.google.com/?q=jugad2+pipe_controller

(See the first few hits from the above search for pipe_controller.)

I recently came across some interesting work by Gustavo and others, involving porting Canonical's Juju devops tool from Python to Go.

Relevant links for the Juju port:

https://plus.google.com/app/basic/stream/z123eroqbu20sh5hi04cebzbpyzxznr4ru00k

https://groups.google.com/forum/m/#!topic/golang-nuts/jLnMsUbYwrQ

http://m.youtube.com/watch?v=kKQLhGZVN4A&desktop_uri=%2Fwatch%3Fv%3DkKQLhGZVN4A

https://lists.ubuntu.com/archives/juju-dev/2012-November/000281.html

Interestingly, IIRC, based on some stories that I read a while ago, the word juju is related to magic in some West  African language ...

http://en.m.wikipedia.org/wiki/Juju

And that may be why Juju scripts are called charms:

https://juju.ubuntu.com/

P.S. I wonder what Devops_Borat would have to say about Juju (and about Python and Go too :)

https://mobile.twitter.com/devops_borat

- Vasudev Ram
dancingbison.com