กรณีศึกษา
ระบบภาษาไทยระดับแก่น (Thai Kernel System : TKS)
ระบบภาษาไทยระดับแก่นหรือ TKS ถูกออกแบบและพัฒนาโดยทีมงานจากห้อง
ปฏิบัติการวิจัยไมโครคอมพิวเตอร์มหาวิทยาลัยเกษตรศาสตร์
ถึงแม้ว่า TKS จะไม่ประสบความสำเร็จมากในการขยายฐานผู้ใช้ ทั้งนี้เนื่องจาก
มีการเปลี่ยนแปลงเทคโนโลยีดังที่ได้กล่าวไปแล้ว แต่ระบบ TKS ถือว่าเป็น
ตัวอย่างที่ดีสำหรับการพัฒนาระบบภาษาไทยเพื่อเป็นพื้นฐาน สำหรับการสร้าง
แอพพลิเคชั่นภาษาไทยอื่นๆต่อไป
สถาปัตยกรรมของ TKS
ระบบ TKS ถูกออกแบบโดยมีจุดมุ่งหมายคือ
-
มีลักษณะเป็นฟังก์ชันบริการที่ง่ายต่อการเรียกใช้ แต่ละฟังก์ชันบริการจะมี
หมายเลขกำกับ การเรียกใช้จะเรียกในลักษณะฟังก์ชัน CALL จากโปรแกรม
ประยุกต์
-
สนับสนุนการทำงานพื้นฐานที่เกี่ยวข้องกับภาษาไทยไว้ทั้งหมด เช่นฟังก์ชันเกี่ยว
กับจอภาพ คีย์บอร์ด และเครื่องพิมพ์
-
มีความอ่อนตัวที่จะเปลี่ยนแปลงรูปแบบภายในให้ขึ้นกับอุปกรณ์ต่างๆได้ เช่น
เครื่องพิมพ์ทุกชนิด การแสดงผลบนจอภาพได้ทุกโหมด (โหมดตัวอักษรหรือกราฟฟิก)
รหัสการแทนค่าภาษาไทยทำได้ทุกรหัสและทุกระดับ
-
TKS สามารถเพิ่มฟังก์ชั่นได้ เช่นการจัดการจอภาพแบบหน้าต่าง
-
เป็นส่วนเดียวของระบบซอฟต์แวร์ที่ยอมให้ผผูกพันกับสิ่งแวดล้อมและฮาร์ดแวร์
TKS จะวางระดับโครงสร้างไว้เป็นชั้นๆ โดยจะมี Physical device drive ซึ่งจะ
ทำหน้าที่ควบคุมตัวฮาร์ดแวร์โดยตรง เป็นชั้นแรกสุด และชั้นถัดมาจะเป็นชั้นของ
ลอจิคอลดีไวซ์ไดรเวอร์ และถัดไปจะเป็นระดับของฟังก์ชั่นคอลและไลบราลี ระดับบนสุด
จึงจะเป็นระดับของแอพพลิเคชั่นหรือโปรแกรมประยุกต์
-
ระดับฟิสิคัลดีไวซ์ไดรเวอร์ (PDD - Physical Device Driver)
ในระดับนี้จะมีการติดต่อกับอุปกรณ์ฮาร์ดแวร์โดยตรง เช่น จอภาพ คีย์บอร์ด เป็นต้น
ในการติดต่อจะมีการกำหนดเป็นหมายเลขต่างๆเช่น
-
entry #0-#3 มีหน้าที่เกี่ยวกับตรวจสอบและการติดตั้งระบบ
entry #16-#21 มีหน้าที่เกี่ยวกับการรับและส่งข้อมูลเป็นตัวอักษร (char) หรือเป็น
คำ (word)
entry #22-#25 มีหน้าที่เกี่ยวกับการรับและส่งข้อมูลเป็นกลุ่มตัวอักษร (stream)
ระดับลอจิคัลดีไวซ์ไดรเวอร์ (LDD-Logical Device Driver)
ในระดับนี้จะทำการติดต่อกับอุปกรณ์ผ่านทางชื่อ เช่น STD_IN, STD_OUT, STD_ERR
เป็นต้น การกำหนดในลักษณะนี้จะสามารถทำให้ทำการเปลี่ยนทิศทางข้อมูล (redirection)
ได้ง่าย
ระดับฟังก์ชันคอลและไลบราลี่ (FCLF-Function Call and Library Function)
ในระดับนี้จะเกี่ยวข้องกับ I/O และระบบภาษาไทย โดยสามารถทำการติดต่อได้โดยผ่าน
ทางการเรียกใช้งานฟังก์ชัน
ระดับโปรแกรมประยุกต์
ในระดับนี้จะสามารถใช้การติดต่อจากระดับใดก็ได้ใน 3 ระดับข้างต้นทั้งนี้ขึ้นอยู่
กับความเหมาะสมของความเร็วที่ต้องการติดต่อ และความง่ายในการใช้งาน
ตัวอย่างของการเรียกใช้ TKS
การเรียกผ่าน LDD
main()
{
STRING string;
string = & "ระบบผู้\^เชี่ยวชาญ\0";
dprints (STD_OUT, string);
exit();
}
การเรียกผ่านระบบ (function call)
#define READCHAR 5
main()
{
Char ch;
ch = Func_call (READCHAR, STD_AUX);
exit;
}
การเรียกผ่าน PDD โดยตรง
#define ENTRY 17
main()
{
TEXT test = {"_","_","_","_"};
PDD_VDO(ENTRY, txt);
}
หมายเหตุ
-
dprints, Func_call เป็นฟังก์ชั่นใน FCLF
-
PDD_VDO เป็นชื่อของการเรียกเข้าหาระบบในระดับ PDD
HTML developed by Kaiwal Development Team (kaiwal@geocities.com)