2010-01-22 10 views
6

Ho cercato con attenzione ma ho ancora confuso perché POSIX è chiamato "Portable Operating System Interface", quello che ho imparato è che si tratta di una libreria di thread per l'ambiente Unix, perché quando devi usarlo sotto windows devi usare cygwin o " Windows Services of Unix ", ecc. Ecco perché sono confuso perché si chiama Portable OSIX. Sono un programmatore C/C++ professionale nel dominio Windows ma nuovo in Unix/Linux. Grazie per le tue risposte in anticipo.Perché POSIX è chiamato "Portable Operating System Interface"?

+3

Posix è MOLTO più di pthreads ... Inizia qui: http://en.wikipedia.org/wiki/POSIX (mi dispiace, non ho tempo di scrivere una risposta migliore ora) – Fredrik

+7

Il primo errore che hai fatto presumeva che Windows fosse "portatile". Non lo è. Quasi tutto ciò che è in uso ora * tranne * windows è POSIX. – Ether

risposta

13

Prima di Posix, il stava diventando molto vario e incompatibile. Un programma scritto per un Unix non era compatibile con un Unix diverso senza un significativo sforzo di porting.

Posix è stato uno dei tentativi di presentare un insieme comune di utilità e interfacce di programmazione in modo che il software potesse essere trasferito su più versioni di Unix.

Poiché Posix riguarda l'interfaccia e non il sistema operativo effettivo, è possibile avere una facciata Posix su un sistema operativo non Unix (ad esempio il Microsoft Windows Services for Unix che presenta una facciata Posix su Windows).

+0

Oh questo significa che POSIX è solo portabile a varie versioni su UNIX, ho pensato che fosse eterogeneo.Ho installato fedoraCore10 mi può dare un punto di partenza su come iniziare a programmare con pThreads in fedoraCore10. Grazie. – MahSan

+3

Posix potrebbe anche essere eseguito su sistemi operativi non Unix (come Windows). Ho aggiunto un nuovo paragrafo alla mia risposta per spiegarlo di più. –

+0

Grazie mille per l'interesse e le gentili risposte, il link che hai fornito è davvero utile. grazie ancora – MahSan

9

Che uno o due ritardatari abbiano deciso di non farne parte del loro nucleo non lo rende meno portabile a quasi tutti gli altri sistemi operativi importanti.

+0

Puoi gentilmente definire la tua opinione/risposta, non sono abbastanza bravo in inglese per capire questo grazie. – MahSan

+1

La maggior parte dei sistemi operativi * fa * segue POSIX in una certa misura. Solo alcuni hanno deciso di non farlo. –

+3

+1 per bigottismo della piattaforma. divertentissimo platform bigottismo. – asveikau

4

POSIX è semplicemente un'interfaccia per sistemi operativi che definisce concetti come thread, processi, segnali, pipe e I/O. Questa non è l'unica interfaccia portatile su più interfacce, ma è semplicemente uno standard. Il nome è stato effettivamente definito da Richard Stallman negli anni '80.

Il motivo per la definizione di POSIX era che molte versioni diverse di UNIX erano incompatibili, poiché i sistemi operativi non avevano concordato l'implementazione di thread o processi.

Qui ci sono alcuni più collegamenti per ulteriori ricerche:

+1

Il collegamento RMS è ben documentato. Ciò che non ho mai potuto confermare, però, è se fosse inteso come uno scherzo (il comitato stava creando un P.o.S.) oppure no. Nessuno vuole dirlo ... –

+0

Il primo link è morto – Shahbaz

3

POSIX definisce un insieme di funzioni portatili C, le coperture, i programmi che rendono la vita di un programmatore più facile poiché date le definizioni in POSIX, è molto più facile scrivere codice portatile (non solo C, ma anche script di shell). Immagina se ognuno avesse il proprio modo di fare le cose!

Non tutti i sistemi operativi sono conformi a POSIX, quindi se si deve sviluppare anche per quelli, è necessario fare cose specifiche del sistema. Ma POSIX è probabilmente lo standard portatile su diversi tipi di sistemi oggi. Certo, c'è ISO C, che è più portabile, ma poi è difficile scrivere programmi molto utili solo in ISO C!

Problemi correlati