LTOOLS - Pasiekite savo Linux failus iš Windows 9x/ME ir Windows NT/2000/XP

Werner Zimmermann


Linux Journal featuring LTOOLS.

Linux vartotojas žurnalas.

Linux bendruomenės.


LTOOLS pateikti pagal Windows panašų funkcionalumą MTOOLS daryti su Linux: Jie jums prieigą prie jūsų failus "priešiškos" failų sistemą.


Naudojant LTOOLS iš komandinės eilutės

Tuo LTOOLS centre yra komandinės eilutės programų rinkinys kuris gali būti vadinamas iš DOS arba DOS langas Windows 9x/ME arba Windows NT/2000/XP. Jie teikia tas pačias funkcijas kaip gerai žinomų Linux komandas "ls", "cp", "rm", "chmod", "chown" ir "ln". Taigi pagal DOS/Windows galite.

  • sąrašas Linux failų ir katalogų (komanda: ldir)
  • kopijuoti failus iš Linux į Windows ir atvirkščiai (komandas: lread, lwrite)
  • ištrinti ar pervadinti failus Linux (komandas: ldel, lren),
  • sukurti simbolines nuorodas (komanda: lln)
  • kurti naujus Linux katalogų (komanda: lmkdir)
  • keisti Linux failų prieigos teisių ir savininkas (komanda: lchange)
  • pakeisti Linux pagal nutylėjimą katalogas (komanda: lcd)
  • nustatyti Linux numatytąją diską (komanda: ldrive) ir
  • parodyti savo kietojo disko skirsnių setup (komanda: ldir -part).

Kaip ir daugelyje UNIX įrankių, šios funkcijos yra įtrauktos į vieną vykdomąjį, kuris yra vadinamas su komandinės eilutės parametrų paketą. Norėdami, kad jūsų gyvenimas būtų lengvesnis, iš paketinio (apvalkalo scenarijuose) rinkinys su sąlyga, kad jums nereikia prisiminti ir įveskite visus šiuos parametrus.

Be to yra Unix/Linux versija LTOOLS, kad jūs galite naudoti juos pagal Solaris ar net Linux, jei norite prieiti prie failo kito kietojo disko skaidinio be montavimo šį skirsnį.

LTOOLgui - Java GUI už LTOOLS

Komandinės eilutės programų yra senamadiškas! Kur yra LTOOLS grafinė vartotojo sąsaja? Na, ne problema: Naudokite LTOOLgui. LTOOLgui, parašyta "Java naudojant JDK 2" Supynės biblioteką, suteikia Windows Explorer kaip vartotojo sąsaja (1 pav.). Be dviejų sub-windows LTOOLgui rodo jūsų DOS/Windows ir Linux katalogų medžius. Navigacija galima padaryti įprastos taškas ir spustelėkite veiksmų. Failų kopijavimas iš Windows Linux ar atvirkščiai galima padaryti kopija ir įklijuoti arba drag-ir- lašas. Paspaudę dešinįjį pelės mygtuką bus atidaryti langą, kad galėtumėte peržiūrėti ir keisti failo atributus kaip prieigos teisių, GID ar UID. Dukart spragtelėjus ant failo pradės ją, jei ji yra Windows vykdomąjį arba atidarykite jį su tai susijęs taikymą. Tai net dirba su Linux failų, jei jie turi registruotą Windows.

BTW: Taip pat galite naudoti LTOOLgui kaip failų tvarkyklė pagal Linux. Kaip LTOOLS komandinės eilutės programų, taip pat atėjo į Linux versija, todėl jums gali pasiekti failus diskus, be jų montavimas.

Autorė pasirinko Java LTOOLgui, nes Java ypač tinka žemo lygio standusis diskas prieigos ... tik juokauju! Ne, žinoma, tai nėra įmanoma Java ne visiems. Jei norite prisijungti prie aparatūros tiesiogiai, turite naudoti C ++ kodą ir JNI (Java gimtoji sąsaja). Tačiau, kaip JNI veikia tik 32bit kodas pagal Windows 9x/ME tai reikštų naudoti "32bit į 16bit thunking" (žiūrėti žemiau). Kadangi autorius nepatiko idėja sujungti Sun Java su Microsoft MASM kodas, jis paėmė kitą metodą. Jis paprasčiausiai naudoja LTOOLS komandinės eilutės programa, kurią gauti vadinama iš Java per gerai žinomas stdin/stdout- sąsaja. Taigi Java pusės, aparatūros prieiga reiškia paprastą srauto failų įvesties/išvesties.

Pav. 1: Java pagrindu LTOOLgui grafinė vartotojo sąsaja

Failo prieigos per internetą?

Be abejo, bet koks meno programą valstybė turi būti interneto žinoti! Na, jei jums paleisti LREADjav nutolusiame kompiuteryje, ir jūs prisijungti prie jo per LTOOLgui anketa Prisijungti mygtuką, galite prieiti prie "Linux" failų šiame nuotolinio serverio, jei jie buvo vietos. LREADjav yra paprastas serverio demonas, kuris verčia prašymu, LTOOLgui išduotą per TCP/IP, į LTOOLS komandinės eilutės programų skambučius ir siunčia iš komandinės eilutės programų produkcija atgal per TCP/IP LTOOLgui (2 pav.). Žinoma, jūs galite ne tik peržiūrėti katalogas aukcionai, tačiau gali padaryti viską, nuotoliniu būdu, ką jūs galite padaryti lokaliai, įskaitant failo įkelti ir atsisiųsti. Nuotolinio mašina gali paleisti Unix/Linux ar Windows. Šiandien, tai yra daugiau kaip žaislas, nei rimtą paraišką, nes LREADjav gali kelti saugumo problemas. Į numatytąją konfigūraciją, jis gali būti naudojamas tik iš "localhost ', tačiau jis gali būti sukonfigūruotas taip, kad būtų galima sudaryti ryšį iš 3 įvairių nutolusių klientų. Bet jie yra identifikuojami per tik jų IP adresas, nėra slaptažodžio apsauga arba panašiai. Tačiau, jeigu vartotojas turi rimtą paraišką, kad jis gali lengvai įgyvendinti Įėjimas/slaptažodį schemą... Tai visi atviro kodo!


Pav. 2: LTOOLgui nuotolinei prieigai

Nėra Java? Naudokite jūsų naršyklėje!

Gal jūs neturite Java 2, įdiegta. Na, ne problema, kaip ilgai, kaip jūs turite interneto naršyklę. Start "LREADsrv" ir savo interneto naršyklę ir kaip URL tipo 'http://localhost' (pav. 3). Dabar jūsų Linux Katalogų sąrašo dydis turėtų parodyti grafiškai jūsų naršyklėje. LREADsrv yra maža vietos interneto serveryje, kuris per paprastą CGI kaip sąsaja daro LTOOLS prieinama per HTTP užklausų ir paverčia savo produkciją dinamiškai į HTML puslapius (pav. 4). Žinoma, tai ne tik teikti vietos prieigą, bet taip pat leidžia nuotolinę prieigą per internetą. Tačiau nutolusiems vartotojams LREADsrv tikrai turi tą patį mažą saugumo lygį, kaip LREADjav.

Kadangi LREADsrv remiasi HTML formas, kurios pvz nepalaiko drag-and-drop arba tiesiogiai kopijuoti ir įklijuoti, darbo su savo interneto naršyklėje yra šiek tiek mažiau patogu nei dirbant su "Java" pagrįsti GUI. Nepaisant to, jis suteikia tas pačias funkcijas.


Pav. 3: Exploring Linux failus su Microsoft Internet Explorer


Pav. 4: LREADsrv - HTTP pagrįsta prieiga prie "Linux" failų

LTOOLS vidinės - Accessings kietuoju pagal Windows

Kaip pati DOS/Windows nepalaiko sąsajas su užsienio failų sistemos, The LTOOLS turi pasiekti "žalio" duomenų baitų tiesiai ant disko. Norėdami suprasti LTOOLS vidinės, jums reikia turėti bendrą supratimą apie šias sritis:

  • Kaip Kietasis diskas organizuojamos pertvaros ir sektoriuose, ir kaip jie gali būti atvertas, t.y., kaip "žalio" baitai gali įrašyti ir nuskaityti iš disko. Ši informacija galima rasti pvz į /2, /.
  • Kaip Linux išplėstinė 2 failų sistema yra organizuota. Gera apžvalga apie visas inodes, Grupės, blokai, bitmapinį ir žinynai stuff galima rasti pvz į /4/.

Tai automatiškai veda prie sluoksniuotos architektūros LTOOLS branduolio (pav. 5), Kuri susideda iš kelių C failus:

  • Žemiausias sluoksnis 1 (failų Readdisk.c) fiziškai pasiekia standusis diskas. Šis sluoksnis susijęs su (beveik visi) skirtumai tarp DOS, "Windows 9x/ME Windows NT/2000/XP ir Linux/Unix dėl tiesioginio kietojo disko prieigą ir bando paslėpti juos nuo didesnių sluoksnių. Daugiau apie tai vėliau.
  • Sluoksnis 2 susijęs su UNIX tipiškas inode, blokuoti ir grupių struktūrų, į kurią organizavo išplėstinė 2 failų sistema.
  • Sluoksnis 3 valdo katalogų struktūrą failų sistemos.
  • Aukščiausias lygmuo 4 (iš main.c) suteikia vartotojo sąsają ir nuskaito komandų eilutės parametrų.

Skenuojant jūsų kietojo disko skirsnių lentelę, kad LTOOLS pabandykite rasti savo pirmąjį Linux skirsnį savo pirmojo kietojo disko automatiškai. Jei norite pasiekti kitą skaidinį arba diską, turite nurodyti jį komandinės eilutės parametras "-s", pvz "-s/dev/hdb2". Arba jums gali nustatyti kitą numatytąjį diską ir disko per komandą "ldrive". Norėdami sužinoti, kurios pertvaros turite, skambinkite "ldir -part".


Pav. 5: LTOOLS sluoksnių architektūra

Gyvenimas buvo lengva į senus gerus dienų DOS. Yra tik vienas būdas žemo lygio skaityti arba rašyti prieigą prie jūsų standusis diskas: BIOS nutraukti 13h /3/. BIOS duomenų struktūros ribotas kietus diskus 1024 cilindrai, 63 vadovų ir 255 sektoriuose 512 baitų, t.y. 8GB. Dauguma C kompiliatorius jeigu funkciją pavadintą biosdisk (), kad ši funkcija gali būti tiesiogiai naudojamas nereikia kodo Asemblerio kalba. Kad galėtų susidoroti su didesniais kietus diskus, prieš buvo įvesta keletą metų "pratęstas" int 13h funkcijos. Įveikti BIOS apribojimus, šios funkcijos naudoti tiesinę adresavimo schema, loginiai blokas adresus (LBA), o ne seną cilindro galvos sektorių (CHS) adresavimas.

Tai vis dar veikia Windows 9x/ME anketa DOS (1 lentelė), bent jau skaitymo prieigą ir tol, kol programa yra rengiami 16bit sudarytojas. (Į LTOOLS naudoti Borland C Windows NT/2000/XP "versija taip pat kaupia su Microsoft Visual C, Unix/Linux versija naudoja GNU C). Jei norite žemo lygio rašymą, jums reikia "tūris spynos" /3/. Šis mechanizmas informuoja operacinę sistemą, kad jūsų programa atlieka tiesioginę diską rašo aplenkiant operacinės sistemos tvarkykles, kad "Windows" gali programoms neleisti prieiti prie disko, kol baigsite. Vėlgi tai gali būti padaryta be surinkimo programavimo naudojant C kompiliatorius anketa ioctl() funkcija.

Be 16bit Windows programa BIOS funkcijos gali būti vadinamas tik per DPMI. Kadangi dauguma C kompiliatorius neteikia įvynioti funkcijas, tai reikalauti (inline) montuotojo. Tačiau Win16 neleidžia komandinės eilutės programų ne visi, todėl nesijaudinkite...

Windows NT/2000/XP anketa DOS lange, naudojant BIOS int 13h lems GPF (generalinis apsauga kaltės). Dėl saugumo priežasčių "Windows NT/2000/XP" neleidžia tiesiogiai kietojo disko prieigą aplenkiant operacinę sistemą. Tačiau "Microsoft" pateikia sprendimą, kuris yra beveik toks pat paprastas, kaip tai, ką būtų parašyti pagal Unix/Linux:

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

Tai atvertų jūsų kietojo disko skirsnių /dev/hda1, skaityti galite vadinčiau read(), norėdami parašyti jums skambinti write(). Paprastas ir nesudėtingas, ar ne? Pagal Windows NT/2000/XP ", jei jūs naudojate Win32 API /5/, funkcija CreateFile() ne tik leidžia sukurti ir atidaryti failus, bet taip pat disko skirsnius:

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

Skaitymo ir rašymo disko sektoriai dabar gali būti padaryta per ReadFile() ir WriteFile().

Akimirką jūs manote, kad galite naudoti tą patį Win32 funkciją, Windows 9x/ME. Tačiau, jei jūs skaitote, dėl kurios prašoma CreateFile() dokumentus, rasite:

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.

Pagal Windows 9x/ME Microsoft Win32 dokumentus rekomenduoja skambinti BIOS Int 13h per VWIN32, vienas iš sistemos VxDs (branduolio tvarkykles). Jei bandysite tai padaryti, tačiau jūs nepavyks. Problema ataskaita Q137176 Microsoft žinių bazės teigia, kad - nepaisant to, kas Oficialiai Win32 dokumentacija sako - tai dirbti tik diskelius, o ne kietus diskus. Kadangi problema ataskaitoje teigiama, už kietus diskus vienintelis būdas yra skambinti BIOS Int 16h į 16bit kodą. Skambinti 16bit kodą iš 32bit programos, jums reikia Microsoft "32bit į 16bit thunking"... Tai ne tik dar viena API (su kitais nelegalias funkcijų ar dokumentais klaidų?), Thunking taip pat reikalauja Microsoft thunking kompiliatorių, kuris iš raiškos scenarijų generuoja montuotojo kodą. Nuo kad 16bit ir 32bit objektas byla turi būti sukurta naudojant Microsoft montuotojo MASM. Tai bus susiję su kai kuriais dozend linijų C-kodas, kurį turi parašyti, todėl 16bit ir 32bit DLL (Dynamic Link Library). Beje, jūs turite ne tik 32bit Visual C++ už tai, bet jūs taip pat turi seną 16bit versiją Microsoft C kompiliatorius ... Supratai? Naudojant ryšulio patentuota, o ne plačiai naudojami įrankiai, nebūtų geras sprendimas atviro kodo programinės įrangos įrankis, kaip ir LTOOLS!

Apibendrinant: Turi būti atskiros versijos DOS/Windows 9x/ME, Windows NT/2000/XP ir Linux/Unix. Norėdami paslėpti šį iš vartotojo, kiek įmanoma, LTOOLS bando išsiaiškinti, pagal kurį operacinė sistema jis veikia ir automatiškai iškviečia atitinkamą vykdomąjį.

Lentelė 1: Žemas lygis standusis diskas prieiga

Pagal DOS Pagal Windows 9x/ME Pagal Windows NT/2000/XP Pagal LINUX/Unix
  • BIOS Int 13h
    (reikia BIOS plėtinius diskų virš 8GB)
  • DOS programos:
    kaip DOS, bet reikia naudoti garso užrakinti/atrakinti rašymo prieigą
  • Win16 programos:
    turi skambinti BIOS Int 13h per DPMI
  • Win32 programos:
    32bit į 16bit thunking prie Win16 DLL
  • DOS programos:
    neleidžiama
  • Win16 programos:
    neleidžiama
  • Win32 programos:
    CreateFile(), ReadFile(), WriteFile()
  • open(), read(), write()

Saugos problemų?

Taip, turintis LTOOLS į tam tikras pratęsti gali kelti saugumo problemas. Kiekvienas vartotojas, kuris gali paleisti juos, gali pasiekti ir modifikuoti failus Linux failų sistema, pvz Pakeisti failo prieigos teisės ar failų savininkai, valiutų slaptažodį failus ir tt.. Tačiau tai įmanoma su paprasta disko redaktorius, taip pat. Galbūt, tai tik šiek tiek daugiau patogūs, naudojant LTOOLS. Nepaisant to, neribotas ryšys yra įmanoma tik tada, kai veikia pagal DOS arba Windows 9x/ME. Pagal Windows NT/2000/XP LTOOLS vartotojas turi turėti administratoriaus teises ir atidarykite standusis diskas tiesiogiai. Pagal Unix/Linux daugelyje standartinių įrenginių, taip pat tik sis administratorius turi prieigos teises į 'žalioms' disko įrenginių, /dev/hda, /dev/hda1, ir tt..

Ar yra kokių nors alternatyvų?

LTOOLS nėra vienintelė išeitis susipažinimo Linux failus iš DOS / Windows. Tikriausiai Claus Tondering anketa Ext2tool /6/, iš komandinės eilutės įrankių rinkinys, sukurtas 1996 metais, buvo pirmasis šios problemos sprendimo. Tačiau Ext2tool apsiriboja tik skaityti prieigą ir neveikia su Windows NT. Remiantis Ext2tool, Petras Joot 1997 parašė Windows NT versija, dar apsiriboja tik skaityti /7/. Abi programos buvo parašyta C, šaltinis kodai yra.

Jonas Newbigin suteikia mums Explore2fs /8/, kuris ateina su labai gražus GUI ir veikia pagal Windows 9x ir Windows NT. Su savo skaityti ir rašyti prieigos ji suteikia tokias pačias funkcijas, kaip LTOOLgui. BTW: Jonas padarė didelį darbą, nes jis sugebėjo įgyvendinti Microsoft 32bit į 16bit thunking (žr aukščiau) net Borland Delphi! Kadangi visi Delphi programų Explore2fs integruoja "besiūliai" į Windows, bet perkėlimą į ne Windows operacinių sistemų gali būti sunku.

Istorija ir Ateitis

Pirmoji versija LTOOLS buvo sukurtas pagal originalus pavadinimas "lread" Jason Hunter ir David Lutz tuo Willamette universiteto Salem/Oregonas (JAV). Tai pirmoji versija vyko pagal DOS, gali parodyti Linux katalogas aukcionai ir kopijuoti failus iš Linux DOS ir buvo tik mažiems IDE kietus diskus ir Linux pirminių skirsnių.

Autorius perėmė išsaugoti ir toliau plėtoti 1996 metais Nuo to laiko LTOOLS išmoko susidoroti su didesniais kietus diskus, prieiga SCSI diskai, paleisti su Windows 9x/ME ir Windows NT/2000/XP papildoma rašymo prieigos ir buvo perkeltas atgal į UNIX, kad jie paleisti pagal Solaris ir pati Linux. Jie gavo naršyklę remiantis ir Java pagrįsti grafinė vartotojo sąsaja ir tt ir tt.. A Linux vartotojams daug, dauguma jų pavadintas kodo, padėjo testavimo ir derinimo. Ačiū.

Tuo tarpu, LTOOLS pasiekė versija V4.7 /1/, o gal net daugiau, kai šis straipsnis bus paskelbtas. Be papildomų funkcijų, iš klaidų daug buvo fiksuotas - ir greičiausiai nauji buvo įvesta. Dažna problema išliko per metus: Niekas nebuvo numatyti spartų greitį standusis diskas technologija, kur disko dydžių sprogo, kuri nuolat nukentėjo operacinės sistemos ribas. Ar pamenate dos problemas su 512MB diskus, Windows 3.x problemų su 2GB pertvaros, BIOS anketa limito 8GB ir įvairių problemų, kurios" Windows NT tikrai turi bent 2GB, 4GB ir 8GB? Tai tik prieš akimirką! Ir beje, net "Linux" turi savo problemą: Be branduolių prieš 2.3, ne failas gali viršyti 2GB, kaip Linux, kaip ir dauguma 32bit Unix sistemų naudoja pasirašė 32bit kompensuoti žymiklį skaityti () arba rašyti () (tai bus išspręstas branduolio 2,4 keičiant nukrypimais į 64bit vertybių, bet išlaikyti augimo suderinamumą gali vairuoti Linux į tas pačias problemas kaip aptarėme Windows aukščiau). Programinė įranga standartizaciją disko prieigos visada buvo daug lėtesnis nei disko kūrėjams, todėl jie sugalvojo nuosavybės sprendimus įveikti operacinės sistemos ribas. Ir visada LTOOLS būtiniausius rengimo daug kitų programuotojų - teko susidurti su juo... Taigi nereikia pykti, jei LTOOLS neveikia už jus savo naują 64GB diską. Tai atviro kodo, todėl tiesiog pabandyti padėti derinti ir toliau juos plėtoti!

Ir nepamirškite, jei jūs naudojate LTOOLS: Ar tai jūsų pačių rizika! Skaityti tik prieigą prie Linux yra nekritiškas. Tačiau, jei jūs naudojate rašymą ištrinti failus arba keisti failo atributus savo Linux diską, LTOOLS - ir jūs, kaip vartotojas - galite padaryti nesąmonė daug. Taigi visada atsarginę kopiją!

Nuorodos

  1. http://www.it.fht-esslingen.de/~zimmerma/software/ltools.html: Pagrindinis puslapis iš LTOOLS
  2. Michael Tischer: PC-Intern 4. Data-Becker-Verlag
  3. http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html Ralf Brown's interrupt list for x86-PCs
  4. http://metalab.unc.edu/pub/Linux/system/filesystems/ext2/Ext2fs-overview-0.1.ps.gz: Gadi Oxman anketa apžvalga apie išplėstiniam 2 failų sistemos.
  5. Microsoft Windows Win32 API - Dokumentacija, ateina su daugeliu "Windows C kompiliatorius ar MSDN CD
  6. http://metalab.unc.edu/pub/Linux/system/filesystems/ext2/ext2tool_1_1.zip: Claus Tondering's Ext2tool
  7. http://metalab.unc.edu/pub/micro/pc-stuff/Linux/utils/dos/ext2nt.lsm: Peeter Joot's Ext2nt
  8. http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm: John Newbigin's Explore2fs

Apie autorių

"Realiame gyvenime" Werner Zimmermann ar mokyti Automatika, skaitmeninių sistemų ir kompiuterinių architektūrą FH Esslingen - Taikomųjų Mokslų Universiteto, Esslingen, Vokietija. Jis turi techninės ir programinės įrangos fone automobilių ir pramonės įterptųjų sistemų srityje. Jo "karjera" kaip Linux sistemos programinės įrangos kūrėjas prasidėjo 1994 metais, kai jis įsigijo CDROM įrenginį, kuris nebuvo pagrįstas Linux... Taigi jis sukūrė "aztcd.c" Linux CDROM vairuotojas, kuris vis dar yra įtrauktas į visų standartiniai Linux branduoliai, net jei diskas dabar yra labai daug pasenusios.

Originalus anglų kalba http://www2.hs-esslingen.de/~zimmerma/software/ltools/ltools.html
Pagrindinis puslapis