POSIX ile ilgili ilk cevabı genişletmek, "unix benzeri" nin ne anlama geldiğini anlamak için, önce UNIX'in tam olarak ne olduğunu anlamaya çalışmak gerekir. Unix ticari markasının sahibi olan Open Group'un belgelerine baktığınızda , Tek UNIX spesifikasyonunun evrimi hakkında ayrıntılar bulacaksınız - işte UNIX03 :
UNIX 03 Ürün Standardı, Tek UNIX Spesifikasyonunun Sürüm 3'üne uyan sistemlerin markasıdır. UNIX 98 Ürün Standardının önemli ölçüde geliştirilmiş bir sürümüdür. Zorunlu geliştirmeler arasında ISO / IEC 9989: 1999 C Programlama Dili, IEEE Std 1003.1-2001 ve ISO / IEC 9945: 2002 ile uyum bulunmaktadır. Bu Ürün Standardı aşağıdaki zorunlu Ürün Standartlarını içerir: Uluslararası Sistem Çağrıları ve Kütüphaneleri Genişletilmiş V3, Komutlar ve Yardımcı Programlar V4, C Dili V2 ve Uluslararası Terminal Arabirimleri.
UNIX98 :
UNIX 98 Ürün Standardı, UNIX 95 Ürün Standardının önemli ölçüde geliştirilmiş bir sürümüdür. Zorunlu geliştirmeler arasında (1) İş parçacığı arabirimleri, (2) Çokbaytlı Destek Uzantısı (MSE), (3) Büyük Dosya Desteği, (4) Dinamik Bağlantı, (5) donanım veri uzunluğu bağımlılıklarını veya kısıtlamalarını kaldırmak için değişiklikler ve (6 ) 2000 yılı değişiklikleri. Ayrıca, aşağıdaki isteğe bağlı geliştirmeler de dahildir: Yazılım Yönetimi olanakları ve gerçek zamanlı destek için bir dizi API. Bu Ürün Standardı aşağıdaki zorunlu Ürün Standartlarını içerir: Uluslararası Sistem Çağrıları ve Kütüphaneleri Genişletilmiş V2, Komutlar ve Yardımcı Programlar V3, C Dili, Taşıma Hizmeti (XTI) V2, Yuva V2 ve Uluslararası Terminal Arabirimleri. Ayrıca, Yazılım Yönetimi Ürün Standardına da uygun olabilir.
UNIX95 (benim vurgu):
Bu Ürün Standardı, sağlanan tesislere ek olarak UNIX İşletim Sistemi kodundan türetilen ve / veya orijinal olarak AT&T tarafından geliştirilen arayüzlerden türetilen işletim sistemleri sınıfından biri için orijinal olarak geliştirilen çok çeşitli uygulamaları desteklemek için birleştirilmiş bir platform tanımlar. Temel Ürün Standardı uyarınca. Base'den daha geniş bir kapsama sahiptir. Bu Ürün Standardı aşağıdaki Ürün Standartlarını içerir: Genişletilmiş Uluslararası Sistem Çağrıları ve Kütüphaneleri, Komutlar ve Yardımcı Programlar V2, C Dili, Taşıma Hizmeti (XTI), Soketler ve Uluslararası Terminal Arabirimleri.
Standardın sunucu sürümleri bazı durumlarda Internet Sunucusu ve IPv6 ekler.
Tabii ki AT&T Bell Laboratuvarlarına yapılan referansı görüyoruz ve C dili UNIX'in ne olduğunu gösteriyor: C dili, modüler taban araçları ve kabuk ve çekirdek, dosya sistemi ve diğer önemli işletim sistemi bileşenlerinin nasıl tasarlandığını ve uygulandığını .
Maurice J. Bach'ın UNIX İşletim Sisteminin Tasarımı adlı kitabın değeri paha biçilemez bir okumaya dönüşüyor çünkü bu noktada tarihi meseleler. Tabii ki bunun gerçekten C dili gibi diğer icatlarla nasıl ilişkili olduğu . C, AT&T Bell tarafından Unix'i montaj kadar hızlı ancak farklı donanımlarda taşınabilir bir dilde uygulamak için geliştirildi ve birçok POSIX, standart C'nin bir uzantısıdır.
Çekirdeğin kendisi söz konusu olduğunda, UNIX çekirdeğinin geleneksel olarak neyle ilgili olduğunu göstermek için genellikle bunun gibi kavramsal bir diyagram bulacaksınız:
Bay Bach'ın UNIX Sistem V çekirdeğinin temellerini anlatan klasik kitabından (1986) bazı alıntılar:
Ancak, bunların [uygulama alt sistemleri ve programları] nihayetinde çekirdek tarafından sağlanan daha düşük düzeydeki hizmetleri kullanırlar ve sistem çağrıları kümesiyle bu hizmetlerden yararlanırlar. System V'de yaklaşık 32 sistem çağrısı vardır ve bunlardan 32'si daha az kullanılır. Kullanımlarını kolaylaştıran ancak kullanıcıya çok fazla güç sağlayan basit seçeneklere sahiptirler. Sistem çağrıları kümesi ve bunları uygulayan iç algoritmalar çekirdeğin gövdesini oluşturur [...]
[...] iki ana bileşeni dosya alt sistemi ve süreç alt sistemidir.
Dosyalar, mantıksal aygıtlar olarak ele alınan dosya sistemlerinde düzenlenir; disk gibi fiziksel bir aygıt birkaç mantıksal aygıt (dosya sistemleri) içerebilir. Her dosya sistemi, dosya sisteminin yapısını ve içeriğini açıklayan bir süper bloğa sahiptir ve bir dosya sistemindeki her dosya, dosyanın özniteliklerini veren bir inode tarafından tanımlanır. Dosyaları işleyen sistem çağrıları bunu inode ile yapar. [ve arabellek havuzu]
[...] inode'un iki sürümü vardır: dosya kullanılmadığında inode bilgisini saklayan disk kopyası ve aktif dosyalar hakkındaki bilgileri kaydeden çekirdek kopya.
UNIX sistemlerinde kullanıcı süreçlerinin yürütülmesi iki seviyeye ayrılır: kullanıcı ve çekirdek. Bir yöntem, bir sistem çağrısı yürütüldüğünde, işlemin gerçekleştirilmesi modu değişir kullanım modu için çekirdek modu : işletim sistemi tarafından uygulanan ve girişimler kullanıcı isteği hizmet [...]
[...] UNIX sisteminin felsefesi, kullanıcıların daha karmaşık programlar oluşturmak için yapı taşları olarak kullanılabilecek küçük, modüler programlar yazmalarını sağlayan işletim sistemi ilkelerini sağlamaktır. Kabuk kullanıcıları tarafından görülebilen böyle bir ilkel, G / Ç'yi yeniden yönlendirme yeteneğidir .
[...] Sistem çağrılarına hizmet vermenin yanı sıra, çekirdek kullanıcı topluluğu için genel defter tutma, işlem zamanlamasını denetleme, ana bellekte işlemlerin depolanmasını ve korunmasını yönetme, kesintileri giderme, dosya ve aygıtları yönetme ve sistem hatasıyla ilgilenme koşullar.
Unix benzeri işletim sistemlerinde farklı çekirdek uygulamaları ile ilgileniyorsanız, FreeBSD uygulamasına (4.4BSD) veya Mach çekirdeğine bakabilir veya özelliklerinin bu karşılaştırmasına bakabilirsiniz .
UNIX tasarımı hakkında ne kadar fazla bilgi sahibi olursanız, aşağıdaki diyagramda UNIX'in ataları ve tarihi hakkında neler olduğunu daha fazla anlarsınız . Bay Bach, kitabında çoğunlukla Sistem V hakkında konuşuyor, ancak BSD'yi de tartışıyor:
Bunun gözlerle buluşmasından çok daha fazlası var . Örneğin, Mac OSX UNIX03 sertifikalıdır, ancak saf UNIX'lerden birine (çoğunlukla kırmızı renkte) bağlı olduğunu görüyor musunuz?
Yukarıda BSD, GNU, Microsoft ve çeşitli bireylerin bu evrene nasıl katkıda bulunduğunu görebilirsiniz. Sonuçta linux GNU ve UNIX için doğrudan bir soyunu sahip olsa bile, bunu gördün GNU açık kaynak dünyasının kapalı olmuştu ticari UNIX araçları ve yazılım yeniden mühendisi bir çabadır. Böylece GNU bakım yazılımına bakmak, örneğin ilk prototip uygulamaları ve kütüphanelerinde bir fikir verir.
Lisans savaşları UNIX'in evriminde (ve bazen durgunluğunda) rol oynadı. Hemen UNIX'lerin lisans türüne göre sıralandığını görebilirsiniz - BSD'ye karşı kapalı ( BSD kodun kapalı kaynak yapılmasına izin verir ... OSX'e bakın) ve Linux ve GNU'nun copyleft dünyasında kendilerini tamamlamasına izin veren GPL . Linus Torvalds tarafından ilk olarak geliştirilen ve Unix benzeri bir işletim sisteminde bir çekirdeğin ne olabileceğini ortaya koyan linux çekirdeğinin klasik haritası:
Bu, " çekirdek " tasarım türünün UNIX standardını yapan veya unix benzeri bir işletim sistemi tanımlayan şey olmadığı fikrini ima eder . Bu, UNIX için klasik tasarım tipi olan birçok unix benzeri işletim sisteminin monolitik bir çekirdeğe veya mikro çekirdeğe sahip olabileceği kanıtlanmıştır. Aslında, saf UNIX'lerde bile, HPUX monolitik bir çekirdeğe sahipken, AIX bir mikro çekirdek kullanır. Tasarım hakkındaki bu tartışma performansla ilgilidir ve Unix soyları veya kimliği ile ilgili değildir. Öte yandan, UNIX / unix benzeri işletim sistemleri altında yazılıma hizmet sunma, dosya sistemleri vb. İle ilgili geleneksel kavramsal bir yaklaşım vardır.
Bu tür düşüncelerin sorunuzun işletim sistemi bölümüne bağlam katacağına inanıyorum.