ความเป็นมาของระบบปฏิบัติการ UNIX
ย้อนหลังไปในช่วงทศวรรษที่ 1940 และ 1950 เครื่องคอมพิวเตอร์ทุกเครื่องที่มีในโลกอาจกล่าวได้ว่าเป็นเครื่องคอมพิวเตอร์ส่วนบุคคล เนื่องจากระบบปฏิบัติการของเครื่องอนุญาตให้ผู้ใช้ใช้งานเครื่องได้เพียงครั้งละคนเดียว ดังนั้นผู้ใช้ที่มีความประสงค์จะใช้เครื่องต้องทำการจองเวลาใช้เครื่องไว้ล่วงหน้า เมื่อถึงเวลาที่จองไว้ผู้ใช้นั้นจะได้เครื่องคอมพิวเตอร์นั้นแต่เพียงผู้เดียวตลอดระยะเวลาที่จองไว้ ผู้ใช้อื่นไม่สามารถใช้งานเครื่องอีกได้ และโดยทั่วไปในระหว่างการใช้งาน ผู้ใช้ไม่ได้ใช้งานหน่วยประมวลผลกลางเต็มกำลัง เพราะอาจต้องหยุดคิดแก้ปัญหา หรือป้อนข้อมูลเข้าเครื่องซึ่งใช้ความสามารถของเครื่องน้อยมาก จึงกล่าวได้ว่าผู้ใช้งานนั้นไม่ได้ใช้เครื่องจนเต็มขีดความสามารถตลอดเวลา เนื่องจากระบบคอมพิวเตอร์ในยุคนั้นมีราคาแพงจึงเกิดแนวความคิดที่จะสร้างระบบปฏิบัติการที่ผู้ใช้สามารถใช้งานเครื่องได้เต็มกำลังตลอดเวลาโดยการให้ผู้ใช้แต่ละคนเตรียมงานไว้ล่วงหน้าโดยใช้บัตรเจาะรู เมื่อมีปริมาณของงานมากถึงระดับหนึ่งจึงจะเดินเครื่องและทำการอ่านงานเหล่านั้นเข้าไปประมวลผลต่อเนื่องกันไป ระบบปฏิบัติการเช่นนี้เรียกว่าระบบการประมวลผลแบบ batch ระบบนี้ช่วยให้ใช้งานเครื่องได้โดยมีประสิทธิภาพมากขึ้นกว่าเดิม แต่อย่างไรก็ดีสำหรับผู้เขียนโปรแกรมแล้วระบบเช่นนี้ยังมีการตอบสนองไม่ดีนัก กล่าวคือเมื่อผู้เขียนโปรแกรมนำโปรแกรมต้นฉบับซึ่งอยู่ในรูปของบัตรเจาะรูไปส่งที่ห้องเครื่อง แล้วต้องรอเป็นระยะหนึ่งกว่าจะทราบผลการดำเนินการ ภายใต้ภาวะการณ์เช่นนี้การตรวจสอบและแก้ไขโปรแกรม (debugging) จึงเป็นกระบวนการที่กินเวลามาก หากผู้เขียนโปรแกรมลืมใส่เครื่องหมายวรรคตอนเพียงตัวเดียวผู้เขียนโปรแกรมต้องใช้เวลานานหลายชั่วโมงกว่าทราบความผิดพลาดนั้นและทำการแก้ไข ทำให้การพัฒนางานล่าช้า ดังนั้นผู้เขียนโปรแกรมโดยทั่วไปจึงต้องการระบบปฏิบัติการที่มีการตอบสนองเร็วเพื่อให้สามารถตรวจสอบแก้ไขโปรแกรมได้ดียิ่งขึ้น
จากความต้องการดังกล่าวนี้เองจึงมีการคิดระบบปฏิบัติการแบบ timesharing ซึ่งช่วยให้ผู้ใช้หลายคนสามารถใช้เครื่องในเวลาเดียวกันได้ โดยอาศัยการแบ่งเวลาของหน่วยประมวลผลกลางให้แก่ผู้ใช้เวียนกันไป ระบบ timesharing ที่ประสบความสำเร็จเกิดขึ้นที่ Dartmouth College และที่ Massachusetts Institute of Technology (M.I.T.) โดยระบบของ Dartmouth College เป็นระบบปฏิบัติการที่ใช้สนับสนุนการเขียนโปรแกรมด้วยภาษา BASIC เพียงอย่างเดียวและประสบความสำเร็จในการใช้งานทางธุรกิจในระยะหนึ่ง ส่วนระบบปฏิบัติการของ M.I.T. มีชื่อเรียกว่าระบบ CTSS เป็นระบบที่ได้รับการออกแบบเพื่อให้เป็นระบบปฏิบัติการเอนกประสงค์ และประสบความสำเร็จสูงกว่าโดยเฉพาะในกลุ่มนักวิทยาศาสตร์ หลังจากระบบ CTSS ประสบความสำเร็จแล้วไม่นาน M.I.T., Bell Labs และบริษัท General Electric ซึ่งเป็นบริษัทผู้ผลิตคอมพิวเตอร์ ได้ร่วมกลุ่มกัน เพื่อทำการวิจัยและออกแบบระบบปฏิบัติการแบบ timesharing ใหม่ให้มีความสามารถมากขึ้น และกำหนดชื่อระบบปฏิบัติใหม่เป็น MULTICS (MULTiplexed Information and Computing Service) ระบบปฏิบัติการ MULTICS ไม่ทำงานตามที่คณะผู้ทำงานหวังไว้ เนื่องจากระบบได้รับการออกแบบให้สามารถรองรับผู้ใช้ได้หลายร้อยคนบนเครื่องคอมพิวเตอร์ที่มีหน่วยประมวลผลกลางซึ่งมีความสามารถสูงกว่า หน่วยประมวลผลกลางแบบ 80286 ในปัจจุบันเพียงเล็กน้อย อย่างไรก็ดีแนวความคิดดังกล่าวนี้เป็นเรื่องที่เป็นไปได้ในยุคนั้นเนื่องจากเป็นระยะเริ่มต้นของการใช้คอมพิวเตอร์ โปรแกรมที่เขียนขึ้นใช้งานส่วนใหญ่เป็นโปรแกรมขนาดเล็ก สาเหตุที่แท้จริงของความล้มเหลวของโครงการนี้มีมากมายเช่นในการออกแบบระบบกำหนดให้มีการใช้ภาษาระดับสูงคือภาษา PL/I ซึ่งเป็นภาษาที่อยู่ระหว่างการพัฒนาและมีการพัฒนาล่าช้ากว่ากำหนดการที่กำหนดไว้มากและมีข้อบกพร่องมากมาย นอกจากนี้แล้วยังมีการนำความคิดที่ล้ำสมัยหลายอย่างมาใช้ในขณะที่เทคโนโลยียังไม่พร้อม ปัจจัยเหล่านี้ส่งผลให้โครงการนี้ไม่ประสบความสำเร็จเช่นเดียวกับการพัฒนางานของ Charles Babbage ในสมัยศตวรรษที่ 19
เมื่อสิ้นระยะแรกของโครงการ ห้องปฏิบัติการ Bell ถอนตัวออกจากโครงการ ทำให้นักวิจัยคนหนึ่งในโครงการนี้คือ Ken Thompson ซึ่งว่างงานอยู่เริ่มหาแนวทางในการทำวิจัยต่อไป ในที่สุดตัดสินใจที่จะทำการเขียนระบบปฏิบัติการ MULTICS แบบย่อส่วนขึ้นโดยใช้ภาษา Assembly โดยใช้เครื่องมินิคอมพิวเตอร์รุ่น PDP-7 ซึ่งว่างอยู่ในขณะนั้น ระบบปฏิบัติการของ Thompson สามารถทำงานได้เป็นอย่างดี ระบบปฏิบัติการนี้นักวิจัยอีกคนหนึ่งของห้องปฏิบัติการ Bell คือ Brian Kernighan ตั้งชื่อให้ว่า UNICS หรือ Uniplexed Information and Computing Service เพื่อเป็นการล้อเลียนโครงการ MULTICS และต่อมาได้รับการเปลี่ยนชื่อเป็น UNIX
ภาพโดยรวมของระบบปฏิบัติการ UNIX
เป้าหมายของ UNIX
UNIX เป็นระบบปฏิบัติการชนิดที่เรียกว่า interactive timesharing และเป็นระบบปฏิบัติการที่ได้รับการออกแบบโดยนักเขียนโปรแกรม เพื่อให้มีสภาพแวดล้อมในการทำงานที่เหมาะสมกับการพัฒนาโปรแกรมขนาดใหญ่และมีความซับซ้อน การพัฒนาโปรแกรมในโครงการเช่นนี้ต้องใช้นักเขียนโปรแกรมจำนวนมากทำงานร่วมกัน ในระหว่างการพัฒนานักเขียนโปรแกรมเหล่านี้จำเป็นต้องใช้ข้อมูลร่วมกันทั้งในส่วนของโปรแกรมต้นฉบับและข้อมูลสำหรับทดสอบ ข้อมูลเหล่านี้ต้องมีกลไกควบคุมการใช้งานที่เหมาะสม ดังนั้นระบบปฏิบัติการ UNIX ซึ่งได้รับการออกแบบให้เหมาะสมในการทำงานของนักเขียนโปรแกรมจึงเป็นระบบปฏิบัติการที่มีลักษณะแตกต่างออกไปจากระบบปฏิบัติการของเครื่องคอมพิวเตอร์ส่วนบุคคลที่ออกแบบสำหรับให้ใช้กับงานสำนักงานโดยทั่วไป เนื่องจาก UNIX เป็นระบบปฏิบัติการที่สร้างขึ้นสนับสนุนการเขียนโปรแกรม ดังนั้นหากจะทำความเข้าใจปรัชญาของ UNIX ต้องเริ่มต้นด้วยคำถามที่ว่าผู้เขียนโปรแกรมมีความต้องการอย่างไรต่อระบบปฏิบัติการ ความต้องการประการแรกคือผู้เขียนโปรแกรมต้องการระบบปฏิบัติการที่เรียบง่าย และมีความแน่นอนและแนวปฏิบัติเป็นแบบเดียวกัน ตัวอย่างความเรียบง่ายของระบบปฏิบัติการได้แก่ระบบแฟ้ม กล่าวคือระบบปฏิบัติการมองแฟ้มเป็นที่รวมของข้อมูลระดับไบต์โดยไม่สนใจว่าไบต์ข้อมูลเหล่านี้เป็นข้อมูลชนิดใดและมีกรรมวิธีในการเข้าถึงข้อมูลนั้นอย่างไร การแยกชนิดของข้อมูลในแฟ้มว่าเป็นแบบอักขระ (text) หรือรหัสฐานสอง (binary) รวมถึงวิธีการเข้าถึงข้อมูล เช่นการเข้าถึงข้อมูลแบบตามลำดับ การเข้าถึงข้อมูลแบบสุ่ม หรือการเข้าถึงข้อมูลโดยใช้ดัชนี เป็นเรื่องของโปรแกรมประยุกต์ที่จะต้องตัดสินใจและดำเนินการเอง นอกจากนี้แล้วระบบปฏิบัติการยังมองอุปกรณ์นำข้อมูลเข้าเช่น แป้นพิมพ์และจอภาพ เป็นแฟ้มด้วย ทำให้การดำเนินการเกี่ยวกับแป้นพิมพและจอภาพเป็นไปเช่นเดียวกับแฟ้มทำให้เรียกใช้งานได้สะดวก ตัวอย่างของความแน่นอนและมีแนวปฏิบัติเป็นแบบเดียวกันของระบบปฏิบัติการเช่น หากคำสั่ง ls A* หมายถึงการแสดงรายชื่อแฟ้มที่ขึ้นต้นด้วยอักษร A แล้ว คำสั่ง rm A* ต้องหมายถึงการลบแฟ้มข้อมูลทุกแฟ้มที่ขึ้นต้นด้วยอักษร A ไม่ใช่แฟ้มข้อมูลที่มีชื่อเป็น A* คุณลักษณะของระบบปฏิบัติการเช่นนี้เรียกว่า principle of least surprise
ความต้องการประการที่สองที่ผู้เขียนโปรแกรมต้องการคือระบบปฏิบัติการที่มีความสามารถสูง และมีความยืดหยุ่นในการทำงาน ซึ่งหมายความว่าระบบปฏิบัติการควรมีองค์ประกอบพื้นฐานจำนวนน้อย แต่องค์ประกอบพื้นฐานเหล่านี้ต้องสามารถนำมาเชื่อมต่อกันหรือทำงานร่วมกันได้หลายรูปแบบเพื่อให้เหมาะสมกับการแก้ปัญหาแต่ละชนิด หลักการที่สำคัญของเรื่องนี้คือโปรแกรมอรรถประโยชน์แต่ละโปรแกรมที่มีในระบบปฏิบัติการ UNIX ต้องเป็นโปรแกรมที่สามารถทำงานได้เพียงอย่างเดียวและต้องทำงานนั้นได้เป็นอย่างดี ตัวอย่างเช่นโปรแกรมตัวแปลภาษา (compiler) เป็นโปรแกรมที่ทำหน้าที่ในการตรวจสอบและแปลโปรแกรมภาษาต้นฉบับเป็นภาษาเครื่องเพียงอย่างเดีย ไม่สามารถพิมพ์โปรแกรมต้นฉบับออกทางจอภาพหรือเครื่องพิมพ์ เนื่องจากมีโปรแกรมอื่นเช่น cat ซึ่งมีความสามารถในการแสดงผลทางจอภาพและเครื่องพิมพ์ได้ดีกว่า
ความต้องการประการสุดท้ายที่ผู้เขียนโปรแกรมต้องการจากระบบปฏิบัติการคือการสั่งงานที่ง่าย รวบรัดและตรงไปตรงมา โดยทั่วไปแล้วผู้เขียนโปรแกรมไม่ชอบการพิมพ์คำสั่งยาวเกินความจำเป็น เช่นในการคัดลอกแฟ้ม คำสั่งที่ประกอบด้วยตัวอักขระสองตัวคือ cp มีความหมายชัดเจนพอแล้ว ดังนั้นจึงใช้คำสั่ง cp แทนคำว่า copy ได้ นอกจากนี้แล้วนักเขียนโปรแกรมยังต้องการระบบที่ทำงานทันทีที่ได้รับคำสั่งมากกว่าระบบที่มีการโต้ตอบกับผู้ใช้ เช่นการค้นหาบรรทัดข้อความที่มีคำว่า “system” ทุกบรรทัดจากแฟ้มชื่อ “myfile1” และแฟ้มชื่อ “myfile2” ผู้ใช้สามารถใช้คำสั่ง grep system myfile1 myfile2 ได้ทันที โดยไม่ต้องเริ่มต้นด้วยการเรียกใช้โปรแกรม grep ก่อน จากนั้นโปรแกรม grep จะขอให้ผู้ใช้ป้อนข้อความที่ต้องการค้นเข้าไป หลังจากนั้นจึงขอให้ผู้ใช้ป้อนชื่อแฟ้มที่ต้องการค้นหาข้อความแฟ้มแรกเข้าไป เมื่อได้ชื่อของแฟ้มแรกแฟ้มแล้วจะขอให้ผู้ใช้บอกต่อไปว่ายังมีแฟ้มอื่นอีกหรือไม่ หากมีให้ป้อนชื่อแฟ้มต่อไปจนกว่าจะหมดแล้วจึงจะเริ่มทำงาน การติดต่อกับผู้ใช้แบบนี้อาจจะเหมาะสมสำหรับผู้เริ่มต้น แต่เมื่อผู้ใช้เริ่มมีความชำนาญมากขึ้นผู้ใช้จะเริ่มรู้สึกรำคาญ และอยากป้อนคำสั่งเพียงครั้งเดียวให้ได้ผลตามที่ต้องการ กล่าวอีกนัยหนึ่งคือผู้ใช้งานต้องการระบบปฏิบัติการที่ทำหน้าที่เป็นผู้รับใช้ซึ่งเมื่อได้รับคำสั่งที่ชัดเจนแล้วลงมือทำงานมากกว่าระบบปฏิบัติการที่ทำหน้าที่เป็นพี่เลี้ยงที่จะต้องคอยสอบถามและให้คำแนะนำอยู่ตลอดเวลา
แหล่งการเรียนรู้ของระบบปฏิบัติการ Unix
http://www.compsci.buu.ac.th/
www.eclassnet.kku.ac.th/etraining/file/1108214469-Linux.doc
http://www.thaisocial.net/
www.thaiitcertify.com/training/Linux/ThaiitCertify-LinuxSystemAdminandNetworking.doc
www.charm.au.edu/SCPaper/DatabaseSystem28Sep07.doc
www.ipthailand.org/info/images/pur_25510218_c.doc
https://dss.psu.ac.th/dss_person/help/DSSAccount.doc
www.opp.go.th/fileupload/news/fileup/TOR-Database3_25_06_51_1214378771.doc
www.dopa.go.th/iad/subject/it2.doc
http://www.krirk.ac.th/faculty/Communication_arts/truexpert/@information/cm2111/appendix[1]InterNetwork.doc
www.lannapoly.ac.th/com/aek/Learning_Sheet/Unit%201.1.doc
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น