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

อ่าน 3 นาที

กะล่อน

GLib คือชุด ไลบรารี ระบบระดับต่ำสามชุด (เดิมมีห้าชุด) ที่เขียนด้วยภาษา C และพัฒนาขึ้นโดย GNOME เป็นหลัก โค้ดของ GLib แยกออกจาก GTK...

กะล่อน

กะล่อน
ผู้เขียนต้นฉบับฌอน อามุนด์สัน
นักพัฒนาโครงการ GNOMEและคณะ
ปล่อย1998 ( 1998 )
เวอร์ชันเสถียร
2.88.1 [ 1 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 2 พฤษภาคม 2026 ( 2 พฤษภาคม 2569 )
เขียนเป็นซี
ระบบปฏิบัติการลินุกซ์ , ระบบปฏิบัติการคล้ายยูนิกส์ , มอสซาเรลล่า , วินโดวส์
แพลตฟอร์มข้ามแพลตฟอร์ม
พิมพ์ห้องสมุด
ใบอนุญาตLGPLv2.1
เว็บไซต์www.gtk.org
ที่เก็บข้อมูล
  • gitlab.gnome.org/GNOME/glib.git
สถาปัตยกรรมซอฟต์แวร์แบบง่ายของGTK , Pango , GDK , ATK , GIO , Cairoและ GLib

GLib คือชุด ไลบรารี ระบบระดับต่ำสามชุด (เดิมมีห้าชุด) ที่เขียนด้วยภาษาCและพัฒนาขึ้นโดยGNOMEเป็นหลัก โค้ดของ GLib แยกออกจากGTKดังนั้นจึงสามารถใช้งานได้กับซอฟต์แวร์อื่นนอกเหนือจาก GNOME และได้รับการพัฒนาควบคู่กันมาโดยตลอด

ชื่อ "GLib" มีที่มาจากจุดเริ่มต้นของโครงการที่เป็นไลบรารียูทิลิตี้ GTK C

คุณสมบัติ

GLib มีโครงสร้างข้อมูลขั้นสูง เช่น หน่วยความจำแบบกลุ่ม (memory chunks), รายการเชื่อมโยง แบบสองทางและทางเดียว (doubly and singlely linked lists) , ตารางแฮช (hash table ), สตริงแบบไดนามิกและยูทิลิตี้สตริง เช่น ตัวสแกนคำศัพท์ ( lexical scanner), กลุ่มสตริง (กลุ่มของสตริง), อาร์เรย์แบบไดนามิก (dynamic arrays ) , ต้นไม้ไบนารีแบบสมดุล (balanced binary trees ) , ต้นไม้ N-ary (N-ary trees) , ควาร์ก (quarks) (การเชื่อมโยงสองทางระหว่างสตริงและตัวระบุจำนวนเต็มที่ไม่ซ้ำกัน), รายการข้อมูลแบบมีคีย์ (keyed data lists), ความสัมพันธ์ (relations) และทูเปิล (tuples ) แคชช่วยจัดการหน่วยความจำ

GLib มีฟังก์ชันที่รองรับการทำงานแบบเธรดการเขียนโปรแกรมเธรด และสิ่งอำนวยความสะดวกที่เกี่ยวข้อง เช่น การเข้าถึงตัวแปรพื้นฐานมิวเท็กซ์คิว แบบอะซิง โครนัส พูลหน่วยความจำที่ปลอดภัยการส่งข้อความและการบันทึกฟังก์ชันฮุก (การลงทะเบียนเรียกกลับ) และตัวจับเวลานอกจากนี้ GLib ยังมีสิ่งอำนวยความสะดวกในการส่งข้อความ เช่นการแปลงลำดับไบต์และช่องทาง I/O ด้วย

คุณสมบัติอื่นๆ ของ GLib ได้แก่:

ส่วนประกอบ

แพ็กเกจ GLib ประกอบด้วยไลบรารีห้าชุด แต่ทั้งหมดได้ถูกรวมเข้าเป็นไลบรารีเดียวตั้งแต่นั้นมา โดยใช้ชื่อว่าGLib เฉยๆ และไม่มีการพัฒนาเป็นไลบรารีแยกต่างหากอีกต่อไป ไลบรารีเดิมมีดังนี้:

  • GObjectคือระบบวัตถุที่รวมถึงระบบประเภทข้อมูล GType
  • กะล่อน
  • จีโมดูล
  • จีเธรด
  • จีโอ

ในจำนวนนี้ มีสามส่วนที่ยังคงอยู่ในไดเร็กทอรีย่อยที่แตกต่างกันของโครงสร้างซอร์สโค้ด ดังนั้นจึงสามารถมองได้ว่าเป็นส่วนประกอบที่แยกจากกัน ได้แก่ GLib, GObject และ GIO โดยอาจมองได้ว่าเป็นซอฟต์แวร์แบบเรียงซ้อน: GObject อาศัย GLib และ GIO ให้ฟังก์ชันการทำงานระดับสูงกว่าที่ใช้ทั้งสองอย่าง

โปรแกรมสำหรับไลบรารี GLib

โดยปกติแล้ว ยูทิลิตี้แบบบรรทัดคำสั่งที่เกี่ยวข้องกับ GLib จะถูกบรรจุแยกต่างหากในไฟล์ libglib2.0-bin:

  • gapplication(1)– สำหรับการเริ่มต้นแอปพลิเคชันผ่านการเปิดใช้งาน D-Bus
  • gdbus(1)– สำหรับการทำงานกับอ็อบเจ็กต์ D-Bus และการตรวจสอบสถานะของบัส
  • gio(1)– โปรแกรมจัดการไฟล์ที่สามารถทำงานร่วมกับระบบไฟล์เสมือน GIO ได้
  • gresource(1)– สำหรับการแตกไฟล์จากไฟล์รูปแบบไบนารี (*.gresource) และไฟล์ปฏิบัติการ
  • gsettings(1)– สำหรับตรวจสอบและแก้ไขการตั้งค่าแอปพลิเคชัน
  • gio-query-modules(1)– สำหรับการอัปเดตแคชที่ GLib ใช้ภายใน
  • glib-compile-schemas(1)– สำหรับการอัปเดตแคชที่ GLib ใช้ภายใน

ประวัติศาสตร์

GLib เริ่มต้นจากการเป็นส่วนหนึ่งของ โครงการ GTK+ซึ่งปัจจุบันเปลี่ยนชื่อเป็น GTK แล้ว อย่างไรก็ตาม ก่อนที่จะปล่อย GTK+ เวอร์ชัน 2 นักพัฒนาโครงการได้ตัดสินใจแยกโค้ดส่วนที่ไม่เกี่ยวข้องกับส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ออกจาก GTK+ จึงได้สร้าง GLib ขึ้นมาเป็นชุดซอฟต์แวร์แยกต่างหาก GLib ถูกปล่อยออกมาเป็นไลบรารีแยกต่างหาก เพื่อให้นักพัฒนาคนอื่นๆ ที่ไม่ได้ใช้ส่วนที่เกี่ยวข้องกับ GUI ของ GTK+ สามารถใช้ส่วนที่ไม่ใช่ GUI ของไลบรารีได้โดยไม่ต้องพึ่งพาไลบรารี GUI ทั้งหมด

เนื่องจาก GLib เป็น ไลบรารี ข้ามแพลตฟอร์ม แอปพลิเคชันที่ใช้ GLib ในการเชื่อมต่อกับระบบปฏิบัติการจึงมักพกพาได้บนระบบปฏิบัติการต่างๆ โดยไม่ต้องเปลี่ยนแปลงครั้งใหญ่[ 2 ]

การเผยแพร่

Glib กำลังอยู่ระหว่างการพัฒนาอย่างต่อเนื่อง สำหรับภาพรวมล่าสุด โปรดดูที่https://gitlab.gnome.org/GNOME/glib/-/blob/main/NEWSตารางด้านล่างแสดงบันทึกการแก้ไขที่สำคัญตั้งแต่ปี 1998 ถึง 2025

ชุดวางจำหน่าย วันที่วางจำหน่าย ครั้งแรกการปรับปรุงที่สำคัญ
GLib 1.x
1.112 กันยายน 1998
1.227 กุมภาพันธ์ 1999
1.325 กันยายน 2544
GLib 2.x
2.08 มีนาคม 2545
2.2426 มีนาคม 2553 GVariant, GConverted
2.2627 กันยายน 2553 การผูกคุณสมบัติ GSettings , GDbus, GObject (GAtomic สำหรับการนับอ้างอิง)
2.3026 กันยายน 2011 GApplications ที่ไม่ซ้ำกัน ใช้eventfd()สำหรับการปลุก mainloop การเพิ่มประสิทธิภาพชุด GHashTable ความสามารถในการปรับขนาดข้อมูล GObject
2.3224 มีนาคม 2555 แผนสำหรับ GLib 2.32
2.3423 กันยายน 2555 มีอะไรใหม่สำหรับนักพัฒนาใน GLib 2.34 บ้าง
2.3625 มีนาคม 2556
2.3823 กันยายน 2556 แอปพลิเคชันที่เปิดใช้งานโดยใช้การเปิด ใช้งาน D-Bus [ 3 ] GSubprocess, Unicode 6.3 (เผยแพร่เมื่อเดือนกันยายน 2013)
2.4024 มีนาคม 2557 GNotification, API การแจ้งเตือนระบบ[ 4 ]
2.4222 กันยายน 2014
2.4327 ตุลาคม 2557
2.4423 มีนาคม 2558
2.4530 เมษายน 2558
2.4621 กันยายน 2015
2.4726 ตุลาคม 2558
2.4822 มีนาคม 2559
2.5019 กันยายน 2559
2.5219 มีนาคม 2560
2.5325 เมษายน 2560
2.548 มกราคม 2018
2.552018-02-06
2.5612 มีนาคม 2018
2.575 พฤษภาคม 2561
2.5830 สิงหาคม 2561
2.5923 ธันวาคม 2018
2.604 มีนาคม 2019
2.6115 เมษายน 2562
2.625 กันยายน 2019
2.634 ตุลาคม 2562
2.6427 กุมภาพันธ์ 2020
2.6518 มิถุนายน 2020
2.662020-09-10
2.6723 ตุลาคม 2020
2.6818 มีนาคม 2021
2.692021-07-06
2.7017 กันยายน 2021
2.7116 ธันวาคม 2021
2.7217 มีนาคม 2022
2.7327 พฤษภาคม 2022
2.7417 กันยายน 2022
2.7510 พฤศจิกายน 2022
2.762023-03-10
2.772023-07-06
2.788 กันยายน 2023
2.7922 ธันวาคม 2023
2.802024-03-07
2.8128 มิถุนายน 2024
2.8226 สิงหาคม 2024
2.832024-11-06
2.842025-03-06
2.852025-05-20
2.865 กันยายน 2025
2.873 พฤศจิกายน 2025
2.8816 มีนาคม 2026

โครงการที่คล้ายกัน

ไลบรารีอื่นๆ มีฟังก์ชันระดับต่ำและการใช้งานโครงสร้างข้อมูลต่างๆ รวมถึง:

  • Microsoft Foundation Class Library (MFC) – ไลบรารีC++ แบบเชิงวัตถุที่เป็นตัว ห่อหุ้ม API ของ Windowsที่ใช้ภาษา C ซึ่งรวมถึงโครงสร้างข้อมูลและฟังก์ชันอำนวยความสะดวกอื่นๆ ด้วย
  • Standard Template Library (STL) – ไลบรารี C++ สำหรับโครงสร้างข้อมูลและอัลกอริทึม
  • Boost – มีฟังก์ชันบางอย่างสำหรับ C++ เช่น ฟังก์ชันพื้นฐานสำหรับการทำงานแบบมัลติเธรด คล้ายกับที่ GLib ทำสำหรับ C
  • QtCore – API หลักของเฟรมเวิร์ก Qt
  • wxBase – ฟังก์ชันที่ไม่เกี่ยวข้องกับ GUI ของไลบรารีwxWidgets
  • Apache Portable Runtimeและ Apple Core Foundationมีฟังก์ชันการทำงานที่ทับซ้อนกันอย่างมากกับ GLib และมีฟังก์ชันการทำงานด้านมัลติเธรด เครือข่าย และโครงสร้างข้อมูลที่ใช้งานได้บนระบบปฏิบัติการต่างๆ มากมายในภาษา C
  • Gnulib - ไลบรารีสำหรับการพกพาของ GNU
  • เอกสารประกอบ API ของ GLib
  • GLib Git Source Tree
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=GLib&oldid=1355039480 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ กะล่อน

GLib คือชุด ไลบรารี ระบบระดับต่ำสามชุด (เดิมมีห้าชุด) ที่เขียนด้วยภาษา C และพัฒนาขึ้นโดย GNOME เป็นหลัก โค้ดของ GLib แยกออกจาก GTK...

คุณสมบัติ

GLib มีโครงสร้างข้อมูลขั้นสูง เช่น หน่วยความจำแบบกลุ่ม (memory chunks), รายการเชื่อมโยง แบบสองทางและทางเดียว (doubly and singlely linked lists) , ตารางแฮช (hash table ), สตริง แบบไดนามิกและยูทิลิตี้สตริง เช่น ตัวสแกนคำศัพท์ ( lexical scanner), กลุ่มสตริง...

ส่วนประกอบ

แพ็กเกจ GLib ประกอบด้วยไลบรารีห้าชุด แต่ทั้งหมดได้ถูกรวมเข้าเป็นไลบรารีเดียวตั้งแต่นั้นมา โดยใช้ชื่อว่า GLib เฉยๆ และไม่มีการพัฒนาเป็นไลบรารีแยกต่างหากอีกต่อไป ไลบรารีเดิมมีดังนี้:

โปรแกรมสำหรับไลบรารี GLib

โดยปกติแล้ว ยูทิลิตี้แบบบรรทัดคำสั่งที่เกี่ยวข้องกับ GLib จะถูกบรรจุแยกต่างหากในไฟล์ libglib2.0-bin: