e
sv

UNIX, POSIX ve SUS Kavramları Nedir?

unix posix ve sus kavramlari nedir etv5Gg2a | Tekno Deha
avatar

Kaan Çabuk

  • e0

    Mutlu

  • e0

    Eğlenmiş

  • e0

    Şaşırmış

  • e0

    Kızgın

  • e 0

    Üzgün

UNıX… Bilhassa C ve C++ üzere, başka çağdaş programlama lisanlarına kıyasla daha düşük kalan lisanlarda programlama yapan şahısların sıkça karşı karşıya kaldığı bir kavram. Pekala nedir bu UNIX?

UNIX’in ve C lisanının tarihçesi

UNIX, aslında 1969 yılında AT&T şirketinin Bell laboratuvarlarında PDP-7 makineler için geliştirilen bir işletim sistemidir. Birinci olarak PDP-7’nin Assembly lisanı ile yazılmıştır. İsim olarak UNIX, MULTICS‘i çağrıştırması hedefiyle konmuştur. MULTICS ise, AT&T’nin MIT ve General Electric ile birlikte geliştirdiği bir sistemdi ama daha sonrasında AT&T projeden ekonomik bir işletim sistemi olmadığı için çekildi. Ken Thompson, MULTICS işletim sisteminden ilham aldığı birkaç fikri UNIX’e dahil etti; ağaç görünümünde belge sistemi, komut sürece için farklı program (kabuk) üzere fikirlerden kelam ediyoruz.

1970 yılında UNIX işletim sistemi, PDP-11 makineler için PDP-11’in Assembly lisanı ile tekrar yazıldı. Hatta, PDP-11’in izlerini bugün birden fazla UNIX implementasyonunda, hatta en çok kullanılan UNIX implementasyonu olan Linux üzerinde görmek bile mümkün.

Kısa bir müddet sonra Ken Thompson‘ın iş arkadaşı ve UNIX’in yapımcılarından olan Dennis Ritchie, C lisanını ortaya çıkardı. C lisanı, B lisanından, B lisanı ise BCPL lisanından ilham alarak ortaya çıktı. 1973 yılında, C lisanı yeterlice olgunlaşarak UNIX’in neredeyse tamamının tekrar yazılabileceği bir lisan haline geldi. UNIX işletim sistemi böylelikle yüksek düzey lisan kullanılarak yazılan birinci işletim sistemi oldu ve başka donanımlara UNIX’i portlamak çok daha kolay bir süreç haline geldi. C lisanı ile yazılan açık kaynaklı bir UNIX implementasyonunu çalıştırabilmek için, yalnızca amaç işlemcinin ISA’sına yönelik yazılan derleyici, linker ve Assembler programlar aracılığı ile makine lisanına çevirmeniz gerekli.

Bu prosedür hala çağdaş işletim sistemleri üzerinde geçerliliğini sürdürmekte. Her işletim sisteminde küçük ya da büyük bir Assembly kodu hala olmak zorundadır, zira üst düzey lisanlarda yazılan kod (sistem çekirdeğinin kodu da dahil olmak üzere), belleğin ona nazaran hazırlandığını düşünür; ve Assembly lisanı ise, bu belleği hazırlama imkanını bizlere sunar.

POSIX ve SUS üzere standartların ortaya çıkması

UNIX

POSIX (Portable Operating System Interface for UNIX), UNIX implementasyonları ortasında yazılım birliğini sağlayabilmek emeli ile 1988 yılında IEEE (Elektrik ve Elektronik Mühendisleri Enstitüsü) tarafından ortaya çıkarılan bir standarttır. POSIX API’sini bulunduran işletim sistemlerine “POSIX uyumlu işletim sistemi” denmektedir.

POSIX API’si; aslen UNIX sistem davetlerine ve C standart kütüphanesine dayanır. Bu da demek olur ki öteki işletim sistemlerine rahatça port edilebilir. Lakin diğer işletim sistemlerinde de POSIX kütüphanesine yapılan birkaç küçük dokunuş ile çalışabilmektedir. Örneğin Winsock 2 üzerinde soket programlama ile POSIX dayanaklı UNIX sistemler üzerindeki “Berkeley Sockets” üzerinde soket programlama, programcının gözünden neredeyse birebirdir lakin bir kaç temel fark bulunmakta. Örneğin, Berkeley Sockets‘te, UNIX’in temel niyetlerinden biri olan her şeyin evrak olduğu görüşü bulunmaktadır. Bu sebep doğrultusunda Berkeley Sockets ile oluşturulan bir soket, kendine ilişkin bir “file descriptor“a sahiptir, ama Winsock 2’de bu durum daha değişiktir.

UNIX

Novell, takvimler 1993 yılını gösterdiğinde, UNIX’in haklarını AT&T’den satın aldı. Çabucak bir yıl sonra ise UNIX’in haklarını, 1984 yılında Avrupalı UNIX sistem üreticileri tarafından kurulan X/Open’a vererek UNIX işinden ayrıldı. Daha sonra X/Open, UNIX ticari hakkını birtakım testlerden geçebilen işletim sistemlerine vermeye karar verdi. Bu testlerde UNIX ile olan uyumluluk ölçülüp, uyumluluk derecesine nazaran gaye işletim sisteminin UNIX’in temel ideolojilerine ne kadar uyup uymadığına bağlı olarak birden fazla noktada karar verilirken, maksat işletim sisteminin temel ortamı, ağ yapılandırması, pencere sistemi, C lisanı dayanağı üzere şeyler test ediliyor. Bu test standartları ailesine Single UNIX Specification (SUS) denmektedir. SUS’a ilişkin 5 adet sertifikasyon etiketi bulunuyor:

  • UNİX 93,
  • UNİX 95 (SUSv1),
  • UNİX 98 (SUSv2),
  • UNİX 03 (SUSv3),
  • UNİX V7 (SUSv4).

Bu testlerden çok az BSD ve Linux dağıtımı geçmeyi başarabilmiştir, zira bu dağıtımların emeli daha çok POSIX uyumluluğunu sağlayabilmek oldu.

X/Open, 1996 yılında Açık Yazılım Vakfı (OSF) ile birleşerek The Open Group‘u kurmuştur. UNIX ile ilgilenen neredeyse tüm kuruluşlar, The Open Group üyesidir ve UNIX API ve standartlarının gelişimi günümüzde hala daha The Open Group, IEEE ve ISO’nun ortak olduğu The Austin Group tarafınca sürmektedir.

UNIX
POSIX ve SUS’un kıyaslaması: POSIX uyumluluğunda yalnızca altta bulunan kısma bakılırken, SUS testlerinde görseldeki her şey test edilmekte.

Bir işletim sisteminin POSIX uyumluluğu, POSIX’i açıklarken bahsettiğimiz üzere, yalnızca amaç işletim sisteminin POSIX API’si ile ne kadar uyumlu olduğunu ve POSIX temelli yazılımların o işletim sistemi üzerinde çalışıp çalışmadığını tabir ederken, SUS uyumluluğu ise amaç işletim sisteminin, UNIX’in hangi standardına uyduğunu belirten bir etikettir. Örneğin, Windows işletim sistemi POSIX’e yarı uyumlu iken, SUS’un hiçbir standardına uygun değildir. Zira Windows, UNIX tabanlı bir işletim sistemi değildir lakin POSIX standartlarının kimilerini karşılamaktadır. Şayet büsbütün POSIX ahengini sisteminizde bulundurmak isterseniz, Windows Subsystem for Linux (WSL) kullanarak bu ahengi sağlayabilirsiniz.

Bir UNIX varyantı, her ne kadar POSIX’e hatta SUS’a uyumlu olsa da, öteki UNIX varyantlarına ilişkin olan programları çalıştıramayabilir. Örneğin Linux uygulamaları, birçok UNIX varyantında çalışmaz yahut derlenemez. Linux, her ne kadar bir UNIX varyantı olsa da üzerinde UNIX’ten farklı sistem davetleri, kütüphaneler, yapılar üzere özel şeyler bulunmaktadır. Bundan ötürü; şayet bir uygulama geliştiricisi, uygulamasında taşınabilirlik istiyorsa, POSIX yahut SUS standartlarına bağlı kalması daha uygun olacaktır.

Özet

UNİX işletim sisteminin, bilgisayar dünyasına katkılarının çok fazla olduğu su götürmez bir gerçek. TEKNODEHA.COM sunucusu dahil olmak üzere, internet dünyasındaki birçok sunucu, bir UNİX implementasyonu ile (genellikle Linux) çalışıyor. Misal biçimde, cep telefonlarımızdaki işletim sistemlerinin hepsi birer UNİX implementasyonudur. Hal bu türlü olunca, UNİX hakkında bilgi edinmek hoş bir şey olabilir.

 

okuyucu yorumlarıOKUYUCU YORUMLARI

Sıradaki içerik:

UNIX, POSIX ve SUS Kavramları Nedir?