LTOOLS – เข้าถึงไฟล์ Linux จาก Windows 9x/ME และ Windows NT/2000/XP

Original web-page: http://www.it.fht-esslingen.de/~zimmerma/software/ltools/ltools.html

โดย เวอร์เนอร์ ช่างไม้ (Werner Zimmermann)


ลินุกซ์วารสาร  เนื้อเรื่อง LTOOLS

นิตยสารผู้ใช้ลินุกซ์

ชุมชนลินุกซ์

โปรดทราบ: เราไม่มีส่วนเกี่ยวข้องกับหน้าเว็บที่ไม่ใช่ภาษาอังกฤษเหล่านี้และไม่สามารถตรวจสอบได้ว่าหน้าเว็บเหล่านี้ปลอดภัยหรือไม่ ดังนั้นตามลิงค์ข้างต้นเป็นความเสี่ยงของคุณเอง


LTOOLS ให้ภายใต้ Windows ฟังก์ชันการทำงานที่คล้ายคลึงกันเช่น MTOOLS ทำภายใต้ Linux: พวกเขาช่วยให้คุณสามารถเข้าถึงไฟล์ของคุณในระบบแฟ้ม “เป็นมิตร”


ใช้ LTOOLS จากบรรทัดคำสั่ง

หัวใจของ LTOOLS เป็นชุดของโปรแกรมบรรทัดคำสั่งที่สามารถเรียกจาก DOS หรือจาก DOS-หน้าต่างใน Windows 9x/Me หรือ Windows NT/2000/XP พวกเขาให้การทำงานเช่นเดียวกับที่รู้จักกันดีคำสั่ง Linux ‘LS’, ‘ซีพี’, ‘RM’, ‘chmod’, ‘chown’ และ ‘LN’ ดังนั้นภายใต้ DOS/Windows ที่คุณสามารถ

  • ไฟล์รายการลินุกซ์และไดเรกทอรี (คำสั่ง: ldir)
  • คัดลอกไฟล์จาก Linux เพื่อ Windows และในทางกลับกัน (คำสั่ง: lread, lwrite)
  • ลบหรือเปลี่ยนชื่อไฟล์ลินุกซ์ (คำสั่ง: ldel, lren)
  • สร้างการเชื่อมโยงสัญลักษณ์ (คำสั่ง: lln)
  • สร้างไดเรกทอรี Linux ใหม่ (คำสั่ง: lmkdir)
  • แก้ไขไฟล์ลินุกซ์ของการเข้าถึงสิทธิและเจ้าของ (คำสั่ง: lchange)
  • เปลี่ยนไดเรกทอรีเริ่มต้นลินุกซ์ (คำสั่ง: lcd)
  • ตั้งไดรฟ์เริ่มต้นลินุกซ์ (คำสั่ง: ldrive) และ
  • แสดงการติดตั้งพาร์ทิชันฮาร์ดดิสก์ของคุณ (คำสั่ง: ldir -part)

เช่นเดียวกับเครื่องมือ UNIX หลายฟังก์ชั่นเหล่านี้จะรวมอยู่ในปฏิบัติการเดียวซึ่งเรียกว่ากับกำของพารามิเตอร์บรรทัดคำสั่ง ที่จะทำให้ชีวิตของคุณง่ายขึ้นชุดของไฟล์ batch (เชลล์สคริปต์) มีไว้เพื่อให้คุณไม่จำเป็นต้องจำและพิมพ์ในพารามิเตอร์เหล่านี้ทั้งหมด

นอกจากนี้ยังมีรุ่น Unix/Linux ของ LTOOLS เพื่อให้คุณสามารถใช้พวกเขาภายใต้ Solaris หรือแม้กระทั่งภายใต้ Linux เมื่อคุณต้องการที่จะเข้าถึงไฟล์บนพาร์ติชันฮาร์ดดิสก์อื่นโดยไม่ต้องติดตั้งพาร์ทิชันนี้

LTOOLgui – จาวา GUI สำหรับ LTOOLS

โปรแกรมบรรทัดคำสั่งล้าสมัย! อินเทอร์เฟซผู้ใช้แบบกราฟิกของ LTOOLS อยู่ที่ไหน? ไม่มีปัญหา: ใช้ LTOOLgui LTOOLgui เขียนใน Java โดยใช้ไลบรารี Swing ของ JDK 2 ให้ Windows Explorer เหมือนกับส่วนติดต่อผู้ใช้ (รูปที่ 1) ในหน้าต่างย่อยที่สอง LTOOLgui แสดง DOS/Windows และต้นไม้ไดเรกทอรี Linux ของคุณ การนำทางสามารถทำได้โดยการกระทำแบบ point-and-click ตามปกติ การคัดลอกไฟล์จาก Windows ไปยัง Linux หรือในทางกลับกันทำได้โดยการคัดลอกและวางหรือลากและวาง คลิกปุ่มเมาส์ขวาจะเปิดกล่องโต้ตอบเพื่อดูและปรับเปลี่ยนแอตทริบิวต์ของไฟล์เช่นสิทธิการเข้าถึง GID หรือ UID ดับเบิลคลิกที่ไฟล์จะเริ่มทำงานถ้าเป็นไฟล์ปฏิบัติการของ Windows หรือเปิดด้วยแอพพลิเคชั่นที่เกี่ยวข้อง นี้ยังทำงานร่วมกับไฟล์ Linux ถ้าพวกเขามีโปรแกรม Windows ที่ลงทะเบียน

ยังไงซะ: คุณยังสามารถใช้ LTOOLgui เป็นตัวจัดการไฟล์ภายใต้ Linux เนื่องจากโปรแกรมบรรทัดคำสั่งของ LTOOLS มีเวอร์ชัน Linux ดังนั้นคุณจึงสามารถเข้าถึงไฟล์ในดิสก์ได้โดยไม่ต้องติดตั้ง

ผู้เขียนเลือก Java สำหรับ LTOOLgui เนื่องจาก Java เหมาะอย่างยิ่งสำหรับการเข้าถึงฮาร์ดดิสก์ในระดับต่ำ… ล้อเล่นเท่านั้น! ไม่แน่นอนนี่เป็นไปไม่ได้ที่ Java เลย ถ้าคุณต้องการเข้าถึงฮาร์ดแวร์โดยตรงคุณต้องใช้รหัส C+ และ JNI (Java การเชื่อมต่อแบบเนทีฟ) อย่างไรก็ตามเนื่องจาก JNI ทำงานเฉพาะรหัส 32 บิตเท่านั้นภายใต้ Windows 9x/ME นี้จะหมายถึงการใช้ ’32บิต to 16บิต แปลงรูปแบบ 16 บิตและ 32 บิต’ (ดูด้านล่าง) ในฐานะที่เป็นผู้เขียนไม่ชอบความคิดที่จะรวม Sun ของ Java กับรหัส MASM ของ Microsoft เขาเอาวิธีอื่น เขาใช้โปรแกรมบรรทัดคำสั่ง LTOOLS ซึ่งเรียกจาก Java ผ่าน stdin/stdout interface ที่รู้จักกันดี ดังนั้นสำหรับฝั่ง Java การเข้าถึงฮาร์ดแวร์หมายถึงการใช้ไฟล์ I/O แบบสตรีมเรียบง่าย

รูปที่ 1: อินเทอร์เฟซผู้ใช้แบบกราฟิก LTOOLgui ที่ใช้ Java

การเข้าถึงไฟล์ผ่านทางอินเทอร์เน็ตหรือไม่

ไม่ต้องสงสัยเลยว่าโปรแกรมใด ๆ ที่ทันสมัยที่สุดจะต้องมีการรับรู้ทางอินเทอร์เน็ต! ดีถ้าคุณเรียกใช้ LREADjav บนคอมพิวเตอร์ระยะไกลและคุณเชื่อมต่อผ่านทางปุ่มเชื่อมต่อของ LTOOLgui คุณอาจเข้าถึงไฟล์ Linux บนเซิร์ฟเวอร์ระยะไกลนี้เหมือนกับว่าเป็น local LREADjav เป็นเซิร์ฟเวอร์ daemon แบบง่ายๆซึ่งแปลคำขอออกโดย LTOOLgui ผ่าน TCP/IP ลงใน LTOOLS command line เรียกโปรแกรมและส่งผลลัพธ์ของโปรแกรมบรรทัดคำสั่งกลับผ่าน TCP/IP ไปยัง LTOOLgui (รูปที่ 2) แน่นอนคุณสามารถดูรายชื่อไดเร็กทอรีได้เพียงอย่างเดียว แต่สามารถทำสิ่งต่างๆจากระยะไกลสิ่งที่คุณสามารถทำได้ภายในเครื่องรวมถึงการอัปโหลดไฟล์และดาวน์โหลด เครื่องระยะไกลอาจรัน Unix/Linux หรือ Windows วันนี้เป็นเหมือนของเล่นมากกว่าโปรแกรมร้ายแรงเนื่องจาก LREADjav อาจก่อให้เกิดปัญหาด้านความปลอดภัย ในการกำหนดค่าเริ่มต้นคุณสามารถใช้จาก localhost ได้เท่านั้น แต่สามารถกำหนดค่าเพื่ออนุญาตการเชื่อมต่อจาก 3 ไคลเอ็นต์ระยะไกลที่ต่างกัน แต่จะระบุด้วยที่อยู่ IP เท่านั้นไม่มีการป้องกันด้วยรหัสผ่านหรือสิ่งอื่นใด อย่างไรก็ตามหากผู้ใช้มีแอ็พพลิเคชันที่ร้ายแรงสำหรับที่เขาสามารถใช้รูปแบบการเข้าสู่ระบบ/รหัสผ่าน… ทั้งหมด Open Source!

รูปที่ 2: LTOOLgui สำหรับการเข้าถึงระยะไกล

ไม่มี Java? ใช้เว็บเบราเซอร์ของคุณ!

บางทีคุณอาจไม่ได้ติดตั้ง Java 2 ไม่มีปัญหาตราบเท่าที่คุณมีเว็บเบราเซอร์ เริ่ม ‘LREADsrv’ และเว็บเบราเซอร์ของคุณและเป็น URL ชนิด ‘http://localhost’ (รูปที่ 3) ตอนนี้รายชื่อไดเรกทอรี Linux ของคุณควรแสดงแบบกราฟิกในเว็บเบราเซอร์ของคุณ LREADsrv เป็นเว็บเซิร์ฟเวอร์ขนาดเล็กในประเทศซึ่งผ่านอินเทอร์เฟซแบบ CGI แบบง่ายๆทำให้ LTOOLS สามารถเข้าถึงได้ผ่าน HTTP-requests และแปลงเอาท์พุทแบบไดนามิกไปยังหน้า HTML (รูปที่ 4) แน่นอนว่านี่ไม่ใช่แค่การเข้าถึงในท้องถิ่นเท่านั้น แต่ยังช่วยให้สามารถเข้าถึงอินเทอร์เน็ตได้จากระยะไกล อย่างไรก็ตามสำหรับผู้ใช้ระยะไกล LREADsrv มีระดับการรักษาความปลอดภัยต่ำเช่น LREADjav

เนื่องจาก LREADsrv ใช้รูปแบบ HTML ซึ่งเช่น. ไม่สนับสนุนการลากและวางหรือการคัดลอกและวางโดยตรงการทำงานร่วมกับเว็บเบราเซอร์ของคุณจะทำได้น้อยกว่าการใช้ GUI แบบ Java อย่างไรก็ตามคุณลักษณะนี้มีคุณสมบัติเหมือนกัน

รูปที่ 3: การสำรวจไฟล์ Linux ด้วย Microsoft Internet Explorer

รูปที่ 4: LREADsrv – การเข้าถึงไฟล์จาก Linux บน HTTP

LTOOLS Internals – Accessings Harddisk ภายใต้ Windows

ในฐานะที่เป็น DOS/Windows เองไม่สนับสนุนการเชื่อมต่อไปยังระบบไฟล์ต่างประเทศ LTOOLS ต้องเข้าถึงข้อมูลไบต์“ดิบ” โดยตรงบนดิสก์ เพื่อให้เข้าใจถึง internals ของ LTOOLS ที่คุณจะต้องมีความเข้าใจพื้นฐานของพื้นที่ต่อไปนี้:

  • วิธี ฮาร์ดดิสก์ ถูกจัดอยู่ในพาร์ทิชันและภาคและวิธีที่พวกเขาสามารถเข้าถึงได้คือวิธีการ“ดิบ” ไบต์สามารถอ่านหรือเขียนจากดิสก์ ข้อมูลนี้สามารถพบได้เช่นใน /2,3/
  • วิธีการลินุกซ์ขยาย 2 ระบบแฟ้มมีการจัดระเบียบ ภาพรวมที่ดีเกี่ยวกับทุก การจัดทำดัชนี ข้อบ่งชี้ กลุ่มบล็อกบิตแมปและไดเรกทอรีสิ่งที่สามารถพบได้เช่นใน /4/

นี้จะนำไปสู่สถาปัตยกรรมชั้นของเคอร์เนล LTOOLS (รูปที่ 5.) ซึ่งประกอบด้วยหลายไฟล์ C:

  • ชั้นต่ำสุดที่ 1 (ในไฟล์ Readdisk.c) ร่างกายเข้าถึงฮาร์ดดิสก์ ชั้นนี้จะมีข้อเสนอที่ (เกือบทั้งหมด) ความแตกต่างระหว่าง DOS, Windows 9x/ME, Windows NT/2000/XP และ Linux/Unix เกี่ยวกับการเข้าถึงฮาร์ดดิสก์โดยตรงและพยายามที่จะซ่อนพวกเขาจากชั้นที่สูงขึ้น เพิ่มเติมเกี่ยวกับว่าเร็ว ๆ นี้
  • ชั้นที่ 2 ข้อเสนอกับ UNIX การจัดทำดัชนี ข้อบ่งชี้ ทั่วไปบล็อกและกลุ่มโครงสร้างเป็นที่ขยาย 2 ระบบแฟ้มมีการจัดระเบียบ
  • ชั้นที่ 3 การบริหารจัดการโครงสร้างไดเรกทอรีของระบบแฟ้ม
  • ชั้นสูงสุด 4 (ใน main.c) มีอินเตอร์เฟซผู้ใช้และสแกนพารามิเตอร์บรรทัดคำสั่ง

โดยการสแกนตารางพาร์ทิชันฮาร์ดดิสก์ของคุณ LTOOLS พยายามที่จะหาพาร์ทิชันลินุกซ์ครั้งแรกของคุณบนฮาร์ดดิสก์ครั้งแรกของคุณโดยอัตโนมัติ หากคุณต้องการที่จะเข้าถึงพาร์ทิชันหรือดิสก์อื่นคุณจะต้องระบุว่าจากบรรทัดคำสั่งพารามิเตอร์ ‘-s’ เช่น ‘-s/dev/hdb2’ หรือคุณอาจจะตั้งไดรฟ์เริ่มต้นอื่นและพาร์ทิชันผ่าน ‘ldrive’ คำสั่ง เพื่อหาข้อมูลที่คุณมีพาร์ติชันโทร ‘ldir -part’

รูปที่ 5: สถาปัตยกรรมชั้น LTOOLS

ชีวิตเป็นเรื่องง่ายในวันเก่า ๆ ของ DOS มีเพียงวิธีเดียวสำหรับการอ่านหรือเขียนระดับต่ำไปยังฮาร์ดดิสก์ของคุณ: BIOS ขัดจังหวะ 13h /3/ โครงสร้างข้อมูล BIOS มีโครงสร้างฮาร์ดดิสก์ จำกัด ถึง 1024 กระบอกสูบ, 63 หัวและ 255 เซกเตอร์ 512 ไบต์ ได้แก่ 8กิกะไบต์ คอมไพเลอร์ C ส่วนใหญ่จัดเตรียมฟังก์ชันชื่อ biosdisk() เพื่อให้ฟังก์ชันนี้สามารถใช้งานได้โดยตรงโดยไม่ต้องใช้รหัสในภาษาแอสเซมบลี เพื่อจัดการกับ ฮาร์ดดิสก์ ที่ใหญ่กว่าเมื่อหลายปีก่อน ‘extended’ int 13h ถูกนำมาใช้ เพื่อเอาชนะข้อ จำกัด ของ BIOS ฟังก์ชันเหล่านี้ใช้โครงร่างที่อยู่เชิงเส้นที่อยู่บล็อกลอจิคัล (LBA) มากกว่าการกำหนดแอดเดรส CHS (เก่ากระบอกหัวภาค)

นี้ยังคงทำงานในหน้าต่าง Windows DOS 9x/ME (ตารางที่ 1) อย่างน้อยสำหรับการอ่านและตราบใดที่โปรแกรมถูกคอมไพล์ด้วยคอมไพเลอร์ 16 บิต (LTOOLS ใช้ Borland C เวอร์ชันของ Windows NT/2000/XP ยังคอมไพล์ด้วย Microsoft Visual C เวอร์ชัน Unix/Linux ใช้ GNU C) ถ้าคุณต้องการให้เขียนระดับต่ำคุณต้องใช้ ‘ล็อคระดับเสียง’ /3/ กลไกนี้แจ้งให้ระบบปฏิบัติการทราบว่าโปรแกรมของคุณกำลังทำดิสก์โดยตรงเขียนโดยไม่ใช้ไดรเวอร์ระบบปฏิบัติการเพื่อให้ Windows สามารถป้องกันโปรแกรมอื่น ๆ ไม่ให้เข้าถึงดิสก์จนกว่าคุณจะเสร็จสิ้น อีกครั้งนี้สามารถทำได้โดยไม่ต้องเขียนโปรแกรมประกอบโดยใช้ฟังก์ชัน ioctl ของคอมไพเลอร์ C()

ในฟังก์ชัน Windows ของ Windows แบบ 16 บิตสามารถเรียกผ่านทาง DPMI ได้เท่านั้น เนื่องจากคอมไพเลอร์ C ส่วนใหญ่ไม่มีฟังก์ชัน เสื้อคลุม จะต้องมี ผู้ประกอบ (แบบอินไลน์) อย่างไรก็ตาม Win16 ไม่อนุญาตให้โปรแกรมบรรทัดคำสั่งทั้งหมดดังนั้นจึงไม่ต้องกังวล…

ในกล่อง DOS ของ Windows NT/2000/XP การใช้ BIOS int 13h จะนำไปสู่ ​​GPF (ข้อบกพร่องในการป้องกันทั่วไป) ด้วยเหตุผลด้านความปลอดภัย Windows NT/2000/XP จึงไม่อนุญาตให้มีการเข้าถึงฮาร์ดดิสก์โดยตรงผ่านทางระบบปฏิบัติการ อย่างไรก็ตาม Microsoft ให้โซลูชันซึ่งเกือบจะทำได้ง่ายเหมือนกับที่คุณเขียนภายใต้ Unix/Linux:

int disk_fd = open("/dev/hda1", O_RDWR);
นี้จะเปิดพาร์ทิชันฮาร์ดดิสก์ของคุณ /dev/hda1 read(), เขียนคุณจะโทร write() ง่ายและตรงไปตรงมาไม่ได้หรือไม่? ภายใต้ Windows NT/2000/XP ถ้าคุณใช้ Win32 API/5/ ฟังก์ชัน CreateFile() ไม่เพียง แต่อนุญาตให้สร้างและเปิดไฟล์ แต่ยังพาร์ทิชันดิสก์:
    HANDLE hPhysicalDrive = CreateFile("\\\\.\\PhysicalDrive0",
                                       GENERIC_READ | GENERIC_WRITE,
                                       FILE_SHARE_READ | FILE_SHARE_WRITE,
                                       0, OPEN_EXISTING, 0, 0 );

ขณะนี้คุณสามารถอ่านและเขียนภาคดิสก์ได้แล้วผ่านทาง ReadFile() และ WriteFile().

สักครู่คุณอาจคิดว่าคุณสามารถใช้แบบเดียวกันได้ Win32 ฟังก์ชั่นภายใต้ Windows 9x/ME. อย่างไรก็ตามหากคุณอ่านในเอกสารสำหรับ CreateFile(), คุณจะพบว่า:

	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 เอกสาร Win32 ของ Microsoft แนะนำให้เรียก BIOS Int 13h ผ่าน VWIN32 หนึ่งใน VxD ของระบบ (ไดรเวอร์เคอร์เนล) ถ้าคุณพยายามที่จะทำเช่นนั้นคุณจะไม่ประสบความสำเร็จ รายงานปัญหา Q137176 ในฐานความรู้ของ Microsoft กล่าวว่าแม้ว่าจะมีการกล่าวถึงเอกสาร Win32 อย่างเป็นทางการอยู่ก็ตาม แต่จะทำงานเฉพาะกับฟล็อปปี้ดิสก์เท่านั้นไม่ใช่สำหรับฮาร์ดดิสก์ เป็นรายงานปัญหากล่าวว่าสำหรับ ฮาร์ดดิสก์ วิธีเดียวคือการเรียก BIOS Int 16h ในรหัส 16บิต หากต้องการเรียกรหัส 16 บิตจากโปรแกรม 32บิต คุณต้องใช้ “32บิต to 16บิต แปลงรูปแบบ 16 บิตและ 32 บิต” ของ Microsoft… นี่ไม่ใช่เพียง API อื่น (ที่มีคุณสมบัติอื่น ๆ ที่ไม่มีเอกสารหรือมีข้อผิดพลาดในการจัดทำเป็นเอกสารเท่านั้น), แปลงรูปแบบ 16 บิตและ 32 บิต ยังต้องใช้คอมไพเลอร์ แปลงรูปแบบ 16 บิตและ 32 บิต ของ Microsoft ซึ่งจากสคริปต์คำจำกัดความ สร้างโค้ดแอสเซ็ทเลอร์ จากไฟล์อิมเมจ 16 บิตและไฟล์ 32 บิตต้องถูกสร้างโดยใช้ MASM ของ Microsoft สิ่งเหล่านี้จะเชื่อมโยงกับ C-code จำนวนหนึ่งบรรทัดที่คุณต้องเขียนส่งผลให้มี DLL แบบ 16 บิตและ 32 บิต (ไลบรารีการเชื่อมโยงแบบไดนามิก) โดยวิธีนี้คุณต้องไม่ต้องใช้ Visual C++ เพียง 32 บิตเท่านั้น แต่คุณต้องมีเครื่องคอมไพเลอร์ C ของ Microsoft เวอร์ชัน 16 บิตที่เก่ากว่าด้วยใช่หรือไม่? การใช้กลุ่มเครื่องมือที่เป็นกรรมสิทธิ์ซึ่งไม่ใช่เครื่องมือที่ใช้อย่างแพร่หลายไม่เป็นทางออกที่ดีสำหรับเครื่องมือซอฟต์แวร์โอเพนซอร์สเช่น LTOOLS!

สรุป: ต้องมีเวอร์ชันแยกต่างหากสำหรับ DOS/Windows 9x/ME, Windows NT/2000/XP และ Linux/Unix เพื่อซ่อนสิ่งนี้จากผู้ใช้ให้มากที่สุดเท่าที่จะเป็นไปได้ LTOOLS จะพยายามหาข้อมูลภายใต้ระบบปฏิบัติการที่ใช้อยู่และเรียกใช้ตัวปฏิบัติการที่เหมาะสมโดยอัตโนมัติ

ตารางที่ 1: การเข้าถึงฮาร์ดดิสก์ในระดับต่ำ

ภายใต้ DOS ภายใต้ Windows 9x/ME ภายใต้ Windows NT/2000/XP ภายใต้ LINUX/Unix
  • BIOS Int 13h
    (ต้องมีส่วนขยาย BIOS สำหรับดิสก์ที่มีขนาดเกิน 8 กิกะไบต์)
  • โปรแกรม DOS: เช่น DOS แต่ต้องใช้การล็อก/ปลดล็อกระดับเสียงสำหรับการเขียน
  • โปรแกรม Win16: ต้องเรียกใช้ BIOS Int 13h ผ่าน DPMI
  • Win32 โปรแกรม:
    32บิต เพื่อ 16บิต แปลงรูปแบบ 16 บิตและ 32 บิต ไปยัง Win16 DLL
  • โปรแกรม DOS:
    ไม่ได้รับอนุญาต
  • โปรแกรม Win16:
    ไม่ได้รับอนุญาต
  • Win32 โปรแกรม:
    CreateFile(), ReadFile(), WriteFile()
  • open(), read(), write()

กังวลด้านความปลอดภัย?

ใช่มี LTOOLS ไปบางขยายอาจก่อให้เกิดปัญหาด้านความปลอดภัย ผู้ใช้แต่ละคนที่สามารถเรียกใช้พวกเขาสามารถเข้าถึงและแก้ไขไฟล์ในระบบแฟ้ม LINUX เช่นสิทธิในการเข้าถึงไฟล์การเปลี่ยนแปลงหรือเจ้าของไฟล์ไฟล์รหัสผ่านแลกเปลี่ยน ฯลฯ. แต่นี้เป็นไปได้ด้วยโปรแกรมแก้ไขดิสก์ง่ายเกินไป อาจจะเป็นเพียงความสะดวกสบายมากขึ้นเล็กน้อยเมื่อใช้ LTOOLS แต่ไม่ จำกัด การเข้าถึงเป็นไปได้เฉพาะถ้าทำงานภายใต้ DOS หรือ Windows 9x/ME ภายใต้ Windows NT/2000/XP ผู้ใช้ LTOOLS ต้องมีสิทธิผู้ดูแลระบบในการเข้าถึงฮาร์ดดิสก์โดยตรง ภายใต้ Unix/Linux ในการติดตั้งมาตรฐานส่วนใหญ่ยังเป็นเพียงผู้ดูแลระบบ SYS มีสิทธิในการเข้าถึงสำหรับ ‘ดิบ’ อุปกรณ์ดิสก์ /dev/hda/dev/hda1 ฯลฯ.

มีทางเลือกอื่น ๆ?

LTOOLS ไม่ได้เป็นเพียงการแก้ปัญหาในการเข้าถึงไฟล์ลินุกซ์จาก DOS/Windows น่าจะเป็นซานตาคลอส เวลาตี๋ ของ Ext2tool /6/ ชุดเครื่องมือบรรทัดคำสั่งได้รับการพัฒนาในปี 1996 เป็นโซลูชั่นแรกสำหรับปัญหานี้ อย่างไรก็ตาม Ext2tool มีการ จำกัด การเข้าถึงแบบอ่านเท่านั้นและไม่ได้ทำงานภายใต้ Windows NT ขึ้นอยู่กับการ Ext2tool ปีเตอร์ Joot ในปี 1997 เขียนรุ่น Windows NT, ยังมีข้อ จำกัด ในการอ่านเท่านั้น /7/ โปรแกรมทั้งสองถูกเขียนใน C, รหัสแหล่งที่มาที่มีอยู่

จอห์น Newbigin ให้เรามี Explore2fs /8/ ที่มาพร้อมกับ GUI ที่ดีมากและทำงานภายใต้ Windows 9x และ Windows NT ด้วยการอ่านและเขียนการเข้าถึงของมันมีคุณสมบัติเช่นเดียวกับ LTOOLgui ยังไงซะ: จอห์นได้ทำงานดีเพราะเขามีการจัดการที่จะใช้ 32บิต Microsoft เพื่อ 16 บิต แปลงรูปแบบ 16 บิตและ 32 บิต (ดูด้านบน) แม้ภายใต้ของ Borland Delphi! ในฐานะที่เป็นทุกโปรแกรม Delphi Explore2fs บูรณาการ ‘ไร้รอยต่อ’ ลงใน Windows แต่ โอน กับระบบปฏิบัติการที่ไม่ใช่ Windows อาจจะยาก

ประวัติความเป็นมาและอนาคต

รุ่นแรกของ LTOOLS ถูกสร้างขึ้นภายใต้ชื่อเดิม ‘lread’ โดย เจสัน ผู้ล่า และ เดวิด ลัทซ์ ที่ มหาวิทยาลัยวิลลาแมทท์ ซาเลม/โอเรกอน (สหรัฐอเมริกา) รุ่นแรกนี้ทำงานภายใต้ DOS สามารถแสดงรายการไดเรกทอรี Linux และคัดลอกไฟล์จาก Linux ไปยัง DOS และ จำกัด เฉพาะฮาร์ดดิสก์ IDE และ LINUX บนพาร์ติชันหลัก

ผู้เขียนได้เข้ารับการบำรุงรักษาและพัฒนาเพิ่มเติมในปีพ. ศ. 2539 ตั้งแต่นั้นเป็นต้นมา LTOOLS ได้เรียนรู้เกี่ยวกับฮาร์ดดิสก์ที่มีขนาดใหญ่เข้าถึงไดร์ฟ SCSI ภายใต้ Windows 9x/ME และ Windows NT/2000/XP UNIX เพื่อให้ทำงานภายใต้ Solaris และ Linux เอง พวกเขามีเว็บเบราเซอร์ที่ใช้และส่วนติดต่อผู้ใช้แบบกราฟิก JAVA ตาม ฯลฯ เป็นต้นผู้ใช้ Linux จำนวนมากซึ่งส่วนใหญ่มีชื่อในซอร์สโค้ดช่วยในการทดสอบและแก้จุดบกพร่อง ขอบคุณ.

ในขณะเดียวกัน LTOOLS ได้ถึงเวอร์ชัน V4.7 /1/ อาจจะมากยิ่งขึ้นเมื่อบทความนี้ได้รับการเผยแพร่ นอกเหนือจากคุณสมบัติเพิ่มเติมแล้วมีข้อผิดพลาดจำนวนมากที่ได้รับการแก้ไขแล้วและมีการนำเสนอข้อบกพร่องใหม่ ๆ ปัญหาทั่วไปยังคงมีอยู่ตลอดหลายปีที่ผ่านมา: ไม่มีใครคาดว่าจะมีความเร็วในด้านเทคโนโลยีฮาร์ดดิสก์ซึ่งมีขนาดของดิสก์ระเบิดขึ้นซึ่งส่งผลกระทบอย่างมากต่อขีด จำกัด ของระบบปฏิบัติการ คุณจำปัญหาของ DOS เกี่ยวกับดิสก์ 512 เมกะไบต์ หรือปัญหา Windows 3.x กับพาร์ติชัน 2 กิกะไบต์ ขีด จำกัด ของ BIOS ที่ 8 กิกะไบต์ และปัญหาต่างๆที่ Windows NT มีที่ 2 กิกะไบต์, 4 กิกะไบต์ และ 8 กิกะไบต์ หรือไม่? มันเป็นเพียงชั่วครู่ที่ผ่านมา! และโดยวิธีการที่แม้ Linux มีปัญหา: ใน kernel ก่อน 2.3 ไม่มีไฟล์ใดเกิน 2กิกะไบต์ เนื่องจาก Linux เช่นเดียวกับระบบ Unix 32 บิต ส่วนใหญ่จะใช้ตัวชี้วัด 32 บิต ที่ลงนามใน read() หรือ write() (ซึ่งจะแก้ไขได้ใน kernel 2.4 โดยการเปลี่ยนค่าออฟเซตเป็นค่า 64 บิต แต่การรักษาความเข้ากันได้ที่เพิ่มขึ้นอาจทำให้ Linux เกิดปัญหาเช่นเดียวกับที่เราได้กล่าวถึงสำหรับ Windows ด้านบน) มาตรฐานซอฟต์แวร์สำหรับการเข้าถึงดิสก์มักจะช้ากว่านักพัฒนาซอฟต์แวร์ดิสก์ดังนั้นจึงได้คิดค้นโซลูชันที่เป็นกรรมสิทธิ์เพื่อเอาชนะขีด จำกัด ของระบบปฏิบัติการ และ LTOOLS ตลอดจนโปรแกรมเมอร์อื่น ๆ จำนวนมาก – ต้องจัดการกับมัน… ดังนั้นอย่าโกรธหาก LTOOLS ไม่ทำงานกับคุณในไดรฟ์ 64 กิกะไบต์ ใหม่ของคุณ เป็นโอเพนซอร์สดังนั้นเพียงแค่พยายามช่วยแก้ปัญหาและพัฒนาพวกเขาต่อไป!

และอย่าลืมถ้าคุณใช้ LTOOLS: ทำตามความเสี่ยงของคุณเอง! การเข้าถึงแบบอ่านอย่างเดียวของ Linux ไม่ใช่เรื่องสำคัญ อย่างไรก็ตามหากคุณใช้สิทธิ์ในการเขียนเพื่อลบไฟล์หรือแก้ไขแอตทริบิวต์ไฟล์บนดิสก์ Linux ของคุณ LTOOLS – และคุณเป็นผู้ใช้ – สามารถสร้างความไร้สาระได้มาก ดังนั้นเสมอเก็บสำรอง!

อ้างอิง

  1. http://www.it.fht-esslingen.de/~zimmerma/software/ltools.html: Homepage of the 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’s overview about the Extended 2 filesystem.
  5. Microsoft Windows Win32 API – Documentation, comes with most Windows C compilers or on the MSDN CDs
  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

เกี่ยวกับผู้เขียน

“ในชีวิตจริง” แวร์เนอร์ซิมเมอไม่สอนวิศวกรรมควบคุมระบบดิจิตอลและสถาปัตยกรรมคอมพิวเตอร์ที่ สลิงเอส – มหาวิทยาลัยวิทยาศาสตร์ประยุกต์, สลิงเอส, เยอรมนี เขามีฮาร์ดแวร์และซอฟต์แวร์พื้นหลังในระบบฝังตัวยานยนต์และอุตสาหกรรม อาชีพของเขาเป็นนักพัฒนาซอฟแวร์ระบบ Linux เริ่มต้นในปี 1994 เมื่อเขาซื้อไดรฟ์ซีดีรอมซึ่งไม่ได้รับการสนับสนุนโดยลินุกซ์… ดังนั้นเขาพัฒนา ‘aztcd.c’ คนขับลินุกซ์ซีดีรอมซึ่งยังคงรวมอยู่ในลินุกซ์มาตรฐาน เมล็ดแม้ว่าไดรฟ์ในขณะนี้คือที่ล้าสมัยมาก