Standard POSIX

Standard POSIX

POSIX: Przegląd

Przenośny interfejs systemu operacyjnego (POSIX) to standard IEEE, który pomaga kompatybilności i przenośność między systemami operacyjnymi. Teoretycznie kod źródłowy zgodny z POSIX powinien być płynnie przenośny. W prawdziwym świecie przejście aplikacji często przechodzi w problemy związane z systemem. Ale zgodność z POSIX ułatwia zastosowanie aplikacji, które mogą powodować oszczędności czasu. Dlatego programiści powinni zapoznać się z podstawami tego powszechnie stosowanego standardu.

Historia POSIX

Pierwsi programiści musieli przepisać swoje aplikacje od zera dla każdego nowego modelu komputerowego. Ale system IBM/360 to zmienił. W 1964 roku wprowadził system operacyjny OS/360. IBM zaczął używać tej samej architektury sprzętowej, aby włączyć nowe modele do ponownego wykorzystania tego samego systemu operacyjnego. Obecność wspólnego systemu operacyjnego na wielu maszynach ustawił pierwszy etap przenośności aplikacji.

Pod koniec lat 60. przybycie Unixa otworzyło nowe możliwości. Bell Labs AT&T był odpowiedzialny za początkowy rozwój tego nowego systemu operacyjnego. Może spotykać się z maszynami od wielu dostawców. Ale UNIX zaczął rozwidlać się w różne smaki. Oprócz systemu V AT&T istniała dystrybucja oprogramowania Berkeley (BSD), Xenix i nie tylko. Przenanie tych smaków nie było łatwe. Obietnica przenośności aplikacji uderzyła w uderzenie drogowe. W nadchodzących dziesięcioleciach wprowadzenie nowych systemów operacyjnych uczyniłoby to tylko złożone dla aplikacji portowych w całym sprzęcie, systemach operacyjnych i dostawców.

Standard POSIX został opracowany w latach 80. w celu rozwiązania problemu przenośności. Standard zdefiniowano na podstawie systemu V i BSD UNIX. POSIX nie definiuje systemu operacyjnego, określa tylko interfejs między aplikacją a systemem operacyjnym. Programiści mają swobodę pisania swojego systemu operacyjnego i aplikacji, o ile chcą, dopóki interfejs między nimi jest uhonorowany. Ponieważ POSIX jest niezależny od sprzętu, systemu operacyjnego lub dostawcy, łatwiej jest osiągnąć przenośność aplikacji.

Pierwszy standard POSIX został wydany w 1988 roku. Formalnie nazywało się to IEEE Standard 1003.1-1988 Przenośny interfejs systemu operacyjnego dla środowisk komputerowych ”. W 1990 r. Wydano międzynarodową wersję tego samego standardu z niewielkimi wariantami, jak ISO/IEC 9945-1: 1990 Technologia informacyjna - przenośny interfejs systemu operacyjnego (POSIX) - Część 1: Interfejs aplikacji systemowej (API).

Początkowo POSIX został podzielony na wiele standardów:

POSIX.1: Podstawowe usługi
POSIX.1B: Rozszerzenia w czasie rzeczywistym
POSIX.1C: Rozszerzenia wątków
POSIX.2: Shell i narzędzia

Po 1997 r. Grupa Austin przyniosła cały standard pod jednym parasolem. Od tego czasu wersje POSIX.1-2001 (znany również jako IEEE STD 1003.1-2001), POSIX.1-2004 (znany również jako IEEE STD 1003.1-2004) i POSIX.1-2008 (znany również jako IEEE STD 1003.1-2008) zostały wydane.

Przykładami niektórych systemów zgodnych z POSIX są AIX, HP-UX, Solaris i MacOS (od 10.5 Lampart). Z drugiej strony, Android, FreeBSD, Linux, OpenBSD, VMware itp., Postępuj zgodnie z większością standardów POSIX, ale nie są one certyfikowane.

Podstawy POSIX

POSIX.1-2008 Standardowe dotyczy czterech głównych obszarów:

  1. Objętość definicji podstawowej: Ogólne warunki, pojęcia i interfejsy.
  2. Interfejsy systemów głośność: Definicje funkcji usługi systemowej i podprogramów. Obejmuje również przenośność, obsługę błędów i odzyskiwanie błędów.
  3. Tom powłożenie i narzędzia: Definicja interfejsów dowolnej aplikacji do poleceń powłok i wspólnych programów użytkowych.
  4. Tom uzasadnienia: Zawiera informacje i historię o dodanych lub odrzuconych cechach oraz rozumach decyzji.

Standard nie obejmuje interfejsów graficznych, interfejsów bazy danych, przenoszenia obiektów/kodu binarnego, konfiguracji systemu, rozważań we/wy ani dostępności zasobów.

Niektóre z zasad przewodniczych stojących za projektem POSIX to:

  • POSIX jest tworzony, aby ułatwić przenośność aplikacji. Więc nie dotyczy tylko systemów Unix. Systemy niezwiązane z Unix również mogą być zgodne z POSIX.
  • Standard nie dyktuje opracowania aplikacji lub systemu operacyjnego. Definiuje tylko umowę między nimi.
  • Kod źródłowy aplikacji zgodny z POSIX powinien być w stanie przetrwać wiele systemów, ponieważ standard jest zdefiniowany na poziomie kodu źródłowego. Jednak standard nie gwarantuje żadnej przenośności obiektu lub kodu binarnego. Więc binarne wykonywalne może nie działać nawet na podobnych maszynach z identycznymi sprzętem i systemami operacyjnymi. Tylko przenośność kodu źródłowego jest adresowana w standardzie.
  • POSIX jest napisany pod względem standardu C. Ale programiści mogą to wdrożyć w dowolnym języku, który lubią.
  • Standard dotyczy tylko aspektów systemu operacyjnego, który oddziałuje z aplikacjami.
  • Standard jest zwięzrowany pod względem długości i szerokiej pod względem zakresu, aby pokryć dużą gamę systemów.
  • POSIX został zaprojektowany w celu uproszczenia przenośności. Więc na dłuższą metę zaoszczędzi czas i pieniądze. Jeśli jednak Twoje aplikacje nie są zgodne z POSIX, może to wymagać znacznej inwestycji czasu i zasobów na początku.

Opracowanie aplikacji POSIX

Celem POSIX była poprawa przenośności. Gdy kod źródłowy podąża za standardem, możesz łatwo skompilować i uruchomić kod na innym komputerze. Jeśli jednak POSIX jest zdefiniowany jako ogólny wymóg aplikacji, może to powodować zamieszanie. Pełny standard POSIX to 4000 stron z ponad 1350 interfejsami. Wdrożenie wszystkiego nie ma sensu. Dlatego każdy projekt powinien zdefiniować aspekty POSIX, które spełnią określone wymagania.

W społeczności rozwoju istnieją nieporozumienia, że ​​Posx Standard jest stary i nieistotny. To nie prawda. POSIX to żywy dokument, który jest regularnie aktualizowany przez Austin Group. Każdy może dołączyć do grupy i wziąć udział w poprawie standardu. Standard jest stosowany aktywnie na dzisiejszych serwerach, stacjach roboczych, routerach, urządzeniach mobilnych, systemach wbudowanych i innych. Jest używany do maszyn Unix i Linux.

Jednak programiści powinni zdawać sobie sprawę, że Posx Standard ma problemy. Możesz zgłosić dowolny błąd odkryty do grupy Austin i będzie on sprawdzony w celu uzyskania następnej wersji.

Wniosek
Pox może na początku wydawać się zniechęcające. Mimo to programiści powinni zapoznać się z podstawami, ponieważ od czasu do czasu pojawią się to jako wymóg. Ze względu na duży zakres standardu nie można zostać ekspertem od pełnego dokumentu. Deweloperzy mogą dotrzeć do społeczności Unix i Linux, aby dowiedzieć się więcej. Społeczności mogą odpowiedzieć na twoje pytania i lepiej poczuć, jaka część standardu będzie istotna dla Twojego projektu.

Dalsze badanie:

  • Posx pełny dokument
  • Posx FAQ
  • Austin Common Standards Revision Group

Bibliografia:

  • POSIX FAQ, Austin Group
  • Austin Group
  • Dokument 7542098/
  • POSIX i UNIX System Services Concepts
  • OpenGroup Doc 9699919799
  • Co to jest POSIX?, Uniwersytet Indiana
  • Standardy Docs @ Open-Std.org
  • Bill Gallmeister, Posx Programming Guide
  • Przewodnik po programach POSIX, Donald Lewine
  • Stackoverflow Co to jest POSIX
  • Historia Uniux, Darwinsys.com
  • Austin Open Group, Posx Paper
  • Wikipedia POSIX