Qual è l'equivalente di OS X dell'NSS di Linux?

3

Chiunque abbia familiarità con la parte interna di Linux sa NSS ; è il sottosistema che i servizi, come gethostname() e simili, delegano a. Il codice che rende effettivamente le query DNS o legge /etc/passwd , ecc. È sotto forma di moduli NSS. Inoltre, moduli aggiuntivi NSS possono essere compilati e collegati, consentendo agli sviluppatori di fornire modi diversi per cercare host, utenti, ecc.

Sto cercando di trovare il sottosistema equivalente in OS X, ma sembra essere qualcosa che è cambiato frequentemente nel corso degli anni. Apparentemente è stato utilizzato un vecchio sistema chiamato NetInfo sin dai giorni NeXtStep, ma non lo era da 10.4. Apparentemente questo è stato sostituito da qualcosa chiamato lookupd, ma non penso che sia presente nemmeno in Lion, dal momento che non c'è nessun processo di ricerca in esecuzione sul mio sistema, e man lookupd reindirizza a dscacheutil .

Qual è il sistema attuale utilizzato da Lion per delegare questo tipo di ricerche? Apple fornisce documentazione per scrivere nuovi plugin per qualunque sottosistema, per consentire a diversi backend di fornire questi servizi?

Un altro modo di pensare a questa domanda è : quale sottosistema in OSX è responsabile della lettura di /etc/hosts e della risoluzione delle ricerche in base al suo contenuto?

    
posta Adrian Petrescu 10.12.2011 - 22:43
fonte

1 risposta

4

Non ho molta familiarità con Linux, ma sembra che tu stia cercando Apri directory . Avvertenza: Apple utilizza questo termine per riferirsi a tutte le varie parti della loro architettura di servizi di directory, quindi se google "Open Directory" troverai sia il server di directory basato su LDAP di Apple, sia il demone che gira su OS X e la funzione che stai cercando.

Vorrei provare a darti una panoramica storica del suo sviluppo (e spero di ricordare quali cambiamenti sono avvenuti in quale versione):

NextSTEP (il sistema operativo su cui OS X era basato) aveva un demone chiamato lookupd che, a quanto ho capito, era molto simile a NSS. La maggior parte dei dati effettivi è stata archiviata nei database NetInfo (che possono essere sia locali sul computer, sia accessibili da un server in rete).

Le prime versioni di OS X aggiungevano un altro deamon, chiamato DirectoryService, che faceva cose simili (ma in modo leggermente diverso); dal momento che non faceva tutto ciò che cercava, qualsiasi query alla quale non riusciva a trovare una risposta sarebbe stata passata a cercare. Risultato: una certa quantità di ridondanza e confusione. IIRC, c'erano in realtà alcune query che sono state inizialmente indirizzate a lookupd e che potrebbero doverle distribuire a DirectoryService. C'erano anche due diversi set di plug-in (equivalenti ai moduli NSS): quelli per DirectoryService e quelli per lookupd. Utenti locali e amp; i gruppi erano ancora archiviati in NetInfo, ma era deprecato per gli account di rete a favore di LDAP.

Non ricordo più i dettagli, ma le responsabilità delle versioni sono gradualmente passate da lookupd a DirectoryService.

In 10.5, NetInfo è stato rimosso; utenti locali, gruppi, ecc. sono stati archiviati in file lista proprietà XML sotto / var / db / dslocal /. Il plug-in (scusami, sono chiamati "connettori" ora) per accedervi ha il nome non-generico "Local" (a volte viene chiamato "dslocal" per disambigerlo un po '). A questo punto, l'unica cosa che è ancora responsabile per le ricerche DNS (sebbene maneggi le ricerche multicast su mDNSResponder).

In 10.6, lookupd è stato rimosso; mDNSResponder ora gestisce tutte le ricerche DNS, sia standard (unicast) che multicast.

In 10.7, il daemon Open Directory è stato rinominato da DirectoryService a opendirectoryd.

    
risposta data 11.12.2011 - 07:52
fonte

Leggi altre domande sui tag