İçeriğe atla

Cooperative Linux

Cooperative Linux
Orijinal yazar(lar)Dan Aloni
Geliştirici(ler)Topluluk
İlk yayınlanma25 Ocak 2004 (20 yıl önce) (2004-01-25)
Güncel sürüm0.7.9[1]
İşletim sistemiWindows NT family
TürPlatform sanallaştırma
LisansGNU General Public License
Resmî sitesiResmî site Vikiveri ögesini düzenle

coLinux olarak kısaltılan Cooperative Linux, Microsoft Windows ve Linux çekirdeğinin aynı makinede aynı anda paralel çalışmasına olanak sağlayan bir yazılımdır.[2]

Cooperative Linux, Cooperative Virtual Machine (CVM) kavramını kullanır. Geleneksel sanal makinelerin aksine, CVM, ana bilgisayar işletim sisteminde zaten var olan kaynakları paylaşır. Geleneksel VM ana bilgisayarlarında, kaynaklar her (konuk) işletim sistemi için sanallaştırılır. CVM, her iki işletim sistemine de ana makine üzerinde tam kontrol sağlarken, geleneksel VM, her konuk işletim sistemini gerçek makineye erişmek için ayrıcalıksız bir duruma ayarlar.

Genel bakış

Windows'ta çalışan synaptik ve nautilus

"Kooperatif" terimi, paralel olarak çalışan iki kuruluşu tanımlamak için kullanılır. Aslında Cooperative Linux, iki farklı işletim sistemi çekirdeğini iki büyük koroutine dönüştürür. Her çekirdeğin kendi eksiksiz CPU bağlamı ve adres alanı vardır ve her çekirdek, kontrolü ne zaman ortağına geri vereceğine karar verir.

Bununla birlikte, her iki çekirdek teorik olarak gerçek donanıma tam erişime sahipken, modern PC donanımı aynı anda iki farklı işletim sistemi tarafından kontrol edilecek şekilde tasarlanmamıştır. Bu nedenle, ana bilgisayar çekirdeği gerçek donanımın kontrolünde bırakılır ve konuk çekirdeği, ana bilgisayarla iletişim kuran ve konuk işletim sistemine çeşitli önemli aygıtlar sağlayan özel sürücüler içerir. Ana bilgisayar, Cooperative Linux taşınabilir sürücüsünün CPL0 modunda (ring 0) çalışmasına ve bellek ayırmasına izin veren temel temel öğeleri dışa aktaran herhangi bir işletim sistemi çekirdeği olabilir.[3]

Tarih

Dan Aloni, Kooperatif Linux'un geliştirilmesine, User-mod Linux ile benzer çalışmalara dayanan bir araştırma projesi olarak başladı.[4][5] Gelişmeyi 25 Ocak 2004'te duyurdu.[6] Temmuz 2004'te Linux Sempozyumu'nda bir bildiri sundu.[7] Kaynak, GNU Genel Kamu Lisansı altında yayımlandı. Diğer geliştiriciler o zamandan beri yazılıma çeşitli yamalar ve eklemeler yaptı.[8]

Karşılaştırma

Cooperative Linux, genellikle konuk işletim sistemini ana bilgisayar çekirdeğinden daha az ayrıcalıklı bir modda çalıştırarak ve tüm kaynakların ana bilgisayar çekirdeği tarafından delege edilmesini sağlayarak çalışan tam x86 sanallaştırmadan önemli ölçüde farklıdır. Buna karşılık, Cooperative Linux, kaynakları NT çekirdeğiyle paylaşma sorumluluğunu üstlendiği ve yarış koşullarını başlatmadığı için Cooperative olan özel olarak değiştirilmiş bir Linux çekirdeği çalıştırır.

Dağıtım

Cooperative Linux yamasındaki değişikliklerin çoğu, bu yazının yazıldığı sırada Cooperative için desteklenen tek mimari olan i386 ağacındadır. Diğer değişiklikler çoğunlukla sanal sürücülerin eklenmesidir: cobd (blok cihazı), conet (ağ) ve cocon (konsol). i386 ağacındaki değişikliklerin çoğu, başlatma ve kurulum kodunu içerir. Kooperatif Linux çekirdeği tasarımının bir amacı, bağımsız i386 çekirdeğine mümkün olduğunca yakın kalmaktır, böylece tüm değişiklikler mümkün olduğunca yerelleştirilir ve en aza indirilir.

coLinux paketi, Linux çekirdeğinin bir bağlantı noktasını ve bir sanal ağ aygıtı kurar ve Windows 2000 veya Windows XP gibi Windows işletim sisteminin bir sürümü altında aynı anda çalışabilir. VMware gibi bir sanal makine kullanmaz.

Debian, Ubuntu, Fedora ve Gentoo özellikle coLinux kullanıcıları arasında popülerdir.

Sanal donanımın oldukça sıra dışı yapısından dolayı, Linux dağıtımlarını coLinux altında kurmak genellikle zordur. Bu nedenle, kullanıcılar çoğu durumda ya gerçek bir bölümdeki mevcut bir Linux kurulumunu ya da proje tarafından dağıtılan hazır bir dosya sistemi görüntüsünü kullanır. Dosya sistemi görüntüleri, normal bir Linux sisteminin görüntülerini almak, kurulumcuları garip donanımla çalıştırmanın yollarını bulmak, paket yöneticisini kullanarak kurulumları elle oluşturmak veya sadece yum ve apt gibi araçları kullanarak mevcut görüntüleri yükseltmek gibi çeşitli yöntemlerle yapılır. Güncel bir dosya sistemi görüntüsü elde etmenin daha kolay bir yolu, Linux'u kurmak için QEMU'yu kullanmak ve coLinux wiki'de açıklandığı gibi ilk 63 512 baytlık bloğu çıkararak görüntüyü "dönüştürmektir".

coLinux'un yerel grafik donanımına erişimi olmadığından, X Penceresi veya X Sunucuları doğrudan coLinux altında çalışmayacaktır, ancak biri yükleyebilir. Windows altında Cygwin/X veya Xming gibi bir X Sunucusu ve KDE veya GNOME ve hemen hemen tüm diğer Linux uygulamalarını ve dağıtımlarını kullanın. Bu sorunların tümü, Ubuntu tabanlı andLinux veya Slackware tabanlı TopologiLinux gibi coLinux tabanlı dağıtımlar kullanılarak giderilir.

Emüle edilmiş donanım

Sınırlamalar

  • Henüz 64 bit Windows veya Linux'u desteklememektedir (veya 4 GB'den fazla bellek kullanmamaktadır), ancak topluluk tarafından bir bağlantı noktası geliştirme aşamasındadır.[9] Bir sponsor limanı tamamlamaya istekliydi, ancak iş iptal edildi.[10]
  • Çoklu işlemci (SMP) desteği yok. Linux uygulamaları ve temel alınan çekirdek yalnızca bir CPU kullanabilir.[11]

Ayrıca bakınız

  • Win32-loader
  • Platform sanallaştırma
  • Platform sanallaştırma yazılımının karşılaştırılması
  • Cygwin
  • MSYS
  • Wubi (kurucu)
  • Longene
  • Chroot
  • Windows Subsystem for Linux

Kaynakça

  1. ^ "Arşivlenmiş kopya". 13 Mayıs 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mayıs 2023. 
  2. ^ "coLinux main website". 19 Mayıs 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Nisan 2004. 
  3. ^ "coLinux main page". 4 Aralık 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Nisan 2004. 
  4. ^ "Open source contributions | Dan Aloni". blog.aloni.org. 30 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Ocak 2022. 
  5. ^ "Cooperative Linux Active Development Team Members". www.colinux.org. 19 Şubat 2004 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Ocak 2022. 
  6. ^ "Dan Aloni announces Cooperative Linux". 27 Ekim 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Eylül 2022. 
  7. ^ "Dan Aloni paper presented July 2004 at Linux Symposium" (PDF). 30 Eylül 2018 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 30 Mart 2008. 
  8. ^ Aloni, Dan (17 Kasım 2021), da-x/colinux, 8 Ocak 2022 tarihinde kaynağından arşivlendi, erişim tarihi: 8 Ocak 2022 
  9. ^ "64 bit development information and resources". 20 Eylül 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Eylül 2022. 
  10. ^ "Status of sponsored 64 bit port". 1 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Kasım 2017. 
  11. ^ "coLinux FAQ". 20 Eylül 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Eylül 2022. 

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Linux</span> Bir işletim sistemi çekirdeği

Linux ; Linux çekirdeğine dayalı, açık kaynak kodlu, Unix benzeri bir işletim sistemi ailesidir. GNU Genel Kamu Lisansı versiyon 2 ile sunulan ve Linux Vakfı çatısı altında geliştirilen bir özgür yazılım projesidir. Linux ismi ilk geliştiricisi olan Linus Torvalds tarafından 1991 yılında verilmiştir. Günümüzde süper bilgisayarlarda, akıllı cihazların ve internet altyapısında kullanılan cihazların işletim sistemlerinde yaygın olarak kullanılmaktadır. Bunlardan en popüler olanı Google tarafından geliştirilen Android işletim sistemidir.

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">GNU</span> bilgisayar işletim sistemi

GNU; çekirdeği, sistem araçlarını, açıcılarını, kütüphanelerini ve son kullanıcı yazılımlarını içeren, GNU Tasarısı kapsamında geliştirilen bir işletim sistemidir. İsminin açılımı "GNU's Not Unix" dir. Bu ismi almasındaki sebep de tasarımının Unix'e benzerken kendisinin özgür yazılım olması ve herhangi bir UNIX kodunu içermemesidir.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

<span class="mw-page-title-main">Linus Torvalds</span>

Linus Benedict Torvalds Finlandiya asıllı Amerikalı bir bilgisayar bilimci ve yazılım mühendisidir. Linux işletim sistemi çekirdeğinin geliştiricisi ve proje yöneticisi olup, ABD'de yaşamaktadır. Transmeta'daki görevinden ayrıldığından beri OSDL'de tam zamanlı olarak Linux çekirdeği üzerinde çalışmaktadır. Helsinki Üniversitesi'nde bilgisayar bilimleri bölümünden mezun olmuştur.

<span class="mw-page-title-main">PowerPC</span>

PowerPC, AIM olarak bilinen Apple-IBM-Motorola ittifakının 1991'de geliştirdiği bir RISC mikroişlemcisidir. Genel olarak kişisel bilgisayarlar içindir. PowerPC merkezi işlem birimleri (CPU) gömülü (embedded) ve yüksek performans işlemcileri olduğu için popüler olmuştur. PowerPC 1990'da AIM' in ve PReP'in temel taşı oldu, fakat mimari Apple'ın Macintosh'unun 1994–2006 modellerinde daha başarılı bulundu.

Akıllı telefon, cep telefonunun sağladığı klasik özelliklere, bilgisayar dünyasının bir ürünü olan PDA’lerin özelliklerinin de eklenmesiyle tasarlanan gelişmiş mobil iletişim cihazıdır. Akıllı telefonlarda mobil işletim sistemleri bulunur bu sayede birçok farklı amaç için daha aktif bir şekilde kullanılabilir ve neredeyse her iş için bir uygulama bulunabilir.

<span class="mw-page-title-main">Sanal makine</span>

Sanal makine, bilgisayar biliminde programları gerçek bir bilgisayar sistemindeki gibi çalıştıran mekanizmaların yazılım uyarlamasıdır. Sanal Makine, işletim sistemi ile bilgisayar platformu arasında bir sanal ortam yaratır ve bu sanal ortam üzerinde yazılımların çalıştırabilmesine imkân verir.

<span class="mw-page-title-main">Çekirdek (bilgisayar bilimi)</span>

İşletim sistemi çekirdeği, kısaca çekirdek (kernel), işletim sistemindeki her şeyin üzerinde denetimi olan merkezi bileşenidir. Uygulamalar ve donanım seviyesindeki bilgi işlemleri arasında bir köprü görevi görür. Çekirdeğin görevleri sistemin kaynaklarını yönetmeyi de kapsamaktadır. Genellikle çekirdek, işletim sisteminin temel bir elemanı olarak, yazılımın fonksiyonunu yerine getirebilmesi için kontrol etmesi gereken kaynaklar için düşük seviye soyutlama katmanı sağlayabilir. İşletim sistemi görevleri, tasarımları ve uygulanmalarına göre farklı çekirdekler tarafından farklı şekillerde yapılır. Sistem açılırken belleğe yüklenir ve sistem kapatılıncaya kadar ana bellekte kalır.

Bir hiper yönetici veya sanal makine monitörü (VMM), sanal makineleri oluşturan ve çalıştıran bilgisayar yazılımı, bellenim veya donanımdır. Bir hipervizörün bir veya daha fazla sanal makineyi çalıştırdığı bir bilgisayara ana makine adı verilir ve her sanal makineye konuk makinesi adı verilir. Hiper yönetici, konuk işletim sistemlerini sanal işletim platformuyla sunar ve konuk işletim sistemlerinin yürütülmesini yönetir. Çeşitli işletim sistemlerinin birden fazla örneği sanallaştırılmış donanım kaynaklarını paylaşabilir: örneğin, Linux, Windows ve macOS örneklerinin tümü tek bir fiziksel x86 makinede çalışabilir. Konuk işletim sistemleri aynı çekirdeğe sahip farklı Linux dağıtımları gibi kullanıcı alanında farklılık gösterebilse de, bu, tüm örneklerin tek bir çekirdeği paylaşması gereken işletim sistemi düzeyinde sanallaştırma ile çelişir.

<span class="mw-page-title-main">Hyper-V</span>

Hyper-V, Microsoft Hyper-V, Viridian kod adındaki ve önceleri Windows Sunucu Sanallaştırma olarak bilinen, x64 bilgisayarlar için hypervisor tabanlı bir sanallaştırma sistemidir. Birden fazla sunucu rolünü tek bir fiziksel ana makinede çalışan ayrı sanal makineler olarak birleştirerek sunucu donanımı yatırımlarını iyileştirmek için bir araç sağlar. Hyper-V ayrıca, Windows haricinde Linux gibi işletim sistemleri de dahil olmak üzere birden fazla işletim sistemini verimli bir şekilde tek bir sunucuda çalıştırmak ve 64-bit bilgi işlemin gücünden faydalanmak için de kullanılabilir.Windows Server 2008'in belirli x64 sürümleriyle birlikte Hyper-V'nin bir betası sevk edilmiş ve kesinleşmiş sürüm 26 Haziran 2008'de piyasaya çıkmıştır. Yeni çıkacak olan Windows Server 2012® Hyper-V® ile de birden fazla işletim sisteminin paralel olarak aynı sunucu üzerinde çalıştırılmasını sağlamaktadır.

Sanallaştırma bilgisayar kaynaklarının kullanıcılardan soyutlanması işlemine verilen isimdir. Bunu yapmak için kullanılan metodlar bilgisayar kaynaklarının paylaştırılmasını veya birleştirilmesini sağlar. Sanallaştırmanın ilk hedefi kullanıcıya bir soyutlama tabakası sunarak kullanıcıyı kaynaklardan soyutlamak. Böylece kullanıcı ve kaynaklar arasına bir mantıki katman eklenmiş oluyor. Bir hiper yönetici veya sanal makine monitörü (VMM), sanal makineleri oluşturan ve çalıştıran bilgisayar yazılımı, bellenim veya donanımdır. Bir hipervizörün bir veya daha fazla sanal makineyi çalıştırdığı bir bilgisayara ana makine adı verilir ve her sanal makineye konuk makinesi adı verilir. Hiper yönetici, konuk işletim sistemlerini sanal bir işletim platformuyla sunar ve konuk işletim sistemlerinin yürütülmesini yönetir. Çeşitli işletim sistemlerine sahip birden fazla aygıt, sanallaştırılmış donanım kaynaklarını paylaşabilir. Örneğin; Linux, Windows ve macOS işletim sistemlerinin tümü, tek bir fiziksel x86 makinede çalışabilir. Konuk işletim sistemleri aynı çekirdeğe sahip farklı Linux dağıtımları gibi kullanıcı alanında farklılık gösterebilse de, bu, tüm örneklerin tek bir çekirdeği paylaşması gereken işletim sistemi düzeyinde sanallaştırma ile çelişir.

<span class="mw-page-title-main">Windows NT mimarisi</span>

Microsoft tarafından üretilen ve satılan bir işletim sistemi satırı olan Windows NT'nin mimarisi, kullanıcı modu ve çekirdek modu olmak üzere iki ana bileşenden oluşan katmanlı bir tasarımdır. Tek işlemcili ve simetrik çok işlemcili (SMP) tabanlı bilgisayarlarla çalışmak üzere tasarlanmış, önleyici, yeniden gelen bir işletim sistemidir. Giriş/çıkış isteklerini işlemek için, I / O istek paketlerini (IRP'ler) ve zaman uyumsuz G / Ç'yi kullanan paket odaklı G / Ç kullanırlar. Windows XP'den başlayarak, Microsoft Windows'un 64 bit sürümleri hazırlanmaya başladı; Bundan önce, bu işletim sistemleri yalnızca 32-bit sürümlerde mevcuttu.

Yazılım mühendisliğinde, bir uyumluluk katmanı, bir ana sistem üzerinde, eski veya yabancı bir sistem için yazılmış ikili dosyaların çalıştırılmasını sağlayan bir arabirimdir. Bu, yabancı sistem çağrılarını, yerel sistem çağrılarına çevirir. Yabancı sisteme yönelik bazı kütüphaneler, ana sistem üzerinde yabancı ikili dosyaları çalıştırmak için yeterli olacaktır genellikle. Donanım uyumluluğu katmanıysa donanım emülasyonu sağlayan araçlardan oluşur.

VMOS, konuk işletim sistemi olarak başka bir Android işletim sistemini çalıştırabilen, Android üzerinde bir sanal makine uygulamasıdır. Kullanıcılar isteğe bağlı olarak konuk Android sanal makinesini köklü bir Android işletim sistemi olarak çalıştırabilir. VMOS konuk Android işletim sisteminin Google Play Store ve diğer Google uygulamalarına erişimi vardır. VMOS, Android için Google Play hizmetlerini ve diğer Google uygulamalarını destekleyen ilk sanal makineydi.

<span class="mw-page-title-main">Android-x86</span>

Android-x86, Open Handset Alliance tarafından geliştirilen Android mobil işletim sisteminin RISC tabanlı ARM çipleri yerine x86 işlemcili cihazlarda çalışmasını sağlayan, resmi olmayan bir açık kaynaklı bir projedir.

<span class="mw-page-title-main">Multi-booting</span>

Çoklu önyükleme(multi-booting), tek bir bilgisayara birden çok işletim sistemi kurma ve hangisinin ön yükleneceğini(booting) seçebilme eylemidir. Çift önyükleme(dual-booting) terimi, özellikle iki işletim sisteminin ortak yapılandırmasını ifade eder. Çoklu önyükleme, özel bir ön yükleyici(booting) gerektirebilir.

<span class="mw-page-title-main">Çoklu ön yükleme</span>

Çoklu önyükleme (multi-booting), tek bir bilgisayara birden çok işletim sistemi kurma ve hangisinin ön yükleneceğini(booting) seçebilme eylemidir. Çift önyükleme (dual-booting) terimi, özellikle iki işletim sisteminin ortak yapılandırmasını ifade eder. Çoklu önyükleme, özel bir ön yükleyici gerektirebilir.

<span class="mw-page-title-main">Windows Subsystem for Linux</span> Linux için Windows Alt Sistemi

Windows Subsystem for Linux (WSL), Windows 10, Windows 11, Windows Server 2019 ve Windows Server 2022 üzerinde yerel olarak Linux ikili yürütülebilir dosyalarını çalıştırmak için kullanılan uyumluluk katmanıdır.

<span class="mw-page-title-main">LXC</span>

Linux Containers (LXC), tek bir Linux çekirdeği kullanan bir denetim ana bilgisayarında birden çok yalıtılmış Linux sistemini (kapsayıcısı) çalıştırmak için işletim sistemi düzeyinde bir sanallaştırma yöntemidir.