IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft porte sur Linux les outils SysInternals ProcMon (Process Monitor) pour suivre l'activité syscall sur le système
Et ProcDump (Process Dump) pour créer des core dumps d'applications

Le , par Stéphane le calme

174PARTAGES

8  0 
Microsoft cherche depuis longtemps à apporter ses applications les plus basiques à Linux. Nous ne parlons pas d'applications avec des interfaces graphiques compliquées, mais d'outils essentiels pour la gestion des systèmes d'exploitation. Si PowerShell a déjà débarqué sur ce système, il reste encore un long chemin à parcourir. L'idée de Microsoft est de permettre à tout utilisateur de Windows de se sentir capable d'utiliser Linux, avec les outils de gestion qu'il connaît déjà et auxquels il est habitué.

S'il est normal de voir déjà WSL sur Windows 10, il y a d'autres domaines à explorer. L'un d'eux se retrouve dans le domaine des applications et des services, de plus en plus présents. Le plus récent est le bien connu ProcMon, qui vient d'arriver sur Linux sous la licence MIT.

Parler de Procmon, Process Explorer et d'autres outils Sysinternals revient, pour beaucoup, à se souvenir d'un ensemble d'outils très anciens qui, pendant de nombreuses années, ont été le complément parfait de Windows, car ils offrent une approche beaucoup plus approfondie de certains éléments du système qui ne sont pas aussi facilement accessibles sur les outils et fonctions inclus dans le système d'exploitation..

Process Monitor est un outil de surveillance avancé pour Windows qui affiche le système de fichiers en temps réel, le registre et l'activité des processus / threads. Il combine les fonctionnalités de deux utilitaires Sysinternals hérités, Filemon et Regmon, et ajoute une liste complète d'améliorations, notamment un filtrage riche et non destructif, des propriétés d'événement complètes telles que les ID de session et les noms d'utilisateur, des informations de processus fiables, des piles de threads complètes avec prise en charge des symboles intégrés pour chaque opération, la journalisation simultanée dans un fichier, et bien plus encore. Ses puissantes fonctionnalités pourraient faire de Process Monitor un utilitaire intéressant dans votre boîte à outils de dépannage système et de recherche de logiciels malveillants.

Process Monitor comprend de puissantes capacités de surveillance et de filtrage, notamment:
  • Plus de données capturées pour les paramètres d'entrée et de sortie de l'opération.
  • Les filtres non destructifs vous permettent de définir des filtres sans perdre de données.
  • La capture des piles de threads pour chaque opération qui permet dans de nombreux cas d'identifier la cause première d'une opération.
  • La capture fiable des détails du processus, y compris le chemin de l'image, la ligne de commande, l'ID utilisateur et de session.
  • Des colonnes configurables et mobiles pour toute propriété d'événement.
  • Des filtres qui peuvent être définis pour n'importe quel champ de données, y compris les champs non configurés en tant que colonnes.
  • L'architecture de journalisation avancée qui s'adapte à des dizaines de millions d'événements capturés et à des gigaoctets de données de journal.
  • L'outil d'arborescence de processus qui montre la relation de tous les processus référencés dans une trace.
  • Le format de journal natif qui préserve toutes les données pour le chargement dans une autre instance de Process Monitor.
  • Une infobulle de processus pour une visualisation facile des informations d'image de processus.
  • Une infobulle de détail qui permet un accès pratique aux données formatées qui ne tiennent pas dans la colonne.
  • Une recherche annulable.
  • Une journalisation du temps de démarrage de toutes les opérations.

Bien entendu, la version proposée sur Linux n'est pas à proprement parler la même que celle qui est disponible pour Windows. La description donnée par les responsables du projet sur la page GitHub est la suivante : " Process Monitor (Procmon) est une réinvention Linux de l'outil classique Procmon du jeu d'outils Sysinternals pour Windows. Procmon fournit aux développeurs Linux un moyen pratique et efficace de suivre l'activité des appels système sur le système. " Il faut comprendre, par conséquent, que cette version ne part pas nécessairement du même code, bien qu'elle reproduise les mêmes fonctions ou, du moins, les plus importantes.

Toutes les instructions pour installer et utiliser ProcMon sont disponibles sur la page GitHub. Bien sûr, il peut être compilé à partir de zéro ou simplement installé à partir d'un référentiel avec la commande apt-get.


De même, Microsoft a également rendu disponible sous Linux ProcDump, un des nombreux outils de la suite « Sysinternals ». Procdump est un utilitaire de ligne de commande dont le but principal est de surveiller une application à la recherche de pics de CPU et de générer des dump mémoire (capture de toute ou partie de la mémoire d’un processus) suite à des problématiques logicielles (comme le plantage) pendant un pic qu'un administrateur ou un développeur peut utiliser pour déterminer la cause du pic. ProcDump comprend également la surveillance des fenêtres bloquées (en utilisant la même définition de fenêtre que Windows et le Gestionnaire des tâches utilisent), la surveillance des exceptions non gérées et peut générer des dump mémoire en fonction des valeurs des compteurs de performances système. Il peut également servir d'utilitaire de dump mémoire de processus général que vous pouvez intégrer dans d'autres scripts.

Il génère par défaut des dump dans le « bitness » du processus, évitant les problèmes de format que l’on peut rencontrer avec le gestionnaire de tâches. En plus de cela il comporte de nombreuses options, ce qui en fait un outil de premier choix pour créer des dump mémoire. Une des particularités de ProcDump est qu’il sait générer des dumps complets (« Full dump » ) ou des dumps partiels. Un dump complet comporte toute la mémoire du processus : mémoire allouée, ensemble des exécutables (fichiers .exe et .dll), etc. C’est ce type de dump que fait le gestionnaire des tâches. Or un tel dump est généralement très volumineux (souvent > 1Go), alors que dans de nombreux cas on peut se contenter d’un dump plus léger.


Dans sa description, Microsoft explique que "ProcDump est une réinvention Linux de l'outil ProcDump classique de la suite d'outils Sysinternals pour Windows. ProcDump offre aux développeurs Linux un moyen pratique de créer des core dumps de leur application en fonction de déclencheurs de performances." Un core dump est une copie de la mémoire vive et des registres d'un processeur, permettant d'avoir un instantané de l'état d'un système. Il sert généralement à des fins d'analyse, suite à une exception, forcée ou provoquée par une erreur.

Il s'agit d'une autre étape importante pour Microsoft. Avec de plus en plus d'entreprises utilisant Linux dans le service Azure, il est important d'avoir les outils que les administrateurs ont l'habitude d'utiliser et dans lesquels ils ont confiance.

Sources : GitHub Microsoft (ProcMon, ProcDump)

Et vous ?

Que pensez-vous de cette décision de Microsoft ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 20/07/2020 à 8:29
Ca apporte quoi de plus par rapport à top/htop ?

Peut-être utile pour ceux travaillant avec WSL.
3  0 
Avatar de Rep.Movs
Membre habitué https://www.developpez.com
Le 20/07/2020 à 10:15
Citation Envoyé par chrtophe Voir le message
Ca apporte quoi de plus par rapport à top/htop ?
Je connais mal top et htop, mais process monitor et process dump sont pour moi bien plus complets (au moins pour ce que j'en connais sous Windows).

Par exemple, processmonitor permet de voir tous les accès d'un ou plusieurs processus (fichiers ouverts, lus, fermés, recherchés, clés de registre, signaux) avec leur résultat (réussite, échec, raison de l'échec). Ca garde tout l'historique, permet de filtrer. Ca permet aussi de travailler par fichier: on surveille un fichier pour savoir quels processus l'ouvrent, dans quel ordre, ...
Bref, on est plus sur un équivalent de ktrace que de top/htop.

ProcessDump permet de faire un snapshot en live d'un processus pour le déboguer à froid dans son état figé. L'intérêt c'est qu'il surveille le processus pour déclencher le dump lors d'une condition particulière (pic cpu, timer, exception).
1  0 
Avatar de Reclad
Nouveau Candidat au Club https://www.developpez.com
Le 20/07/2020 à 10:16
Citation Envoyé par chrtophe Voir le message
Ca apporte quoi de plus par rapport à top/htop ?

Peut-être utile pour ceux travaillant avec WSL.
Je pense qu'ils veulent rendre à terme la chose un peu plus "lisible" qu'un strace (utilisé dans htop) classique.

Procmon sur Windows est plutôt "high-level" par rapport à strace : https://www.jamovi.org/misc/procmon-app.png (On voit par exemple ici la lecture des clés de registre) -> Même si "high-level" (excusez du terme), toutes les informations nécessaires sont présentes.

J'imagine que Microsoft cherche à reproduire ça.
0  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 20/07/2020 à 21:33
Par exemple, processmonitor permet de voir tous les accès d'un ou plusieurs processus
Pour ça tu as la commande lsof, tu peux voir les fichiers ouverts par un utilisateur, qui utilise les fichiers d'un répertoire, les fichiers ouverts par un process etc.

Par ailleurs, sous Linux, tu peux voir simplement tous les fichiers ouverts par un process en faisant un ls -l sur le dossier /proc/[pid]/fd. Tu verras pour chaque fichier ouvert un nom étant le numéro correspondant au handle du fichier, fichier étant lien symbolique vers le fichier ouvert.

Edit:
Si tu préfère le mode graphique, sur Ubuntu tu as le moniteur système :
0  0