วันศุกร์ที่ 5 กันยายน พ.ศ. 2551

ประวัติระบบปฏิบัติการ UnixและLunix

ประวัติความเป็นมาและคุณสมบัติของUnixและlinuk

ความเป็นมาของระบบปฏิบัติการ 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
Softwere tool-

โปรแกรมบนUNIX จะแบ่งตัวเองออกเป็นส่วนย่อยๆและสามารถใช้งานส่วนย่อยเหล่านั้นร่วมกัน ระหว่างหลายๆโปรแกรมได้portability- เนื่องจาก UNIX สามารถนำไปใช้กับเครื่องแบบต่างๆได้มากมาย โปรแกรมที่ใช้งานบนUNIXจะสามารถนำไปใช้ได้ด้วยเช่นเดียวกันflexibility- UNIX จะมีความยืดหยุ่นในการใช้งานสูง สามารถนำไปใช้งานกับงานเล็กๆหรืองานใหญ่ๆก็ได้power- สามารถทำงานที่ซับซ้อนได้ดี และมีความสามารถในด้านต่างๆมากกว่าระบบปฏิบัติการอื่นๆmulti – user & multitasking- สามารถมีผู้ใช้งานได้ทีละหลายๆคน และทำงานหลายๆอย่างพร้อมกันElegance- หลักการทำงานของส่วนต่างๆจะเหมือนกันดังนั้นเมื่อผู้ใช้ทำงานส่วนหนึ่งได้ ก็จะเรียนรู้และใช้งานส่วนอื่นๆได้ง่ายnetwork orientation- UNIXเป็นระบบปฏิบัติการที่สนับสนุนการใช้งานเครือข่ายโดยเฉพาะเครือข่าย TCP/IP ซึ่งใช้ในระบบ Internet


ประวัติของ Linux

ลีนุกซ์ถือกำเนิดขึ้นในฟินแลนด์ ปี คศ. 1980 โดยลีนุส โทรวัลด์ส (Linus Trovalds)นักศึกษาภาควิชาวิทยาการคอมพิวเตอร์ (Computer Science) ในมหาวิทยาลัยเฮลซิงกิลีนุส เห็นว่าระบบมินิกซ์ (Minix) ที่เป็นระบบยูนิกซ์บนพีซีในขณะนั้น ซึ่งทำการพัฒนาโดย ศ.แอนดรูว์ ทาเนนบาวม์ (Andrew S. Tanenbaum) ยังมีความสามารถไม่เพียงพอแก่ความต้องการ จึงได้เริ่มต้นทำการพัฒนาระบบยูนิกซ์ของตนเองขึ้นมา โดยจุดประสงค์อีกประการคือต้องการทำความเข้าใจในวิชาระบบปฏิบัติการคอมพิวเตอร์ด้วยเมื่อเขาเริ่มพัฒนาลีนุกซ์ไปช่วงหนึ่งแล้ว เขาก็ได้ทำการชักชวนให้นักพัฒนาโปรแกรมอื่นๆมาช่วยทำการพัฒนาลีนุกซ์ ซึ่งความร่วมมือส่วนใหญ่ก็จะเป็นความร่วมมือผ่านทางอินเทอร์เนตลีนุสจะเป็นคนรวบรวมโปรแกรมที่ผู้พัฒนาต่างๆได้ร่วมกันทำการพัฒนาขึ้นมาและแจกจ่ายให้ทดลองใช้เพื่อทดสอบหาข้อบกพร่อง ที่น่าสนใจก็คืองานต่างๆเหล่านี้ผู้คนทั้งหมดต่างก็ทำงานโดยไม่คิดค่าตอบแทน และทำงานผ่านอินเทอร์เนตทั้งหมดปัจจุบันเวอร์ชันล่าสุดของระบบลีนุกซ์ที่ได้ประกาศออกมาคือเวอร์ชัน 2.0.13ข้อสังเกตในเรื่องเลขรหัสเวอร์ชันนี้ก็คือ ถ้ารหัสเวอร์ชันหลังทศนิยมตัวแรกเป็นเลขคู่เช่น 1.0.x,1.2.x เวอร์ชันเหล่านี้จะถือว่าเป็นเวอร์ชันที่เสถียรแล้วและมีความมั่นคงในระดับหนึ่ง แต่ถ้าเป็นเลขคี่เช่น 1.1.x, 1.3.x จะถือว่าเป็นเวอร์ชันทดสอบ ซึ่งในเวอร์ชันเหล่านี้จะมีการเพิ่มเติมความสามารถใหม่ๆลงไปและยังต้องทำการทดสอบหาข้อผิดพลาดต่างๆอยู่


คุณสมบัติของระบบปฏิบัติการลีนุกซ์

Linuxมัลติทาสกิ้ง (Multi-tasking) คือ ทำงานหลายๆ อย่างพร้อมกันได้ในเวลาเดียวกัน ทำให้ไม่ต้องเสียเวลาในการรอ โดยแบ่งการทำงานออกเป็น Foreground และ Backgroundมัลติยูสเซอร์ (Multi-user) Unix สามารถรองรับผู้ใช้ได้มากกว่า 1 คนในเวลาเดียวกันหรือพูดง่ายๆ ก็คือ ใช้งานได้หลายคนพร้อมกันนั่นเองป็นระบบปฏิบัติการแบบหลายงาน และหลายผู้ใช้ (Multitasking & Multiuser) ที่สมบูรณ์แบบ ทำให้สามารถมีผู้ใช้งานพร้อมๆ กัน ได้หลายๆ คน และแต่ละคนก็สามารถรันโปรแกรมได้หลายๆ โปรแกรมพร้อมๆ กันมีความเข้ากันได้ (Compatible) กับระบบ UNIX ส่วนมากในระดับ Source Codeความสามารถในการสลับหน้าจอระหว่าง Login sessions ต่างๆ บนหน้าจอคอนโซลในเท็กซ์โหมดได้ (Pseudo Terminal, Virtual Console)สนับสนุนระบบไฟล์หลายชนิด เช่น Minix-1, Xenix, ISO-9660, NCPFS,SMBFS, FAT16, FAT32, NTFS, UFS เป็นต้นสนับสนุนเครือข่าย TCP/IP ตลอดจนมีโปรแกรมไคลเอ็นต์ และเซิร์ฟเวอร์สำหรับบริการต่างๆ ในอินเทอร์เน็ตทุกประเภท ไม่ว่าจะเป็น FTP, Telnet, NNTP,SMTP, Gopher, WWWKernal ของ Linux มีความสามารถในการจำลองการทำงานของMath Processor 80387 ทำให้สามารถรันโปรแกรม ที่ต้องการใช้งานคำสั่งเกี่ยวกับ floating-point ได้Kernal ของ Linux สนับสนุน Demand-Paged loaded executable คือระบบจะเรียกใช้โปรแกรม เท่าที่จะใช้งานเท่านั้น จากดิสก์สู่หน่วยความจำเป็นการใช้หน่วยความจำอย่างมีประสิทธิภาพ และมีการใช้หน่วยความจำส่วนเดียว กับขบวนการหลายๆ ขบวนการพร้อมๆ กัน (Shared copy-on-write pagesสนับสนุน swap space มากถึง 2 GB ทำให้มีหน่วยความจำใช้งานมากขึ้นจึงรัน Application ขนาดใหญ่ได้ และมีผู้ใช้งานได้พร้อมกันมากขึ้นKernal มีระบบ Unified Memory Pool สำหรับโปรแกรมและ Cacheทำให้ Cache ปรับเพิ่ม-ลดขนาดได้โดยอัตโนมัติ ขณะที่มีการเรียกใช้หรือไม่ใช้โปรแกรมใดๆโปรแกรมที่รันมีการใช้งาน Library ร่าวมกัน (DynamicallyLinked Shared Libraries) ทำให้โปรแกรมมีขนาดเล็ก และทำงานเร็วสนับสนุนการดีบัก (Debug) โปรแกรม และหาสาเหตุที่ทำให้โปรแกรมทำงานผิดพลาดได้จากจุดเด่นนี้ทำให้พบว่าในปัจจุบันเรานิยมใช้ Unix เป็นระบบปฏิบัติการของเครื่อง Internet Server กันมาก

ไม่มีความคิดเห็น: