Come funziona il servizio di condivisione dello schermo di un Mac?

1

Quali componenti ha e come funzionano? Quali protocolli sono supportati? Quello che so solo è che è compatibile con VNC (come client e come host).

Sono interessato a conoscere più dettagli tecnici e a giocarci.

    
posta radj 16.12.2013 - 11:10
fonte

1 risposta

1

Se stiamo parlando solo di Screen Sharing (SS) (dimenticando ARD), funziona come segue:

Innanzitutto, esiste un file di configurazione daemon (/System/Library/LaunchDaemons/com.apple.screensharing.plist). Contiene un record che dice a launchd di avviare SS Server (e quindi SS Agent) ogni volta che qualcuno si connette alla porta 5900. Il server si trova in /System/Library/CoreServices/RemoteManagement/screensharingd.bundle , l'agente è in /System/Library/CoreServices/RemoteManagement/ScreensharingAgent.bundle.

Il Server SS è la parte principale del servizio SS. Esegue l'interazione di rete, implementa protocolli utilizzati, esegue codifica di immagini, autenticazione e così via. A sua volta, Agente SS impersona l'utente corrente e gestisce cose come fornire l'immagine dello schermo utente, "premere" i tasti, "spostare" il mouse.

(AFAIR, questa separazione è iniziata con Mac OS X 10.7. Precedentemente il servizio era monolitico, era denominato AppleVNCServer ed è sempre stato eseguito mentre l'opzione "Condivisione schermo" in Preferenze di sistema era attiva).

Il servizio SS può anche avviare i seguenti helper in base alle esigenze:

  • SSPasteboardHelper (che si trova nel bundle di SS Agent) - incolla i dati del cartoncino nel pannello di lavoro del sistema quando arriva dal client,
  • SSAssistanceCursor - è apparso solo di recente, mi chiedo a cosa serve,
  • SSFileCopyReceiver / SSFileCopySender (nel pacchetto Server SS) - viene utilizzato per la trasmissione / ricezione di file.

Come per i protocolli, SS Service utilizza lo stesso protocollo RFB di tutti i client VNC, ma con alcune estensioni specifiche. Il server segnala che supporta la versione 3.889 del protocollo (la maggior parte degli altri server riporta le versioni dalla 3.3 alla 3.8). Supporta anche i codec più comuni - raw, ZLib, ZRLE - e quelli personalizzati di Apple (ZLib in bianco e nero e in scala di grigi, e codec "adattivo" che utilizza un algoritmo di compressione simile a JPEG). Inoltre ci sono molte estensioni di protocollo specifiche di Apple, che implementano il drag-and-drop, la trasmissione di file, la sincronizzazione automatica del cartone, la trasmissione di eventi gestuali e così via.

Questa è una spiegazione molto generica, ma se fai una domanda più specifica, sarò lieto di aiutarti.

    
risposta data 17.01.2014 - 12:31
fonte

Leggi altre domande sui tag