7 Dicembre 2022

Che cos’è lo standard POSIX ?

Lo standard POSIX sta per Portable Operating System Interface ed è molto utile per la portabilità

Cos’è POSIX (Portable Operating System Interface)?

POSIX (Portable Operating System Interface) è un insieme di interfacce standard del sistema operativo basate sul sistema operativo Unix . Le specifiche POSIX più recenti – IEEE Std 1003.1-2017 – definiscono un’interfaccia e un ambiente standard che possono essere utilizzati da un sistema operativo ( OS ) per fornire l’accesso alle applicazioni conformi a POSIX. Lo standard definisce anche un interprete di comandi ( shell ) e programmi di utilità comuni. POSIX supporta la portabilità delle applicazioni a livello di codice sorgente in modo che le applicazioni possano essere create per essere eseguite su qualsiasi sistema operativo conforme a POSIX.

Una breve storia dello standard POSIX

Le interfacce POSIX sono state originariamente sviluppate sotto gli auspici di IEEE . Tuttavia, lo standard POSIX è ora in fase di sviluppo e manutenzione da parte dell’Austin Common Standards Revision Group, comunemente indicato come Austin Group .

L’Austin Group è un gruppo di lavoro congiunto composto da membri dell’IEEE, dell’Open Group e del Joint Technical Committee 1 dell’International Organization for Standardization ( ISO ) e della International Electrotechnical Commission (IEC). IEEE possiede il marchio POSIX. L’Open Group, proprietario del marchio Unix, è un consorzio globale che sviluppa standard tecnologici.

POSIX è nato dall’esigenza di rendere le applicazioni più portabili su diversi sistemi. Agli albori dell’informatica, i programmatori dovevano riscrivere le proprie applicazioni per ogni modello di computer e sistema operativo. La situazione iniziò a cambiare quando IBM introdusse la sua linea di computer System/360, che potevano eseguire tutti lo stesso sistema operativo, OS/360. Con questi nuovi sistemi, le applicazioni potrebbero essere rese più portatili, risparmiando enormi quantità di tempo di sviluppo.

Quando UNIX è nato, più o meno nello stesso periodo, si è anche mostrato promettente in quanto poteva funzionare su macchine di diversi produttori. Tuttavia, quando UNIX ha iniziato a creare versioni diverse, il porting del codice attraverso queste varianti UNIX è diventato difficile. La promessa della portabilità UNIX stava perdendo terreno.

Per risolvere questo problema di portabilità, POSIX è stata costituita negli anni ’80. Lo standard è stato definito sulla base di System V UNIX e BSD UNIX di AT&T, le due maggiori varianti all’epoca. È importante notare che POSIX non è stato formato per controllare il modo in cui i sistemi operativi sono stati costruiti: qualsiasi azienda era libera di progettare la propria variante UNIX come preferiva. POSIX si occupava solo di come un’applicazione si interfaccia con il sistema operativo. Nel linguaggio dei programmatori, un’interfaccia è il metodo con cui il codice di un programma può comunicare con un altro programma. L’interfaccia si aspetta che il Programma A fornisca un tipo specifico di informazioni al Programma B. Allo stesso modo, il Programma A si aspetta che il Programma B risponda con un tipo specifico di dati.

 

AT&T UNIX

Cos’è lo standard POSIX?

In una parola: portabilità.

Oltre 60 anni fa, i programmatori dovevano riscrivere completamente il codice se volevano che il loro software funzionasse su più di un sistema. Ciò non accadeva molto spesso a causa delle spese necessarie, ma la portabilità divenne una caratteristica a metà degli anni ’60, non tramite POSIX, ma nell’arena dei mainframe.

Nel corso degli anni, le specifiche POSIX hanno continuato a essere riviste e riorganizzate. Un tempo, ogni standard era chiamato informalmente POSIX, seguito da un decimale e quindi dal numero dello standard. Ad esempio, POSIX.1 era lo standard per un’interfaccia di programmazione dell’applicazione nel linguaggio C e POSIX.2 era la shell standard e l’interfaccia di utilità per il sistema operativo. Questi standard sono stati ufficialmente denominati rispettivamente IEEE Std 1003.1 e IEEE Std 1003.2.

Ci sono stati anche emendamenti allo standard di base, come IEEE Std 1003.1b-1993, che si occupava di estensioni in tempo reale. Tuttavia, tutte le varie specifiche sono state riunite in un unico standard, IEEE Std 1003.1 , che è stato aggiornato l’ultima volta nel 2017 e pubblicato nel 2018. Ufficialmente, si chiama IEEE Std 1003.1-2017. Tuttavia, viene anche indicato come POSIX.1-2017 o, più informalmente, POSIX.1.

Lo standard POSIX ha anche altri nomi. The Open Group lo chiama The Open Group Base Specifications Issue 7, 2018 edition, e ISO/IEC lo chiama ISO/IEC 9945:2009. ISO/IEC ha adottato lo standard nel 2009 e ha aggiunto il Technical Corrigendum 1 alla fine del 2012 e il Technical Corrigendum 2 a marzo 2017, mettendolo alla pari con IEEE Std 1003.1-2017.

Le specifiche POSIX.1-2017 definiscono i servizi fondamentali necessari per creare applicazioni conformi a POSIX. Stabiliscono una semantica e una sintassi standard per aiutare gli sviluppatori a scrivere applicazioni portatili. POSIX.1 è composto dai seguenti quattro volumi:

  1. Definizioni di base. Fornisce definizioni comuni per le specifiche, incluse informazioni su termini, concetti, sintassi, funzioni di servizio e riga di comando
  2. Interfacce di sistema. Fornisce dettagli su termini e concetti relativi all’interfaccia e definisce le interfacce funzionali disponibili per le applicazioni che accedono a sistemi conformi a POSIX.
  3. Shell e utilità. Descrive i comandi e le utilità disponibili per le applicazioni che accedono a sistemi conformi a POSIX, incluso il linguaggio di comando utilizzato in tali sistemi.
  4. Fondamento logico. Include informazioni storiche sui contenuti dello standard e sul motivo per cui alcune funzionalità sono state aggiunte o rimosse.

POSIX.1 adotta un approccio “scrivi una volta, adotta ovunque” alle specifiche fornendo una serie di servizi fondamentali necessari per creare applicazioni in modo efficiente. Lo standard enfatizza le strutture e le caratteristiche che sono importanti per lo sviluppo delle applicazioni, piuttosto che concentrarsi sulle tecniche necessarie per raggiungere queste capacità. Lo standard POSIX è pensato per essere utilizzato sia dagli integratori di sistema, che dai sistemisti che dagli sviluppatori di applicazioni.

In conclusione

Lo standard POSIX consente agli sviluppatori di creare applicazioni, strumenti e piattaforme su molti sistemi operativi utilizzando gran parte dello stesso codice. Non è affatto un requisito scrivere codice secondo lo standard, ma aiuta, in grande stile, quando vuoi portare il tuo codice su altri sistemi.

Fondamentalmente, POSIX è orientato ai progettisti di sistemi operativi e agli sviluppatori di software, ma come utenti di un sistema, siamo influenzati da POSIX, che ce ne rendiamo conto o meno. È grazie allo standard che siamo in grado di lavorare su un sistema UNIX o Linux e portare quel lavoro su un altro sistema e lavorarci sopra senza intoppi. Come utenti, otteniamo numerosi vantaggi in termini di usabilità e riutilizzo dei dati tra i sistemi.

 

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Facebook, Inc. detiene i diritti su Facebook®; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Questo sito non è affiliato, sponsorizzato, o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello Europeo da MANAGED SERVER SRL Via Enzo Ferrari, 9 62012 Civitanova Marche (MC) Italia.

Torna in alto