LTOOLS – Windows 9x/ME ve Windows NT/2000/XP dan Linux Dosyalara Erişim

Werner Zimmermann tarafından

MTools Linux altında olduğu gibi LTOOLS Windows altında benzer bir işlevsellik sağlamak: Onlar “düşman” dosya sistemi üzerinde dosyalarınıza erişmek sağlar.


Komut satırından LTOOLS kullanma

LTOOLS kalbinde DOS veya Windows 9x/ME veya Windows NT/2000/XP bir DOS-Pencere çağrılabilir komut satırı programları bir dizi vardır. Bu iyi bilinen LINUX komutları ‘ls’, ‘cp’, ‘rm’, ‘chmod’, ‘chown’ ve ‘ln’ ile aynı işlevselliği sağlar. Böylece, DOS/Windows altında yapabilirsiniz

  • Liste Linux dosya ve dizinleri (komut: ldir),
  • Windows ve tersi Linux gelen kopya dosyaları (komutlar: lread, lwrite),
  • Silebilir veya Linux dosyaları yeniden adlandırmak (komutlar: ldel, lren),
  • : (NAS komutu) sembolik bağlantıları oluşturmak
  • : (Lmkdir komutu) yeni Linux dizinleri oluşturmak
  • : (Lchange komutu) Linux dosyanın erişim hakları ve sahibi değiştirmek
  • : (Lcd komutu) Linux varsayılan dizini değiştirmek
  • Linux varsayılan sürücü (komut: ldrive) ayarlayabilir ve
  • (: Ldir -part komutu) sizin sabitdiskinizdeki kurulumunu göstermektedir.

Birçok UNIX araçları ile olduğu gibi, bu işlevler komut satırı parametrelerinin bir paket ile çağrılan bir tek yürütülebilir, dahildir. Eğer hatırlamak ve tüm bu parametreleri yazmanıza gerek kalmaması için hayatınızı kolaylaştırmak için, toplu dosyaları (kabuk komut dosyaları) bir dizi sağlanmaktadır.

Bu bölümü montaj olmadan başka harddisk üzerinde bölme bir dosyaya erişmek istediğinizde, Solaris altında ve hatta Linux altında bunları kullanmak, böylece Ek LTOOLS bir Unix/Linux sürümü vardır.

LTOOLgui – LTOOLS için bir Java GUI

Komut satırı programları eski moda! Nerede LTOOLS grafik kullanıcı arayüzü? Önemli değil: Kullanım LTOOLgui. JDK 2’nin Salıncak kütüphanesini kullanarak Java ile yazılmış LTOOLgui, kullanıcı arayüzü gibi Windows Explorer (Şek. 1) sağlar. İki alt pencere LTOOLgui ise DOS/Windows ve Linux dizin ağaçları gösterir. Gezinme zamanki nokta ve tıkla eylemleri yapılabilir. Linux veya tam tersi Windows’un kopyalama dosyaları kopyala-yapıştır yaparak veya sürükle ve bırak yöntemiyle yapılabilir. Farenin sağ tuşunu tıklamak görüntülemek ve dosya erişim hakları, GID veya UID gibi niteliklerini değiştirmek için bir iletişim kutusunu açar. Bir dosya üzerinde çift tıklayarak bir Windows çalıştırılabilir ise, bunu başlatmak ya da uygulamayı ilişkili ile açılacak. Bunların kayıtlı Windows uygulaması varsa, bu bile, Linux dosyalarla çalışır.

BTW: Ayrıca Linux altında bir dosya yöneticisi olarak LTOOLgui kullanabilirsiniz. LTOOLS komut satırı programları da bir Linux sürümü geldikçe, böylece onları montaj olmadan diskler dosyaları erişebilir.

Java özellikle sadece şaka … düşük seviyeli harddisk erişim için uygundur, çünkü yazar, LTOOLgui için Java seçti! Hayır, elbette, bu hiç de Java mümkün değildir. doğrudan donanım erişmek istiyorsanız, C ++ kodu ve JNI’yı (Yerli Arayüzü Java) kullanmak zorunda. JNI’yı yalnızca Windows 9x altında, 32 bit kodu için çalışır Ancak/ME bu ’16bit thunking için 32bit’ (aşağıya bakınız) kullanmak anlamına gelecektir. Yazar, Microsoft’un MASM kodu ile Sun’ın Java birleştirmek fikri gibi değildi, o başka bir yaklaşım aldı. O sadece tanınmış Stdin/stdout- arayüzü aracılığıyla Java dan deniyor olsun LTOOLS komut satırı programı kullanır. Java tarafı için Yani, donanım erişimi basit akışı bazlı dosyayı G/Ç anlamına gelir.

1:. JAVA TABANLI LTOOLGUI GRAFIK KULLANICI ARAYÜZÜ

Internet Üzerinden Erişimi Dosya?

Hiç şüphe yok ki, sanat programının herhangi devlet İnternet farkında olmalı! Eğer uzak bir bilgisayarda LREADjav çalıştırmak ve LTOOLgui en Bağlan düğmesi ile kendisine bağlanan takdirde yerel sanki Eh, bu uzak sunucuda Linux dosyaları erişebilir. LREADjav LTOOLS komut satırı programı çağrılarına TCP/IP üzerinden LTOOLgui tarafından verilen talep tercüme basit sunucu cinini, ve (Şek. 2) LTOOLgui için komut satırı programları çıkışı geri TCP/IP yoluyla gönderir. Tabii ki, sadece görünüm dizin listeleri can ancak tüm uzaktan, dosya yükleme ve indirme dahil, lokal yapabileceklerini yapabilirsiniz. uzak makine Unix/Linux veya Windows çalıştırabilir. LREADjav güvenlik sorunlarını oluşturabilecek çünkü Günümüzde bu, daha ciddi bir uygulama daha bir oyuncak gibi. Varsayılan konfigürasyonda, sadece ‘localhost’ den kullanılabilir, ancak 3 farklı uzak istemciler bağlantılara izin vermek için yapılandırılabilir. IP adresi yalnızca, hiçbir şifre koruması ya da benzeri yoktur aracılığıyla Ama tanımlanır. Bir kullanıcı bunun için ciddi bir uygulama alanına sahiptir Ancak, o kolayca giriş/şifre düzeni uygulayabilirsiniz … Her şey açık kaynak bu!

2:. UZAKTAN ERIŞIM IÇIN LTOOLGUI

Hayır Java? Web Tarayıcısı kullanın!

Belki Java 2 yüklü yok. Önemli değil, sürece gibi bir web tarayıcısını var. Başlat ‘LREADsrv’ ve web tarayıcı ve URL türü olarak ‘http: // localhost’ (Şekil 3).. Şimdi Linux dizin listesi web tarayıcınızda grafik göstermek gerekir. LREADsrv basit CGI benzeri arayüzü ile HTTP istekleri aracılığıyla LTOOLS erişilebilir hale getirir ve HTML sayfalarına dinamik olarak çıkışını dönüştürür küçük yerel web sunucusu, (Şek. 4) ‘dir. Tabii ki, bu yerel erişim sağlar kalmaz, aynı zamanda internet üzerinden uzaktan erişim sağlar. Ancak, uzak kullanıcılar için LREADsrv LREADjav olarak güvenlik aynı düşük düzeyde var.

LREADsrv web tarayıcısı ile çalışan, sürükle-bırak ya da doğrudan kopyalama ve yapıştırma desteği yok mesela HTML formları, dayandığından, Java tabanlı GUI ile çalışan biraz daha az uygundur. Yine aynı özellikleri sunar.

3:. MICROSOFT’UN INTERNET EXPLORER ILE LINUX DOSYALARI KEŞFETMEK
4: LREADSRV – LINUX DOSYALARINA HTTP TABANLI ERIŞIM

LTOOLS Içselleri – Windows altında Accessings Harddisk

DOS / Windows kendisi yabancı dosya sistemleri için arayüzler desteklemediği gibi, LTOOLS diskte doğrudan “ham” veri bayt erişmek gerekir. LTOOLS ait iç elemanların anlamak için, aşağıdaki alanlarda temel bir anlayış olması gerekir:

  • Onlar ulaşılabilir nasıl Harddiskler bölümleri ve sektörlerde organize edilir ve nasıl yani “ham” bayt okuma veya diskten yazılabilir nasıl. Bu bilgiler /2,3/ ‘örneğin bulunabilir.
  • Linux’un Genişletilmiş 2 dosya sistemi nasıl organize edilmiştir. tüm düğüm, gruplar, bloklar, bitmap ve dizinleri şeylere iyi bir bakış /4/ içinde örneğin bulunabilir.

Bu, otomatik olarak birkaç C dosyaları içerir LTOOLS çekirdek, katmanlı bir yapıya ( Şekil 5), yol açar:

  • (Dosya Readdisk.c cinsinden) en düşük katman 1 fiziksel harddisk erişir. (Neredeyse tüm) DOS arasında farklılıklar ile bu katman fırsatlar, Windows 9x/ME, Windows NT/2000 doğrudan harddisk erişimini ilgili ve daha yüksek katmanlardan bunları gizlemek için çalışır/XP ve Linux/Unix. Yakında bu konuda daha fazla bilgi.
  • Katman Genişletilmiş 2 dosya sistemi düzenlenmiştir edildiği UNIX tipik düğüm, blok ve grup yapıları, 2 ilgilidir.
  • Katman 3 dosya sisteminin dizin yapısını yönetir.
  • (Main.c cinsinden) en yüksek katman 4 kullanıcı arabirimi sağlar ve komut satırı parametrelerini tarar.

harddisk’in bölüm tablosunu tarayarak, LTOOLS otomatik ilk olarak sabit disk üzerinde ilk Linux bölümünü bulmaya çalışın. Başka bir bölüm veya disk erişmek istiyorsanız, komut satırı parametresi ‘-s’, örneğin ‘s/dev/hdb2’ bunu belirtmeniz gerekir. Alternatif komutunun ‘ldrive’ üzerinden başka varsayılan sürücü ve bölüm belirleyebilir. Eğer, ‘ldir -part’ aramasını bölmeler, hangi öğrenmek için.

5:. KATMANLI BIR YAPISI LTOOLS

Hayat DOS eski güzel günlerde kolaydı. Okumak veya harddisk yazma erişimi düşük seviyesi için tek bir yol vardı: BIOS 13h /3/ ‘kesiyoruz. BIOS veri yapıları 1024 silindir, 63 kafaları ve 512 bayt 255 sektörler, yani 8GB sabit diskler sınırlı. Bu fonksiyon doğrudan birleştirici dili koduna gerek kalmadan kullanılabilir böylece çoğu C derleyicileri, adında bir işlevi biosdisk () sağladı. Daha büyük diskler ile uğraşmak için, birkaç yıl önce ‘genişletilmiş’ int 13h fonksiyonları tanıtıldı. BIOS sınırlamaların üstesinden gelmek için, bu işlevler, doğrusal adresleme şeması, mantıksal blok adresleri (LBA) yerine, eski silindir kafa kesimi (CHS) adresleme kullanın.

Bu hala en az okuma erişimi için Windows 9x/ME DOS penceresinden (Tablo 1) çalışır ve sürece program 16bit derleyici ile derlenmiş gibi. (LTOOLS Borland C, Microsoft Visual C derler Windows NT /2000/ XP sürümü kullanın Unix/Linux sürümü GNU C kullanır). Eğer düşük seviyeli yazma erişimi istiyorsanız, ‘hacim kilitleri’ /3/ gerekir. Bu mekanizma program doğrudan diski performans, Windows bitirdiniz kadar diske erişimini diğer programları engellemek, böylece işletim sistemi sürücüleri atlayarak yazar olduğunu, işletim sistemini bilgilendirir. Yine bu C derleyici’nın ioctl () işlevini kullanarak montaj programlama olmadan yapılabilir.

Bir 16bit Windows programı BIOS işlevleri sadece DPMI aracılığıyla çağrılabilir. En C Derleyiciler sarıcı işlevleri sağlamak olmadığı için, bu (inline) assembler gerektirecektir. Ancak, Win16 komut satırı programları hiç, bu yüzden endişelenmeyin izin vermez …

Windows NT/2000/XP kullanıcısı DOS kutusunda, BIOS int 13h kullanarak bir GPF’de (Genel Koruma Hatası) yol açacaktır. Güvenlik nedeniyle, Windows NT/2000/XP işletim sistemini atlayarak doğrudan harddisk erişime izin vermiyor. Ancak Microsoft, Unix/Linux altında yazacağımdan kadar basit bir çözüm sağlar:

     int disk_fd = open("/dev/hda1", O_RDWR);

Bu yazma çağırır yazmak için,) (okumak çağrı olurdu okumak, harddisk’in bölümü/dev/hda1 açacak (). Basit ve anlaşılır, değil mi? Eğer Wın32 API kullanıyorsanız Windows altında NT/2000/XP, /5/ fonksiyon CreateFile () yalnızca açık dosya, aynı zamanda disk bölümlerini oluşturmak ve izin vermez:

   HANDLE hPhysicalDrive = CreateFile("\\\\.\\PhysicalDrive0",
                                       GENERIC_READ | GENERIC_WRITE,
                                       FILE_SHARE_READ | FILE_SHARE_WRITE,
                                       0, OPEN_EXISTING, 0, 0 );

Okuma ve yazma disk kesimleri artık ReadFile () ve WriteFile yoluyla yapılabilir ().

Bir an için size Windows 9x/ME altında aynı Win32 işlevini kullanabileceği, düşünebilir. Eğer CreateFile () belgelerinde okumaya Ancak, bulacaksın:

Windows 95: This technique does not work for opening a logical drive. In
	Windows 95, specifying a string in this form causes CreateFile to return
	an error.

Windows 9x/ME Microsoft’un Win32 belgelerine altında VWIN32 sistemin VxD’lere (çekirdek sürücüleri) biri yoluyla BIOS Int 13 h aramaya önerir. Bunu yapmayı denerseniz, ancak, başarılı olmayacaktır. Microsoft’un Bilgi Bankası’ndaki sorun raporu Q137176, devletler bu – resmi Win32 belgelerine ne diyor rağmen – bu sadece disketler için değil, diskler için çalışır. Sorun raporunda da belirtildiği üzere, diskler için tek yol 16bit kodunda BIOS Int 16h aramak. 32bit programından 16bit kodu aramak için, Microsoft’un “16bit thunking için 32bit” … Bu yalnızca başka API olmadığını (diğer belgesiz özellikleri veya belgelenmiş böcek?) ihtiyaç Thunking aynı zamanda bir tanımından komut assembler üretir Microsoft’un Thunking derleyici gerektirir kodu. Bir 16bit ve 32bit nesne dosyası Microsoft’un montajcı MASM kullanılarak oluşturulan gerektiğini seçin. Bunlar bir 16bit ve 32bit DLL (dynamic link library) sonuçlanan yazmak zorunda C-kod bazı dozend hatları, ile bağlantılı olacak. Bu arada, Anladım … sadece bunun için Visual C++ 32bit gerekmez, ama aynı zamanda Microsoft’un C derleyicisi eski 16bit sürümü olması gerekir?, Tescilli olan geniş çapta kullanılan olmayan araçlar bir paket kullanarak, LTOOLS gibi bir Açık Kaynak yazılım aracı için iyi bir çözüm olmaz!

Özetlersek: DOS/Windows 9x/ME için ayrı sürümleri olmalı, Windows NT/2000/XP ve Linux/Unix. mümkün olduğunca kullanıcıdan bu gizlemek için LTOOLS otomatik çalışan ve uygun yürütülebilir çağıran işletim sistemi altında, dışarı bulmaya çalışır.

Tablo 1: Düşük seviyeli harddisk erişim

DOS altında Windows 9x ME/Altında Windows NT/2000/XP altında LINUX/Unix altında
  • BIOS Int 13h
    (8GB yukarıdaki diskler için BIOS Uzantıları gerekir)
  • DOS programları:
    DOS gibi ama hacim kilidi kullanmalıdır/yazma erişimi için kilidini
  • Win16 programları:
    DPMI üzerinden BIOS Int 13 h çağırmalıdır
  • Win32 programları:
    bir Win16 DLL 16 bit thunking için 32bit
  • DOS programları:
    izin verilmez
  • Win16 programları:
    izin verilmez
  • Win32 programları:
    CreateFile (), ReadFile () WriteFile ()
  • (Yazma) (okuma) (açık)

Güvenlik endişeleri?

Evet, belli etmek LTOOLS sahip güvenlik sorunlarını gündeme getirebilir uzanır. LINUX dosya sistemi dosyalara erişmek ve değiştirebilir, bunları çalıştırabilir Her kullanıcı, örneğin değişim dosya erişim hakları veya dosya sahipleri, döviz şifre dosyaları vb .. Ancak, bu çok basit bir diski editörü ile mümkündür. LTOOLS kullanırken Belki de, bundan biraz daha rahat. DOS veya Windows 9x / ME altında çalışan eğer Yine de sınırsız erişim, mümkündür. Windows NT / 2000 / XP altında LTOOLS kullanıcı doğrudan harddisk erişmek için yönetici haklarına sahip olması gerekir. çoğu standart tesislerdeki Unix / Linux altında da sadece sys yönetici -ham‖ disk aygıtlarına / dev / hda, / dev / hda1, vb erişim haklarına sahip ..

Alternatifler var mı?

LTOOLS DOS / Windows Linux dosyalara erişmek için tek çözüm değildir. Muhtemelen 1996 yılında geliştirilen Claus Tondering en Ext2tool / 6 / komut satırı araçları bir dizi, bu sorun için ilk çözüm oldu. Ancak, Ext2tool sadece okuma erişimi sınırlıdır ve Windows NT altında çalışmaz. Ext2tool dayanarak, Peter Joot 1997 yılında hala sadece / 7 / okumak sınırlı bir windows NT versiyonunu yazdı. Her iki program C yazılmıştır, kaynak kodları mevcuttur.

John Newbigin çok güzel bir GUI ile birlikte gelir ve Windows 9x ve Windows NT altında çalışan Explore2fs / 8 /, bize sağlar. onun okuma ve yazma erişimi sayesinde LTOOLgui aynı özellikleri sunar. BTW: o bile Borland Delphi altında thunking 16bit (yukarıya bakınız) Microsoft’un 32bit uygulamak başardı çünkü John büyük iş yaptı! Tüm Delphi programların Explore2fs bütünleştirir Windows’un içine ‘sorunsuz’ ama olmayan Windows işletim sistemleri için taşıma gibi zor olabilir.

Tarihi ve Geleceği

LTOOLS ilk sürümü Jason Hunter ve David Lutz Willamette Üniversitesi, Salem / Oregon (ABD) tarafından orijinal adı ‘lread’ başlığı altında oluşturuldu. Bu ilk sürüm Linux dizin listeleri göstermek ve DOS Linux dosyaları kopyalamak olabilir, DOS altında koştu ve birincil bölümleri üzerinde küçük IDE diskler ve LINUX’a sınırlıydı.

Yazar O zamandan beri, LTOOLS ME ve Windows NT / / 2000 / XP, ek yazma erişimi Windows 9x altında işletilen büyük diskler, erişim SCSI sürücüler, başa öğrendim 1996 yılında bakım ve daha da geliştirilmesi devraldı ve geri taşıdık edildi UNIX, onları Solaris ve Linux kendisi altında çalışmasını sağlamak için. Onlar tabanlı bir web tarayıcısı ve bir JAVA tabanlı grafik kullanıcı arayüzü vs vs .. Linux kullanıcıları bir sürü kaynak kodunda adında çoğu var test ve hata ayıklama yardımcı oldu. Teşekkür ederim.

Bu arada, LTOOLS ulaşmıştır versiyon v4.7 / 1 /, hatta belki de daha bu makale ne zaman yayınlanacak. ek özellikler yanında, böcek çok giderildi – ve büyük olasılıkla yenileri tanıtılmıştır. Yaygın bir sorun yıllar içinde kalmıştır: Kimse kalıcı işletim sistemi limitlerini isabet diski boyutları patladı harddisk teknolojisi, hızlı hız öngörmek yaptı. Windows NT 2GB, 4GB ve 8GB de var olan 2GB bölümleri, 8GB ve çeşitli problemlere de BIOS en limitli 512MB diskler Windows 3.x sorunları olan DOS’A’ın sorunları, hatırlıyor musunuz? Sadece bir an önce bu! Ve bu arada, hatta Linux onun sorunu var: çekirdekleri ise 2.3 öncesinde, hiçbir dosya en 32bit Unix sistemleri gibi imzalı 32bit okuma işaretçi ofset kullanan Linux gibi 2GB, () veya yazma () aşabilir (bu çekirdekte çözülecektir 2. 4) 64bit değerlerine uzaklıklar değişen, ama biz yukarıda Windows için tartışıldığı gibi aynı sorunlarla Linux artırabilen yukarı uyumluluğu koruyarak. Disk giriş için program standardizasyon her zaman diski geliştiricileri çok daha yavaş olduğunu, bu yüzden onlar işletim sistemi limitlerini aşmak için özel çözümler icat etti. Ve her zaman LTOOLS diğer birçok programcıları -ve – onunla uğraşmak zorunda kaldı … LTOOLS Yepyeni 64GB sürücüde sizin için işe yaramazsa Yani, kızma. O kadar basit hata ayıklamak yardımcı denemek ve onları daha da geliştirmek, Açık Kaynak var! Ve her zaman LTOOLS diğer birçok programcıları -ve – onunla uğraşmak zorunda kaldı … LTOOLS Yepyeni 64GB sürücüde sizin için işe yaramazsa Yani, kızma. O kadar basit hata ayıklamak yardımcı denemek ve onları daha da geliştirmek, Açık Kaynak var! Ve her zaman LTOOLS diğer birçok programcıları -ve – onunla uğraşmak zorunda kaldı … LTOOLS Yepyeni 64GB sürücüde sizin için işe yaramazsa Yani, kızma. O kadar basit hata ayıklamak yardımcı denemek ve onları daha da geliştirmek, Açık Kaynak var!

Eğer LTOOLS kullanırsanız Ve unutma,: Kendi risk yap! Linux Salt okuma erişimi kritik değildir. kullanıcı olarak ve sizin – – dosyaları silebilir veya Linux disk LTOOLS dosya özelliklerini değiştirmek için yazma erişimi Ancak, saçma bir sürü yapabilirsiniz. Yani her zaman bir yedeğini tutun!