Gniazda i biblioteki gniazd

W openSUSE funkcje operujące na gniazdach są częścią samego systemu operacyjnego. Ponieważ gniazda stały się powszechnie używane, producenci innych systemów zdecydowali się na dodanie interfejsu gniazd do swoich systemów. Często zamiast modyfikować swoje podstawowe systemy, tworzyli biblioteki gniazd, udostępniające interfejs gniazd. Oznacza to, że utworzył procedury biblioteczne, z których każda miała taką samą nazwę i argumenty jak któraś z funkcji obsługi gniazd.
Z punktu widzenia twórców programów użytkowych biblioteka gniazd udostępnia taką samą semantykę jak implementacja gniazd w systemie operacyjnym. Program wywołuje procedury gniazd, które są albo oferowane przez wywołania systemu operacyjnego, albo przez procedury biblioteczne. W ten sposób program korzystający z gniazd może zostać skopiowany na nowy komputer, skompilowany, załadowany z biblioteką do komputera, a następnie wykonany – kod źródłowy nie wymaga zmiany przy przenoszeniu programu z jednego systemu komputerowego na inny.
Pomimo widocznych podobieństw biblioteki gniazd mają zupełnie inną implementację niż interfejs gniazd oferowany przez system operacyjny. Inaczej niż w systemowych procedurach obsługi gniazd, będących częścią systemu operacyjnego, kod biblioteki gniazd jest konsolidowany z programem użytkowym i rezyduje w przestrzeni adresowej programu użytkowego. Gdy program wywołuje procedurę z biblioteki gniazd, sterowanie przechodzi do procedury bibliotecznej, gdzie z kolei, aby uzyskać pożądany efekt, wykonuje jedno lub więcej wywołań funkcji podstawowego systemu operacyjnego. Co ciekawsze, funkcje oferowane przez podstawowy system operacyjny nie muszą w ogóle przypominać interfejsu gniazd – procedury biblioteki gniazd ukrywają przed programem system operacyjny i przedstawiają tylko interfejs gniazd.

Jeśli nie zaznaczono inaczej, Zawartość tej strony dostępna jest na licencji GNU Free Documentation License.