“POSIX” in anlamı nedir?


898

POSIX nedir? Okudum Wikipedia makalesi ve ben terimle karşılaşırsanız her zaman okudum. Gerçek şu ki, ne olduğunu gerçekten anlamadım.

Herkes bana "POSIX ihtiyacını" açıklayarak açıklayabilir mi?



hızlı tanım referansı - whatis.techtarget.com/definition/…
parasrish

Yanıtlar:


622

POSIX , Unix-y işletim sistemleri tarafından sağlanan uygulama programlama arabirimlerini (ve komut satırı kabuğu yardımcı programları gibi yardımcı sorunları) netleştirmek ve üniform hale getirmek için IEEE tarafından belirtilen bir standart ailesidir . Programlarınızı POSIX standartlarına dayanacak şekilde yazdığınızda, bunları büyük bir Unix türevi ailesi (Linux dahil ancak bunlarla sınırlı değil!) Arasında kolayca taşıyabileceğinizden emin olabilirsiniz; Posix'in bir parçası olarak standartlaştırılmamış bazı Linux API'lerini kullanıyorsanız ve kullandığınızda, ileride bu programı veya kitaplığı diğer Unix-y sistemlerine (örn. MacOSX) taşımak istiyorsanız, daha zor zamanınız olacaktır.


34
Hayır, standart bir API düzeyindedir - belirtilen her çağrı, başka bir çağrı açısından çekirdeğe veya C kütüphanesine uygulanabilir ve Posix (ve programlarınız için de ;-) için iyidir. MacOSX, Posix uyumludur, bkz. Devworld.apple.com/leopard/overview/osfoundations.html . Windows için, bkz. En.wikipedia.org/wiki/POSIX#POSIX_for_Windows : Posix uyumluluğu şu anda yalnızca Enterprise ve Ultimate sürümlerine dahil edilmiştir (daha ucuz olanlara değil! -), ancak Cygwin, en.wikipedia ile partway alabilirsiniz . org / wiki / Cygwin .
Alex Martelli

23
Microsoft'un masaüstlerindeki pazar payı en azından "dünyanın takip ettiği şey" olmasını sağladığından yorumunuz hatalı.
Jed Smith

29
Bence pençelerin anlamı, Microsoft'un diğer platformlarla birlikte çalışabilmesi için fazla çaba sarf etmemesi.
mipadi

12
@ deltaray kucaklayın, uzatın ve söndürün . MS java (standart dışı java.util. Java.security, java.io, java.lang ve java.awt), Internet Explorer (neredeyse 'patlayıcı' dedi) ve .NET (evet, kısmi yayınladıklarını biliyorum) kaynağıdır, ancak lisansı kısıtlayıcıdır ve henüz bir linux portu DEĞİLDİR. Mono eksik). Ayrıca exFAT patentleri . Kesinlikle haklısın.
Wyatt8740

25
Microsoft's market share on desktops, at least, makes it "what the world follows"- 2009 yorumundan bu yana ne kadar değiştiğini belirtmek ilginç :)
GMA

516

POSIX 7'nin tanımladığı en önemli şeyler

  1. C API'sı

    ANSI C'yi aşağıdakilerle büyük ölçüde genişletir :

    • daha fazla dosya işlemleri: mkdir, dirname, symlink, readlink, link(sabit bağlarının), poll(), stat, sync,nftw()
    • işlemek ve parçacığı: fork, execl, wait, pipe, semaphors sem_*(paylaşılan hafızayı shm_*) kill, zamanlama parametreleri ( nice, sched_*), sleep, mkfifo,setpgid()
    • ağ: socket()
    • bellek yönetimi: mmap, mlock, mprotect, madvise,brk()
    • yardımcı programlar: düzenli ifadeler ( reg*)

    Bu API'ler ayrıca bağımlı oldukları temel sistem kavramlarını da belirler, örneğin forkbir süreç kavramını gerektirir.

    Birçok Linux sistem çağrıları örneğin belirli bir POSIX C API işlevi uygulamak için var ve Linux uyumlu hale getirmek sys_write, sys_read... o sistem çağrıları birçoğu da ancak Linux özgü uzantılara sahiptir.

    Büyük Linux masaüstü uygulaması: glibc, çoğu durumda sistem çağrılarına sığ bir sargı sağlar.

  2. CLI yardımcı programları

    Örn: cd, ls, echo, ...

    Birçok kamu hizmeti, örneğin karşılık gelen bir Cı API işlevi, doğrudan muhafaza ön uçları vardır mkdir.

    Başlıca Linux masaüstü uygulaması: küçük olanlar için GNU coreutils, büyük olanlar için ayrı GNU projeleri: sed, grep, awk, ... Bazı CLI yardımcı programları Bash tarafından uygulanmaktadır yerleşik ins olarak .

  3. Kabuk dili

    Örneğin, a=b; echo "$a"

    Büyük Linux masaüstü uygulaması: GNU Bash .

  4. Ortam Değişkenleri

    Örneğin: HOME, PATH.

    PATH eğik çizgilerin PATHaramayı nasıl önlediği de dahil olmak üzere arama semantiği belirtilir .

  5. Program çıkış durumu

    ANSI C, başarısızlık için 0ya da EXIT_SUCCESSbaşarı için diyor EXIT_FAILUREve geri kalan uygulamayı tanımlı bırakıyor.

    POSIX ekler:

  6. Düzenli ifade

    İki tür vardır: BRE (Temel) ve ERE (Genişletilmiş). Basic kullanımdan kaldırılmıştır ve yalnızca API'ları ihlal etmeyecek şekilde tutulur.

    Bunlar C API işlevleri tarafından uygulanır ve CLI yardımcı programlarında kullanılır, örneğin grepvarsayılan olarak BRE'leri ve ERE'leri kabul eder -E.

    Örneğin: echo 'a.1' | grep -E 'a.[[:digit:]]'

    Başlıca Linux uygulaması: glibc, regex.h altındaki gibi programların greparka uç olarak kullanabileceği işlevleri uygular .

  7. Dizin yapısı

    Ör: /dev/null,/tmp

    Linux FHS, POSIX'i büyük ölçüde genişletiyor.

  8. Dosya adları

    • / yol ayırıcı
    • NUL kullanılamaz
    • .olduğunu cwd, ..ebeveyn
    • taşınabilir dosya adları
      • tam yol için en fazla 14 karakter ve 256 kullanın
      • yalnızca şunları içerebilir: a-zA-Z0-9._-

    Ayrıca bkz: dosya sistemi için posix uyumluluğu nedir?

  9. Komut satırı yardımcı programı API kuralları

    Zorunlu değil, POSIX tarafından kullanılıyor, ancak neredeyse hiçbir yerde, özellikle GNU'da değil. Ancak doğru, çok kısıtlayıcıdır, örneğin yalnızca tek harfli bayraklar (örneğin -a), çift kısa çizgi uzun versiyonları (ör. --all).

    Yaygın olarak kullanılan birkaç kural:

    • - bir dosyanın beklendiği yerde stdin anlamına gelir
    • --bayrakları sonlandırır, örn ls -- -l. adlı bir dizini listelemek için-l

    Ayrıca bkz: Linux komut satırı anahtarları ve bağımsız değişkenleri için standartlar var mı?

  10. "POSIX ACL" (Erişim Kontrol Listeleri), örneğin arka uç olarak kullanılır setfacl.

    Bu geri çekildi, ancak Linux ilesetxattr de dahil olmak üzere çeşitli işletim sistemlerinde uygulandı .

POSIX'e kimler uygundur?

Birçok sistem POSIX'i yakından takip eder, ancak çok azı standardı koruyan Açık Grup tarafından onaylanmıştır. Önemli sertifikalılar şunları içerir:

  • OS X (Apple) X, hem 10 hem de UNIX anlamına gelir. İlk Apple POSIX sistemi 2001'de piyasaya sürüldü. Ayrıca bkz: OSX bir POSIX işletim sistemi mi?
  • AIX (IBM)
  • HP-UX (HP)
  • Solaris (Oracle)

Çoğu Linux dağıtımı çok uyumludur, ancak uyumluluk denetimini ödemek istemedikleri için onaylanmamıştır. Inspur'un K-UX ve Huawei'nin EulerOS sertifikalı iki örneğidir.

Sertifikalı sistemlerin resmi listesi https://www.opengroup.org/openbrand/register/ adresinde ve ayrıca wiki sayfasında bulunabilir .

pencereler

Windows, bazı profesyonel dağıtımlarında POSIX'i uyguladı.

İsteğe bağlı bir özellik olduğundan, programcılar çoğu son kullanıcı uygulaması için ona güvenemedi.

Windows 8'de destek kullanımdan kaldırıldı:

2016 yılında "Linux için Windows Alt Sistemi" adında yeni bir Linux benzeri API açıklandı. ELF, çalışan parçaları, Linux sistem çağrıları içeren /procdosya sistemi Bash, GCC, (? YAPILACAK muhtemel glibc), apt-get: ve daha https://channel9.msdn.com/Events/Build/2016/P488 İnanıyorum yüzden öyle Windows'un POSIX'in tümü olmasa da çok çalışmasına izin verir. Ancak, son kullanıcılar yerine geliştiricilere / konuşlandırmaya odaklanmıştır. Özellikle, Windows GUI'ye erişime izin verme planı yoktu.

Resmi Microsoft POSIX uyumluluğuna geçmişe genel bakış: http://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-posix-subsystem/

Cygwin , Windows için "önemli POSIX API işlevselliği sağlar" için iyi bilinen bir GPL üçüncü taraf projesidir, ancak uygulamanızı "Windows üzerinde çalışmasını istiyorsanız kaynağından yeniden oluşturmanızı" gerektirir. MSYS2 , Cygwin'in üstüne daha fazla işlevsellik ekleyen bir projedir.

Android

Android, Android O'dan itibaren POSIX'i tam olarak desteklemeyen kendi C kütüphanesine (Bionic) sahiptir: Android POSIX uyumlu mu?

Bonus seviyesi

Linux Standard Base ayrıca POSIX uzanır.

Çerçevesiz dizinleri kullanın, çok daha okunabilir ve aranabilir: http://pubs.opengroup.org/onlinepubs/9699919799/nfindex.html

Grevleme için HTML sayfalarının tam sıkıştırılmış bir sürümünü edinin: POSIX C API işlevlerinin listesi nerede?


18
Harika örnekler, eğer kabul edilen cevap gibi bir tanımınız olsaydı bu en iyi cevap olurdu.
Marc

8
@Marc teşekkürler! Diğer cevaplarda söylenenleri tekrarlamamaya çalışıyorum, insanlar muhtemelen bunları zaten okumuş ve çoğaltmayı önlemek için ;-) Bu bilinen bir ikilem: meta.stackoverflow.com/questions/305645/…
Ciro Santilli illi 病毒 审查 六四事件 法轮功

1
POSIX'in neleri kapsadığını (neyin içermediğini) açıklamak için iyi bir fikir.
sleske

4
Literatürün her yerinde, "POSIX uyumluluğu" referansları açılır ve POSIX çalışanlarının tipik tanımı "Unix benzeri işletim sistemleri arasında birlikte çalışabilirlik için bir dizi standarttır". Her ne kadar yararlı olsa da, bu tanım, özellikle birlikte çalışması beklenen özellikler ile ilgili pek çok şüpheye neden olmaktadır. Elbette, ayrıntıları incelemek için POSIX spesifikasyonunun tamamını okuyabilir (ve bunun için çok zaman harcayabilirsiniz). Ancak, bu cevap POSIX kapsamındaki büyük resmi elde etmek için çok gerekli özeti sağlar. Yazmaya zaman ayırdığı için Ciro'ya özel teşekkürler!
ARX

Tamsayı türleri hakkında bazı Posix garantileri eklemek de iyi olabilir. Tam olarak ne olduğunu ve belirtilmediğini bilmiyorum, ancak en azından Posix'in uint8_t, uint16_t, uint32_t ve karşılık gelen imzalı türlerin varlığını gerektirdiğini biliyorum. "İnt" gibi tiplerin iki boyut gücüne sahip olduğunu ve bir sistemin 32 değer biti, 1 işaret biti ve 31 dolgu biti ile "int" gibi kötü bir şey yapmayacağını garanti edip etmediğinden emin değilim [böylece bir uint32_t değerini arttırmak UB sağlayabilir]; Standart kullanışlı varsa, bu konuda ne olduğunu ve garanti edilmediğini söylemek güzel olabilir.
supercat

74

POSIX :

POSIX (telaffuz / ˈpɒzɪks /) veya "Taşınabilir İşletim Sistemi Arayüzü [Unix için]" 1 , yazılım için kabuk ve yardımcı program arabirimlerinin yanı sıra uygulama programlama arabirimini (API) tanımlamak için IEEE tarafından belirtilen ilgili standartlar ailesinin adıdır standart herhangi bir işletim sistemi için geçerli olsa da, Unix işletim sisteminin varyantlarıyla uyumludur.

Temel olarak, (çoğunlukla) ortak bir API ve yardımcı programa sahip olarak UNIX'in farklı tatlarının gelişimini ve kullanımının acısını hafifletmek için bir dizi önlemdi. Sınırlı POSIX uyumluluğu, Windows'un çeşitli sürümlerine de genişletilmiştir.


1. POSIX, tüm * nix OS'lerin (çekirdeklerin) en azından bu sistem çağrıları kümesine sahip olması gerektiğini söylüyor. sağ? 2. WINDOWS / MAC POSIX'i takip ediyor mu? WINDOWS (95,98,2000, xp, vista, 7) bazı ortak standart (kendi özel mülkleri olabilir) standardını izliyorsa / değilse. Başka bir deyişle, Microsoft dünyasında POSIX ==?
pençeler

1
Temel olarak, gelişimin acısını hafifletmek için bir dizi önlemdi. WS ??
pençeler

5
O kelimenin kullanımı sorgulandı oldu da, ama bu tartışılır. Sorularınızı cevaplamak için: (1) hayır, POSIX'in çekirdekle kesinlikle ilgisi vardır, sadece nasıl çalışması gerektiğini açıklar; (2) OS X, BSD'dir ve oldukça POSIX uyumludur, ancak gri alanlar vardır. Windows 2008, POSIX şikayetine en yakın olanıdır; Microsoft dünyasında eşdeğer bir POSIX yoktur.
Jed Smith

1
@claws: Cletus'un cevabı altındaki alanı kirletmek istemiyorsunuz ... ama. Cevabımda POSIX.1-2008'i bağladım ... tam orada.
Jed Smith

3
@Jed Smith, Mac OS X uyumluluğu açısından gri alan yoktur; Mac OS X, standardı POSIX'in bir alt küme olduğu Tek UNIX Spesifikasyonu v3 ile uyumlu olarak onaylanmıştır.
Michael Aaron Safyan

43

Küfürü "gayri resmi" açıklamama izin verin.

POSIX, "UNIX" ve UNIX benzeri sistemleri kendileriyle uyumlu olmayan sistemlerden ayırmaya çalışan bir standartlar kümesidir. ABD hükümeti tarafından tedarik amacıyla oluşturuldu. Buradaki fikir, ABD federal tedariklerinin, çeşitli teklif ve sözleşmelere ilişkin gereksinimleri, belirli bir mevcut kod tabanının veya programlama personelinin taşınabilir OLMAYACAK sistemleri hariç tutmak için kullanılabilecek şekilde yasal olarak belirtmek için bir yola ihtiyaç duymasıydı.

POSIX, fiilen ... benzer gevşek bir dizi rakip sistemi tanımlamak için yazıldığından beri ... uygulanabilecek bir şekilde DEĞİL yazılmıştır.

Bu nedenle, örneğin, Microsoft NT, bazı tekliflere hak kazanmak için yeterli POSIX uyumu ile yazılmıştır ... POSIX alt sistemi UNIX sistemleri ile pratik taşınabilirlik ve uyumluluk açısından temelde işe yaramaz olsa da.

Onlarca yıldır UNIX için çeşitli başka standartlar da yazılmıştır. SPEC1170 (uyumlu bir şekilde uygulanması gereken onbir yüz yetmiş fonksiyon çağrısı belirtildi) ve SUS'un çeşitli enkarnasyonları (Tek UNIX Spesifikasyonu) gibi şeyler.

Çoğunlukla bu "standartlar" herhangi bir pratik teknik uygulama için yetersizdir. En çok argümantasyon, yasal zorbalık ve diğer işlevsiz nedenlerle var olurlar.


1
Peki Linux neden çoğu uzantı da dahil olmak üzere POSIX'in çoğunu uygular?
ninjalj

8
@ninjalj: Linux, UNIX benzeri bir dizi pratik uygulamayı uygulamak için yazılmıştır. Bunu POSIX'e uygun hale getirmek mükemmel bir anlam ifade eder. Ancak, POSIX'in yeni işletim sistemlerinin uygulanması için bir şartname olarak oluşturulmadığıydı ... ABD hükümet ihale personelinin, tekliflerde belirli kategoriler için nitelikli olanları, . Linux'un odak noktası, kullanılabilir özellikleri makul uyumlu, sağlam ve performanslı bir şekilde sunmaktır. POSIX yol boyunca pek de tesadüf değil.
Jim Dennis

3
Daha ziyade POSIX'in fiili olarak yazıldığını iddia etmek ustaca! Bu, en az bir uygun uygulama gerçekleşinceye kadar fikir birliğinin sağlanamadığı iyi bir standart geliştirme organizasyonunun (SDO) özelliğidir.
fpmurphy

4
@fpmurphy: Birlikte çalışabilir bir veya iki uygulamaya dayalı ex post facto spesifikasyonu oluşturmak, kasıtlı olarak gevşek kuplajlar üzerinde etkileşime giren IETF ... ağ protokolü standartları için bir normdur. İşletim sistemi standardizasyonu için başarılı bir süreç olmamıştır. Programlar ve sistem arasındaki API (çekirdek veya mikro çekirdek ve alt sistem sunucuları), istemciler ve sunucular veya ağlar üzerindeki eşlerden çok daha sıkı bağlıdır. (Bunun imkansız olduğunu söylemiyorum; sadece farklılıklar olduğunu ve tarihin ikincisinin umut verici olduğunu göstermediğini belirtmek).
Jim Dennis

2
IEEE'nin 1985 yılında POSIX'i belirleme çabaları ABD Hükümeti tarafından teşvik edildi. Biraz araştırma yapın, bir tarih kitabı veya başka bir şey okuyun.
rustyx

29

POSIX, platformlar arası yazılım yazmayı kolaylaştıran işletim sistemleri için bir standarttır. Unix dünyasında özellikle büyük bir anlaşma.


15
Sadece platformlar arası kod yazmayı kolaylaştırmakla kalmaz, platformlar arası kod yazmayı da kolaylaştırır. Tek istisna Windows'dur, çünkü Microsoft bunun bir şekilde herkesten daha iyi olduğunu ve uymak zorunda olmadığını düşünüyor. Ancak, özellikle Mac ve Linux daha fazla pazar payı kazandıkça bunun onlara karşı çalışacağını tahmin ediyorum. Gerçekten "geliştiriciler, geliştiriciler, geliştiriciler" içinse, geliştiricilerin UNIX uyumluluğu istediklerini fark edeceklerdir.
Michael Aaron Safyan

Onunla çalıştığım insanlardan daha önce hiç olmadığı kadar yakın duyduğum şeylere dayanarak, işleri daha kolay hale getirmiş olabilir, ancak kesinlikle bir kez yazma, herhangi bir POSIX izlenimi için kesinlikle yeterli değildi insanlar işletim sistemleri için bir "standart" olduğunu duyduklarında alırlar.
Hank Gay

6
"Herkesten daha iyi" olduklarını düşünmezler; herkesden daha büyük olduklarını biliyorlar . Bu yüzden pazar payını kaybettikçe melodilerini değiştirecekler. Onlara özgü değil, örneğin Netscape, artık en popüler olmadığı zamanlarda web standartları hakkında çok daha fazla bakım yapmaya başladı.
Ken

Yalnızca POSIX API'lerini kullanmak için bir uygulama yazmak, farklı Unix ve Unix benzeri işletim sistemleri arasında bağlantıyı kolaylaştırır. Bununla birlikte, en düşük ortak payda konsensüs standardıdır - bu nedenle işletim sistemine veya donanıma özgü yardımcı programlar veya uygulamalar genellikle biraz yeniden yazma gerektirir.
fpmurphy

2
@Ken ve bu yüzden Google'ın kromunun çok rahat olmasına izin vermemeliyiz.
Wyatt8740

29

POSIX, ideal bir Unix'in nasıl çalışacağını açıklayan IEEE ve The Open Group tarafından ortaya konan bir standartlar dizisidir. Programcılar, kullanıcılar ve yöneticilerin tümü POSIX belgesini tanıyabilir ve POSIX şikayet Unix'in belirtilen tüm standart olanakları sağlamasını bekleyebilir.

Her Unix işleri biraz farklı yaptığından - Solaris, Mac OS X, IRIX, BSD ve Linux'un hepsinin tuhaflıkları var - POSIX, faaliyet gösterecek standart bir ortam tanımladığı için özellikle sektördeki kişiler için kullanışlıdır. Örneğin, C kütüphanesindeki fonksiyonların çoğu POSIX tabanlıdır; bu nedenle bir programcı başvurusunda bir tane kullanabilir ve çoğu Unice için aynı şekilde davranmasını bekleyebilir.

Bununla birlikte, Unix'in ıraksak alanları standart alanlardan ziyade tipik olarak odak noktasıdır.

POSIX ile ilgili en güzel şey, kendiniz okuyabileceğinizdir:

Açık Grup Temel Özellikleri Sayı 7

Sayı 7 POSIX.1-2008 olarak bilinir ve orada yeni şeyler vardır - ancak POSIX.1 için Google-fu ve bu, Unix'in ardındaki tüm geçmişi görmenizi sağlayacaktır.


2
"UNIX" terimini yanlış kullandığınızı düşünüyorum. UNIX artık Tek UNIX Spesifikasyonuna atıfta bulunmaktadır ve herhangi bir UNIX işletim sistemi, Tek UNIX Spesifikasyonuna uyan bir işletim sistemidir. Belki de UNIX benzeri demek istiyorsun?
Michael Aaron Safyan

8
@Michael: Diğer cevaplardaki yorumlarınız göz önüne alındığında, açıkça yapıcı olmayan görüşlere sahip çok kutuplaşmış bir insansınız. Bu özel yorum çok bilgiçliktir ve anlamım, kabul etmeyebileceğiniz bir etiket seçimine bakılmaksızın aktarılmıştır. Ayrıca, Windows, üst düzey sürümlerde POSIX uyumludur. Nefes alın ve geri çekilin, lütfen.
Jed Smith

1
@Jed Smith, güçlü görüşler bir yana, yazının anlamı, UNIX uyumlu sertifikalı bazı işletim sistemlerinin değil ... bu yüzden, bunun yanıltıcı olduğunu söylemenin adil olduğunu düşünüyorum. Ayrıca, Windows ile ilgili olarak, uyumlu olmayan sürümler olduğu sürece, geliştiriciler Windows platformunu hedeflerken POSIX'e güvenemez, böylece POSIX'e sahip olmanın tüm amacını reddeder.
Michael Aaron Safyan

Unix bir işletim sistemidir. UNIX, The Open Group'a ait bir markadır. UNIX95, UNIX98 veya UNIX03 marka profillerine göre sertifikalı olan ve Tek UNIX Spesifikasyonunun belirli bir sürümüne uygunluğu, markalama gerekliliklerinin çoğunu oluşturan sistemler UNIX terimini kullanabilir.
fpmurphy

6

1985 yılında, bilgisayar endüstrisindeki şirketlerden bireyler, büyük ölçüde UNIX Sistem V Arayüz Tanımı (SVID) ve daha önceki diğer standartlaştırma çabalarına dayanan POSIX (Bilgisayar Ortamları için Taşınabilir İşletim Sistemi Arayüzü) standardını geliştirmek için bir araya geldi. Bu çabalar, eğitim ve tedarik maliyetlerini en aza indirmek için standart bir bilgi işlem ortamına ihtiyaç duyan ABD hükümeti tarafından teşvik edildi. 1988'de piyasaya sürülen POSIX, bir işletim sistemi için API, kabuk ve yardımcı program arabirimlerini tanımlayan bir grup IEEE standardıdır. UNIX benzeri sistemlere yönelik olmasına rağmen, standartlar herhangi bir uyumlu işletim sistemi için geçerli olabilir. Artık bu standartlar kabul edildiğine göre, yazılım geliştiricileri UNIX, Linux'un tüm uyumlu sürümlerinde çalışan uygulamalar geliştirebilirler.

Kitaptan: Linux İçin Pratik Bir Kılavuz


4

Posix daha çok bir işletim sistemi, bir "işletim sistemi standardı" dır. Aslında var olmayan, ancak bir belgeye sahip olan hayali bir işletim sistemi olarak hayal edebilirsiniz. Bu belgeler, ABD'nin büyük standart kuruluşu olan IEEE tarafından tanımlanan "posix standardı" dır. Bu spesifikasyonu uygulayan işletim sistemleri "Posix uyumlu" dur.

Hükümet düzenlemeleri yatırımlarında Posix uyumlu çözümleri tercih etmektedir, bu nedenle Posix uyumlu olmak, özellikle ABD'nin büyük IT şirketleri için önemli bir finansal avantaja sahiptir.

Bir işletim sisteminin tam olarak posix uyumlu olması, tüm Posix uyumlu uygulamaları sorunsuz bir şekilde derleyip çalıştıracağının garantisidir.

Linux en tanınmış olanıdır. OSX, Solaris, NetBSD ve Windows NT de burada oynuyor. Free ve OpenBSD yalnızca "neredeyse" Posix uyumludur. WinNT'nin posix uyumluluğu yukarıdaki hükümet düzenlemesinden kaçınmak için sadece sahte bir çözümdür.


3

Bu standart, Unix benzeri işletim sistemleri için ortak bir temel sağlar. Kabuğun nasıl çalışması gerektiğini, ls ve grep gibi komutlardan ne bekleyeceğini ve C yazarlarının kullanılabilir olmasını bekleyebilecek bir dizi C kütüphanesini belirtir.

Örneğin, komut satırı kullanıcılarının komutları birleştirmek için kullandığı borular burada ayrıntılı olarak belirtilmiştir, bu da C'nin pop (boru açık) işlevinin ISO C standardı değil POSIX standardı olduğu anlamına gelir.


3

POSIX, Taşınabilir İşletim Sistemi Arayüzü anlamına gelir ve uygulama taşınabilirliğini kolaylaştırmak için tasarlanmış bir IEEE standardıdır. POSIX, satıcılardan oluşan bir konsorsiyumun UNIX'in tek bir standart sürümünü yaratma girişimidir.


0

POSIX, bir işletim sistemi veya program için standartlar kümesini tanımlar. Amaç UNIX benzeri sistemlerle uyumlu yeni bir yazılım yazmaktır.

Örneğin Linux üzerinde çalışan bir program da Solaris, HP-UX ve AIX gibi UNIX benzeri sistemlerde derlenebilir ve çalıştırılabilir.

En popüler örnekler GNU Bash% 100 POSIX uyumluluğu ve gawkfaydasıdır.


0

Posix birlikte çalışabilirliği, taşınabilirliği ve çatalın kullanımı ve mekanizması, izinler ve / etc, / var, / usr gibi dosya sistemi standartlarını yönetir . Bu nedenle, geliştiriciler örneğin Linux gibi Posix uyumlu bir sistem altında bir program yazdıklarında, IBM'in AIX sistemi veya Unix'in diğer ticari varyantları gibi başka bir posix uyumlu sistemde çalışması genellikle garanti edilmez. Posix, sahip olması gereken maksimum taşınabilirlik için yazılım geliştirmeyi kolaylaştırdığı için iyi bir şeydir. Umarım bu cevap mantıklıdır.

Hatamı - benim kötü işaret Jed Smith & Tinkertim için teşekkürler! :(


Dosya sistemi standartları POSIX dışında ele alınır.
Jed Smith

POSIX'i LSB (Linux Standard Base) gibi şeylerle karıştırıyorsunuz. POSIX uyumlu iki işletim sistemi FBSD ve Linux olacaktır, ancak her ikisinin de oldukça farklı dosya sistemi organizasyonu ve varsayılan kütüphane kurulumları vardır.
Tim Post

0

Bir işletim sisteminin geç UNIX işletim sistemi ile uyumlu hale getirilmesine ilişkin bir şartname (taslak) (Tanrı onu kutsasın!). Bu nedenle macOS ve GNU / Linux çok benzer terminal komut satırlarına, GUI'lere, kütüphanelere vb. Sahiptir. Çünkü ikisi de POSIX planına göre tasarlanmıştır.

POSIX, mühendislere ve programcılara nasıl kodlama yapılacağını değil, ne kodlama yapılacağını söyler.


-1

POSIX hakkında çok parlak olmayan bazı gerçekler.

POSIX aynı zamanda sistem çağrısı arayüzü veya API'sıdır ve yaklaşık 30 yaşındadır.

Tek CPU'lu tek bilgisayarlar kullanılarak yerel depolamaya seri veri erişimi için tasarlanmıştır .

Güvenlik, tasarımla POSIX'te büyük bir endişe kaynağı değildi ve yıllar boyunca çok sayıda yarış durumu saldırısına yol açtı ve programcıları bu sınırlamalar üzerinde çalışmaya zorladı.

Daha güvenli POSIX API tasarımıyla önlenebilecek hatalar hala ciddi hatalar keşfedilmektedir.

POSIX, kullanıcıların bir seferde bir senkronize çağrı yapmasını ve bir sonrakini vermeden önce sonuçlarını beklemesini bekler. Bugünün programcıları, genel verimi artırmak için bir seferde birçok eşzamansız istek yayınlamayı bekliyor.

Bu senkronize API, özellikle gecikmenin önemli olduğu uzak ve bulut nesnelerine erişmek için kötüdür.


Senkron çekirdek API'sının tek iş parçacıklı işlemler ve serileştirilmiş G / Ç anlamına gelmesi gerekmez. SMP makinelerine de bir ilgisi yok. Bunlar tamamen ilgisiz. (Senkronizasyon çekirdeği API'sinin yetersiz olduğunu kabul ediyorum, ancak yayınınızdaki kadar ağır değil.)
peterh - Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.