วันอังคารที่ 13 กันยายน พ.ศ. 2554

Operating System

Operating System
Operating System หมายถึง Software ที่ใช้จัดการทรัพยากรต่างๆของคอมพิวเตอร์
ไม่จำเป็นที่จะต้องมี OS ก็ได้ แต่ Software ต่างๆจะต้องเขียนโปรแกรมเพื่อจัดการทรัพยากรต่างๆกันเอง
วัตถุประสงค์และหน้าที่ของ OS
Convenience ( ความสะดวกสบาย ) เช่น ถ้าหากเราต้องการที่จะสร้าง Directory ใหม่ใน Dos ก็แค่พิมพ์ mk OS ก็จะทำการสร้าง Directory ใหม่ให้กับเรา โดยที่เราไม่ต้องเขียนโปรแกรมในการสร้างเอง ทำให้ง่ายต่อการใช้งาน
 Efficiency ( ประสิทธิภาพ ) OS จะทำการจัดการทรัพยากรอย่างมีประสิทธิภาพ

Layers and Views of a Computer System











Operating System Services ( การสนับสนุนของ OS ) 
  • Program creation ( การสร้างโปรแกรม ) เช่น Editor , Debugger เพื่อช่วยให้ Programmer สามารถพัฒนาโปรแกรมได้ง่ายขิ้น
  • Program execution ( การประมวลผลโปรแกรม ) OS จะทำการจัดเตรียมสิ่งที่ต้องใช้ในการประมวลผลโปรแกรมไว้ให้ เช่น ชุดคำสั่ง , ข้อมูล
  • Access to I/O devices ( การใช้อุปกรณ์ I/O ) อุปกรณ์ I/O แต่ละชิ้นต้องอาศัยชุดคำสั่งหรือสัญญาควบคุมของตนเอง OS ก็จะจัดการรายละเอียดเหล่านี้ให้ (Driver) 
  • Controlled access to files ( การควบคุมการเข้าถึงของไฟล์  
  • System access ( การติดต่อระบบ ) 
  • Error detection and response ( การตรวจหาข้อผิดพลาดและการตอบสนอง ) 
  • Accounting ( บัญชีผู้ใช้ )
O/S as a Resource Manager












  





รูปนี้จะแสดงให้เห็นว่าส่วนหนึ่งของระบบปฏิบัติการ (Kernel) จะถูกเก็บไว้ที่หน่วยความจำหลักตลอดเวลา ซึ่งเป็นส่วนที่เก็บฟังก์ชั่นที่มักจะถูกเรียกใช้อยู่เสมอ ฟังก์ชั่นส่วนอื่นจะถูกนำเข้ามาสู่หน่วยความจำหลักเมื่อถูกเรียกใช้เท่านั้น หน่วยความจำส่วนที่เหลือจะใช้ในการเก็บโปรแกรมและข้อมูลอื่นๆ การจัดสรรทรัพยากรให้แก่โปรแกรมต่างๆ รวมทั้ง OS จะถูกควบคุมร่วมกันระหว่าง OS กับ Hardware ที่บริหารหน่วยความจำ
Types of Operating System
                แบ่งตามลักษณะการตอบสนองของ OS
-          Interactive คือ OS จะโต้ตอบกับผู้ใช้ทันทีเมื่อถูกสั่งงาน (คลิกปุ๊บรันปั๊บ)
-          Batch คือ คอมพิวเตอร์จะทำการรับงานต่างๆมาให้ OS แล้ว OS จะเอาไปเข้าคิวเพื่อรอการ   ประมวลผล ก็จะไม่ตอบสนองทันทีทันใด
แบ่งตามลักษณะจำนวนโปรแกรมที่รันในเวลาเดียวกัน
-          Single Program (Uni-programming) คือ สามารถรันได้ทีละโปรแกรม
-          Multi-programming (Multi-tasking) คือ สามารถรันโปรแกรมได้หลายๆโปรแกรมพร้อมกัน

** Multi Programming คือ รันหลายๆโปรแกรมพร้อมกันได้ แต่ Multi Tasking คือโปรแกรมนึงทำหลายๆงานพร้อมกันได้ เช่น เปิดไฟล์ เล่นเพลง ภายในโปรแกรมเดียว

Operating System ในยุคต่างๆ

- Early System
                ยุคนี้จะยังไม่มี  OS  Programmer จะต้องเขียนโปรแกรมให้ติดต่อกับ Hardware เอง ทำให้เกิดความยุ่งยาก
                ปัญหาที่สำคัญ
-                   Scheduling คือ จะต้องมีการจัดเวลาการใช้งาน ใช้งานได้เพียงแค่ 1 user ต่อ 1 ช่วงเวลา ถ้าหาก user ใช้งานเสร็จก่อนกำหนด ก็จะเป็นการสูญเสียเวลาไปโดยเปล่าประโยชน์ แต่หากหมดเวลาแล้ว user ยังใช้งานไม่เสร็จ ก็จะต้องเลิกกลางคัน
-                   Setup Time คือ จะต้องเสียเวลาในการติดตั้งนาน
- Simple Batch System
                ระบบนี้ผู้ใช้จะไม่สามารถติดต่อกับโปรเซสเซอร์โดยตรง แต่จะต้องติดต่อผ่าน Resident Monitor Program ซึ่งจะเป็นตัวที่คอยจัดการ Job ต่างๆที่รับเข้าให้งานที่ลักษณะคล้ายกันถูกส่งไปประมวลผลพร้อมกัน ซึ่งจะช่วยลดระยะเวลาในการเตรียมการของเครื่องคอมพิวเตอร์

Memory Layout for Resident Monitor













                     



                         






              Monitor เป็นตัวที่ควบคุมลำดับเหตุการณ์ต่างๆ ทำให้ Monitor ส่วนหนึ่งจะยังต้องค้างอยู่ในความจำหลัก เพื่อให้มีความพร้อมในการประมวลผลตลอดเวลา ซึ่งเรียกว่า Resident Monitorโปรแกรมที่จะถูกนำมาประมวลผลจะถูกนำมาเก็บไว้ใน Memory ในส่วน User Program Area เมื่อเสร็จเรียบร้อยแล้วจึงจะโอนการควบคุมการประมวลผลไปยังโปรแกรมนั้นๆ เมื่อโปรแกรมประมวลผลเสร็จ ก็จะโอนการควบคุมการประมวลผลกลับมาที่ Monitor เพื่อทำการอ่านโปรแกรมต่อไปเข้ามาทำงาน 

ความสามารถของฮาร์ดแวร์ที่ต้องสนัมสนุน Simple Batch Sytems
-          Memory protection ในระหว่างที่ประมวลผล Memory ในส่วนของ Monitor จะต้องถูกป้องกันไม่ให้มีการแก้ไข
-          Timer จะต้องมีการจับเวลาเพื่อไม่ให้ Job ไหนทำการประมวลผลเกินไป หากใช้เวลาเกินที่กำหนดจะมีการ Interrupt เพื่อโอนการควบคุมกลับไปที่ Monitor
-          Privileged instructions จะต้องมีคำสั่งที่จะถูกสามารถใช้ได้โดย Monitor เท่านั้น นั่นก็คือคำสั่งที่เกี่ยวข้องกับอุปกรณ์ I/O หมายความว่า จะมีเฉพาะ Monitor เท่านั้นที่สามารถควบคุม I/O ได้ หากผู้ใช้ต้องการควบคุม I/O จะต้องติดต่อผ่าน Monitor
-           Interrupts เพื่อให้มีความคล่องตัวในการควบคุมคอมพิวเตอร์ได้มากยิ่งขึ้น

- Multi-programmed Batch Systems
                อุปกรณ์ I/O มีความเร็วในการทำงานช้ามาก โปรเซสเซอร์จึงเสียเวลาในการรอการทำงานของ I/O จำนวนมาก จึงมีแนวคิดที่ว่า ในขณะที่ I/O ทำงาน CPU น่าจะทำงานอย่างอื่นได้ด้วย วิธีนี้จะทำให้ CPU ทำงานหนักมากขึ้น แต่จะได้เวลาในการทำงานที่เร็วขึ้น และมีลักษณะการทำงานแบบ Multi Programming หรือ Multi Tasking

Single Program

 





Multi-Programming with Two Programs

 


 




Multi-Programming with Three Programs











- Scheduling ( การจัดตารางการทำงาน )


 - Long Term Scheduler
                เป็นตัวจัดการเลือกโปรแกรมที่จะนำมาประมวลผล ทำหน้าที่กำหนดจำนวนโปรเซสในหน่วยความจำ หรือเรียกว่า Degree of Multiprogramming เมื่อโปรแกรมถูกเลือกที่จะนำไปประมวลผลแล้ว จะถูกส่งไปใส่ไว้ใน Short Term Queue
  
- Medium Term Scheduler
                เป็นส่วนหนึ่งของฟังก์ชั่น Swapping

- Short Term Scheduler
                การจัดตารางทำงาน 2 แบบแรกถูกนำมาใช้งานไม่บ่อยนัก และทำการตัดสินใจเบื้องต้นว่าจะนำโปรเซสใหม่เข้ามาในระบบหรือไม่ แต่ Short Term Scheduler หรือเรียกว่า Dispatcher ถูกนำมาใช้งานบ่อยมาก และทำการตัดสินใจในระดับรายละเอียดในการเลือกโปรเซสที่จะถูกประมวลผลในลำดับต่อไป


Five State Process Model ( State Diagram ของ Process )












New : เมื่อโปรแกรมถูกคัดเลือกโดย Long Term Scheduler แล้วแต่ยังไม่พร้อมที่จะประมวลผล OS จะทำการสร้างโปรเซสแล้วย้ายเข้าไปสถานะ Ready
Ready : สถานะนี้หมายถึง โปรเซสที่มีความพร้อมที่จะถูกประมวลผล รอโปรเซสเซอร์นำไปใช้
Running : หมายถึงโปรเซสกำลังถูกประมวลผลโดยโปรเซสเซอร์
Blocked : โปรเซสนั้นถูกระงับการใช้โปรเซสเซอร์ชั่วคราวเนื่องจากต้องรอการทำงานของ I/O
Exit : โปรเซสนั้นกำลังอยู่ในขั้นตอนสุดท้ายก่อนที่จะถูกลบออกไปจากหน่วยความจำ


PCB ( Process Control Block )
                OS จะต้องเก็บรักษาข้อมูลต่างๆของแต่ละโปรเซส เช่น ข้อมูลสถานะ ข้อมูลที่เกี่ยวข้องกับการประมวลผลไว้ใน PCB มีข้อมูลที่เกี่ยวข้องได้แก่
-    Identifier โปรเซสแต่ละโปรเซสจะมีหมายเลขเฉพาะเพื่อใช้ในการแสดงตน
-    State สถานะปัจจุบันของโปรเซส
-    Priority ระดับความสำคัญ
-    Program Counter ตำแหน่งของคำสั่งต่อไปในโปรแกรมที่จะถูกประมวลผล
-    Memory Pointer แสดงจุดเริ่มต้นและจุดสิ้นสุดสุดของโปรเซสในหน่วยความจำ
-    Context data ข้อมูลที่จำเป็น
-    I/O Status Information ใช้ I/O มั้ย
-    Accounting Inftion ข้อมูลต่างๆเช่น ระยะเวลาที่ใช้ประมวลผล วัน-เวลาที่ใช้ ฯลฯ
เทคนิคการจัดตารางทำงาน
















            ขณะที่ A ประมวลผล ในเวลาต่อมา OS จะหยุดการประมวลผลของ A แล้วเริ่มประมวลผลคำสั่งในส่วนของ OS แทน เหตุการณ์ที่ OS จะหยุดการประมวลผลของ A มี 3 สาเหตุคือ
-  A เรียกใช้ I/O
-  A ทำให้เกิด Interrupt เช่น การเกิดข้อผิดพลาดในการประมวลผล หรือ หมดเวลาการทำงาน
-  เหตุการณ์ที่ไม่เกี่ยวข้องกับ A เช่น I/O ทำงานเสร็จ (อาจไม่เกี่ยวข้องกับ A)
โปรเซสเซอร์จะทำการบันทึกเนื้อหาที่เกี่ยวข้องกับ A (Context) และ Program Counter ไว้ใน PCB จากนั้นค่อยประมวลผล OS แล้วจะเรียก Short Term Queue มาเพื่อเลือกโปรเซสที่จะทำงานในลำดับต่อไป ให้ Process B เป็นตัวที่ถูกรับเลือก OS จะอ่าน Context และ Program Counter ของ Process B ให้มีสภาพเหมือนที่ Process B ได้ถูกหยุดการทำงานไว้ก่อนหน้านี้
 








 




 รูปนี้แสดงส่วนประกอบหลักของ OS ที่เข้ามาเกี่ยวข้องในระบบ Multi Programming
OS จะได้เข้าควบคุม Processor ก็ต่อเมื่อ
-   มีการเรียกใช้ Interrupt
-   มีการเรียกใช้ I/O
               เมื่อ I/O ถูกทำการเรียกใช้ หรือ Interrupt ทำงานเสร็จสิ้นแล้ว Short Term Scheduler จะถูกเรียกมาทำงานเพื่อเลือก Process ที่จะถูกประมวลผลลำดับต่อไป


Queue
                 
                     OS จะทำการสร้าง Queue ขึ้นมาเพื่อใช้งานไว้หลาย Queue เพื่อให้สามารถทำงานได้ คิวแต่ละคิวเป็นเพียงรายชื่อของโปรเซสที่รอคอยการทำงานหรือรอคอยการใช้ I/O อยู่เท่านั้น
                - Long-Term Queue
                                ประกอบไปด้วยรายชื่อโปรแกรมที่ต้องการใช้งานระบบ เมื่อเป็นไปตามเงื่อนไข Long Term Scheduler จะจัดเตรียมพื้นที่ใน Memory และสร้าง Process ของโปรแกรมที่ถูกเลือกมาจากใน Queue (จะเก็บอยู่ใน HDD)
                    - Short-Term Queue
                                ประกอบไปด้วย Process ทั้งหมดที่อยู่ในสถานะ Ready ขึ้นอยู่กับ Short Term Scheduler ว่าจะเลือกโปรเซสไหนเข้าไปประมวลผล วิธีการที่นิยมโดยทั่วไปคือใช้หลักการพื้นฐานของ Queue หรือเรียกว่า Round Robbin ที่ให้โอกาสในการประมวลผลเท่าๆกัน บางระบบอาจใช้ Priority Levels เพื่อจัดระดับความสำคัญ (จะเก็บอยู่ใน Main Memory)
 
   - I/O Queue
                                อุปกรณ์ I/O แต่ละชิ้นอาจมีหลาย Process ที่ร้องขอใช้ I/O ชิ้นหนึ่งพร้อมๆกัน OS จะนำทุก Process ที่ร้อวขอมาใส่ไว้ใน I/O Queue

Process Scheduler
 













Memory Management

ใน Uni-program นั้น Memory จะถูกแบ่งเป็นสองส่วนคือ Monitor , User Program Area และ ส่วนของ User Program Area ของ Multi-program จะถูกแบ่งออกเป็นหลายส่วน เพื่อใช้เก็บหลาย Process OS มีหน้าที่รับผิดชอบในการแบ่งหน่วยความจำและมอบให้กับ Process ต่างๆ

Swapping
               การจัด Queue 3 แบบ ยังไม่สามารถแก้ไขปัญหาการว่างงานของ CPU ได้หมด เพราะว่า I/O มีการทำงานช้ามาก ใน Short Term Queue เกือบทั้งหมดจึงเป็น Process ที่รอการทำงานของ I/O ทั้งสิ้น หากเกิดเหตุการณ์ที่ Process ใน Short Term Queue ไม่อยู่ในสภาพที่พร้อมจะประมวลผล (เช่นรอ I/O) ทำให้ CPU เกิดการว่างงาน โปรเซสเซอร์ก็จะทำการ Swap-Out นำ Process ไปเก็บไว้ใน Medium Term Queue (Intermediate Queue) (อยู่ใน HDD) แล้ว OS ก็จะเลือก Process ใหม่จาก Mediam Term Queue หรือ Long Term Queue เข้ามา การประมวลผลก็จะสามารถทำได้อย่างต่อเนื่อง















 



Partitioning  คือการแบ่งหน่วยความจำออกเป็นส่วนๆ 

Fixed-Size Partition



















 Fixed-Size Partition เมื่อ Process ถูกนำเข้าหน่วยความจำ จะถูกนำไปใส่ไว้ในพื้นที่ที่เล็กที่สุด ที่สามารถใส่โปรเซสนั้นได้ แต่ก็มีปัญหาคือ ยังมีพื้นที่ว่างในหน่วยความจำที่ไม่ได้ใช้ประโยชน์อีกจำนวนหนึ่ง โดยทั่วไป Process มักต้องการหน่วยความจำน้อยกว่าขนาดที่เตรียมไว้ให้ เลยทำให้เหลือพื้นที่ที่ไม่ได้ใช้ประโยชน์


Variable-Size Partition

 




















เมื่อ Process ถูกนำเข้ามาในหน่วยความจำ ก็จะถูกจองพื้นที่ให้มีขนาดเท่ากับที่ต้องการพอดี แต่เมื่อ Process ใหม่ที่เข้ามาพื้นที่น้อยกว่า Process เก่าที่ถูก Swap ออกไป ก็จะทำให้เกิด Memory Hole (d , e ,f) ต่อมา Process ใน Memory ทั้งหมดไม่สามารถทำงานได้เนื่องจากรอ I/O แต่ Process 2 พร้อมที่จะใช้งาน OS จึงต้อง Swap Out Process 1 ออกไป เพราะไม่มีพื้นที่ว่างพอสำหรับ Process 2 ถ้าหากทำงานต่อไปเรื่อยๆ ก็จะมี Memory Hole มากขึ้น และจะมีประสิทธิภาพในการใช้ Memory น้อยลง วิธีการแก้ปัญหานี้เรียกว่า Compaction OS จะเรียกใช้ฟังก์ชั่นนี้เป็นระยะๆ เพื่อบีบอัดให้ช่องว่างเหลือช่องใหญ่ช่องเดียว กระบวนการนี้จะเสียเวลาในการทำงานมาก
วิธีนี้มีปัญหาคือ เมื่อ Swap In Process กลับเข้ามา หรือ Compaction จะทำให้ Address ไม่เหมือนเดิม เพื่อแก้ไขปัญหานี้ จึงต้องแยกเป็น Logical Address และ Physical Address
-   Logical Address คือ Address ที่เริ่มอ้างอิงจากตำแหน่งเริ่มต้นของ Process คำสั่งต่างๆใน Process จะมีแต่ Logical Address เช่น 1 , 2 , 3 , 4 , . . .
-   Physical Address คือ Address ที่อยู่ในหน่วยความจำของ Process
                        Logical Address จะถูกเปลี่ยนเป็น Physical Address อัตโนมัติโดยการนำ Address เริ่มต้นของ Process (Base Address) มาบวกเข้ากับ Logical Address


Paging 
                วิธีนี้ Memory จะถูกแบ่งย่อยๆออกเป็นส่วนเล็กๆเรียกว่า Frame และ Process จะถูกแบ่งย่อยๆออกเป็นส่วนเล็กๆ เรียกว่า Page ซึ่งจะสามารถนำไปใส่ใน Frame ที่มีขนาดเท่ากัน ดังนั้น Memory ส่วนที่เสียไปไม่สามารถนำมาใช้ได้ ก็จะเป็นเพียงแค่เนื้อที่บางส่วนใน Page สุดท้าย OS จะทำการเก็บ Frame ที่ไม่ได้ใช้งาน เรียกว่า Free Frame List


Allocation of Free Frames
 
        
        ตัวอย่าง : สมมติ Process A มีพื้นที่ในหน่วยความจำ 4 Page OS ก็จะทำการหา Frame ที่ว่างมา 4 Frame โดยที่ไม่จำเป็นจะต้องอยู่ติดกันจาก Free Frame List จะมี Page Table สำหรับเก็บไว้ว่า Page ไหนถูกเก็บไว้ Frame ไหนของหน่วยความจำ









Logical and Physical Addresses - Paging


















Vertual Memory
  - Demand Paging
                คือ Paging ที่นำเฉพาะ Page ที่ต้องการเข้ามาใน Memory โดยไม่จำเป็นจะต้องนำเข้ามาทั้งหมดทั้ง Process อาจจะเป็นเพียงแค่ฟังก์ชั่นใดฟังก์ชั่นหนึ่งของ Process
  - Page Fault
                คือการที่ CPU อ่าน Page ที่ไม่ได้อยู่ใน Memory เข้ามาเพิ่มเติม
  - Trashing
                หมายถึงการที่มี Process จำนวนมาก และ Memory น้อย ทำให้ CPU ใช้เวลาส่วนมากในการ Swap In , Swap Out Page เข้าออกจากหน่วยความจำ แทนที่จะทำการประมวลผล วิธีการแก้ไขคือ จะต้องมี Replacement Algorithm ที่ดี
ข้อดี
-    ไม่ต้องนำ Process ทั้งหมดเข้ามาใน Memory ก็สามารถรันโปรแกรมได้
-    สามารถ Swap In เฉพาะ Page ที่ต้องการ
-    สามารถรัน Process ที่มีขนาดใหญ่กว่า Memory ได้

หากไม่มี Demand Paging แล้ว การเขียนโปรแกรมก็จะต้องคำนึงถึงขนาดของ Memory และไม่สามารถเขียนโปรแกรมให้มีขนาดใหญ่กว่า Memory ได้ Programmer จะต้องทำการแบ่งโปรแกรมออกเป็นโปรแกรมย่อยๆเอง แต่ Demand Paging จะทำการแบ่งให้เป็นโปรแกรมย่อยๆอัตโนมัติ และนำ Page ที่ไม่ได้ใช้เก็บไว้ใน Harddisk คอมพิวเตอร์จะต้องแยกออกระหว่าง Real Memory (Ram) กับ Vertual Memory (Harddisk) แต่สำหรับ Programmer ไม่จำเป็นที่จะต้องแยกระหว่าง Real กับ Vertual
Translation Lookaside Buffer
                ทุกครั้งที่มีการอ้างอิง Vertual Memory จะต้องมีการอ้างอิง 2 ครั้ง คือ
-  Page Table
-  ข้อมูลที่จะนำไปใช้งานจริง
             ทำให้ต้องใช้เวลาในการอ้างอิงเป็นสองเท่า จึงต้องมี Cache เพื่อเก็บข้อมูล Page ที่กำลังใชงาน เรียกว่า  Translation Lookaside Buffer (TLB) OS จะทำการติดต่อกับ TLB เพื่อค้นหา Page ที่ต้องการก่อน ถ้ามีก็จะคำนวณหา Physical Address โดยการนำหมายเลข Frame มารวมกับ Offset ถ้าไม่มีจึงไปค้นหา Address จาก Page Table
 
TLB Operation






















TLB and Cache Operation














Segmentation
                 
              คือการกำหนดโครงสร้างของหน่วยความจำที่โปรแกรมเมอร์สามารถเข้ามาเกี่ยวข้องด้วย หน่วยความจำจะถูกแบ่งออกเป็นหลายๆ Segment ที่อาจมีขนาดไม่เท่ากัน หรือ อาจมีขนาดที่เปลี่ยนแปลงได้  โดยทั่วไป Programmer จะกำหนดส่วนของโปรแกรม และ ข้อมูลให้แก่แต่ละ Segment ในโปรแกรมนึงอาจประกอบไปด้วยหลาย Segment
                ข้อดี
-     Programmer ไม่จำเป็นที่จะต้องรู้ขนาดของ Memory เพราะข้อมูลจะถูกเก็บไว้เป็น Segment ซึ่ง OS สามารถเข้ามาขยาย หรือ ลดให้เล็กลง ตามความต้องการจริงได้
-    ช่วยให้แต่ละส่วนของโปรแกรมอิสระกัน สามารถแก้ไขได้เฉพาะส่วน
-    สามารถทำให้เกิดการใช้ Segment ร่วมกันระหว่าง Process ได้ Programmer สามารถสร้าง Segment อิสระที่บรรจุโปรแกรม หรือ ข้อมูลที่เป็นประโยชน์ ที่ Process ต่างๆสามารถนำไปใช้ได้
-    สามารถกำหนดสิทธิ์ของแต่ละ Segment ได้โดยอิสระ 
รายชื่อระบบปฏิบัติการ
1.  CP/M
2.  MP/M
3.  TRS-DOS
4.  ProDOS
5.  DOS
7.  Linux
8.  Unix
9.  Mac OS
10.  FreeBSD
11.  OS/2
12.  RISC OS
13.  BeOS
14.  Amiga
15.  Plan9
16.  NetWare
17.  MorphOS
18.  Zaurus
19.  VMS
20.  EPOC
21.  Solaris
22.  IRIX
23.  Darwin
24.  HPUX
25.  UNICOS
26.  MINIX
27.  AIX
      28.  Chrome OS 

 รายละเอียดแต่ละ OS เรามาดูกันว่าแต่ละตัวเป็นมาอย่างไร

1.   CP/M (Control Program/Monitor หรือ Control Program/Microcomputers) เป็นระบบปฏิบัติการ ซึ่งเดิมเขียนเพื่อทำงานบนเครื่องไมโครคอมพิวเตอร์ที่ใช้ชิพตระกูล 8080/85 ของอินเทล CP/M เริ่มเขียนโดย แกรี คิลดัล (Gary Kildall) แห่งบริษัท ดิจิทัล รีเสิร์ช (Digital Research, Inc.) เดิมเป็นระบบซิงเกิลทัสก์ และทำงานกับเฉพาะโพรเซสเซอร์ขนาด 8 บิต และหน่วยความจำไม่เกิน 64 กิโลไบต์ แต่รุ่นหลังรองรับการทำงานหลายผู้ใช้และขยายไปทำงานบนโปรเซสเซอร์ซึ่ง ปัจจุบันนี้ล้าสมัยแล้วหลังจากเครื่องไมโครคอมพิวเตอร์ได้ขยายมาเป็นเครื่อง ขนาด 16 บิ
2.   MP/M หาข้อมูลไม่ได้
3.   TRS-DOS หาข้อมูลไม่ได้
4.   ProDOS หาข้อมูลไม่ได้
5.   DOS ดอส (DOS; ย่อมากจาก Disk Operating System) เป็นชื่อเรียกระบบปฏิบัติการ หลายตัวที่พัฒนาโดยไอบีเอ็มและไมโครซอฟท์ ในช่วงปี พ.ศ. 2524-พ.ศ. 2538 (โดยถ้ารวมดอสในวินโดวส์ จะนับถึงปี พ.ศ. 2543) ตัวอย่างของระบบปฏิบัติการนี้เช่น PC-DOS, MS-DOS, FreeDOS, DR-DOS, Novell-DOS, OpenDOS, PTS-DOS, ROM-DOS เนื่องจากดอสมีผู้ผลิตหลายเจ้า เช่น PC-DOS จากไอบีเอ็ม และ MS-DOS จากไมโครซอฟท์ เป็นต้น และดอสอื่นๆ ระบบปฏิบัติการดอสส่วนมากทำงานภายใต้เครื่องไอบีเอ็มพีซีเสมือน ที่ใช้ซีพียู อินเทล x86
6.   Microsoft Windows หรือ ไมโครซอฟท์ วินโดวส์ เป็นระบบปฏิบัติการ ซึ่งพัฒนาโดยบริษัทไมโครซอฟท์ เปิดตัวเมื่อปี พ.ศ. 2528 (ค.ศ. 1985 โดยรุ่นแรกของวินโดวส์ คือ วินโดวส์ 1.0) และครองความนิยมในตลาดคอมพิวเตอร์ส่วนบุคคล มากกว่า 90% ของการใช้งานทั่วโลก รายละเอียดโดยสังเขปของวินโดวส์รุ่นต่างๆ เรียงตามลำดับการเปิดตัว เป็นดังนี้
·       วินโดวส์ 1.0 เปิดตัวเมื่อ 20 พฤศจิกายน พ.ศ. 2528
·       วินโดวส์ 2.0 เปิดตัวเมื่อ 1 พฤศจิกายน พ.ศ. 2530
·       วินโดวส์ 2.1 เปิดตัวเมื่อ 27 พฤษภาคม พ.ศ. 2531
·       วินโดวส์ 3.0 เปิดตัวเมื่อ 22 พฤษภาคม พ.ศ. 253·       วินโดวส์ 3.1 เปิดตัวเมื่อ 6 เมษายน พ.ศ. 2535
·       วินโดวส์ 95 เปิดตัวเมื่อ 24 สิงหาคม พ.ศ. 2538
·       วินโดวส์ 98 เปิดตัวเมื่อ 25 มิถุนายน พ.ศ. 2541
·       วินโดวส์ 2000 เปิดตัวเมื่อ 17 กุมภาพันธ์ พ.ศ. 2543
·       วินโดวส์ มี เปิดตัวเมื่อ 14 กันยายน พ.ศ. 2543
·       วินโดวส์ วิสตา และ เซิร์ฟเวอร์ 2008 เปิดตัวเมื่อ 30 พฤศจิกายน พ.ศ. 2549 แต่เปิดใช้งานจริงๆ 30 มกราคม พ.ศ. 2550
·       วินโดวส์ที่ถูกยุบไปเนื่องจากเป็นรุ่นสำหรับทดสอบ
·       พ.ศ. 2539 (ค.ศ. 1996) - วินโดวส์แนชวิลล์ ออกรุ่นสำหรับทดสอบ แต่ไม่ได้วางจำหน่ายจริง ควรจะเป็นรุ่นถัดจากวินโดวส์ 95
·       พ.ศ. 2542 (ค.ศ. 1999) - วินโดวส์เนปจูน ออกรุ่นสำหรับทดสอบ แต่ไม่ได้วางจำหน่ายจริง ควรจะเป็นรุ่นถัดจากวินโดวส์ 2000
  
7.    Linux หรือ ลินุกซ์  และรู้จักในชื่อ กนู/ลินุกซ์ (GNU/Linux) โดยทั่วไปเป็นคำที่ใช้ในความหมายที่หมายถึงระบบปฏิบัติการแบบยูนิกซ์ โดยใช้ลินุกซ์ เคอร์เนล เป็นศูนย์กลางทำงานร่วมกับไลบรารีและเครื่องมืออื่น ลินุกซ์เป็นตัวอย่างหนึ่งในฐานะซอฟต์แวร์เสรี และซอฟต์แวร์โอเพนซอร์สที่ ประสบความสำเร็จและมีชื่อเสียง ทุกคนสามารถดูหรือนำโค้ดของลินุกซ์ไปใช้งาน, แก้ไข, และแจกจ่ายได้อย่างเสรี ลินุกซ์นิยมจำหน่ายหรือแจกฟรีในลักษณะเป็นแพคเกจ โดยผู้จัดทำจะรวมซอฟต์แวร์สำหรับใช้งานในด้านอื่นเป็นชุดเข้าด้วยกัน
เริ่มแรกของของลินุกซ์พัฒนาและใช้งานในเฉพาะกลุ่มผู้ที่สนใจ ซึ่งในปัจจุบันลินุกซ์ได้รับความนิยมเนื่องมาจากระบบการทำงานที่เป็นอิสระ ปลอดภัย เชื่อถือได้ และราคาต่ำ จึงได้มีการพัฒนาจากองค์กรต่าง ๆ เช่น ไอบีเอ็ม ฮิวเลตต์-แพกการ์ด และ โนเวลล์ ใช้สำหรับในระบบเซิร์ฟเวอร์และพีซี เริ่มแรกลินุกซ์พัฒนาสำหรับใช้กับเครื่อง อินเทล 386 ไมโครโพรเซสเซอร์ หลังจากที่ได้รับความนิยมปัจจุบัน ลินุกซ์ได้พัฒนารับรองการใช้งานของระบบสถาปัตยกรรมคอมพิวเตอร์ในระบบต่าง ๆ รวมถึงในโทรศัพท์มือถือ และกล้องวีดีโอ                                              
ผู้เริ่มพัฒนาลินุกซ์ เคอร์เนลเป็นคนแรก คือ ลินุส โตร์วัลดส์ (Linus Torvalds) ชาวฟินแลนด์ เมื่อสมัยที่เขายังเป็นนักศึกษาคอมพิวเตอร์ ที่มหาวิทยาลัยเฮลซิงกิ โดยแรกเริ่ม ริชาร์ด สตอลแมน (Richard Stallman) ได้ก่อตั้งโครงการกนูขึ้นในปี พ.ศ. 2526 จุดมุ่งหมายโครงการกนู คือ ต้องการพัฒนาระบบปฏิบัติการคล้ายยูนิกซ์ที่เป็นซอฟต์แวร์เสรีทั้งระบบ ราวช่วงพ.ศ. 2533 โครงการกนูมีส่วนโปรแกรมที่จำเป็นสำหรับระบบปฏิบัติการเกือบครบทั้งหมด ได้แก่ คลังโปรแกรม (Libraries) คอมไพเลอร์ (Compiler) โปรแกรมแก้ไขข้อความ(Text Editor) และเปลือกระบบยูนิกซ์(Shell) ซึ่งขาดแต่เพียงเคอร์เนล(Kernel) เท่านั้น ในพ.ศ. 2533 โครงการกนูได้พัฒนาเคอร์เนลชื่อ Hurd เพื่อใช้ในระบบกนูซึ่งในขณะนั้นมีปัญหาเกี่ยวกับความเร็วในการประมวลผล
ในพ.ศ. 2534 โตร์วัลดส์เริ่มโครงการพัฒนาเคอร์เนล ขณะศึกษาในมหาวิทยาลัยแล้ว โดยอาศัย Minix ซึ่งเป็นระบบที่คล้ายกับ Unix ซึ่งมากับหนังสือเรื่องการออกแบบระบบปฏิบัติการ มาเป็นเป็นต้นแบบในการเขียนขึ้นมาใหม่โดย Torvalds เขาพัฒนาโดยใช้ IA-32 assembler และภาษาซี คอมไพล์เป็นไฟล์ไบนารี่และบูทจากแผ่นฟลอปปี้ดิสก์ เขาได้พัฒนามาเรื่อยๆจนกระทั่งสามารถบูทตัวเองได้ (กล่าวคือสามารถคอมไพล์ภายในลินุกซ์ได้เลย) และในปัจจุบันมีนักพัฒนาจากพันกว่าคนทั่วโลกได้เข้ามามีส่วนรวมในการพัฒนา โครงการ Eric S. Raymond ได้ศีกษากระบวนการพัฒนาดังกล่าวและเขียนบทความเรื่อง The Cathedral and the Bazaar
               ในรุ่น 0.01 นี้ถือว่ามีเครื่องมือที่เพียงพอสำหรับระบบ POSIX ที่ใช้เรียก ลินุกซ์ ที่รันกับ กนู Bash Shell และมีการพัฒนาอย่างต่อเนื่องและอย่างรวดเร็วโตร์วัลดส์ยังคงมุ่งมั่นพัฒนาระบบต่อไป ซึ่งต่อมาก็สามารถรันบน X Window System และมีการเลือกนกเพนกวินที่ชื่อ Tux ให้เป็นตัวนำโชคหรือ Mascot ของระบบลินุกซ์ 
8.             Unix  ในทศวรรษที่ 60 สถาบันเทคโนโลยีแมสซาชูเซตส์ (MIT) , AT&T Bell Labs และบริษัท General Electric ได้ร่วมมือกันวิจัยระบบปฏิบัติการที่ชื่อว่า Multics (ย่อมาจาก Multiplexed Information and Computing Service) โดยมีจุดมุ่งหมายเพื่อทำงานบนเครื่องเมนเฟรมรุ่น GE-645 แต่ภายหลัง AT&T ได้ถอนตัวออกจากโครงการนี้
Ken Thompson ซึ่งเป็นหนึ่งในทีมพัฒนาในขณะนั้น ได้เขียนเกมบนเครื่อง GE-645 ชื่อว่าเกม Space Travel และพบปัญหาว่าเกมทำงานได้ช้ากว่าที่ควร เขาจึงย้ายมาเขียนเกมใหม่บนเครื่อง PDP-7 ของบริษัท DEC แทนด้วยภาษาแอสเซมบลี โดยความช่วยเหลือของ Dennis Ritchie ประสบการณ์เหล่านี้ทำให้ Thompson หันมาพัฒนาระบบปฏิบัติการบนเครื่อง PDP-7
ระบบปฏิบัติการนี้มีชื่อว่า UNICS ย่อมาจาก Uniplexed Information and Computing System เนื่องจากว่าการออกเสียงสามารถสะกดได้หลายแบบ และพบปัญหาชื่อใกล้เคียงกับ Multics ภายหลังจึงเปลี่ยนชื่อเป็น Unix
การพัฒนายูนิกซ์ในช่วงนี้ยังไม่ได้รับความสนับสนุนด้านการเงินจาก Bell Labs เมื่อระบบพัฒนามากขึ้น Thompson และ Ritchie จึงสัญญาว่าจะเพิ่มความสามารถในการประมวลผลคำ (Word Processing) บนเครื่อง PDP-11/20 และเริ่มได้รับการตอบรับจาก Bell Labs ในปีค.ศ. 1970 ระบบปฏิบัติการยูนิกซ์จึงได้รับการเรียกชื่ออย่างเป็นทางการ โปรแกรมประมวลผลคำมีชื่อว่า roff และหนังสือ UNIX Programmer's Manual ตีพิมพ์ครั้งแรกวันที่ 3 พฤศจิกายน ค.ศ. 1971
ค.ศ. 1973 ได้เขียนยูนิกซ์ขึ้นมาใหม่ด้วยภาษาซีใช้ ได้ทั้งเครื่องคอมพิวเตอร์ส่วนบุคคล มินิคอมพิวเตอร์และเมนเฟรมคอมพิวเตอร์ สามารถทำงานได้หลายงานพร้อมกัน ดังนั้น ยูนิกส์จึงใช้ได้กับเครื่องที่เชื่อมโยงและต่อกับปลายทางได้หลายเครื่อง พร้อมกัน ลักษณะการติดต่อกับผู้ใช้เป็นทั้งแบบ Command-line และ GUI ทำให้สะดวกต่อการนำยูนิกซ์ไปทำงานบนเครื่องชนิดอื่นมากขึ้น ทาง AT&T ได้เผยแพร่ยูนิกซ์ไปยังมหาวิทยาลัย และหน่วยงานต่างๆ ของรัฐบาล โดยสัญญาการใช้งานเปิดเผยซอร์สโค้ด ยกเว้นเคอร์เนลส่วนที่เขียนด้วยภาษาแอสเซมบลี
ยูนิกซ์เวอร์ชัน 4,5 และ 6 ออกในค.ศ. 1975 ได้เพิ่มคุณสมบัติ pipe เข้ามา ยูนิกซ์เวอร์ชัน 7 ซึ่งเป็นเวอร์ชันสุดท้ายที่พัฒนาแบบการวิจัย ออกในค.ศ. 1979 ยูนิกซ์เวอร์ชัน 8,9 และ 10 ออกมาในภายหลังในทศวรรษที่ 80 ในวงจำกัดเฉพาะมหาวิทยาลัยบางแห่งเท่านั้น และเป็นต้นกำเนิดของระบบปฏิบัติการ Plan 9
ค.ศ. 1982 AT&T นำยูนิกซ์ 7 มาพัฒนาและออกขายในชื่อ Unix System III แต่บริษัทลูกของ AT&T ชื่อว่า Western Electric ยังคงนำยูนิกซ์รุ่นเก่ามาขายอยู่เช่นกัน เพื่อยุติความสับสนทางด้านชื่อ AT&T จึงรวมการพัฒนาทั้งหมดจากบริษัทและมหาวิทยาลัยต่างๆใน Unix System V ซึ่งมีโปรแกรมอย่าง vi ที่พัฒนาโดย Berkeley Software Distribution (BSD) จากมหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ รวมอยู่ด้วย ยูนิกซ์รุ่นนี้สามารถทำงานได้บนเครื่อง VAX ของบริษัท DEC
ยูนิกซ์รุ่นที่เป็นการค้าไม่เปิดเผยซอร์สโค้ดอีกต่อไป ทางมหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ จึงพัฒนายูนิกซ์ของตัวเองต่อเพื่อเป็นทางเลือกกับ System V การพัฒนาที่สำคัญที่สุดคือเพิ่มการสนับสนุนโพรโทคอลสำหรับเครือข่าย TCP/IP เข้ามา
บริษัทอื่นๆ เริ่มพัฒนายูนิกซ์บนเครื่องคอมพิวเตอร์ระบบของตนเอง โดยส่วนมากใช้ยูนิกซ์ที่ซื้อสัญญามาจาก System V แต่บางบริษัทเลือกพัฒนาจาก BSD แทน หนึ่งในทีมพัฒนาของ BSD คือ Bill Joy มีส่วนในการสร้าง SunOS (ปัจจุบันคือ โซลาริส) ของบริษัทซัน ไมโครซิสเต็มส์
ค.ศ. 1981 ทีมพัฒนา BSD ได้ออกจากมหาวิทยาลัยและก่อตั้งบริษัท Berkeley Software Design, Inc (BSDI) เป็นบริษัทแรกที่นำ BSD มาขายในเชิงการค้า ในภายหลังเป็นต้นกำเนิดของระบบปฏิบัติการ FreeBSD, OpenBSD และ NetBSD
AT&T ยังคงพัฒนาความสามารถต่างๆ เข้าสู่ยูนิกซ์ System V และรวมเอา Xenix (ยูนิกซ์ของบริษัทไมโครซอฟท์) , BSD และ SunOS เข้ามารวมใน System V Release 4 (SVR4) เพื่อเป็นผลิตภัณฑ์หนึ่งเดียวสำหรับลูกค้า ซึ่งเพิ่มราคาขึ้นอีกมาก
หลังจากนั้นไม่นาน AT&T ขายสิทธิ์ในการถือครองยูนิกซ์ให้กับบริษัทโนเวลล์ และโนเวลเองได้สร้างยูนิกซ์ของตัวเองที่ชื่อ UnixWare ซึ่งพัฒนามาจากระบบปฏิบัติการ NetWare เพื่อแข่งกับระบบปฏิบัติการวินโดวส์เอ็นทีของไมโครซอฟท์
ค.ศ. 1995 โนเวลขายส่วนต่างๆ ของยูนิกซ์ให้กับบริษัท Santa Cruz Operation (SCO) โดยโนเวลยังถือลิขสิทธิ์ของยูนิกซ์ไว้ ค.ศ. 2000 SCO ขายสิทธิ์ส่วนของตนเองให้กับบริษัท Caldera ซึ่งเปลี่ยนชื่อภายหลังเป็น SCO Group ซึ่งเป็นสาเหตุในการดำเนินคดีละเมิดลิขสิทธิ์กับลินุกซ์

9.        Mac OS เป็นระบบปฏิบัติการสำหรับเครื่องคอมพิวเตอร์แมคอินทอช โดยทั้งคู่เป็นผลิตภัณฑ์ของบริษัทแอปเปิลคอมพิวเตอร์. แมคโอเอสเป็นระบบปฏิบัติการที่มีส่วนต่อประสานกับผู้ใช้แบบกราฟิก (GUI) รายแรกที่ประสบความสำเร็จในเชิงพาณิชย์
รุ่นแรกๆ ของระบบปฏิบัติการนี้ ไม่ได้ใช้ชื่อแมคโอเอส, อันที่จริงระบบปฏิบัติการนี้ในรุ่นแรกๆ ยังไม่มีชื่อเรียกด้วยซ้ำ ทีมพัฒนาแมคโอเอสประกอบด้วย บิลล์ แอตคินสัน, เจฟ รัสกิน, แอนดี เฮิตซ์เฟลด์ และคนอื่นๆ

10.     FreeBSD  หรือ ฟรีบีเอสดี คือซอฟต์แวร์เสรีซึ่งเป็นระบบปฏิบัติการที่เหมือนยูนิกซ์ (Unix-like) สืบทอดมาจาก AT&T UNIX ผ่านทางสายของ Berkeley Software Distribution (BSD) คือ 386BSD และ 4.4BSD ฟรีบีเอสดีรองรับการทำงานบนซีพียูตระกูลหลักๆ หลายตระกูลด้วยกัน นอกจากตระกูล X86 ของอินเทลที่ใช้กันอย่างกว้างขวาง ก็ยังมี DEC Alpha, UltraSPARC ของ Sun Microsystems, Itanium (IA-64), AMD64 และ PowerPC ส่วนของตระกูลรองได้แก่คอมพิวแตอร์สถาปัตยกรรมแบบ PC-98 การรองรับสำหรับตระกูล ARM และ MIPS กำลังอยู่ระหว่างการพัฒนา จุดเด่นที่สำคัญของฟรีบีเอสดีคือประสิทธิภาพและเสถียรภาพ โลโก้ดั้งเดิมและตัวมาสคอตของโครงการฟรีบีเอสดีคือตัวดีม่อนสีแดงซึ่ง มาร์แชล เคิร์ก แมคคูสิก (Marshall Kirk McKusick) เป็นเจ้าของลิขสิทธิ์
การพัฒนาฟรีบีเอสดีเป็นแบบเบ็ดเสร็จทั้งระบบปฏิบัติการ กล่าวคือทั้งเคอร์เนล ยูเซอร์แลนด์ยูทิลิตี้เช่น เชลล์ และดีไวซ์ไดรเวอร์อยู่ในทรีของระบบควบคุมเวอร์ชันของซอร์สโค้ด (CVS) เดียวกัน ซึ่งแตกต่างจากลินุกซ์ที่มีการพัฒนาเฉพาะส่วนของเคอร์เนลโดยบุคคลกลุ่มหนึ่ง ส่วนของยูเซอร์แลนด์ยูทิลิตี้พัฒนาโดยกลุ่มอื่นๆ เช่น กลุ่มในโครงการของกนูและนำมารวมเข้าด้วยกันกับโปรแกรมประยุกต์กลายเป็นดิสทริบิวท์ชั่นซึ่งนำมาเผยแพร่ให้ผู้ใช้ได้ใช้กัน
ฟรีบีเอสดีได้รับการยกย่องว่าเป็นระบบปฏิบัติการที่มีชื่อเสียงทางด้าน เสถียรภาพและความอึด (แต่ไม่อืด) จึงเป็นระบบปฏิบัติการที่ใช้รันเซิร์ฟเวอร์อย่างแพร่หลาย ข้อยืนยันนี้ดูได้จากรายงานอัพไทม์ (uptime เวลาจากการรีบูตครั้งล่าสุด) ในรายการ 50 อันดับของเว็บเซิร์ฟเวอร์ที่มีอัพไทม์นานที่สุดก็มฟรีบีเอสดีและBSD/OS ปรากฏอยู่เป็นจำนวนมาก สิ่งนี้เป็นตัวบ่งบอกถึงความมั่นคงของฟรีบีเอสดีว่า ตลอดเวลาการปฏิบัติงานอันยาวนานนี้นอกจากจะไม่มีการแครชแล้ว ยังไม่จำเป็นต้องมีการอัปเดตเคอร์เนลแต่อย่างใด (หลังจากอัพเกรดเคอร์เนลจำเป็นต้องรีบูต)

11.    OS/2 เป็นระบบปฏิบัติการคอมพิวเตอร์ ที่เริ่มแรกพัฒนาโดยไมโครซอฟท์และไอบีเอ็ม แต่ต่อมาทางไอบีเอ็มได้พัฒนาต่อเพียงผู้เดียว โดยชื่อของ OS/2 ย่อมาจาก "Operating System/2" การพัฒนา OS/2 เริ่มต้นเมื่อสิงหาคม พ.ศ. 2528 ภายใต้ชื่อรหัสว่า CP/DOS โดยใช้เวลาในการพัฒนาทั้งหมดสองปีในการออกรุ่น OS/2 1.0 เมื่อเมษายน พ.ศ. 2530 จนกระทั่งในปี 2533 ไมโครซอฟท์ได้แยกและถอนตัวจากการพัฒนาเมื่อทางไมโครซอฟท์ได้ออกซอฟต์แวร์ วินโดวส์ 3.0 ในขณะที่ OS/2 ออกรุ่น 1.3
OS/2 เลิกพัฒนาตั้งแต่ 31 ธันวาคม 2549 ต่อมาบริษัท Serenity Systems ได้วางจำหน่ายระบบปฏิบัติการ OS/2 ภายใต้ชื่อเครื่องหมายการค้า eComStation โดยเวอร์ชั่นแรกที่สเถียรคือรุ่น 1.2R ออกเมื่อเดือน พฤศจิกายน พ.ศ.2548 เวอร์ชั่นล่าสุดคือรุ่น 2.0 RC7 Silver ออกเมื่อเดือน สิงหาคม พ.ศ.2552

12.   RISC OS หาข้อมูลไม่ได้
13.   BeOS หาข้อมูลไม่ได้
14.   Amiga หาข้อมูลไม่ได้
15.   Plan9 หาข้อมูลไม่ได้

16.    NetWare NetWare เป็นระบบปฏิบัติการเครือข่ายที่พัฒนาโดย Novell และเป็นครั้งแรกที่ใช้ cooperative multitasking เพื่อให้บริการสิ่งต่างๆบนเครื่องคอมพิวเตอร์ และโพรโทคอลเครือข่ายที่เป็นพื้นฐานบนรูปแบบแรกเริ่มของ Xerox , XNS stack NetWare อาจจะถูกแทนที่ด้วย Open Enterprise Server เวอร์ชันล่าสุดของ NetWare ก็คือ V.6.5 สนับสนุน Pack 7 ซึ่งมีความคล้ายคลึงกับ OES 2 NetWare Kernel 

      ประวัติ

                NetWare วิวัฒนาการมาจากความคิดที่ง่ายมากคือ การแชร์ไฟล์แทนที่การแชร์ดิสก์ ในปี ค.ศ. 1983 เมื่อเวอร์ชันแรกของ Netware ได้ถูกออกแบบมา การแข่งขันของผลิตภัณฑ์อื่นๆทั้งหมด จะมีพื้นฐานบนความคิดที่ว่าการเตรียมการแชร์ดิสก์โดยการเข้าถึงโดยตรง อีกทางเลือกหนึ่งของ Novell ที่จะทำให้เข้าใกล้ความสำเร็จคือ ในปี 1984 โดย IBM ให้ความช่วยเหลือในการโฆษณาผลิตภัณฑ์ไปพร้อมกับผลิตภัณฑ์ของIBM      

                กับ Novell NetWare แล้วที่ว่างบนดิสก์มีการแชร์อยู่ในรูปแบบของ NetWare ทั้งหมดเปรียบได้เท่ากันกับ DOS เครื่องลูกที่ทำงานบนระบบ MS-DOS จะทำงานเป็นแบบที่พิเศษคือแบบ Terminate and Stay Resident (TSR) โปรแกรมจะอนุญาตให้ TSR แมพกับ local drive และส่งไปยังระดับ NetWare เครื่องลูกจะมีการเข้าถึง server ในรายการที่มีการอนุญาตเพื่อการแมพและการสามารถมีการควบคุมซึ่งขึ้นอยู่กับ ชิ่อที่ทำการ login ในทำนองเดียวกัน NetWare ก็สามารถติดต่อกับการแชร์ปริ๊นเตอร์บน dedicated server และปริ๊นได้ถ้าเครื่องปริ๊นเตอร์มีการเชื่อมต่อแบบ local และการสร้าง NetWare มีอิทธิพลต่อสภาพทางการตลาดในยุคแรกๆและในกลางปี 1990 ด้วยการพัฒนา XNS-derived โพรโทคอล IPX/SPX ตามแบบ local area network (LAN) เป็นมาตรฐาน 
                 ตอนท้ายปี 1990 ระบบอินเทอร์เน็ตมีการติดต่อกันอย่างรวดเร็ว โดยระบบอินเทอร์เน็ตจะใช้โพรโทคอล TCP/IP มาเป็นส่วนสำคัญของระบบ Novell มีการแนะนำถึงข้อจำกัดของโพรโทคอล TCP/IP ว่ามันจะสนับสนุนเพียง Netware v3.x ( รุ่นปี 1992 ) และ v4.x ( รุ่นปี 1995 ) แต่ NetWare ส่วนใหญ่จะใช้ได้กับโพรโทคอล FTP และ UNIX- style LPR/LPD printing ( เหมาะที่จะใช้ใน NetWare v3.x ) และ Novell ได้พัฒนา webserver ( ใน NetWare v4.x ) โดยทั่วไปโพรโทคอล TCP/IP จะสนับสนุนระบบไฟล์ของเครื่องลูกและการให้บริการพิมพ์แบบปกติ อันเกี่ยวเนื่องกับ Netware ซึ่งได้แนะนำไว้ใน Netware v5.0 ( ปล่อยออกมาในปี 1998 
                 ในขณะที่คุณสมบัติบางประการของ Novell ก็ได้รับมาจาก TCP/IP ซึ่งเป็นโพรโทคอลพื้นฐานที่ใกล้สูญหายของ Netware มันเป็นการแน่นอนว่าการพูดถึง Novell ว่าอนุญาตให้ตัวมันเองเป็น outmarketed ช่วงเวลาในยุคแรกจนกระทั่งกลางปี 1980 บริษัท Microsoft ได้แนะนำพวกเขาให้มาเป็นเจ้าของระบบ LAN ใน LAN-Manager บนพื้นฐานการแข่งขันโพรโทคอล NBF ในยุคแรกได้พยายามถึงความแข็งแกร่งบน Netware ไม่ประสบผลสำเร็จ แต่การเปลี่ยนแปลงครั้งนี้ได้รวบรวมการแก้ไขระบบเครือข่ายเพื่อให้สนับสนุน Windows for Workgroup และจากนั้น Windows NT , Windows 95 ก็ได้ประสบความสำเร็จอย่างมหาศาล โดย Windows NT มีจุดเด่นคือการเสนอการบริการมีความคล้ายคลึงกับการเสนอการบริการของ Netware แต่บนระบบเหล่านั้นยังสามารถใช้งานบนเดสก์ทอปได้ด้วย และการติดต่อโดยตรงถึง Windows desktop อื่นๆในที่ไหนๆ NBF ก็จะถูกใช้เป็นสากล
  17.    MorphOS หาข้อมูลไม่ได้
  18.    Zaurus หาข้อมูลไม่ได้
  19.    VMS หาข้อมูลไม่ได้
  20.    EPOC หาข้อมูลไม่ได้
  21.   Soloris หรือในชื่อเต็ม The Solaris Operating 
        เป็นระบบปฏิบัติการคอมพิวเตอร์ แบบยูนิกซ์ ที่พัฒนาโดย ซัน ไมโครซิสเต็มส์
ระบบปฏิบัติการโซลาริส ใช้ได้กับสถาปัตยกรรมคอมพิวเตอร์สองแบบ คือ แบบ สปาร์ค และแบบ x86 (แบบเดียวกับในเครื่องคอมพิวเตอร์ส่วนบุคคลทั่วไป)
รุ่นแรก ๆ ของโซลาริสนั้น ใช้ชื่อว่า ซันโอเอส (SunOS) โดยมีพื้นฐานมาจากยูนิกซ์ตระกูลบีเอสดี. แต่ต่อมาในรุ่นที่ 5 ได้เปลี่ยนมาใช้โค้ดของ ซิสเต็มส์ไฟว์ (System V) แทน และเปลี่ยนชื่อมาเป็น โซลาริส ดังเช่นในปัจจุบัน, โดยเรียกโซลาริสรุ่นแรกว่า โซลาริส 2 และเปลี่ยนชื่อเรียกของซันโอเอสรุ่นก่อน ๆ เป็น โซลาริส 1.x, และหลังจากโซลาริสรุ่น 2.6 ก็ได้ตัด "2." ข้างหน้าออกไป และเรียกเป็น โซลาริส 7 แทนรุ่นปัจจุบัน (ก.ค. 2548) ของโซลาริสคือ โซลาริส 10 การพัฒนาบางส่วนของโซลาริสในอนาคต ขณะนี้ได้พัฒนาในโครงการ โอเพนโซลาริส (OpenSolaris) ซึ่งเป็นโครงการระบบปฏิบัติการแบบโอเพนซอร์ส
          
 ประวัติ
ในปี 1987, AT&T และ SUN ได้ประกาศให้บุคคลทั่วไปทราบว่าได้ร่วมกันทำโปรเจกต์ที่มีความลงตัวและต่าง จาก Unix อื่นๆ ออกมาจำหน่ายในเวลานั้นคือ BSD, System V, and Xenix กลายเป็นที่มาของ Unix System V Release 4 (SVR4). วันที่ 4 กันยายน 1991 SUN ได้ประกาศให้มันเข้ามาแทนที่ BSD-derived Unix, SunOS 4 ซึ่งเป็นพื้นฐานของ SVR4 ที่มีอยู่, เป็นเอกลักษณ์ที่อยู่ภายใน SunOS 5, แต่เปลี่ยนชื่อทางการตลาดว่า Solaris , ในขณะที่ SunOS 4.1.x micro เปลี่ยนชื่อเป็น Solaris 1 จาก SUN, ชื่อ Solaris เกือบจะผูกขาดใช่เรียกทั้ง SVR4-derived SunOS 5.0 ในเวลาต่อมา โดยให้รวบรวมไว้ใน overbrand ใหม่ ยกเว้น SunOS แต่เช่นเดียวกันกับ OpenWindows graphical user interface และ Open Network Computing (ONC) ซึ่งสามารถนำไปใช้ประโยชน์ได้จริง SunOS เวอร์ชันรองลงมาได้ใช้พื้นฐานจาก Solaris และออกสู่ตลาดภายใต้ชื่อ Solaris 2.4, รวบรวมเป็น SunOS 5.4 หลัง Solaris 2.6,โดย SUN ได้วางให้เป็นหมายเลข 2.ไปเรื่อยๆ Solaris7 รวบรวมเป็น SunOS 5.7 จนถึง SunOS 5.10 จาก Solaris10.Solaris เป็นระบบปฏิบัติการเครือข่ายที่ออกแบบสำหรับงานด้านโปรแกรม E-commerce
 
22.    IRIX หาข้อมูลไม่ได้
23.    Darwin หาข้อมูลไม่ได้
24.    HPUX หาข้อมูลไม่ได้
28.    Chrome OS เป็น OS ที่พัฒนาโดย Google นั้นเองผมจะนำ   เสนอและส่วนต่างๆ บางอย่างมาให้ชมก่อนที่จะได้ลองใช้งานกันจริงๆ อีกทีหนึ่ง 
       ติดตามเพิ่มเติมได้ที่

       http://www.blognone.com/node/14014


สุดท้ายของระบบที่ใช้กันนิยมๆ

ระบบปฏิบัติการที่เป็นที่นิยมในคอมพิวเตอร์ส่วนบุคคลทุกวันนี้ ได้แก่ ไมโครซอฟท์ วินโดวส์ แมคโอเอส และลินุกซ์
นอกจากนี้ ยังมีระบบปฏิบัติการตระกูลยูนิกซ์ ซึ่งได้รับความนิยมในเครื่องเซิร์ฟเวอร์ที่ใช้กันในหน่วยงาน ระบบปฏิบัติการตระกูลยูนิกซ์ที่เป็นที่รู้จักกันดี ได้แก่ ยูนิกซ์ตระกูลบีเอสดี เอไอเอ็กซ์ และโซลาริส และรวมถึงลีนุกซ์ซึ่งพัฒนาโดยอาศัยหลักการเดียวกันกับยูนิกซ์
ระบบปฏิบัติการบางตัว ถูกออกแบบมาสำหรับการเรียนการสอนวิชาระบบปฏิบัติการโดยเฉพาะ เช่น มินิกซ์ ซินู หรือ พินโทส
ในอุปกรณ์อื่นๆ ที่ควบคุมด้วยระบบคอมพิวเตอร์ ก็อาจมีระบบปฏิบัติการเช่นกัน เช่น ระบบปฏิบัติการ ปาล์มโอเอส หรือ ซิมเบียน ในโทรศัพท์มือถือ หรือระบบปฏิบัติการ TRON ในเครื่องใช้ไฟฟ้าตามบ้าน