กลับไปหน้าบทความ

อ่าน 3 นาที

ดีเจจีพีพี

DJ's GNU Programming Platform ( DJGPP ) เป็นชุดพัฒนาซอฟต์แวร์สำหรับIntel 80386ระดับขึ้นไป และคอมพิวเตอร์ที่เข้ากันได้กับ IBM PCซึ่งรองรับ ระบบปฏิบัติการ DOSโดยมี DJ Delorie...

ดีเจจีพีพี

DJ's GNU Programming Platform ( DJGPP ) [ 2 ]เป็นชุดพัฒนาซอฟต์แวร์สำหรับIntel 80386ระดับขึ้นไป และคอมพิวเตอร์ที่เข้ากันได้กับ IBM PCซึ่งรองรับ ระบบปฏิบัติการ DOSโดยมี DJ Delorie เป็นผู้ริเริ่มโครงการนี้ในปี 1989 เป็นการพอร์ต GNU Compiler Collection (GCC) และ ยูทิลิตี้ ของ GNU ส่วนใหญ่ เช่นBash , find , tar , ls , GAWK , sedและldไปยังDOS Protected Mode Interface (DPMI) ภาษาที่รองรับ ได้แก่C , C++ , Objective-C /C++, Ada , FortranและPascalเดิมทีเรียกว่าDJGCCและต่อมาเปลี่ยนชื่อจาก DJGCC เป็น DJGPP เมื่อเพิ่มการรองรับ C++ แม้ว่า "PP" จะหมายถึง "Programming Platform" มากกว่า "Plus Plus" ก็ตาม[ 3 ]

ภาพรวม

คอมไพเลอร์สร้างโค้ด 32 บิต ซึ่งทำงานใน โหมดป้องกัน 32 บิตโดยตรงในขณะที่สลับกลับไปใช้การเรียกใช้ DOS 16 บิตสำหรับการสนับสนุนระบบปฏิบัติการพื้นฐาน อย่างไรก็ตาม แตกต่างจากคอมไพเลอร์ Open Watcom C/C++ตรงที่ไม่ได้ใช้โมเดลแบบฐานศูนย์ (zero-based flat model) เนื่องจากเลือกใช้การป้องกันด้วยพอยเตอร์ NULL เพื่อความเสถียรที่ดีกว่า ปัจจุบันใช้รูป แบบ COFF เวอร์ชันหนึ่ง สามารถเข้าถึง RAM ได้สูงสุด 4 GB ใน DOS บริสุทธิ์เมื่อใช้ โฮสต์ DPMI ที่เหมาะสม (เช่นCWSDPMI r7 หรือ HDPMI32)

ข้อมูล ณ เดือนเมษายน พ.ศ. 2568 ส่วนประกอบหลักของ DJGPP 2 ประกอบด้วย:

นอกจากนี้ ยังสามารถใช้ DJGPP ในการคอมไพล์ซอฟต์แวร์ข้ามระบบปฏิบัติการ เช่น UNIX/Linux ได้อีกด้วย ทั้งไลบรารีของ DJGPP และโปรแกรมต่างๆ สามารถคอมไพล์ เชื่อมโยง และติดตั้งใช้งานบนเครื่องที่มี DOS หรือโปรแกรมจำลอง DOS ได้ด้วยวิธีนี้

ความเข้ากันได้

DJGPP นำเสนออินเทอร์เฟซสำหรับโปรแกรมเมอร์ที่เข้ากันได้กับ มาตรฐาน ANSI CและC99 , API ของ DOS และสภาพแวดล้อมที่คล้ายกับPOSIX รุ่นเก่า ไบนารีที่คอมไพล์แล้วนั้นรองรับ ชื่อไฟล์ยาว (LFN) และสามารถจัดการชื่อดังกล่าวได้ภายใต้ Windows 32 บิตส่วนใหญ่โดยค่าเริ่มต้น แต่ไม่สามารถใช้ API ของ Win16หรือ Win32 ที่โปรแกรมกราฟิกบน Windows ต้องการได้[ 5 ] มี โปรแกรม terminate-and-stay-resident (TSR) เพื่อรองรับ LFN ภายใต้DOSหรือWindows NT 4 ทั่วไป

แม้ว่า DJGPP จะทำงานใน โหมดป้องกัน 32 บิตแต่ stub และไลบรารีของมันต้องพึ่งพาการเรียกใช้ DOS และ BIOS 16 บิตจำนวนมาก เนื่องจากWindowsเวอร์ชันx86-64ขาดการสนับสนุนโปรแกรม 16 บิต[ 6 ] [ 7 ]จึงไม่มีNTVDMและแอปพลิเคชัน DJGPP ไม่สามารถทำงานได้ ภายใต้ระบบ x86-64 แอปพลิเคชันเหล่านี้ทำงานได้ผ่านการจำลอง (เช่นDOSBox ) การจำลองเสมือน x86 (เช่นVirtualBox ) หรือที่คล้ายกัน (เช่นDOSEMU ของ Linux ) ปัญหานี้เกิดขึ้นเนื่องจากในโหมด longโปรเซสเซอร์ x86-64 ไม่รองรับโหมดเสมือน 8086ที่ใช้ในการรันโค้ด 16 บิตในโปรเซสเซอร์ IA-32 CPU x86 รุ่นใหม่ที่มีVT-xรองรับโหมดจริงแบบ paged และการเรียกใช้โหมด guest แบบไม่จำกัด

ดูเพิ่มเติม

  • เว็บไซต์อย่างเป็นทางการ
  • เว็บไซต์ของดีเจเดโลรี

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ดีเจจีพีพี

DJ's GNU Programming Platform ( DJGPP ) เป็นชุดพัฒนาซอฟต์แวร์สำหรับIntel 80386ระดับขึ้นไป และคอมพิวเตอร์ที่เข้ากันได้กับ IBM PCซึ่งรองรับ ระบบปฏิบัติการ DOSโดยมี DJ Delorie...

ภาพรวม

คอมไพเลอร์สร้างโค้ด 32 บิต ซึ่งทำงานใน โหมดป้องกัน 32 บิตโดยตรงในขณะที่สลับกลับไปใช้การเรียกใช้ DOS 16 บิตสำหรับการสนับสนุนระบบปฏิบัติการพื้นฐาน อย่างไรก็ตาม แตกต่างจาก คอมไพเลอร์ Open Watcom C/C++ ตรงที่ไม่ได้ใช้โมเดลแบบฐานศูนย์ (zero-based flat model)...

ความเข้ากันได้

DJGPP นำเสนออินเทอร์เฟซสำหรับโปรแกรมเมอร์ที่เข้ากันได้กับ มาตรฐาน ANSI C และ C99 , API ของ DOS และสภาพแวดล้อมที่คล้ายกับ POSIX รุ่นเก่า ไบนารีที่คอมไพล์แล้วนั้นรองรับ ชื่อไฟล์ยาว (LFN) และสามารถจัดการชื่อดังกล่าวได้ภายใต้ Windows 32 บิตส่วนใหญ่โดยค่าเริ่มต้น...

ดูเพิ่มเติม

ฟรีดออส Cygwin - เลเยอร์ความเข้ากันได้กับ UNIX ที่มีไลบรารีและแอปพลิเคชันที่พอร์ตมามากมาย EMX - การนำมาตรฐาน POSIX มาใช้กับระบบปฏิบัติการ DOS (และ OS/2 ด้วย) จีนูวิน32 MinGW - ชุดเครื่องมือ GNU เวอร์ชันสำหรับ Windows...