3 votes

Comment fonctionne le service de partage d'écran d'un Mac?

Quels composants possède-t-il et comment fonctionnent-ils? Quels protocoles sont pris en charge? Ce que je sais seulement, c'est qu'il est compatible avec VNC (en tant que client et en tant qu'hôte).

Je suis intéressé à en savoir plus sur les détails techniques et à les manipuler.

3voto

richter Points 344

Si nous parlons uniquement de Partage d'écran (SS) (en oubliant ARD), cela fonctionne comme suit :

Tout d'abord, il y a un fichier de configuration du démon (/System/Library/LaunchDaemons/com.apple.screensharing.plist). Il contient un enregistrement qui indique à launchd de démarrer le serveur de SS (et ensuite l'agent de SS) chaque fois que quelqu'un se connecte au port 5900. Le serveur est situé à /System/Library/CoreServices/RemoteManagement/screensharingd.bundle, l'agent est à /System/Library/CoreServices/RemoteManagement/ScreensharingAgent.bundle.

Le Serveur de SS est la partie principale du Service de SS. Il effectue des interactions réseau, met en œuvre les protocoles utilisés, effectue le codage d'images, l'authentification, etc. À son tour, l'Agent de SS imite l'utilisateur actuel et gère des choses comme fournir l'image de l'écran de l'utilisateur, "appuyer" sur les touches, "déplacer" la souris.

(Si mes souvenirs sont bons, cette séparation a commencé avec Mac OS X 10.7. Auparavant, le service était monolithique, s'appelait AppleVNCServer et a toujours été en cours d'exécution lorsque l'interrupteur "Partage d'écran" dans les Préférences Système était activé).

Le Service de SS peut également démarrer les assistants suivants au besoin :

  • SSPasteboardHelper (situé dans le bundle de l'Agent de SS) - colle les données du presse-papiers dans le presse-papiers système telles qu'elles arrivent du client,
  • SSAssistanceCursor - apparu récemment, je me demande à quoi il sert,
  • SSFileCopyReceiver / SSFileCopySender (dans le bundle du Serveur de SS) - est utilisé pour la transmission/réception de fichiers.

En ce qui concerne les protocoles, le Service de SS utilise le même protocole RFB que tous les clients VNC, mais avec quelques extensions spécifiques. Le serveur indique qu'il prend en charge la version du protocole 3.889 (la plupart des autres serveurs indiquent les versions 3.3 à 3.8). Il prend également en charge les codecs les plus courants - brut, ZLib, ZRLE - ainsi que ceux personnalisés d'Apple (ZLib en noir et blanc et en niveaux de gris, et un codec "adaptatif" qui utilise un algorithme de compression similaire à JPEG). Il existe également de nombreuses extensions de protocole spécifiques à Apple, implémentant le glisser-déposer, la transmission de fichiers, la synchronisation automatique du presse-papiers, la transmission d'événements de gestes, etc.

Ceci est une explication très générale, mais si vous avez une question plus spécifique, je serai ravi d'aider.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X