септември 29, 2016

LTOOLS – Пристапете до Вашиот Линукс Датотеки од Windows 9x / ME и Windows NT / 2000 / XP

Source: http://www.it.fht-esslingen.de/~zimmerma/software/ltools/ltools.html

од Вернер Цимерман

 

Linux Жорнал кој TOOLS.
Линукс списание пристап.
Линукс заедницата.

На LTOOLS обезбеди под Windows слична функционалност како и на mtools под Linux: Тие ви дозволуваат пристап до вашите фајлови на “непријателските” датотечниот систем.

Користење LTOOLS од командната линија

Во срцето на LTOOLS е збир на програми за командната линија, која може да се нарече од DOS или од DOS прозор во Windows 9x / Me или Windows NT / 2000 / XP. Тие обезбедуваат истата функционалност како добро познат Линукс команди “ls”, “КП”, “Р”, “chmod”, “chown” и “LN. Така, под DOS / Windows можете да

листа Linux датотеки и директориуми (команда: ldir),
копирање на датотеки од Линукс на Windows и обратно (команди: lread, lwrite),
бришат и да преименуваат датотеки Линукс (команди: ldel, lren),
создавање на симболички врски (команда: LLN),
креирање на нови Линукс директориуми (команда: lmkdir),
измени на датотеката Линукс правата на пристап и сопственик (команда: lchange),
промените стандардниот директориум на Линукс (команда: LCD),
во собата на Linux диск стандардните (команда: ldrive) и
покаже вашето поставување на harddisk партиција (команда: ldir -дел).
Како и со многу алатки UNIX, овие функции се вклучени во една извршна, кој се нарекува со пакет од командната линија параметри. Да се направи вашиот живот полесно, се обезбедуваат збир на серија датотеки (скрипти), така што вие не треба да се запамети и тип во сите овие параметри.

Покрај тоа, постои Unix / Linux верзија на LTOOLS, така што ќе можат да ги користат под Соларис, па дури и под Linux, кога сакате да пристапите до некоја датотека на друг harddisk партиција без монтажа оваа партиција.

LTOOLgui – Јава GUI за LTOOLS

Командната линија програми се старомодни! Каде е LTOOLS графички кориснички интерфејс? Па, нема проблем: Користете LTOOLgui. LTOOLgui, напишан во Java со помош Swing библиотеката JDK 2 е, обезбедува Windows Explorer како кориснички интерфејс (сл. 1). Во две под-прозорци LTOOLgui покажува вашиот DOS / Windows и вашиот Линукс и Директориум на дрва. Навигацијата може да се направи од страна на вообичаените точка-и-клик акции. Копирање на датотеки од Windows на Linux или обратно може да се направи од страна на копирај-и-паста или со влечи-и-капка. Со кликање на десното копче на глувчето ќе се отвори прозорец за да ја гледате и менувате датотека атрибути како права на пристап, GID или UID. Двоен клик на датотеката ќе го пушти, и ако тоа е извршна Windows, или отворете го со тоа е поврзано апликација. Ова функционира дури и со Линукс датотеки, доколку имаат регистрирано Windows апликација.

BTW: Можете да ги користите LTOOLgui како менаџер на датотеки под Linux. Како програми на LTOOLS командната линија, исто така, доаѓаат во верзија на Линукс, затоа може да пристапите до датотеки на дискови, без нив монтажа.

Авторот одбрал Јава за LTOOLgui, бидејќи Јава е особено погоден за пристап harddisk ниско ниво … само се шегувам! Не, се разбира, тоа не е можно во Јава на сите. Ако сакате да пристапите до хардверот директно, ќе мора да се користи C ++ код и JNI (Java да Мајчин интерфејс). Сепак, како што JNI работи само за 32bit код, под Windows 9x / ME тоа би значело да се користи “32bit да 16bit thunking” (види подолу). Како автор не им се допаѓа идејата да се комбинираат Сонцето е Јава со MASM код на Microsoft, го зеде друг пристап. Тој едноставно ја користи програмата командната линија LTOOLS, кој се вика од Јава преку познати stdin / stdout- интерфејс. Значи за страничните Јава, пристап хардвер значи едноставно прилив врз основа датотека I / O.

Сл. 1: Java-базирани LTOOLgui графички кориснички интерфејс

Датотека пристап преку Интернет?

Без сомнение, било која држава од програмата на уметноста мора да биде и интернет свесни! Па, ако се води LREADjav на оддалечен компјутер и ќе се поврзе со него преку Поврзете копче LTOOLgui, можете да пристапите Linux датотеки на овој сервер, како да се на локално ниво. LREADjav е едноставен серверот на серверот, што значи барање, издадена од LTOOLgui преку TCP / IP, во командната линија LTOOLS програма повици и ги испраќа на излез од програмите за командната линија назад преку TCP / IP за LTOOLgui (сл. 2). Се разбира, вие не само што може огласи поглед директориум, но можете да направите сите од далечина, како што може да се направи на локално ниво, вклучувајќи File Upload и преземање. На далечинскиот управувач машина може да се кандидира Unix / Linux или Windows. Денес, тоа е повеќе како играчка од сериозна апликација, бидејќи LREADjav може да предизвикаат безбедносни проблеми. Во стандардната конфигурација, може да се користи само од “localhost”, но тоа може да биде конфигуриран да дозволува врски од 3 различни далечински клиенти. Но, тие се идентификувани само преку нивната IP адреса, не постои заштита лозинка или слично. Меѓутоа, ако корисникот има сериозен барање за тоа, тој може лесно да се спроведе планот најава / лозинка за … Тоа е софтвер со отворен код!

Сл. 2: LTOOLgui за далечински пристап

Не Јава? Користете го вашиот веб прелистувач!

Можеби немате Java 2 инсталиран. Па, не е проблем, се додека имате веб пребарувач. Започни ‘LREADsrv и вашиот веб прелистувач и како тип на URL-то “http: // localhost” (слика 3.). Сега вашиот Линукс директориумот треба да се појави графички во вашиот веб прелистувач. LREADsrv е мала локална веб сервер, кој преку едноставен CGI-како интерфејс прави LTOOLS достапни преку HTTP-барањата и се конвертира своето производство во динамички HTML страници (сл. 4). Се разбира, ова не само што обезбеди локален пристап, но исто така им овозможува на далечински пристап преку интернет. Сепак, за далечински корисници LREADsrv го имаат истото ниско ниво на безбедност како LREADjav.

Бидејќи LREADsrv се базира на HTML форми, кои на пример, не поддржува влечи-и-пушти или директно копирај-и-паста, кои работат со вашиот интернет пребарувач е малку помалку удобен отколку да работи со Java базирани GUI. И покрај тоа што обезбедува истите карактеристики.

Сл. 3: Истражување на Линукс датотеки со Microsoft Internet Explorer

Сл. 4: LREADsrv – HTTP базирани пристап до датотеки на Линукс

LTOOLS внатрешен – Пристап до тврд диск во Windows

Како DOS / Windows себе не поддржува интерфејси на странски датотечни системи, на LTOOLS мора да му пристапи на бајти “сурова” податоци директно на дискот. За да се разбере internals на LTOOLS, треба да имаат основни познавања од следните области:

Како harddisks се организирани во партиции и сектори и како тие може да се пристапи, односно како “сурова” бајти може да се прочита или напишани од дискот. Оваа информација може да се најде на пример, во / 2,3 /.
Како е организирана Линукс Напредно 2 датотечниот систем. Еден добар преглед за сите inodes, групи, блокови, bitmaps и директориуми работи може да се најде на пример, во / 4 /.
Ова автоматски доведува до слоевит архитектура на кернелот LTOOLS (сл. 5), кој се состои од неколку C датотеки:

Најнискиот слој 1 (во датотека Readdisk.c) физички пристапи на harddisk. Овој слој се занимава со (речиси сите) разлики помеѓу DOS, Windows 9x / ME, Windows NT / 2000 / XP и Linux / Unix во врска со директен пристап harddisk и се обидува да ги сокрие од повисоките слоеви. Повеќе за тоа наскоро.
Layer 2 се занимава со UNIX типичен inode, блок и група структури, во кои се организира Напредно 2 датотечниот систем.
Layer 3 управува директориум структура на датотечниот систем.
Највисоката слој 4 (во Main.c) обезбедува кориснички интерфејс и скенира параметри на командната линија.
Со скенирање на партиција маса за вашиот harddisk, на LTOOLS обидете се да најдете вашиот прв Линукс партиција на вашиот прв harddisk автоматски. Ако сакате да пристапите до друга партиција или диск, ќе мора да го наведете од страна на параметар во командната линија “-s”, на пример, “-s / Dev / hdb2. Алтернативно може да постави уште еден стандарден диск и партиција преку командата “ldrive. За да дознаете, кои партиции сте, го нарекуваат “ldir -дел.

Сл. 5: LTOOLS слоевит архитектура

Животот беше лесно во старите добри времиња на ДОС. Има само еден начин за ниско ниво читаат или да пишуваат пристап до вашиот harddisk: БИОС-от прекинувај 13h / 3 /. BIOS-от структури на податоци се ограничени harddisks 1024 цилиндри, 63 глави и 255 сектори на 512 бајти, односно 8GB. Повеќето компајлери што се предвидени функција именувана biosdisk (), така што оваа функција може директно да се користи без да има потреба да се код во асемблерски јазик. За да се справи со поголеми harddisks, пред се воведени неколку години “продолжи” функциите int 13h. За да се надминат ограничувањата на BIOS-от, овие функции користат линеарно адресирање шема, логички блокови адреси (LBA), наместо на стариот цилиндар-глава-сектор (CHS) се обраќаат.

Ова, сепак, работи во ДОС прозорец Windows 9x / ME (Табела 1), барем за пристап за читање и се додека програмата е креирана со 16bit компајлерот. (На LTOOLS користи Borland C, на Windows NT / 2000 / XP верзија исто така, подготвува со Microsoft Visual C, Unix / Linux верзија користи GNU C). Ако сакате ниско ниво на пристап за пишување, што треба “брави волумен” / 3 /. Овој механизам информира оперативен систем, дека вашата програма вршат директен диск пишува заобиколувајќи возачи на оперативниот систем, така што на Windows може да спречите други програми да имаат пристап до дискот додека не завршиш. Повторно, ова може да се направи без собранието програмирање со користење на (функција на C компајлерот ioctl).

Во 16-битни Windows програма BIOS-от функции може да се нарече само преку DPMI. Како што повеќето C компајлери не обезбедуваат обвивка функции, тоа ќе бара (inline) асемблер. Сепак, Win16 не дозволува командната линија програми на сите, па не се грижи …

Во Windows NT / 2000 / XP ДОС кутија, со користење на BIOS-от int 13h ќе доведе до GPF (Општа заштита грешка). Поради безбедносни причини, Windows NT / 2000 / XP не дозволува директен пристап harddisk заобиколување на оперативниот систем. Сепак, Мајкрософт обезбедува решение, што е речиси толку едноставно како што ќе напише под Unix / Linux:

 

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

Ова ќе го отворите вашиот harddisk е партиција / dev / hda1, за да прочитате што би го нарекол прочитате (), да се напише што би го нарекол запишување (). Едноставна и јасна, не е тоа? Под Windows NT / 2000 / XP, ако користите API WIN32 / 5 /, функцијата CreateFile () не само што им овозможуваат да се создаде и отворени датотеки, но исто така и партиции на дискот:

 

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

Reading and writing disk sectors can now be done via ReadFile() and WriteF
Читање и пишување сектори на дискот сега може да се направи преку ReadFile () и WriteFile ().

За момент што може да мислам, дека можете да го користите истата функција Win32 под Windows 9x / ME. Меѓутоа, ако се чита на во документацијата за CreateFile (), се наоѓа:

Windows 95: Оваа техника не работи за отворање на логички диск. во
Windows 95, наведувајќи низа во оваа форма предизвикува CreateFile да се врати
грешка.
Според документацијата Win32 Windows 9x / ME на Мајкрософт препорачува да се јавите на BIOS-от Int 13 часот преку VWIN32, еден од VxDs на системот (возачи кернел). Ако се обидете да го стори тоа, сепак, нема да успее. Извештај проблем Q137176 во базата на знаење на Microsoft вели, дека – и покрај тоа што се вели во официјалната документација Win32 – ова функционира само за флопи дискови, а не за harddisks. Како што се вели во извештајот на проблемот, за harddisks единствениот начин е да се јавите на BIOS-от Int 16 часот во 16-битни код. За да го повикате 16bit кодот од програмата 32bit, треба “32bit да 16bit thunking” Мајкрософт … Ова не е само уште еден API (со други недокументирани функции или документирани грешки?), Thunking исто така, бара на Мајкрософт thunking компајлер, кој од сценариото дефиниција генерира асемблер код. Од тој на 16bit и 32bit објектот досие мора да бидат генерирани со користење на Microsoft асемблер MASM. Овие ќе бидат поврзани со некои dozend линии на C-код, што треба да се напише, што резултира со 16bit и 32bit DLL (Динамички линк библиотека). Патем, вие не треба само 32bit Visual C ++ за ова, но исто така мора да има еден стар 16bit верзија на C компајлер Мајкрософт … Добив тоа? Користејќи пакет на комерцијален, не се широко користени алатки, нема да биде добро решение за софтвер со отворен код алатка како на LTOOLS!

Сумирањето: мора да има посебни верзии за DOS / Windows 9x / ME, Windows NT / 2000 / XP и Linux / Unix. За да го прикријат тоа од страна на корисникот колку што е можно, LTOOLS обидува да дознае, според кој оперативен систем се работи и автоматски се повикува соодветните извршна.

Табела 1: Ниско ниво на пристап harddisk

Under DOS Under Windows 9x/ME Under Windows NT/2000/XP Under LINUX/Unix
  • BIOS Int 13h
    (need BIOS Extensions for disks above 8GB)
  • DOS programs:
    like DOS, but must use volume lock/unlock for write access
  • Win16 programs:
    must call BIOS Int 13h via DPMI
  • Win32 programs:
    32bit to 16bit thunking to a Win16 DLL
  • DOS programs:
    not allowed
  • Win16 programs:
    not allowed
  • Win32 programs:
    CreateFile(), ReadFile(), WriteFile()
  • open(), read(), write()

Загриженоста за безбедноста?

Да, има LTOOLS до одреден степен може да предизвикаат безбедносни проблеми. Секој корисник, кои можат да ги користат, може да пристапите и менувате датотеки на датотечниот систем Линукс, на пример, измената на податотеката права на пристап или сопствениците на датотеки, размена лозинка датотеки итн .. Сепак, ова е можно со едноставен диск уредник, исто така. Можеби, тоа е само малку поудобно, кога се користи LTOOLS. Сепак, неограничен пристап е можно само ако работи под DOS или Windows 9x / ME. Под Windows NT / 2000 / XP корисникот LTOOLS треба да има администратор права за пристап директно harddisk. Во UNIX / Linux во повеќето стандардни инсталации, исто така, само админ Сис права на пристап за “сурова” диск уредите / dev / hda, / dev / hda1, итн .

Дали постојат алтернативи?

На LTOOLS не се единственото решение за пристап до датотеки на Линукс од DOS / Windows. Веројатно Мраз Tondering е Ext2tool / 6 /, збир на командната линија алатки, развиен во 1996 година, беше првиот решение за овој проблем. Сепак, Ext2tool е ограничена на само за читање пристап и не работи под Windows NT. Врз основа на Ext2tool, Петар Joot во 1997 година, пишува на Windows NT верзија, уште е ограничен на само за читање / 7 /. И двете програми се напишани во C, извор кодови се достапни.

Џон Newbigin ни дава Explore2fs / 8 /, кој доаѓа со многу убав GUI и работи под Windows 9x и Windows NT. Со својот читаат и пишуваат пристап обезбедува истите карактеристики како LTOOLgui. BTW: Џон има направено одлична работа, бидејќи тој успеа да спроведе 32bit на Мајкрософт да 16bit thunking (види погоре), дури и под Borland Delphi е! Како што сите Делфи програми Explore2fs интегрира “лесна” во Windows, но пренесување оперативни системи не-Windows може да биде тешко.

Историјата и иднината

Првата верзија на LTOOLS беше воспоставен во рамките на оригиналното име “lread” од Џејсон Хантер и Дејвид Луц на Универзитетот Willamette, Салем / Орегон (САД). Оваа прва верзија се одвива под ДОС, може да покаже Линукс листањето на директориумот и копирате датотеки од Линукс за ДОС и е ограничена само на мали IDE harddisks и Linux на примарни партиции.

Авторот ја презеде одржување и понатамошен развој во 1996. Од тогаш, на LTOOLS го научиле да се справи со поголеми harddisks, пристап SCSI-уреди, работи под Windows 9x / ME и Windows NT / 2000 / XP, дополнителна можност за запишување и беа пренесени назад кон UNIX, за да ги направи да работи под Соларис и самиот Линукс. Тие се здобија со веб прелистувач базиран и Java базирани графички кориснички интерфејс, итн итн .. Многу корисници на Линукс, поголемиот дел од нив, по име во изворниот код, помогна во тестирање и дебагирање. Ти благодарам.

Во меѓувреме, LTOOLS достигна верзија V4.7 / 1 /, а можеби дури и повеќе, кога овој член да бидат објавени. Покрај дополнителни функции, многу грешки се поправени – и, најверојатно, нови се воведени. А заеднички проблем остана во текот на годините: Никој не се предвиди брзо брзина во harddisk технологија, каде што големина на дискови да експлодира, која постојано ја погоди граници оперативен систем. Се сеќаваш ли проблеми ДОС со 512MB дискови, проблеми со Windows 3.x со 2GB партиции, ограничување БИОС-от е на 8GB и различни проблеми, кои на Windows NT нема на 2GB, 4GB и 8GB? Тоа е само еден миг! И патем, дури и Linux има проблем: Во кернели пред 2.3, нема датотеки може да го надмине 2GB, како Линукс, како и повеќето 32bit Unix системи користи потпишана 32bit поместување на покажувачот во читање () или запишување () (ова ќе биде решен во кернелот 2.4 неутрализира со промена на 64-битен вредности, но одржувањето на нагорен компатибилност може да се вози Линукс во истите проблеми како што се дискутира за Windows погоре). Софтвер за стандардизација за диск пристап секогаш беше многу побавен од развивачите на дискот, па тие измислиле комерцијални решенија за надминување на границите на оперативниот систем. И секогаш LTOOLS -И многу други програмери – мораше да се справи со него … Затоа, не се лути, ако LTOOLS не работат за вас на вашиот бренд нов 64GB диск. Тоа е софтвер со отворен код, толку едноставно, се обиде да им помогне да се debug и понатаму да ги развиваат!

И не заборавајте, ако имате потреба при користење на LTOOLS: Направете го тоа на сопствен ризик! Само за читање пристап до Linux е некритички. Сепак, ако се користи за запишување на бришење на датотеки или менување на датотеката атрибути на вашиот Линукс диск, LTOOLS – и вие како корисник – може да се направи многу глупости. Значи секогаш се чува бекап!

Референци

http://www.it.fht-esslingen.de/~zimmerma/software/ltools.html: Почетната страница од пребарувачот на LTOOLS
Мајкл Tischer: PC-приправник 4. Податоци-Бекер-Verlag
http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html листа прекинувај Ралф Браун за x86-компјутери
http://metalab.unc.edu/pub/Linux/system/filesystems/ext2/Ext2fs-overview-0.1.ps.gz: Преглед Gadi Oxman во врска со Напредно 2 датотечниот систем.
Microsoft Windows Win32 API – Документација, доаѓа со повеќето компајлери Windows C или на CD-а MSDN
http://metalab.unc.edu/pub/Linux/system/filesystems/ext2/ext2tool_1_1.zip: Мраз Tondering е Ext2tool
http://metalab.unc.edu/pub/micro/pc-stuff/Linux/utils/dos/ext2nt.lsm: Peeter Joot е Ext2nt
http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm: Џон Newbigin е Explore2fs
За авторот

“Во реалниот живот” Вернер Цимерман учи контрола инженеринг, дигитални системи и компјутерски архитектура на FH Esslingen – Универзитетот за применети науки, Esslingen, Германија. Тој има хардвер и софтвер искуство во автомобилската индустрија и индустриски вградени системи. Неговата “кариера” како Линукс софтвер систем инвеститорот започна во 1994 година, кога тој набави CDROM уред, кој не беше поддржан од страна на Линукс … Значи тој разви “aztcd.c, Линукс ЦД-возач, кој се уште е вклучена во сите стандарден Линукс кернели, дури и ако уредот сега е многу застарена.