Name Service Switch

**Name Service Switch** (**NSS**) տարբեր Unix-like օպերացիոն համակարգերի ստանդարտ C գրադարանում հանդիպող գործառույթ, համակարգիչը կապում է ընդհանուր կոնֆիգուրացիայի տվյալների բազաների և անունների լուծման մեխանիզմների բազմազան աղբյուրների հետ։ Այս աղբյուրները ներառում են տեղական օպերացիոն համակարգի ֆայլեր (օրինակ՝ , , և ), դոմենային անունների համակարգը (DNS), ցանցային տեղեկատվական ծառայությունը (NIS, NIS+) և LDAP-ը։

## nsswitch.conf
Համակարգի ադմինիստրատորը սովորաբար կարգավորել է օպերացիոն համակարգի անվանման ծառայությունները /etc/nsswitch.conf ֆայլի միջոցով: Այս ֆայլը թվարկել է տվյալների բազաները (օրինակ՝ passwd, shadow և group) և մեկ կամ մի քանի աղբյուրներ՝ այդ տեղեկատվությունը ստանալու համար: Աղբյուրների օրինակներ են՝ local ֆայլերի ֆայլերը, ldap-ը՝ Lightweight Directory Access Protocol-ի համար, nis-ը՝ Network Information Service-ի համար, nisplus-ը՝ NIS+-ի համար, dns-ը՝ Domain Name System (DNS)-ի համար և wins-ը՝ Windows Internet Name Service-ի համար:

nsswitch.conf ֆայլը յուրաքանչյուր ծառայության համար ունի տողային գրառումներ, որոնք բաղկացած են առաջին դաշտում տվյալների բազայի անունից, որն ավարտվում է երկու կետով, և երկրորդ դաշտում հնարավոր աղբյուրային տվյալների բազաների ցանկից։ 

Տիպիկ ֆայլը կարող է այսպիսի տեսք ունենալ՝
```
passwd:     files ldap
shadow:     files
group:      files ldap

hosts:      dns nis files

ethers:     files nis
netmasks:   files nis
networks:   files nis
protocols:  files nis
rpc:        files nis
services:   files nis

automount:  files
aliases:    files
```


Աղբյուրի տվյալների բազաների հերթականությունը որոշում է այն հերթականությունը, որով NSS-ը կփորձի որոնել այդ աղբյուրները՝ նշված ծառայության հարցումները լուծելու համար: Յուրաքանչյուր աղբյուրի անվանումից հետո կարող է նշվել չափանիշների փակագծերում ներառված ցանկ՝ կարգավորելու այն պայմանները, որոնց դեպքում NSS-ը կշարունակի հարցում ուղարկել հաջորդ աղբյուրին՝ հիմնվելով նախորդ աղբյուրի պատասխանի վրա:

## Պատմություն
Ավելի վաղ Unix-like համակարգերը կամ մուտք էին գործում միայն տեղական ֆայլերին, կամ ունեին կոդավորված կանոններ ֆայլերին կամ ցանցում պահվող տվյալների բազաներին մուտք գործելու համար: Ultrix-ը նշանակալի բացառություն էր /etc/svc.conf ֆայլում գտնվող NSS կոնֆիգուրացիայի ֆայլի գրեթե նույնական ֆունկցիոնալությամբ:

Sun Microsystems-ը առաջին անգամ NSS-ը մշակել է իրենց Solaris օպերացիոն համակարգի համար։

Solaris-ի SVR4-ի հետ համապատասխանությունը, որը Sun Microsystems-ը և AT&T Unix System Laboratories-ը համատեղ մշակել են UNIX System V-ի, BSD-ի և Xenix-ի միաձուլման միջոցով, պահանջել էր, որ երրորդ կողմերը կարողանան իրենց ընտրած տրանսպորտային շերտի (OSI կամ IP) համար տեղադրել անվանակարգերի ծառայությունների իրականացումներ՝ առանց SVR4-ին համապատասխանող Transport-Independent RPC (TI-RPC) հավելվածները վերաշարադրելու կամ օպերացիոն համակարգը վերակառուցելու: Sun-ը Solaris-ում ներկայացրել է NIS+ տեղեկատու ծառայությունը՝ NIS-ը փոխարինելու համար, որը պահանջում էր երկու տեղեկատու ծառայությունների համակեցություն ձեռնարկությունում՝ միգրացիան հեշտացնելու համար: 

Sun-ի ինժեներներ Թոմաս Մասլենը և Սանջայ Դանին առաջինն էին, որ նախագծել և իրականացրել են Name Service Switch-ը։ Նրանք բավարարել են Solaris-ի պահանջները՝ nsswitch.conf ֆայլի սպեցիֆիկացիայի և տվյալների բազայի մուտքի մոդուլները դինամիկ բեռնված գրադարանների տեսքով բեռնելու իրականացման ընտրության միջոցով, որը Sun-ը նաև առաջինն է ներկայացրել։

Sun ինժեներների կազմաձևման ֆայլի և անվանումների ծառայությունների back-end գրադարանների կատարման ժամանակի բեռնման սկզբնական դիզայնը դիմացել է ժամանակի փորձությանը, քանի որ օպերացիոն համակարգերը զարգացել են և ներկայացվել են նոր անվանումների ծառայություններ: Տարիների ընթացքում ծրագրավորողները NSS կազմաձևման ֆայլը գրեթե նույնական իրականացումներով տեղափոխել են շատ այլ օպերացիոն համակարգեր, այդ թվում՝ FreeBSD, NetBSD, Linux, HP-UX, IRIX և AIX: NSS-ի հորինումից ավելի քան երկու տասնամյակ անց GNU libc-ն այն գրեթե նույնականորեն է իրականացրել:

## Տես Նաև

* BSD Authentication
* Group (database)
* Name server
* Pluggable Authentication Modules

## Ծանոթագրություններ

## Արտաքին հղումներ
* 
* Name Service Switch implementation in the GNU C Library 
* Another NSS module supporting LDAP: nss-ldapd
* NSS module supporting AFS: nss_afs
Կատեգորիա:Յունիքս
Կատեգորիա:UNIX ծրագրային ապահովում
Կատեգորիա:Վերին մակարդակի ընդհանուր դոմեններ