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"?
risposta
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).
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
Posix potrebbe anche essere eseguito su sistemi operativi non Unix (come Windows). Ho aggiunto un nuovo paragrafo alla mia risposta per spiegarlo di più. –
Grazie mille per l'interesse e le gentili risposte, il link che hai fornito è davvero utile. grazie ancora – MahSan
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.
Puoi gentilmente definire la tua opinione/risposta, non sono abbastanza bravo in inglese per capire questo grazie. – MahSan
La maggior parte dei sistemi operativi * fa * segue POSIX in una certa misura. Solo alcuni hanno deciso di non farlo. –
+1 per bigottismo della piattaforma. divertentissimo platform bigottismo. – asveikau
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:
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 ... –
Il primo link è morto – Shahbaz
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!
- 1. Perché $? sempre 0 dopo che system() viene chiamato?
- 2. Perché questo è chiamato polimorfismo?
- 3. Perché RAII è così chiamato?
- 4. L'uso pubblico di typedef portable è pubblico?
- 5. Perché c'è @interface sopra @implementation?
- 6. È compatibile con Android POSIX?
- 7. Portable Class Library Reflection
- 8. portable-executable for cmake
- 9. Perché .NET è stato chiamato .NET?
- 10. Perché un programma Arduino è chiamato schizzo?
- 11. Perché 'last' è chiamato 'last' in Perl?
- 12. Perché non è presentationController: viewControllerForAdaptivePresentationStyle: viene chiamato?
- 13. @PostPersist non chiamato ... @PrePersist è ... perché?
- 14. Perché ViewForAnnotation non è stato chiamato?
- 15. Perché viene chiamato $ HTTP_RAW_POST_DATA?
- 16. textViewDidEndEditing non è chiamato
- 17. C++ std :: system 'system' non è un membro di std
- 18. Perché non è admin.autodiscover() chiamato automaticamente in Django quando si utilizza l'amministratore, perché è stato progettato per essere chiamato esplicitamente?
- 19. Perché Windows.Forms in System e non Microsoft?
- 20. Qual è l'equivalente POSIX del Mutex di Win32?
- 21. Class Library vs (Portable) vs (Universal Windows) vs (Portable iOS, Android, Windows)
- 22. Segnali e segnali POSIX
- 23. Perché __PRETTY_FUNCTION__ ha chiamato __PRETTY_FUNCTION__?
- 24. Perché non viene chiamato -didDeselectRowAtIndexPath?
- 25. Perché GetVaryByCustomString non viene chiamato
- 26. Perché non viene chiamato onBackPressed()?
- 27. Cross-compilare Apache Portable Runtime per l'iPhone
- 28. perché textFieldDidEndEditing: non viene chiamato?
- 29. willTransitionToTraitCollection non viene chiamato, perché?
- 30. Perché PostConstruct non viene chiamato?
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
Il primo errore che hai fatto presumeva che Windows fosse "portatile". Non lo è. Quasi tutto ciò che è in uso ora * tranne * windows è POSIX. – Ether