0

Why does microsoft contribute to the Linux kernel? [L. Latif, theinquirer, 2012 "Microsoft contributed more code than Canonical to Linux since 2.6.32"]

Are the contributions focussed on code that will improve the compatibility with microsoft products (CIFS, NTFS...)?

Is the aim to show presence in public or learn how others solve problems? Has there been a public announcement on this topic, or is there an easy structure behind the commits?

closed as primarily opinion-based by jimmij, Hauke Laging, Networker, andcoz, John WH Smith Jan 11 '15 at 19:11

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    You have to ask microsoft. – jimmij Jan 11 '15 at 17:52
  • 2
    @jimmij "Ask them" is as helpful as rtfm and one can imagine that it will be quite difficult to find the right contact person. – Jonas Stein Jan 11 '15 at 18:03
  • 2
    No one on this site can answer the question about someone (the company in this case) intentions. You have to ask @BillGates or whoever was in charge and made that decision. – jimmij Jan 11 '15 at 18:13
  • 2
    Microsoft is a very big place, it may benefit one division to contribute. e.g. azure use Gnu/Linux as one of there Operating Systems. (as you see from @golilocks answer, a lot of it is hyperv, this is the sort of stuff that would affect azure virtual machines). – ctrl-alt-delor Jan 11 '15 at 18:39
  • 2
    A better question might be - why shouldn't they? MS, like most large corporations, is not a monolithic outfit. In the absence of a company-wide ban on dealing with free software - something that would be impossible to enforce anyway, the individual parts of the organization do what they think best to serve their interests and promote their products. As a quote in your link says: "Microsoft however is very keen to make Linux distributions work well with its Hyper-V hypervisor". – Faheem Mitha Jan 11 '15 at 18:40
5

Presumably they do it for technical reasons like everyone else.

Here's the output of grep -R Microsoft . | grep -i "(c)" run in the 3.13.3 source tree:

./tools/hv/hv_vss_daemon.c: * Copyright (C) 2013, Microsoft, Inc.
./drivers/net/hyperv/hyperv_net.h: * Copyright (c) 2011, Microsoft Corporation.
./drivers/net/hyperv/rndis_filter.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/net/hyperv/netvsc.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/net/hyperv/netvsc_drv.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/scsi/storvsc_drv.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/hid/hid-hyperv.c: *  Copyright (c) 2010, Microsoft Corporation.
./drivers/video/hyperv_fb.c: * Copyright (c) 2012, Microsoft Corporation.
./drivers/input/serio/hyperv-keyboard.c: *  Copyright (c) 2013, Microsoft Corporation.
./drivers/hv/hv_snapshot.c: * Copyright (C) 2013, Microsoft, Inc.
./drivers/hv/channel_mgmt.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/hv/vmbus_drv.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/hv/hv_util.c: * Copyright (c) 2010, Microsoft Corporation.
./drivers/hv/hv_balloon.c: * Copyright (c) 2012, Microsoft Corporation.
./drivers/hv/ring_buffer.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/hv/hv.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/hv/channel.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/hv/connection.c: * Copyright (c) 2009, Microsoft Corporation.
./drivers/hv/hyperv_vmbus.h: * Copyright (c) 2011, Microsoft Corporation.
./Documentation/usb/linux-cdc-acm.inf:;     Copyright (c) 2000 Microsoft Corporation
./Documentation/usb/linux.inf:;    Copyright (c) Microsoft Corporation
./include/linux/hyperv.h: * Copyright (c) 2011, Microsoft Corporation.

Most of these have to do with hypervisor support, such as virtual network interfaces. I.e., as per the article you linked, they help facilitate linux guests running under Microsoft's Hyper-V hypervisor.

Some of it might also be for the other way around -- running Windows guests on linux hosts -- which is also possible with at least Xen.

Not the answer you're looking for? Browse other questions tagged or ask your own question.