Dark Moon X, un sous‐système Cygwin portable + Xfce sans WSL

40
3
sept.
2019
Distribution

Dark Moon X est un sous‐système UNIX libre tournant sous Windows et basé sur le noyau de Dark Moon v1.0.2 utilisant la bibliothèque Cygwin.dll. Il est maintenu par Mehdi Boutayeb Ferkatou sous licence GNU GPL v2 pour architecture x64.

Présentation

Dark Moon est une grande collection d’outils GNU portés sur Windows et gérée par la DLL de Cygwin. Auparavant, pour interagir avec ces outils, il fallait passer par l’invite de commande Windows pour exécuter bash.exe. La nouvelle version intègre CygwinX, il est possible de lancer un Xfce 4 entier et d’utiliser des outils graphiques.

Desktop Xfce

Sommaire

La différence avec le noyau v1.0.2 édité en 2018 est que l’utilisateur n’a plus à travailler sur le CMD trop basique de Windows, mais peut maintenant travailler sur un environnement graphique complet et sur une console plus intuitive. On observe un temps d’exécution quasi instantané du système, alors qu’auparavant il fallait patienter le temps que les auto‐extracteurs de fichiers CAB Windows démarrent l’extraction dans le répertoire temporaire.

Windows Subsystem for Linux (WSL) et Dark Moon

Dark Moon et WSL sont deux systèmes indépendants mais ces derniers ne sont pas incompatibles :

WSL 2 est un noyau Linux natif intégré à Windows qui nécessite Hyper-V pour virtualiser Linux à très bas niveau (WSL 1 étant une utilisation du sous‐système Linux de Windows développé à la base pour faire tourner des applications Android), tandis que Dark Moon est un ensemble d’outils du projet GNU recompilés en binaire Windows et reproduisant le comportement d’un système UNIX à très bas niveau avec la DLL de Cygwin, sans pour autant avoir recours à la virtualisation.

Lancement de DarkMoon

Cela signifie que, lors de la compilation d’un programme, ce dernier génèrera du binaire Windows (*.exe). Cependant il est possible de compiler le programme en binaire Linux ELF64 et de l’exécuter dans le sous‐système WSL.

divers processus Cygwin sous Windows

De nombreux paquets ont été intégrés par défaut, notamment GCC, Rsync, ou encore Gedit (liste complète sur le site du projet Dark Moon), mais il est possible d’obtenir d’autres paquets via Wget et Git en se connectant sur des sites miroirs de Cygwin et sur des dépôts.

Dark Moon et Cygwin

Le fonctionnement de Dark Moon est centré autour de cygwin.dll pour émuler les comportements d’un système UNIX. Cependant, le noyau de Dark Moon est portable et permet de « fournir un environnement de développement ainsi qu’un émulateur UNIX cloisonnés dans un exécutable apportant une mobilité au logiciel, permettant d’exécuter l’application sur n’importe quel système Windows ».

« Dark Moon : une distribution GNU/Cygwin portable pour Windows », sur LinuxFr.org.

La version Xfce de Dark Moon n’est fonctionnelle que pour Windows 10 à ce jour. Néanmoins, il est prévu de porter le serveur X.Org sur tous les systèmes Windows à l’avenir.

Dark Moon est la première et la seule distribution GNU/Linux à être à la fois indépendante de WSL de Microsoft et à être un portage d’outils GNU tournant avec la bibliothèque cygwin.dll distribuée aux clients Windows 10 sur le Microsoft Store.

Ainsi, les utilisateurs ont la possibilité de consulter les fichiers de l’arborescence UNIX depuis le gestionnaire de fichiers afin d’y effectuer des modifications, et il est même possible de déplacer des fichiers dans une clé USB, ce qui n’est pas possible simplement avec Windows Subsystem for Linux de Microsoft pour le moment.

Le programme de déploiement est toujours présenté sous la forme d’un exécutable :

Microsoft Windows [version 10.0.17134.885]
(c) 2018 Microsoft Corporation. Tous droits réservés.

C:\Users\User>cd C:\Program Files\WindowsApps8318MBKlogiciel.DarkMoonX_1.0.0.0_x64__mdpxzc6tk7y0p

C:\Program Files\WindowsApps8318MBKlogiciel.DarkMoonX_1.0.0.0_x64__mdpxzc6tk7y0p>dir
 Le volume dans le lecteur C s’appelle Windows
 Le numéro de série du volume est 30A1-4BDD

 Répertoire de C:\Program Files\WindowsApps8318MBKlogiciel.DarkMoonX_1.0.0.0_x64__mdpxzc6tk7y0p

07/08/2019  02:08    <DIR>          .
07/08/2019  02:08    <DIR>          ..
07/08/2019  02:08    <DIR>          AI_STUBS
07/08/2019  02:08           438 684 AppxBlockMap.xml
07/08/2019  02:08             3 310 AppxManifest.xml
07/08/2019  02:08    <DIR>          AppxMetadata
07/08/2019  02:08             5 427 AppxSignature.p7x
07/08/2019  02:08    <DIR>          Assets
07/08/2019  02:08       384 795 776 DarkMoonX.exe
07/08/2019  02:08             8 192 Registry.dat
07/08/2019  02:08             4 216 resources.pri
               6 fichier(s)      385 255 605 octets
               5 Rép(s)  468 682 117 120 octets libres

Il est possible d’exécuter une session de Terminal depuis le CMD de Windows ainsi que depuis Powershell et vice versa. Il est également possible de faire la même chose depuis l’environnement graphique et console de DarkMoon en tapant cmd et powershell ; il est donc possible de travailler dans l’arborescence de Dark Moon avec la ligne de commande Windows sur l’environnement Xfce, par exemple.

Bash lancé depuis cmd :

Microsoft Windows [version 10.0.17134.885]
(c) 2018 Microsoft Corporation. Tous droits réservés.

C:\Users\User>cd c:/Linux

c:\Linux>start_linux

 [1].Start an XFCE session
 [2].Start terminal
 [3].Exit DarkMoon
                                                                 #####
                                                                #######
                   #                                            ##O#O##
  ######          ###                                           #VVVVV#
    ##             #                                          ##  VVV  ##
    ##         ###    ### ####   ###    ###  ##### #####     #          ##
    ##        #  ##    ###    ##  ##     ##    ##   ##      #            ##
    ##       #   ##    ##     ##  ##     ##      ###        #            ###
    ##          ###    ##     ##  ##     ##      ###       QQ#           ##Q
    ##       # ###     ##     ##  ##     ##     ## ##    QQQQQQ#       #QQQQQQ
    ##      ## ### #   ##     ##  ###   ###    ##   ##   QQQQQQQ#     #QQQQQQQ
  ############  ###   ####   ####   #### ### ##### #####   QQQQQ#######QQQQQ

  DARK MOON X for Microsoft Windows (c) UWP. GNU licensed project
2

User@MSI ~
$

cmd lancé depuis Bash :

User@MSI ~
$ cmd
Microsoft Windows [version 10.0.17134.885]
(c) 2018 Microsoft Corporation. Tous droits réservés.

C:\Linux\home\User>

Ajouter des commandes

Démonstration pour installer la commande apt-cyg via wget (récupéré depuis la page GitHub de DarkMoon) :

Les commandes telles que git et wget sont déjà présentes dans Dark Moon ; cependant, l’utilisateur à la possibilité d’installer la commande apt-cyg :

Installez et lancez cyg-apt :

  • téléchargez apt-cyg avec la commande wget :
$ wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg

Vous obtiendrez ceci :

 --2019-07-26 20: 19: 24-- https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
 Résolution de raw.githubusercontent.com (raw.githubusercontent.com)151.101.120.133
 Connexion à raw.githubusercontent.com (raw.githubusercontent.com) | 151.101.120.133 |: 443… connecté.
 requête HTTP transmise, en attente de la réponse… 200 OK
 Taille: 13765 (13K) [text / plain]
 Sauvegarde en: «apt-cyg.1»

 apt-cyg.1 100% [======================================== =======>] 13,44K --.- KB / s ds 0,03s

 2019-07-26 20:19:25 (396 KB / s) - «apt-cyg.1» sauvegardé [13765/13765]

Après avoir téléchargé apt-cyg, vous devez faire un chmod :

chmod +x apt-cyg

Et finalement, vous devrez faire un mv :

mv apt-cyg /usr/local/bin

Fonctionnalités

Voici les principales fonctionnalités pré‐embarquées sur Dark Moon UWP :

  • Bash ;
  • Xfce ;
  • G++ (compilateur C++) ;
  • GCC-Objc (compilateur Objective-C et ObjectiveC++) ;
  • GCC-ADA (compilateur Ada) ;
  • GCC-Fortran (compilateur Fortran) ;
  • Python 3 ;
  • TCL ;
  • GTK+ ;
  • Nano ;
  • Gedit ;
  • Vim ;
  • OpenSSH ;
  • OpenSSL ;
  • Make ;
  • Wget ;
  • Git ;
  • Xserver ;
  • Zip ;
  • Rsync ;
  • Perl ;
  • grep ;
  • Midnight Commander ;
  • Cygwin.dll ;
  • TCP-IP.

Aller plus loin

  • # une distribution cygwin

    Posté par  (site web personnel) . Évalué à 10.

    Je suis un peu gêné par le titre de la dépêche, car le produit présenté ne semble pas être pas un « sous-système Linux » tel le lecteur s’attend à trouver depuis que cette appellation est utilisée par Microsoft pour désigner une couche de compatibilité binaire avec les logiciels Linux.

    Il me semble plus juste de parler de « distribution cygwin », Je reconnais que cela semble moins immédiat pour le néophyte de saisir que le projet vise à fournir un système familier pour les utilisateurs de Linux.

    Mais sinon c’est une bonne chose d’avoir une distribution de ce type de distribution disponible dans le Windows Store, c’est d’ailleurs pour moi l’argument le plus important à côté d’un Cygwin ou d’un MSys2.

    Dark Moon est la première et la seule distribution Linux à être à la fois indépendante de WSL de Microsoft et à être un portage d'outils GNU tournant avec cygwin.dll distribué aux clients Windows 10 sur le Microsoft Store.

    Cette phrase gagnerait beaucoup à être dans le chapo. Et là encore, si Dark Moon X est une « distribution linux », alors FreeBSD est une distribution Linux… ;-)

    À propos de Cygwin la distribution et MSYS2, comparé à ces deux distributions quels sont les autres point forts de Dark Moon X en plus de la vocation à installer un bureau facilement et d’être disponible dans le store ?

    Pour l’aspect « installer un bureau comme sous Linux », la copie d’écran est sympatoche et bien parlante !

    ce commentaire est sous licence cc by 4 et précédentes

    • [^] # Re: une distribution cygwin

      Posté par  . Évalué à 1.

      c'est l'aspect portable du noyau le principale avantage

      • [^] # Re: une distribution cygwin

        Posté par  (site web personnel) . Évalué à 3.

        Ah oui, l’aspect portable est distinctif aussi, en effet.

        (Même remarque sur PsychoFox sur le noyau).

        ce commentaire est sous licence cc by 4 et précédentes

        • [^] # Re: une distribution cygwin

          Posté par  . Évalué à 1.

          Quand je parle de noyau, je veux dire que je retrouve une arborescence de type unix avec les composants unix, peut-être que je n'ais-je pas été claire là dessus

          • [^] # Re: une distribution cygwin

            Posté par  . Évalué à 2. Dernière modification le 04 septembre 2019 à 02:40.

            Le titre a été modifié

  • # noyo

    Posté par  (Mastodon) . Évalué à 1.

    Pourquoi parler de noyau alors qu'il n'y en a pas ?

    • [^] # Re: noyo

      Posté par  . Évalué à 1.

      c'est un noyau basé sur de cygwin reproduisant le comportement d'un système linux

  • # remplacement du titre

    Posté par  . Évalué à 2.

    J'ai demandé le remplacement du nom par Dark Moon X, un sous-système Cygwin portable + XFCE sans WSL

  • # Pas mal mais...

    Posté par  . Évalué à 6.

    C'est bien de voir qu'une alternative à WSL est présente sur le Microsoft Store mais il faut bien faire la différence entre "Unix" et "Linux" parce que ça resemble à du linux mais c'est du Unix/Cygwin avec des commandes présentes sur Linux.

    Après ça empêche pas au programme de faire son travail.

    • [^] # Re: Pas mal mais...

      Posté par  . Évalué à 2.

      j'ai demandé la modification du titre pour mettre Cygwin en avant à la place

  • # Questions

    Posté par  . Évalué à 7.

    Bonjour, j'ai 3 questions:

    • en terme de performances comparé à WSL, c'est différent ?
    • est ce que le serveur X embarqué permet de remplacer un serveur X installé sur la machine Windows (genre VcXsrv) ou bien est-il dédié à DarkMoonX ?
    • enfin, peux-tu donner des cas où il est préférable d'utiliser DarkMoonX plutot que WSL ? J'ai du mal à bien faire la différence entre les 2 utilisations

    Merci, et vraiment beau boulot !

    • [^] # Re: Questions

      Posté par  . Évalué à 6.

      Bonjour et Merci,

      • Comparé à WSL, avec du binaire Unix recompilé pour Windows oui, Dark Moon se montrera plus efficace pour exécuter certaines taches.

      • C'est un Xwin dédié à Dark Moon, c'est comme ça qu'il est préconçu, vous pouvez toujours coder un petit script pour faire autre chose avec.

      • Il serait par exemple préférable d'utiliser Dark Moon pour pouvoir porter le système portable sur une clé USB et pouvoir le lancer partout (sans le GUI) sur différents système Windows (Seven, vista, 8…) impensable avec WSL.

  • # Fichier texte ?

    Posté par  . Évalué à 1. Dernière modification le 04 septembre 2019 à 15:14.

    D’un côté avec le WSL, on a un Linux qui tourne, donc fichier texte au format UNIX, de l’autre, des fichiers au format, ça dépend… et les scripts incompatible entre un Linux et un cygwin sont-ils toujours de mise ?

    Le WSL permet également de prendre un exécutable Linux et de l’exécuter. Ce n’est pas le cas de cygwin.

    Le WSL n’a qu’un inconvénient, il n’y a pas de serverX intégré. Mais les solutions de contournement, n’ont plus lieu d’être àmha.

    • [^] # Re: Fichier texte ?

      Posté par  (Mastodon) . Évalué à 1.

      Le serveur X tu t'en branles un peu puisqu'il peut tourner en dehors du WSL. C'est plutôt si tu voulais faire tourner un truc wayland specific que ça peut coincer.

      • [^] # Re: Fichier texte ?

        Posté par  . Évalué à 3.

        Oui, mais quand je l’ai essayé sur le portable du boulot, j’ai installé kdevelop sans problème… je m’attendais à ce que ça marche out of box.

        C’est juste une déception et un sentiment de pas terminé que je ne m’attendais pas à avoir de la part de microsoft.

        • [^] # Re: Fichier texte ?

          Posté par  . Évalué à 2.

          et les scripts incompatible entre un Linux et un cygwin sont-ils toujours de mise ?

          oui en effet

  • # Page Wikipedia du projet en demande de suppression

    Posté par  . Évalué à 2. Dernière modification le 08 septembre 2019 à 19:22.

    J'ai noté qu'il y a une page Wikipedia pour le projet (https://fr.wikipedia.org/wiki/Dark_Moon_GNU_Project).

    Par contre quelqu'un vient de mettre un bandeau de demande de suppression considérant que le projet n'a pas de notoriété pérenne.

    Ce qui est clair, c'est que l'article comporte des erreurs : l'auteur de l'article semble faire l'amalgame entre Linux et POSIX. Car dans ma compréhension, Dark Moon est plus une collection de logiciels compilés avec Cygwin pour avoir des outils dispo sur les systèmes Unix qu'un noyau Linux encapsulé et communiquant avec Windows.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.