Apa arti dari "POSIX"?

899

Apa itu POSIX? Saya telah membaca artikel Wikipedia dan saya membacanya setiap kali saya menemukan istilah itu. Faktanya adalah saya tidak pernah benar-benar mengerti apa itu.

Adakah yang bisa menjelaskannya kepada saya dengan menjelaskan "perlunya POSIX" juga?

cakar
sumber
10
unix.stackexchange.com/questions/11983/what-exactly-is-posix
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
referensi definisi cepat - whatis.techtarget.com/definition/…
parasrish

Jawaban:

622

POSIX adalah keluarga standar, yang ditentukan oleh IEEE , untuk mengklarifikasi dan membuat seragam antarmuka pemrograman aplikasi (dan masalah tambahan, seperti utilitas shell commandline) yang disediakan oleh sistem operasi Unix-y. Ketika Anda menulis program Anda untuk bergantung pada standar POSIX, Anda bisa yakin untuk dapat port mereka dengan mudah di antara keluarga besar turunan Unix (termasuk Linux, tetapi tidak terbatas pada itu!); jika dan ketika Anda menggunakan beberapa Linux API yang tidak terstandarisasi sebagai bagian dari Posix, Anda akan mengalami kesulitan jika dan ketika Anda ingin port program atau pustaka itu ke sistem Unix-y lain (misalnya, MacOSX) di masa depan.

Alex Martelli
sumber
34
Tidak, standarnya ada pada level API - setiap panggilan yang ditentukan dapat diimplementasikan di kernel, atau di pustaka C dalam hal panggilan lain, dan itu tidak masalah untuk Posix (dan untuk program Anda juga ;-). MacOSX kompatibel dengan Posix, lihat devworld.apple.com/leopard/overview/osfoundations.html . Untuk Windows, lihat en.wikipedia.org/wiki/POSIX#POSIX_for_Windows : Kepatuhan posix saat ini termasuk dalam edisi Enterprise dan Ultimate saja (bukan dalam yang lebih murah! -), meskipun Anda bisa mendapatkan partways dengan Cygwin, en.wikipedia. org / wiki / Cygwin .
Alex Martelli
23
Komentar Anda cacat, karena pangsa pasar Microsoft di desktop, setidaknya, menjadikannya "apa yang diikuti dunia".
Jed Smith
29
Saya pikir apa yang dimaksud dengan cakar adalah bahwa Microsoft tidak berupaya keras untuk bisa beroperasi dengan platform lain.
mipadi
12
@deltaray merangkul, memperluas, dan memadamkan . MS java (java.util non-standar. Java.security, java.io, java.lang, dan java.awt), Internet Explorer (hampir disebut 'exploder'), dan .NET (ya, saya tahu mereka telah merilis sebagian sumber untuk .NET, tapi lisensi itu terbatas dan BUKAN port linux. Mono belum lengkap). Juga, paten exFAT . Anda benar sekali.
Wyatt8740
25
Microsoft's market share on desktops, at least, makes it "what the world follows"- Menarik untuk dicatat berapa banyak hal telah berubah sejak komentar ini dari tahun 2009 :)
GMA
516

Hal terpenting yang didefinisikan POSIX 7

  1. API C

    Sangat memperluas ANSI C dengan hal-hal seperti:

    • operasi file lebih: mkdir, dirname, symlink, readlink, link(hardlinks), poll(), stat, sync,nftw()
    • memproses dan benang: fork, execl, wait, pipe, semaphors sem_*, memori bersama ( shm_*), kill, parameter penjadwalan ( nice, sched_*), sleep, mkfifo,setpgid()
    • jaringan: socket()
    • manajemen memori: mmap, mlock, mprotect, madvise,brk()
    • utilitas: ekspresi reguler ( reg*)

    API tersebut juga menentukan konsep sistem yang mendasari di mana mereka bergantung, misalnya forkmembutuhkan konsep proses.

    Banyak panggilan sistem Linux ada untuk menerapkan tertentu POSIX C fungsi API dan membuat Linux compliant, misalnya sys_write, sys_read... Banyak dari mereka syscalls juga memiliki ekstensi Linux-spesifik namun.

    Implementasi desktop utama Linux: glibc, yang dalam banyak kasus hanya menyediakan pembungkus dangkal untuk panggilan sistem.

  2. Utilitas CLI

    Misalnya: cd, ls, echo, ...

    Banyak utilitas adalah ujung depan shell langsung untuk fungsi API C yang sesuai, misalnya mkdir.

    Mayor Linux pelaksanaan desktop yang: GNU Coreutils untuk yang kecil, proyek GNU terpisah untuk orang-orang besar: sed, grep, awk, ... Beberapa utilitas CLI dilaksanakan oleh Bash sebagai built-in .

  3. Bahasa shell

    Misalnya, a=b; echo "$a"

    Implementasi desktop utama Linux: GNU Bash .

  4. Variabel lingkungan

    Misalnya: HOME, PATH.

    PATH semantik pencarian ditentukan , termasuk bagaimana garis miring mencegah PATHpencarian .

  5. Status keluar program

    ANSI C mengatakan 0atau EXIT_SUCCESSuntuk kesuksesan, EXIT_FAILUREuntuk kegagalan, dan membiarkan implementasi sisanya didefinisikan.

    POSIX menambahkan:

  6. Ekspresi reguler

    Ada dua jenis: BRE (Basic) dan ERE (Extended). Dasar sudah usang dan hanya disimpan agar tidak merusak API.

    Itu diimplementasikan oleh fungsi C API, dan digunakan di seluruh utilitas CLI, mis. grepMenerima BRE secara default, dan ERE dengan -E.

    Misalnya: echo 'a.1' | grep -E 'a.[[:digit:]]'

    Implementasi Linux utama: glibc mengimplementasikan fungsi-fungsi di bawah regex.h yang mana program suka grepgunakan sebagai backend.

  7. Struktur direktori

    Misalnya: /dev/null,/tmp

    Linux FHS sangat memperluas POSIX.

  8. Nama file

    • / adalah pemisah jalur
    • NUL tidak dapat digunakan
    • .adalah cwd, ..orang tua
    • nama file portabel
      • gunakan maksimal maksimal 14 karakter dan 256 untuk path lengkap
      • hanya dapat berisi: a-zA-Z0-9._-

    Lihat juga: apa kepatuhan posix untuk sistem file?

  9. Konvensi API utilitas baris perintah

    Tidak wajib, digunakan oleh POSIX, tetapi hampir tidak ada di tempat lain, terutama di GNU. Tapi benar, itu terlalu ketat, misalnya hanya bendera huruf tunggal (mis. -a), Tidak ada versi panjang tanda hubung ganda (mis --all.).

    Beberapa konvensi yang banyak digunakan:

    • - berarti stdin tempat file diharapkan
    • --mengakhiri flags, misalnya ls -- -luntuk daftar direktori bernama-l

    Lihat juga: Apakah ada standar untuk saklar dan argumen baris perintah Linux?

  10. "POSIX ACLs" (Daftar Kontrol Akses), misalnya seperti yang digunakan sebagai backend untuk setfacl.

    Ini telah ditarik tetapi diimplementasikan di beberapa OS, termasuk di Linux dengan Linuxsetxattr .

Siapa yang sesuai dengan POSIX?

Banyak sistem mengikuti POSIX dengan seksama, tetapi hanya sedikit yang benar-benar disertifikasi oleh Grup Terbuka yang mempertahankan standar. Yang tersertifikasi termasuk:

  • OS X (Apple) X adalah singkatan dari 10 dan UNIX. Apakah sistem Apple POSIX pertama, dirilis sekitar tahun 2001. Lihat juga: Apakah OSX OS POSIX?
  • AIX (IBM)
  • HP-UX (HP)
  • Solaris (Oracle)

Kebanyakan distro Linux sangat patuh, tetapi tidak bersertifikat karena mereka tidak ingin membayar cek kepatuhan. K-UX Inspur dan Huawei EulerOS adalah dua contoh yang disertifikasi.

Daftar resmi sistem bersertifikat dapat ditemukan di: https://www.opengroup.org/openbrand/register/ dan juga di halaman wiki .

Windows

Windows menerapkan POSIX pada beberapa distribusi profesionalnya.

Karena ini adalah fitur opsional, pemrogram tidak dapat mengandalkannya untuk sebagian besar aplikasi pengguna akhir.

Dukungan sudah tidak digunakan lagi di Windows 8:

Pada 2016 API mirip Linux resmi baru bernama "Windows Subsystem untuk Linux" diumumkan. Ini termasuk panggilan sistem Linux, ELF berjalan, bagian dari /procfilesystem, Bash, GCC, (TODO kemungkinan glibc?), apt-getDan banyak lagi: https://channel9.msdn.com/Events/Build/2016/P488 jadi saya percaya itu akan memungkinkan Windows untuk menjalankan banyak, jika tidak semua, POSIX. Namun, ini berfokus pada pengembang / penyebaran bukan pengguna akhir. Secara khusus, tidak ada rencana untuk mengizinkan akses ke GUI Windows.

Tinjauan historis kompatibilitas Microsoft POSIX resmi: http://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-posix-subsystem/

Cygwin adalah proyek pihak ketiga GPL yang terkenal untuk itu "menyediakan fungsionalitas POSIX API substansial" untuk Windows, tetapi mengharuskan Anda "membangun kembali aplikasi Anda dari sumber jika Anda ingin dijalankan pada Windows". MSYS2 adalah proyek terkait yang tampaknya menambahkan lebih banyak fungsi di atas Cygwin.

Android

Android memiliki perpustakaan C sendiri (Bionic) yang tidak sepenuhnya mendukung POSIX pada Android O: Apakah Android POSIX-kompatibel?

Tingkat bonus

The Linux Standard Base lebih lanjut memperluas POSIX.

Gunakan indeks non-frame, mereka jauh lebih mudah dibaca dan dicari: http://pubs.opengroup.org/onlinepubs/9699919799/nfindex.html

Dapatkan versi penuh zip dari halaman HTML untuk dipahami: Di manakah daftar fungsi API POSIX C?

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
sumber
18
Contoh-contoh yang fantastis, jika Anda memiliki definisi seperti halnya jawaban yang diterima, ini akan menjadi jawaban teratas.
Marc
8
@Marc terima kasih! Saya mencoba untuk tidak mengulangi apa yang dikatakan dalam jawaban lain karena orang mungkin sudah membaca itu dan untuk menghindari duplikasi ;-) Ini adalah dilema yang dikenal: meta.stackoverflow.com/questions/305645/…
Ciro Santilli 郝海东 冠状 病 六四事件 法轮功
1
Ide bagus untuk benar-benar menjelaskan apa yang mencakup POSIX (dan apa yang tidak).
sleske
4
Di mana-mana dalam literatur, referensi untuk "Kepatuhan POSIX" muncul, dan definisi khas orang POSIX temukan adalah "seperangkat standar untuk interoperabilitas di antara sistem operasi mirip Unix". Meskipun bermanfaat, definisi ini menyisakan banyak keraguan, khususnya mengenai fitur yang diharapkan untuk beroperasi. Tentu, Anda dapat pergi dan membaca seluruh spesifikasi POSIX untuk mempelajari detailnya (dan menghabiskan banyak waktu untuk itu). Tapi, jawaban ini memberikan ringkasan yang sangat dibutuhkan untuk mendapatkan gambaran besar tentang ruang lingkup POSIX. Terima kasih khusus kepada Ciro yang telah meluangkan waktu untuk menulisnya!
ARX
Mungkin juga baik untuk menambahkan beberapa jaminan Posix tentang tipe integer. Saya tidak tahu persis apa yang dan tidak ditentukan, tetapi saya tahu bahwa minimal Posix membutuhkan keberadaan uint8_t, uint16_t, uint32_t dan tipe bertanda tangan yang sesuai. Saya tidak yakin apakah itu menjamin bahwa jenis seperti "int" memiliki kekuatan dua ukuran dan bahwa suatu sistem tidak akan melakukan sesuatu yang jahat seperti memiliki "int" dengan 32 bit nilai, 1 bit tanda, dan 31 bit padding [jadi menambah uint32_t bisa menghasilkan UB]; jika Anda memiliki Standar praktis mungkin menyenangkan untuk mengatakan apa yang dijamin dan tidak dalam hal itu.
supercat
74

POSIX adalah:

POSIX (diucapkan / ˈpɒzɪks /) atau "Antarmuka Sistem Operasi Portabel [untuk Unix]" 1 adalah nama keluarga standar terkait yang ditentukan oleh IEEE untuk mendefinisikan antarmuka pemrograman aplikasi (API), bersama dengan antarmuka shell dan utilitas untuk perangkat lunak kompatibel dengan varian sistem operasi Unix, meskipun standar dapat berlaku untuk sistem operasi apa pun.

Pada dasarnya itu adalah serangkaian langkah-langkah untuk meringankan rasa sakit pengembangan dan penggunaan rasa UNIX yang berbeda dengan memiliki (kebanyakan) API dan utilitas umum. Kepatuhan POSIX terbatas juga diperluas ke berbagai versi Windows.

cletus
sumber
1. Maksud Anda POSIX mengatakan bahwa semua * nix OS (kernel) harus memiliki setidaknya set panggilan sistem ini. Baik? 2. Apakah WINDOWS / MAC mengikuti POSIX? Jika / Jika tidak, apakah WINDOWS (95,98.2000, xp, vista, 7) mengikuti beberapa standar umum (mungkin milik mereka sendiri) standar? Dengan kata lain, POSIX di Microsoft world ==?
cakar
1
Pada dasarnya itu "adalah" serangkaian tindakan untuk meringankan rasa sakit pembangunan. DULU??
cakar
5
Saya mempertanyakan penggunaan kata itu juga, tapi itu bisa diperdebatkan. Untuk menjawab pertanyaan Anda: (1) tidak, POSIX benar-benar nihil berkaitan dengan kernel, itu hanya menjelaskan bagaimana seharusnya beroperasi; (2) OS X adalah BSD dan cukup POSIX-compliant, tetapi ada area abu-abu. Windows 2008 paling dekat dengan keluhan POSIX; tidak ada yang setara dengan POSIX di dunia Microsoft.
Jed Smith
1
@ claws: Jangan bermaksud mengotori area di bawah jawaban cletus ... tapi. Saya menautkan POSIX.1-2008 dalam jawaban saya ... di sana.
Jed Smith
3
@ Jed Smith, tidak ada area abu-abu dalam hal kepatuhan Mac OS X; Mac OS X disertifikasi sesuai dengan Single UNIX Specification v3, standar yang merupakan subset POSIX.
Michael Aaron Safyan
43

Biarkan saya memberikan penjelasan "tidak resmi" churlish.

POSIX adalah seperangkat standar yang berusaha membedakan sistem "UNIX" dan UNIX dari yang tidak kompatibel dengannya. Itu dibuat oleh pemerintah AS untuk keperluan pengadaan. Idenya adalah bahwa pengadaan federal AS membutuhkan cara untuk secara legal menentukan persyaratan untuk berbagai jenis penawaran dan kontrak dengan cara yang dapat digunakan untuk mengecualikan sistem yang basis kode atau staf program yang ada TIDAK akan portabel.

Karena POSIX dituliskan post facto ... untuk mendeskripsikan serangkaian sistem persaingan yang mirip ... itu TIDAK ditulis dengan cara yang dapat diimplementasikan.

Jadi, misalnya, Microsoft NT ditulis dengan kesesuaian POSIX yang cukup untuk memenuhi syarat untuk beberapa tawaran ... meskipun subsistem POSIX pada dasarnya tidak berguna dalam hal portabilitas praktis dan kompatibilitas dengan sistem UNIX.

Berbagai standar lain untuk UNIX telah ditulis selama beberapa dekade. Hal-hal seperti SPEC1170 (sebelas ratus tujuh puluh panggilan fungsi tertentu yang harus diterapkan secara kompatibel) dan berbagai inkarnasi dari SUS (Spesifikasi UNIX Tunggal).

Sebagian besar "standar" ini tidak memadai untuk aplikasi teknis praktis apa pun. Mereka paling ada untuk argumentasi, perselisihan hukum dan alasan disfungsional lainnya.

Jim Dennis
sumber
1
Lalu bagaimana Linux menerapkan sebagian besar POSIX, termasuk banyak ekstensi?
ninjalj
8
@ninjalj: Linux ditulis untuk mengimplementasikan serangkaian fungsi mirip UNIX yang praktis. Melakukannya sambil menyesuaikan diri dengan POSIX masuk akal. Namun, maksud saya adalah bahwa POSIX tidak dibuat sebagai spesifikasi untuk menerapkan sistem operasi baru ... itu diciptakan sebagai cara bagi staf pengadaan pemerintah AS untuk membedakan di antara mereka yang memenuhi syarat untuk kategori tertentu dalam penawaran dari yang tidak . Fokus di Linux adalah untuk menyediakan fitur yang dapat digunakan dengan cara yang wajar, kompatibel, kuat, dan berkinerja. POSIX bukan kecelakaan di sepanjang jalan.
Jim Dennis
3
Agak cerdik dari Anda untuk mengklaim bahwa POSIX ditulis post facto! Itu adalah ciri khas dari organisasi pengembangan standar yang baik (SDO) di mana konsensus tidak tercapai sampai setidaknya ada satu implementasi konforman.
fpmurphy
4
@ fpmurphy: Membuat spesifikasi ex post facto berdasarkan satu atau dua implementasi yang dapat dioperasikan adalah norma untuk IETF ... standar protokol jaringan yang berinteraksi melalui kopling longgar yang sengaja. Ini belum merupakan proses yang berhasil untuk standardisasi OS. API antara program dan sistem (kernel atau microkernel dan server subsistemnya) jauh lebih erat daripada klien dan server atau rekan di jaringan. (Saya tidak mengatakan itu tidak mungkin; hanya menunjukkan bahwa ada perbedaan dan sejarah tidak menunjukkan yang terakhir itu menjanjikan).
Jim Dennis
2
Upaya-upaya oleh IEEE untuk menentukan POSIX kembali pada tahun 1985 didorong oleh Pemerintah AS. Lakukan riset, baca buku sejarah atau sesuatu.
rustyx
29

POSIX adalah standar untuk sistem operasi yang seharusnya membuatnya lebih mudah untuk menulis perangkat lunak lintas platform. Ini merupakan masalah besar di dunia Unix.

Hank Gay
sumber
15
Ini bukan hanya "seharusnya" membuatnya lebih mudah untuk menulis kode lintas platform, tetapi membuatnya lebih mudah untuk menulis kode lintas platform. Satu-satunya pengecualian adalah Windows, karena Microsoft berpikir itu entah bagaimana lebih baik daripada orang lain dan tidak perlu mematuhinya. Namun, saya memperkirakan ini akan bekerja melawan mereka, terutama karena Mac dan Linux mendapatkan lebih banyak pangsa pasar. Jika mereka benar-benar untuk "pengembang, pengembang, pengembang", mereka akan menyadari bahwa pengembang menginginkan kepatuhan UNIX.
Michael Aaron Safyan
Berdasarkan apa yang saya dengar dari orang-orang yang bekerja dengannya jauh lebih dekat daripada yang pernah saya lakukan, itu mungkin telah membuat segalanya lebih mudah, tetapi tentu saja tidak cukup untuk kesan write-once, run-on-any-POSIX yang paling orang dapatkan ketika mereka mendengar itu adalah "standar" untuk sistem operasi.
Hank Gay
6
Mereka tidak berpikir mereka "lebih baik daripada orang lain"; mereka tahu mereka lebih besar dari orang lain. Itu juga mengapa mereka akan mengubah nada mereka karena mereka kehilangan pangsa pasar. Itu tidak unik bagi mereka, misalnya, Netscape mulai lebih peduli tentang standar web ketika mereka tidak lagi paling populer.
Ken
Menulis aplikasi untuk hanya menggunakan API POSIX membuatnya lebih mudah untuk port antara berbagai sistem operasi Unix dan Unix-like. Namun itu adalah standar konsensus penyebut umum terendah - jadi utilitas atau aplikasi yang khusus sistem operasi atau perangkat keras biasanya akan memerlukan penulisan ulang.
fpmurphy
2
@ Ken dan itulah mengapa kita tidak seharusnya membiarkan kromium Google menjadi terlalu nyaman.
Wyatt8740
29

POSIX adalah seperangkat standar yang diajukan oleh IEEE dan The Open Group yang menjelaskan bagaimana Unix yang ideal akan beroperasi. Pemrogram, pengguna, dan administrator semua dapat mengenal dokumen POSIX, dan mengharapkan Unix pengaduan POSIX untuk menyediakan semua fasilitas standar yang disebutkan.

Karena setiap Unix melakukan hal-hal yang sedikit berbeda - Solaris, Mac OS X, IRIX, BSD, dan Linux semuanya memiliki keanehan mereka - POSIX sangat berguna bagi mereka yang ada di industri karena ia mendefinisikan lingkungan standar untuk beroperasi. Misalnya, sebagian besar fungsi di pustaka C berbasis di POSIX; seorang programmer dapat, karenanya, menggunakan satu dalam aplikasinya dan mengharapkannya berperilaku sama di sebagian besar Unices.

Namun, area yang berbeda dari Unix biasanya fokus, bukan yang standar.

Hal terbaik dari POSIX adalah Anda dapat membacanya sendiri:

Open Group Base Spesifikasi Issue 7

Edisi 7 dikenal sebagai POSIX.1-2008, dan ada hal-hal baru di sana - namun, Google-fu untuk POSIX.1 dan semacamnya akan memungkinkan Anda untuk melihat seluruh sejarah di balik apa itu Unix.

Jed Smith
sumber
2
Saya pikir Anda salah menggunakan istilah "UNIX". UNIX sekarang mengacu pada Spesifikasi UNIX Tunggal, dan sistem operasi UNIX apa pun adalah sistem operasi yang sesuai dengan Spesifikasi UNIX Tunggal. Mungkin maksud Anda seperti UNIX?
Michael Aaron Safyan
8
@Michael: Dengan komentar Anda di jawaban lain, Anda jelas orang yang sangat terpolarisasi dengan pendapat yang tidak sepenuhnya konstruktif. Komentar khusus ini sangat mencengangkan, dan makna saya disampaikan terlepas dari pilihan label yang mungkin tidak Anda setujui. Juga, Windows adalah POSIX compliant di versi yang lebih tinggi. Ambil napas dan mundurlah.
Jed Smith
1
@Jed Smith, selain pendapat yang kuat, implikasi dari postingan ini adalah bahwa beberapa sistem operasi yang disertifikasi sesuai UNIX tidak ... jadi, saya pikir adil untuk mengatakan bahwa itu menyesatkan. Juga, berkenaan dengan Windows, selama ada edisi yang tidak sesuai, pengembang tidak dapat mengandalkan POSIX ketika menargetkan platform Windows, sehingga meniadakan seluruh tujuan memiliki POSIX.
Michael Aaron Safyan
Unix adalah sistem operasi. UNIX adalah merek yang dipegang oleh The Open Group. Sistem yang disertifikasi untuk profil branding UNIX95, UNIX98 atau UNIX03, yang kesesuaiannya dengan versi tertentu dari Spesifikasi UNIX Tunggal membentuk sebagian besar persyaratan branding, dapat menggunakan istilah UNIX.
fpmurphy
6

Pada tahun 1985, individu dari perusahaan di seluruh industri komputer bergabung bersama untuk mengembangkan standar POSIX (Sistem Operasi Portabel untuk Lingkungan Komputer), yang sebagian besar didasarkan pada Sistem V Interface Definition (SVID) UNIX dan upaya standardisasi sebelumnya lainnya. Upaya ini didorong oleh pemerintah AS, yang membutuhkan lingkungan komputasi standar untuk meminimalkan biaya pelatihan dan pengadaannya. Dirilis pada tahun 1988, POSIX adalah sekelompok standar IEEE yang mendefinisikan antarmuka API, shell, dan utilitas untuk sistem operasi. Meskipun ditujukan untuk sistem mirip UNIX, standar dapat berlaku untuk sistem operasi apa pun yang kompatibel. Sekarang setelah standar ini diterima, pengembang perangkat lunak dapat mengembangkan aplikasi yang berjalan pada semua versi yang sesuai dari UNIX, Linux,

Dari buku: Panduan Praktis Untuk Linux

Koray Tugay
sumber
4

Posix lebih sebagai OS, itu adalah "standar OS". Anda dapat membayangkannya sebagai OS imajiner, yang sebenarnya tidak ada, tetapi memiliki dokumentasi. Makalah ini adalah "standar posix", yang didefinisikan oleh IEEE, yang merupakan organisasi standar besar di Amerika Serikat. OS yang menerapkan spesifikasi ini adalah "Sesuai dengan persyaratan POSIX".

Peraturan pemerintah lebih suka solusi yang sesuai dengan Posix dalam investasi mereka, sehingga menjadi yang sesuai dengan Posix memiliki keuntungan finansial yang signifikan, terutama untuk perusahaan IT besar di AS.

Hadiah untuk OS yang sepenuhnya memenuhi persyaratan POSIX, itu adalah jaminan bahwa ia akan mengkompilasi dan menjalankan semua aplikasi yang sesuai dengan POSIX dengan mulus.

Linux adalah yang paling terkenal. OSX, Solaris, NetBSD dan Windows NT juga bermain di sini. Free- dan OpenBSD hanya "hampir" sesuai dengan Posix. Kepatuhan positif WinNT hanyalah solusi palsu untuk menghindari peraturan pemerintah ini di atas.

peterh - Pasang kembali Monica
sumber
3

Standar ini memberikan dasar umum untuk sistem operasi mirip Unix. Ini menentukan bagaimana shell harus bekerja, apa yang diharapkan dari perintah seperti ls dan grep, dan sejumlah perpustakaan C yang penulis C harapkan telah tersedia.

Misalnya, pipa yang digunakan pengguna baris perintah untuk merangkai perintah ditentukan secara rinci di sini, yang berarti fungsi popen (pipa terbuka) adalah standar-POSIX, bukan standar ISO-C.

Koray Tugay
sumber
3

POSIX adalah singkatan dari Portable Operating System Interface, dan merupakan standar IEEE yang dirancang untuk memfasilitasi portabilitas aplikasi. POSIX adalah upaya oleh konsorsium vendor untuk membuat versi standar UNIX.

Farruh Habibullaev
sumber
0

POSIX mendefinisikan serangkaian standar untuk sistem operasi atau program. Tujuannya adalah untuk menulis perangkat lunak baru yang kompatibel dengan sistem mirip UNIX.

Misalnya program yang berjalan di Linux juga dapat mengkompilasi dan dijalankan pada sistem seperti UNIX lain seperti Solaris, HP-UX, dan AIX dll.

Contoh paling populer GNU Bashadalah 100% kepatuhan dan gawkutilitas POSIX .

sras
sumber
0

Posix mengatur interoperabilitas, portabilitas, dan di area lain seperti penggunaan dan mekanisme fork, perizinan dan standar sistem file seperti / etc, / var, / usr dan sebagainya . Oleh karena itu, ketika pengembang menulis sebuah program di bawah sistem yang sesuai dengan Posix seperti misalnya Linux, umumnya, tidak selalu, dijamin untuk berjalan pada sistem yang sesuai dengan posix lainnya seperti sistem AIX IBM atau varian komersial Unix lainnya. Posix adalah hal yang baik untuk dimiliki sehingga memudahkan pengembangan perangkat lunak untuk portabilitas maksimum yang diupayakan. Semoga jawaban ini masuk akal.

Terima kasih kepada Jed Smith & Tinkertim karena menunjukkan kesalahan saya - kesalahan saya !!! :(

t0mm13b
sumber
Standar sistem file ditangani di luar POSIX.
Jed Smith
Anda membingungkan POSIX dengan hal-hal seperti LSB (Linux Standard Base). Dua (kebanyakan) sistem operasi yang sesuai dengan POSIX adalah FBSD dan Linux, namun keduanya memiliki organisasi sistem file yang agak berbeda dan instalasi pustaka default.
Tim Post
0

Spesifikasi (cetak biru) tentang cara membuat OS yang kompatibel dengan OS UNIX terlambat (semoga Tuhan memberkatinya!). Inilah sebabnya mengapa macOS dan GNU / Linux memiliki baris perintah terminal yang sangat mirip, GUI, perpustakaan, dll. Karena keduanya dirancang sesuai dengan cetak biru POSIX.

POSIX tidak memberi tahu insinyur dan pemrogram bagaimana cara membuat kode tetapi apa yang harus dikodekan.

KIA
sumber
-1

Beberapa fakta tentang POSIX yang tidak begitu cerah.

POSIX juga merupakan antarmuka panggilan sistem atau API, dan sudah hampir 30 tahun.

Itu dirancang untuk akses data serial ke penyimpanan lokal , menggunakan komputer tunggal dengan CPU tunggal.

Keamanan bukanlah masalah utama dalam desain POSIX, yang mengarah ke berbagai serangan kondisi ras selama bertahun-tahun dan memaksa programmer untuk mengatasi keterbatasan ini.

Bug serius masih ditemukan, bug yang bisa dihindari dengan desain API POSIX yang lebih aman.

POSIX mengharapkan pengguna untuk mengeluarkan satu panggilan sinkron pada satu waktu dan menunggu hasilnya sebelum mengeluarkan yang berikutnya. Pemrogram hari ini berharap untuk mengeluarkan banyak permintaan tidak sinkron sekaligus untuk meningkatkan throughput keseluruhan.

API sinkron ini sangat buruk untuk mengakses objek jarak jauh dan cloud, di mana masalah latensi tinggi.

prosti
sumber
API kernel sinkron tidak perlu berarti proses single-threaded dan serial IO. Ini juga tidak ada hubungannya dengan mesin SMP. Ini sama sekali tidak berhubungan. (Walaupun saya setuju bahwa sinkronisasi API kernel suboptimal, tetapi tidak begitu berat seperti dalam posting Anda tampaknya.)
peterh - Reinstate Monica