X (Re)Architecture
อ่าน paper เกี่ยวกับ X เสียหน่อย ช่วงนี้ หลังจาก XFree86 relicensing ซึ่งเป็นฟางเส้นสุดท้าย ทำให้ X developer กรูกันไปยึดหัวหาด X.org แล้วก็ active กันใหญ่ มี desktop developer conference กันถี่ยิบ อะไรๆ คงมีการเปลี่ยนแปลงเร็วๆ นี้
ปรากฏว่า ไปเจอ paper ของ Jim Gettys กับ Keith Packard ร่วมกันเขียน The (Re)Architecture of the X Window System (ฉบับ HTML) สรุปความเปลี่ยนแปลงที่เกิดกับ X11 ทั้งหมดที่ผ่านมา และที่จะมีต่อไปในอนาคต อ่านฉบับนี้แล้วเหมือนมีลายแทงให้ไปค้นต่อ ว่างั้นเหอะ
สรุปคร่าวๆ ว่าเริ่มจากเล่าเรื่องการ render bitmap แบบเดิมนั้นไม่เพียงพอ จึงเกิด X Rendering Extension เพื่อการ compose รูปภาพที่เนียนยิ่งขึ้น ซึ่งทำให้วาด text แบบ anti-alias ได้ด้วย
จากนั้น เป็นเรื่องของ client-side font ว่ามาจากความต้องการเรื่องการทำ WYSIWYG บวกกับ การวิเคราะห์ network performance ระบุว่า การย้ายฟอนต์มาที่ฝั่ง client ช่วยลด round trip ลงได้ เลยเกิด Xft1 เป็น implementation แรก จัดการวาดฟอนต์ที่ฝั่ง client โดยอาศัย X Rendering extension และ FreeType library แต่ปัญหาคือ require extension นี้ที่ฝั่ง server ซึ่ง X server มีหลากหลาย เพิ่มไม่หมด ต่อมาจึงมี Xft2 ที่ไม่ require X Rendering และยังได้แยกส่วน font configuration ออกมาต่างหาก เป็น Fontconfig library
แต่ X Rendering ก็ยังขาดความสามารถหลายอย่างในการวาด graphics เช่น spline, stroke ต่างๆ จึงเกิด Xr library ซึ่งต่อมาเปลี่ยนชื่อเป็น Cairo โดยอ้างอิงโมเดลการวาดแบบ PDF 1.4 ซึ่งตรงนี้น้องฝ้ายบอกว่าจะกลายเป็นอนาคตของ desktop ผมเองเพิ่งนั่งอ่าน presentation เรื่อง Cairo ไปนิดหน่อยเมื่อเดือนก่อน ก็เห็นด้วยแฮะ
นอกจากนี้ยังมีส่วนอื่นๆ อีก ถ้าเขียนหมดเกรง blog จะยาวเกินไป ถ้าเอาแต่ keyword ก็ off-screen window composing (ช่วยให้ทำ translucent window และลูกเล่นอื่นๆ ได้), X บน OpenGL ใช้ 3D เป็นหลัก, การแบ่งหน้าที่ชัดเจนในการคุมฮาร์ดแวร์ ระหว่าง X server, kernel และ extension ต่างๆ ซึ่งอาจช่วยลด latency ได้ด้วย, ทำ Xlib replacement ที่เบาลง ได้แก่ XCB/XCL ฯลฯ
blog ไว้เฉยๆ ตรงส่วนตั้งแต่ Cairo ลงมา อย่าเพิ่งถาม เพราะยังไม่ได้อ่าน :-P
1 ความเห็น:
ณ 8 กรกฎาคม 2547 เวลา 05:00 , the ancient แถลง…
xcb เนี่ย มันเอาไว้ลด latency เลยแหละ
แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)
<< กลับหน้าแรก