UNIX/Linux History
ประวัติระบบปฏิบัติการคอมพิวเตอร์
Last updated
ประวัติระบบปฏิบัติการคอมพิวเตอร์
Last updated
Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University
เป็นระยะเวลาไม่น้อยกว่า 60 ปี เมื่อย้อนกลับไปตั้งแต่ก่อนที่นักพัฒนาจากห้องปฏิบัติการ Bell จะพัฒนาระบบปฏิบัติการแบบใหม่ ชื่อว่า "ระบบปฏิบัติการ UNIX" โดยใช้ภาษาซี (C Language) เป็นภาษาโปรแกรมหลักในการพัฒนาเพื่อเขียนระบบปฏิบัติการตัวนี้ขึ้นมา จนกลายเป็นภาษาที่ได้รับความนิยมในหมู่นักเขียนโปรแกรมมากที่สุด จุดเริ่มต้นของเรื่องนี้ทั้งหมดเกิดขึ้นในปี ค.ศ. 1960 ซึ่งได้เริ่มมีการพัฒนาระบบปฏิบัติการแบบแบ่งเวลา (timesharing) โดย Dartmouth College และ Massachusetts Institute of Technology (M.I.T.) ซึ่งมีจุดเด่นคือ ผู้ใช้หลายคนสามารถใช้เครื่องในเวลาเดียวกันได้ โดยอาศัยการแบ่งเวลาของหน่วยประมวลผลกลางให้แก่ผู้ใช้เวียนกันไป ถูกพัฒนาขึ้นโดยภาษาโปรแกรมเบสิค (BASIC Language) แต่ประสบความสำเร็จในการใช้งานทางธุรกิจแค่ช่วงระยะหนึ่ง ในขณะที่ระบบปฏิบัติการอีกตัวชื่อ CTSS (MIT's Compatible Time-Sharing System) จาก M.I.T. ซึ่งเป็นระบบฏิบัติการที่ได้ถูกออกแบบเพื่อให้เป็นระบบปฏิบัติการอเนกประสงค์ ก็ได้รับความนิยมในกลุ่มนักวิทยาศาสตร์เป็นพิเศษ หลังจากนั้นไม่นานทาง M.I.T. ห้องปฏิบัติการ Bell และบริษัท GE (General Electric) ซึ่งเป็นบริษัทผู้ผลิตคอมพิวเตอร์ ได้รวมกลุ่มกันเพื่อทำการวิจัยและออกแบบระบบปฏิบัติการแบบแบ่งเวลาตัวใหม่ ให้มีความสามารถมากขึ้นและกำหนดชื่อระบบปฏิบัติใหม่นี้ชื่อว่า MULTICS (MULTiplexed Information and Computing Service)
แม้ว่าตัวระบบปฏิบัติการ MULTICS จะสามารถรองรับผู้ใช้ได้หลายร้อยคน แต่โครงการก็ยังเกิดปัญหาขึ้นหลายอย่าง โดยเฉพาะอย่างยิ่งตัวภาษา PL/I ที่ใช้ในการเขียนโปรแกรมนั้นยังอยู่ในระหว่างการพัฒนาและมีการพัฒนาล่าช้ากว่ากำหนดการที่กำหนดไว้มากและมีข้อบกพร่องมากมาย รวมทั้งปัจจัยอื่นที่เทคโนโลยีในขณะนั้นเองก็ยังไม่พร้อม ห้องปฏิบัติการ Bell จึงได้ถอนตัวออกจากโครงการหลังจากสิ้นสุดโครงการระยะแรก
หนึ่งในนักวิจัยของโครงการชื่อ Ken Thompson จึงเริ่มหาแนวทางในการทำวิจัยต่อไป โดยยังคงนำระบบปฏิบัติการ MULTICS มาทำการพัฒนาต่อ ซึ่งได้ทำการย่อส่วนโค้ดโปรแกรมโดยใช้ภาษาแอสเซมบลี้ (Assembly Language) ในการพัฒนาระบบปฏิบัติการตัวใหม่นี้บนเครื่องมินิคอมพิวเตอร์รุ่น PDP-7 จนกลายเป็นระบบปฏิบัติการที่สามารถทำงานได้เป็นอย่างดี และในที่สุดก็ได้ถูกตั้งชื่อใหม่โดยหนึ่งในนักวิจัยของห้องปฏิบัติการ Bell ชื่อ Brain Kernighan ว่า UNICS (Uniplexed Information and Computing Service) เพื่อเป็นการล้อเลียนโครงการ MULTICS และต่อมาก็ได้รับการเปลี่ยนชื่อเป็น UNIX
ต่อมาก็ได้มีนักวิจัยคนอื่นๆในห้องปฏิบัติการ Bell เริ่มสนใจที่จะขอเข้าร่วมโครงการเพื่อพัฒนาระบบปฏิบัติการ UNIX ของ Ken Thompson มากขึ้น และคนแรกที่ได้เข้าร่วมก็คือ Dennis Ritchie เพื่อพัฒนาระบบปฏิบัติการ UNIX อยู่บนเครื่องมินิคอมพิวเตอร์รุ่น PDP-11 ซึ่งมีขีดความสามารถสูงกว่าเครื่องรุ่น PDP-7 เดิม ต่อมานักวิจัยที่เหลือก็ได้เข้าร่วมโครงการทั้งหมด จนทำให้ระบบปฏิบัติการ UNIX ที่อยู่บนเครื่องรุ่น PDP-11/45 และ PDP-11/70 ดังรูปข้างล่าง ได้รับความนิยมในตลาดสูงในช่วงทศวรรษที่ 1970 เพราะได้เพิ่มขนาดของหน่วยความจำให้ขนาดใหญ่ และมีกลไกการป้องกันหน่วยความจำ ทำให้เป็นเครื่องคอมพิวเตอร์ที่สามารถรองรับการใช้งานผู้ใช้หลายคนในเวลาเดียวกันได้พร้อมกัน
นอกจากนั้นห้องปฏิบัติการ Bell ยังได้วางแผนพัฒนาภาษาโปรแกรมตัวใหม่ เพื่อใช้ในการเขียนระบบปฏิบัติการเนื่องจากคอมพิวเตอร์แต่ละรุ่นจะมีโครงสร้างทางฮาร์ดแวร์แตกต่างกัน ทำให้ต้องใช้เวลาในการพัฒนาด้วยภาษาโปรแกรมแอสเซมบลี้มากพอสมควร จึงเป็นเหตุผลสำคัญที่จะต้องเร่งสร้างภาษาโปรแกรมตัวใหม่ที่ยืดหยุ่นสำหรับระบบปฏิบัติการในอนาคต โดยในระยะแรกของการพัฒนาภาษาโปรแกรมนั้นทาง Ken Thompson ได้เลือกใช้ภาษาบี (B Language) ซึ่งเป็นภาษาโปรแกรมที่พัฒนาต่อมาจากภาษา BCPL (Basic Combined Programming Language) พัฒนาโดย M.I.T. ดังวิวัฒนาการภาษาโปรแกรมดังรูปข้างล่าง
ตัวอย่างโปรแกรมแสดงค่า 5 Factorials โดยเปรียบเทียบรูปแบบการเขียนโปรแกรมด้วยภาษา BCPL และภาษาบี
โปรแกรมด้วยภาษา BCPL
ตัวอย่างโปรแกรมภาษาบีจากตัวอย่างหนังสือที่ Ken Thompson เป็นผู้เขียน
แต่เนื่องจากตัวภาษาบีเองนั้นเป็นภาษาโปรแกรมที่มีโครงสร้างข้อมูลและรูปแบบการควบคุมภายในยังมีข้อจำกัดอยู่พอสมควร ทำให้การพัฒนาระบบปฏิบัติการ UNIX โดยใช้ภาษาบียังไม่ค่อยประสบความสำเร็จเท่าที่ควร ดังนั้นทาง Dennis Ritchie จึงได้พัฒนาและปรับปรุงภาษาบีให้มีคุณสมบัติที่เหมาะสมในการเขียนระบบปฏิบัติการมากยิ่งขึ้น และในที่สุดก็ได้กลายมาเป็นภาษาโปรแกรมตัวใหม่ชื่อว่า ภาษาซี (C Language) ต่อมาทาง Thompson และ Ritchie ได้ร่วมกันพัฒนาระบบปฏิบัติการ UNIX จากภาษาซีใหม่ทั้งหมด ทำให้ภาษาซีกลายมาเป็นภาษาโปรแกรมที่ได้รับความนิยมในหมู่นักเขียนโปรแกรมอย่างมากเนื่องจากเป็นภาษาอเนกประสงค์ที่เหมาะกับการใช้เขียนโปรแกรมแบบต่างๆและหลากหลาย ทั้งยังเป็นภาษาโปรแกรมที่สามารถทำความเข้าใจได้ง่ายและสามารถนำโค้ดโปรแกรมเก่ามาใช้งานประยุกต์กับโปรแกรมใหม่ได้ ต่อมาในปี ค.ศ. 1974 Ritchie และ Thompson ได้ตีพิมพ์ผลงานการวิจัยและพัฒนาระบบปฏิบัติการ UNIX ตัวใหม่นี้ จนเป็นผลให้ทั้งสองได้รับรางวัล ACM Turing Award ในปี ค.ศ. 1984
จากผลงานดังกล่าวทางบริษัท AT&T ผู้เป็นเจ้าของห้องปฏิบัติการ Bell และเป็นผู้ถือลิขสิทธิ์ระบบปฏิบัติการ UNIX ได้อนุญาตให้มหาวิทยาลัยต่างๆ ใช้ระบบปฏิบัติการ UNIX โดยเสียค่าธรรมเนียมเพียงเล็กน้อย เพื่อหวังให้เป็นที่นิยมมากยิ่งขึ้น ในขณะนั้นด้วยระบบปฏิบัติการจะมากับเครื่อง PDP-11 ซึ่งยังทำงานไม่มีประสิทธิภาพดีพอและยังใช้งานยากอยู่ จึงทำให้เกิดการวิจัยและพัฒนาปรับปรุงระบบปฏิบัติการ UNIX กันอย่างกว้างขวาง จนกระทั่งในที่สุดก็ได้เกิดตัวใหม่ขึ้นที่ชื่อว่า ระบบปฏิบัติการ BSD UNIX (Berkeley Software Distribution UNIX) ซึ่งถูกพัฒนาโดย University of California (UC Berkeley) จนกลายเป็นตัวหนึ่ง ที่ได้รับความนิยมและมีการใช้งานกันอย่างแพร่หลายในสถาบันการศึกษา ต่อมาหน่วยงานกระทรวงกลาโหมของสหรัฐฯ (Defense Advanced Research Projects Agency - DARPA) ก็ได้ให้ทุนกับทาง UC Berkeley เพื่อพัฒนาระบบปฏิบัติการ UNIX ต่อให้กลายเป็น Version 4 BSD เพื่อรองรับการสื่อสารของเครือข่าย DARPA ที่ใช้มาตราฐานในการสื่อสารชื่อว่า TCP/IP ต่อมาในปี ค.ศ. 1993 ทาง UC Berkley ก็ได้ออกตัว BSD รุ่น 4.4 ที่รองรับการสื่อสารแบบโปรโตคอล X.25 แต่เป็นที่น่าเสียดายที่ในที่สุด UC Berkeley ก็ได้หยุดการพัฒนาระบบปฏิบัติการ UNIX ในเวลาต่อมา