CDEmu
CDEmu, Linux işletim sisteminde optik sürücü ve diskleri emüle etmek için tasarlanmış bir yazılım paketidir. CDEmu aşağıdaki bileşenlerden oluşur:
Daha çok ilerlemeden önce kafanızda "bir geridöngü cihazı (loopback device) üzerinden ISO9660 dosya sistemini bağlayabilirken CDemu çekirdek modülünü neden kullanayım ki (örneğin mount -o loop film.iso /mnt/film şeklinde)?" gibi bir soru oluştuysa bunu projenin SSS bölümünden yararlanarak cevaplamaya çalışalım: Bu yöntem sadece ISO imajları için çalışır. Başka bir deyişle, sadece bir veri izi için. Pek çok bin/cue imajı birden çok parça içerir ve bunlar sıklıkla ham biçimdedir (bu, imajda CD'den gelen hata düzeltme kodlarının da içerildiği anlamına gelir). Bu tür görüntüleri doğrudan bağlayamazsınız.
CDEmu ilk olarak Robert Penz ve Justus Schwartz isimli iki arkadaş tarafından MPlayer için CUE/BIN dosyalarının kullanılmasını sağlayan yama olarak tasarlanır. Yama tamamlandıktan sonra basitliği fark edilir ve çekirdek için bir modül yazılır. Robert Penz, CDEmu'nun doğuşunu şöyle anlatıyor:
Haziran 2007 itibariyle CDEmu 0.8 ile ilgili geliştirmeler durdurulur ve bunun yerine bir yeniden yazım geliştirilir. Bu çalışmanın çoğu Rok Mandeljc tarafından yapılır. CDEmu'nun bu yeni sürümü, kullanıcı uzayında mümkün olduğunca çok şey yaparak emülasyona başka bir yaklaşım getirir.
2.0.0 sürümü itibarıyla CDEmu aşağıdaki imaj biçimlerini destekler:
CDEmu'nun CD-Text, ISRC, MCN ve ECC/EDC, DPM/RMPS gibi CD alt kanallar için desteği vardır. Sınırlı sayıda şifrelenmiş ve sıkıştırılmış imaj biçimi için de bir miktar destek sunar.
Geliştiriciler, olabildiğince çok sayıda önemli biçimi desteklemeye çalışıyor ve kullanıcıları bu amaçla yama göndermeye teşvik ediyorlar.
CDEmu'nun 3.2 sürümü 8 Temmuz 2018 tarihinde yayımlandı. cdemu-client, gCDEmu ve image-analyzer gibi Python tabanlı bileşenler resmi olarak Python 3'e aktarıldı. Ayrıca Blu-ray görüntüleri için geliştirilmiş destek ve Blu-ray diske kayıt emülasyonu için deneysel destek verilmeye başlandı.
Fedora RPM'leri için resmi COPR deposu ve Ubuntu paketleri için PPA, bu yeni sürüme göre güncellendi. Ayrıca, kod deposunun yansısı artık GitHub'da da bulunmaktadır.
- Sanal bir SCSI ana veri yolu bağdaştırıcısı gerçekleyen çekirdek modülü,
- Optik disk imajlarını yorumlamak için bir yazılım kütüphanesi olan libmirage,
- Bir SCSI optik sürücü ve diskin işlevselliğini emüle eden bir artalan süreci,
- Emülatörü denetlemek için terminal tabanlı ve GTK ile yazılmış GKA istemcileri.
Daha çok ilerlemeden önce kafanızda "bir geridöngü cihazı (loopback device) üzerinden ISO9660 dosya sistemini bağlayabilirken CDemu çekirdek modülünü neden kullanayım ki (örneğin mount -o loop film.iso /mnt/film şeklinde)?" gibi bir soru oluştuysa bunu projenin SSS bölümünden yararlanarak cevaplamaya çalışalım: Bu yöntem sadece ISO imajları için çalışır. Başka bir deyişle, sadece bir veri izi için. Pek çok bin/cue imajı birden çok parça içerir ve bunlar sıklıkla ham biçimdedir (bu, imajda CD'den gelen hata düzeltme kodlarının da içerildiği anlamına gelir). Bu tür görüntüleri doğrudan bağlayamazsınız.
CDEmu ilk olarak Robert Penz ve Justus Schwartz isimli iki arkadaş tarafından MPlayer için CUE/BIN dosyalarının kullanılmasını sağlayan yama olarak tasarlanır. Yama tamamlandıktan sonra basitliği fark edilir ve çekirdek için bir modül yazılır. Robert Penz, CDEmu'nun doğuşunu şöyle anlatıyor:
Her şey şöyle başladı: Arkadaşlarımdan içinde bin/cue dosyaları biçiminde bazı filmler olan bir firewire disk aldım. Bana, bunları izleyebilmem için CD'ye yakmam veya Windows'ta Daemon Tools kullanmam gerektiğini söylediler. Bu benim için çok fazlaydı, sadece bir film izlemek için Windows'u açmak mı? Bu yüzden arkadaşım Justus Schwartz ve ben, favori video oynatıcımız MPlayer için bir yama yapmaya karar verdik.
Bir geceden sonra olabilirliğini gördük; iki hafta sonraysa elimizde iyi bir yamamız vardı ve bunu gönderdik. Yama, MPlayer ekibi tarafından kabul edildi ve 0.9rc3 sürümünden başlayarak yamamız dahil edildi. Sözdizimi şöyledir:
$ mplayer cue://<cue file>[:parça] [seçenekler]
Bunu yaptıktan sonra, bunun o kadar da zor olmadığını düşündüm, bu yüzden Linux için Daemon Tools gibi bir şey yapmaya karar verdim. Ve böylece ilk çekirdek modülümü yazmaya başladım ve bir hafta sonra çalışır hale geldi; bazı hata düzeltmeleri sonrasında herkese açık ilk sürümü hazırdı.İlk başta CDEmu, Virtual CD olarak isimlendirilir, ancak bu isim daha önce ticari marka haline getirildiği için ticari marka sahipleri başka bir isim kullanılmasını ister.
Haziran 2007 itibariyle CDEmu 0.8 ile ilgili geliştirmeler durdurulur ve bunun yerine bir yeniden yazım geliştirilir. Bu çalışmanın çoğu Rok Mandeljc tarafından yapılır. CDEmu'nun bu yeni sürümü, kullanıcı uzayında mümkün olduğunca çok şey yaparak emülasyona başka bir yaklaşım getirir.
2.0.0 sürümü itibarıyla CDEmu aşağıdaki imaj biçimlerini destekler:
- .mds ve .mdx biçimi
- .dmg ve .cdr biçimi
- Blindwrite .b5t/.b6t biçimi
- DiscJuggler'in .cdi biçimi
- Easy CD Creator .cif biçimi
- Roxio/WinOnCD .c2d biçimi
- Error Code Modeller .ecm taşıyıcı biçimi
- gBurner .gbi biçimi
- .iso biçimi ve sıkıştırılmış formları .cso ve .isz
- .nrg biçimi
- PowerISO .daa biçimi
- .udf biçimi
- Ham imajlar (.img, .bin, .ccd, .cue, .sub ve .toc)
- GZip ve Xz arşivleri
CDEmu'nun CD-Text, ISRC, MCN ve ECC/EDC, DPM/RMPS gibi CD alt kanallar için desteği vardır. Sınırlı sayıda şifrelenmiş ve sıkıştırılmış imaj biçimi için de bir miktar destek sunar.
Geliştiriciler, olabildiğince çok sayıda önemli biçimi desteklemeye çalışıyor ve kullanıcıları bu amaçla yama göndermeye teşvik ediyorlar.
CDEmu'nun 3.2 sürümü 8 Temmuz 2018 tarihinde yayımlandı. cdemu-client, gCDEmu ve image-analyzer gibi Python tabanlı bileşenler resmi olarak Python 3'e aktarıldı. Ayrıca Blu-ray görüntüleri için geliştirilmiş destek ve Blu-ray diske kayıt emülasyonu için deneysel destek verilmeye başlandı.
Fedora RPM'leri için resmi COPR deposu ve Ubuntu paketleri için PPA, bu yeni sürüme göre güncellendi. Ayrıca, kod deposunun yansısı artık GitHub'da da bulunmaktadır.
VHBA modülü
VHBA modülü, kullanıcı uzayı artalan süreci ve Linux çekirdeği arasındaki bağlantı olan bir sanal (SCSI) HBA (veri yolu bağdaştırıcısı) sağlar.
Adın "kullanıcı uzayı" bölümünden dolayı bazılarının bekleyebileceğinin tersine, kullanıcı uzayı CDEmu hala orijinal CDEmu gibi bir çekirdek modülüne ihtiyaç duyar. Fark, kullanıcı uzayı CDEmu'nun tüm işlemleri (yani dosya okuma, sahte veri üretimi, vb.) kullanıcı uzayında yapmasıdır.
Çekirdek modülü, çekirdekte cihaz emülasyonunu ele alır; sanal aygıtları uygun sürücülerle kaydeder ve ilgili aygıt düğümlerini oluşturur. Ayrıca, kullanıcı uzayıyla iletişim için kullanılan özel bir karakter aygıtı oluşturur.
Sanal bir cihaza erişildiğinden, aslında SCSI komutları olan talepler, çekirdek tarafından üretilir. Bunlar, yukarıda bahsedilen karakter aygıtı aracılığıyla kullanıcı uzayı artalan sürecine geçirilir. İsteği işledikten sonra artalan süreci, karşılık gelen veriyi ve durumu çekirdeğe geri gönderir ve böylece isteği tamamlar.
Tüm süreç, gerçek bir aygıta erişmeye çok benzer, ancak istekler, donanım yerine kullanıcı uzayı artalan sürecine aktarılır.
Yeni imaj biçimi ayrıştırıcılarının veya veri dosyası erişim parçalarının kolayca eklenmesini sağlayan eklenti tabanlı bir sistem kullanır. Hata ayıklama izlerinin ayrıntı seviyesi, özel hata ayıklama bağlam nesneleri kullanılarak anında ayarlanabilir. Bu sayede, uygulamanın yeniden başlatılmasına gerek kalmadan izlerin miktarı ayarlanabilir.
Artalan süreci, asıl sanal cihazı gerçekler; Her cihaz için bir örnek çekirdek modülü tarafından kaydedilir. İmaj erişimi (ör. sektör okuması) için libMirage'ı kullanır.
C dilinde yazılmış ve GLib'e (ve dolayısıyla GObjects'e) dayalı olan artalan süreci, D-BUS aracılığıyla kontrol edilir ve farklı dillerde yazılmış farklı istemcilere izin verir.
Adın "kullanıcı uzayı" bölümünden dolayı bazılarının bekleyebileceğinin tersine, kullanıcı uzayı CDEmu hala orijinal CDEmu gibi bir çekirdek modülüne ihtiyaç duyar. Fark, kullanıcı uzayı CDEmu'nun tüm işlemleri (yani dosya okuma, sahte veri üretimi, vb.) kullanıcı uzayında yapmasıdır.
Çekirdek modülü, çekirdekte cihaz emülasyonunu ele alır; sanal aygıtları uygun sürücülerle kaydeder ve ilgili aygıt düğümlerini oluşturur. Ayrıca, kullanıcı uzayıyla iletişim için kullanılan özel bir karakter aygıtı oluşturur.
Sanal bir cihaza erişildiğinden, aslında SCSI komutları olan talepler, çekirdek tarafından üretilir. Bunlar, yukarıda bahsedilen karakter aygıtı aracılığıyla kullanıcı uzayı artalan sürecine geçirilir. İsteği işledikten sonra artalan süreci, karşılık gelen veriyi ve durumu çekirdeğe geri gönderir ve böylece isteği tamamlar.
Tüm süreç, gerçek bir aygıta erişmeye çok benzer, ancak istekler, donanım yerine kullanıcı uzayı artalan sürecine aktarılır.
libMirage Kütüphanesi
libMirage, bir CD-ROM imajı erişim kütüphanesidir. C dilinde yazılmıştır ve GLib'e dayanmaktadır. Kütüphanenin amacı, çeşitli imaj biçimlerinde depolanan verilere aynı şekilde erişim sağlamaktır.Yeni imaj biçimi ayrıştırıcılarının veya veri dosyası erişim parçalarının kolayca eklenmesini sağlayan eklenti tabanlı bir sistem kullanır. Hata ayıklama izlerinin ayrıntı seviyesi, özel hata ayıklama bağlam nesneleri kullanılarak anında ayarlanabilir. Bu sayede, uygulamanın yeniden başlatılmasına gerek kalmadan izlerin miktarı ayarlanabilir.
CDEmu Artalan Süreci
CDEmu artalan süreci, CDEmu paketinin kullanıcı uzayı artalan süreci parçasıdır. Çekirdek modülünden SCSI komutlarını alır ve bunları işler, istenen veriyi de çekirdeğe iletir.Artalan süreci, asıl sanal cihazı gerçekler; Her cihaz için bir örnek çekirdek modülü tarafından kaydedilir. İmaj erişimi (ör. sektör okuması) için libMirage'ı kullanır.
C dilinde yazılmış ve GLib'e (ve dolayısıyla GObjects'e) dayalı olan artalan süreci, D-BUS aracılığıyla kontrol edilir ve farklı dillerde yazılmış farklı istemcilere izin verir.
Image Analyzer
Image Analyzer, libMirage tarafından oluşturulan disk imajının ağaç yapısını görüntüleyen basit bir Gtk+ uygulamasıdır.
LibMirage UPA'sının kullanımının bir gösterimi olarak tasarlanmıştır daha çok, ancak bir imajın libMirage tarafından doğru şekilde işlendiğini doğrulamak için de kullanılabilir.
CDEmu Komut Satırı İstemcisi
CDEmu client, CDEmu artalan sürecini kontrol etmek için basit bir komut satırı istemcisidir.
CDEmu artalan sürecini kontrol etmek, cihazların bağlanması ve çıkarılması, cihazların durumunun görüntülenmesi ve cihazların hata ayıklama maskelerinin alınması ve ayarlanması gibi önemli görevlerin yerine getirilmesini sağlar.
gCDEmu GTK İstemcisi
gCDEmu, CDEmu artalan sürecini kontrol etmek için bir GTK uygulamasıdır.
CDEmu artalan sürecini kontrol etmek, cihazı bağlama ve ayırma, aygıtların durumunu görüntüleme, aygıtların hata ayıklama maskelerini alma ve ayarlama gibi önemli görevlerin gerçekleştirilmesini sağlayan bir grafik arabirim sağlar.
Ayrıca uygulama, CDEmu artalan süreci tarafından yayılan sinyalleri dinler ve libnotify yoluyla bildirimler sağlar.
KDE CDEmu Manager
KDE CDEmu Manager, CDEmu için resmi olmayan basit bir önyüzdür.
Sanal sürücülere genel bir bakış sunan ve imajların bağlanmasını ve ayrılmasını sağlayan küçük bir yönetici penceresi sağlar.
Ayrıca, imajların doğrudan Dolphin'den bağlanması için bir servis menüsü de içerir. İmajlar, Dolphin veya Aygıt Bildiricisi aracılığıyla herhangi başka bir ortam gibi ayrılabilir.
Sonuç
İmaj dosyaları son kullanıcıların büyük çoğunluğu tarafından ve sıklıkla karşılaşılan dosyalar değil. Bununla birlikte nadir de olsa karşılaşılsa bir son kullanıcı terminale ihtiyaç duymadan ve bazen başarısızlıkla sonuçlanabilecek arşiv olarak açmaya uğraşmadan sistemine bağlayabilmeli bu imaj dosyalarını.
CDEmu, son kullanıcıya bu kolaylığı sağlayan çözümlerden biri ve benim bugünkü kısa araştırmam sonucunda görebildiğim kadarıyla en erişilebilir olanı.
Umarım CDEmu, şu ankinden de daha az uğraş gerektirecek şekilde tüm Linux kullanıcılarının elinin altında olur ileride.
Yorumlar
Yorum Gönder
sen de yaz yaz yaz buraya yaz bütün sözlerini