Pourquoi Microsoft ne rend-il pas Windows compatible POSIX ?


Ils l'ont fait. Personne ne s'en est réellement soucié, alors ils ont arrêté.

Windows NT 3.51 avait un sous-système POSIX qui était entièrement conforme à IEEE 1003.1-1990 et ISO IS9945:1-1990. Idem pour NT 4.0. Une tierce partie (Softway Systems Inc.) a obtenu la licence du code source de Microsoft et a produit une série de produits (OpenNT, qui est devenu plus tard Interix) qui a progressivement ajouté le support pour plus de standards POSIX ; le plus important, 1003.2-1992 (shell et utilitaires) et quelques sous-ensembles conformes de 1003.4 (IPC). Ils ont également ajouté le support des Berkeley Sockets (malgré le fait que POSIX ne les avait pas'normalisés à l'époque).


Microsoft est allé jusqu'à acquérir la technologie de Softway Systems et à l'intégrer dans son produit Windows Services For Unix (SFU). Le sous-système POSIX mis à jour a été intégré au produit Windows pour Windows 7 et Windows Server 2012R2.

Personne ne s'en est soucié. Ainsi, dans Windows 8.1, le sous-système est sorti du système d'exploitation. Aujourd'hui, Windows 10 inclut le sous-système Windows pour Linux, qui assure la compatibilité binaire des programmes Linux. Microsoft ne'revendique pas le support POSIX pour WSL, parce que personne ne s'en soucie réellement ; ils se soucient que leur code compilé Linux fonctionne.

(Divulgation complète : j'étais scientifique en chef chez Softway Systems et j'ai rejoint Microsoft lorsqu'ils ont acquis la technologie Interix.)