ที่เราชอบพูดกันติดปากว่า ระบบปฏิบัติการ นู้น ระบบปฏิบัติการนั้น ไม่ว่าจะเป็นในคอมพิวเตอร์ โทรศัพท์มือถือ สมาร์ทโฟน แท็บเล็ต ฯลฯ แท้จริงแล้ว มันคืออะไร มีความสำคัญอย่างไรต่อการใช้งานอุปกรณ์ต่าง ๆ ในยุคปัจจุบันบ้าง แล้วมันเหมือนกันหรือเปล่า ระหว่างสมาร์ทโฟนที่เราใช้กันกับในคอมพิวเตอร์ มาศึกษาเพิ่มเติมกัน
Operating System (OS) หรือระบบปฏิบัติการ เป็น โปรแกรมที่ถูกโหลดเข้าสู่อุปกรณ์เครื่องนั้น ๆ โดยโปรแกรมบูท ที่มีหน้าที่จัดการ แอปพลิเคชัน (Application) ต่าง ๆ ภายในอุปกรณ์เครื่องนั้น ๆ อีกทีหนึ่ง
โดยแอปพลิเคชัน ก็จะอาศัยระบบปฏิบัติการในการร้องขอบริการ (Service) ต่าง ๆ ที่จำเป็นในการทำงานผ่าน API (Application Programming Interface) โดย API นี้ จะมีหน้าที่สื่อสารระหว่างระบบด้วยกัน หรือในอีกทางหนึ่งก็คือ ผู้ใช้จะสามารถเรียกใช้งานในรูปแบบต่าง ๆ กับระบบปฏิบัติการได้ผ่าน หน้าจอผู้ใช้งาน หรือ หน้าจอที่ติดต่อกับผู้ใช้งาน (User Interface) เช่นในรูปแบบของ หน้าจอที่รองรับการพิมพ์คำสั่ง (Command-line Interface - CLI) หรือ หน้าจอแบบกราฟิก (Graphical User Interface - GUI) ก็ได้
ระบบปฏิบัติการ นั้น นำมาซึ่งประโยชน์ต่าง ๆ มากมายให้กับผู้ใช้งานซอฟต์แวร์คอมพิวเตอร์ และการพัฒนาซอฟต์แวร์ หากปราศจากระบบปฏิบัติการแล้ว แอปพลิเคชันทุกแอปก็จะต้องมี UI (User Interface) เป็นของตัวเองหมด และจะต้องออกแบบให้สามารถรองรับฟังก์ชันเบื้องต้นอื่น ๆ ให้ครอบคลุมได้ทุกอย่างที่เกี่ยวข้องกับการรันแอป ไม่ว่าจะเป็นพื้นที่จัดเก็บ, อินเตอร์เฟซเน็ตเวิร์ก, ฯลฯ ซึ่งนั่นจะทำให้ขนาดของแอปพลิเคชันทุกแอปใหญ่ขึ้นไปอีก
เครดิตภาพ : https://www.freepik.com/free-vector/gradient-ui-ux-background_16695771.htm?query=user%20interface
อีกอย่างหนึ่งคือ งานทั่วไปอย่างเช่นการส่ง Network Packet หรือแสดงผลตัวอักษรบนอุปกรณ์เอาท์พุตมาตรฐาน เช่น จอแสดงผล ก็สามารถยกไปให้เป็นงานของซอฟต์แวร์ระบบ ที่ต้องเป็นตัวกลางระหว่างแอปพลิเคชันกับฮาร์ดแวร์อยู่แล้วได้ ทำให้แอปพลิเคชันต่าง ๆ ไม่จำเป็นต้องรับรู้รายละเอียดเกี่ยวกับฮาร์ดแวร์ที่ใช้งาน เพราะมีซอฟต์แวร์ระบบคอยประสานงานให้อยู่
และตราบใดที่แอปพลิเคชันแต่ละแอป เข้าถึงทรัพยากรและเซอร์วิสต่าง ๆ ไปในทางเดียวกัน ซอฟต์แวร์ระบบ หรือระบบปฏิบัติการนี้ ก็สามารถให้บริการแอปต่าง ๆ ที่ต้องการเข้าถึงได้พร้อม ๆ กัน ซึ่งช่วยลดภาระการเขียนโค้ด และลดเวลาในการพัฒนารวมไปถึงการแก้ไขบัคได้ดี และทำให้ผู้ใช้งานสามารถควบคุม, ตั้งค่า, และจัดการฮาร์ดแวร์ระบบผ่านอินเตอร์เฟซที่มีหน้าตาการใช้งานเข้าใจง่ายได้
ระบบปฏิบัติการสำหรับการใช้งานทั่วไป (General-Purpose Operating System) ที่สามารถรันแอปพลิเคชันบนฮาร์ดแวร์ที่แตกต่างกันได้อย่างหลากหลาย และทำให้ผู้ใช้สามารถรันแอปพลิเคชันมากกว่า 1 แอป ได้อย่างต่อเนื่องและลื่นไหล ซึ่งระบบปฏิบัติการที่ว่า สามารถนำไปติดตั้งได้ทั้งบนคอมพิวเตอร์แบบตั้งโต๊ะ และแล็ปท็อปหลากรุ่น หลายรูปแบบ และรันแอปพลิเคชันได้ตั้งแต่การทำบัญชี, การจัดการฐานข้อมูล, ท่องเว็บผ่านเบราว์เซอร์ ไปจนถึงการเล่นเกม
เครดิตภาพ : https://www.microsoft.com/th-th/software-download/windows10
OS ประเภทนี้ ส่วนใหญ่จะโฟกัสในด้านการประมวลผล และจัดการฮาร์ดแวร์ เพื่อให้แน่ใจว่าแอปพลิเคชันต่าง ๆ สามารถแบ่งปันการประมวลผลฮาร์ดแวร์ ณ เวลาปัจจุบันนั้น ๆ ได้อย่างกว้างขวาง
ระบบปฏิบัติการบนมือถือ (Mobile Operating System) ถูกออกแบบมาเพื่อตอบสนองความต้องการเฉพาะตัวตามแบบของโทรศัพท์มือถือที่ต้องถูกพกพาติดตัวตลอดเวลา และถูกใช้เป็นอุปกรณ์ตัวกลางในการติดต่อสื่อสาร เช่น สมาร์ทโฟน, แท็บเล็ต โดยทั่วไปแล้ว อุปกรณ์เคลื่อนที่เหล่านี้มักจะมีทรัพยากรจำกัดในการประมวลผลเมื่อเทียบกับเครื่องคอมพิวเตอร์ทั่วไป
เครดิตภาพ : https://www.freepik.com/free-vector/native-mobile-app-abstract-concept-illustration-smartphone-application-programming-language-operating-system-online-store-marketplace-web-browser-software_12144975.htm
ระบบปฏิบัติการที่ถูกออกแบบมาให้ใช้กับการทำงานแบบเฉพาะจุด หรือเฉพาะทาง (Embedded Operating System) เพราะใช่ว่าระบบประมวลผลทั่วไปจะสามารถใช้ได้กับทุกเครื่องทุกสถานการณ์ บางอุปกรณ์ หรือบางสถานที่ ก็มีความจำเป็นต้องใช้การทำงานในรูปแบบที่เฉพาะตัวที่สถานที่ทั่ว ๆ ไปไม่จำเป็นต้องใช้กัน เช่น เครื่องกดเงินอัตโนมัติ (ATM), ระบบบังคับการเครื่องบิน, เครื่องคิดเงินสำหรับพนักงานตามห้างร้าน (POS), ฯลฯ ซึ่งเครื่องเหล่านี้ ก็ทำงานเหมือนกับคอมพิวเตอร์ที่ต้องมีระบบปฏิบัติการอยู่ภายใน แต่ต่างกันตรงจุดประสงค์ในการใช้งาน
เครดิตภาพ : https://www.freepik.com/free-vector/set-buyers-paying-purchases-supermarket-checkout_6703794.htm#query=POS%20counter&position=3&from_view=search
โดยระบบปฏิบัติการของเครื่องเหล่านี้ จะต้องมีคุณสมบัติที่สามารถรันได้ดี ไม่ค้างระหว่างทาง และสามารถรับมือกับทุกข้อผิดพลาดที่เกิดขึ้นภายในเครื่องเพื่อให้ระบบสามารถทำงานต่อไปได้ด้วยในทุกสถานการณ์
ระบบปฏิบัติการเน็ตเวิร์ก หรือ เครือข่าย (Network Operating System) หรือตัวย่อคือ "NOS" เป็นระบบปฏิบัติการในอีกรูปแบบหนึ่งที่ทำหน้าที่สื่อสารระหว่างอุปกรณ์เชื่อมต่อเครือข่าย (Network) โดย NOS จะทำหน้าที่สแตคการสื่อสารที่จำเป็นต่อการสร้างโปรโตคอลเน็ตเวิร์ก, แลกเปลี่ยน และจำแนกแพ็กเก็ตเน็ตเวิร์ก
เครดิตภาพ : https://www.freepik.com/free-photo/young-it-service-man-repairing-computer_6427086.htm#query=Network%20operating%20system&position=2&from_view=search
ซึ่งในปัจจุบัน คอนเซ็ปต์ของ NOS ที่ถูกออกแบบมาเป็นพิเศษนั้น ค่อนข้างจะล้าสมัยไปแล้วเนื่องจากระบบปฏิบัติการใหม่ ๆ อย่าง Windows 10 สามารถรองรับการสื่อสารผ่านเครือข่ายขนาดใหญ่ได้เองและค่อนข้างครอบคลุมหลาย ๆ คุณสมบัติที่ NOS มี แต่ก็ยังมีใช้งานอยู่บ้างในอุปกรณ์ที่เกี่ยวข้องกับเครือข่าย เช่น เราเตอร์, ไฟร์วอลล์และสวิทช์, และมีผู้ผลิตบางรายที่เป็นเจ้าของกรรมสิทธิ์ NOS ภายใต้ชื่อของตัวเองด้วย เช่น Cisco (Cisco Internetwork Operating System), RouterOS, และ ZyNOS
เมื่ออุปกรณ์ที่ใช้ประมวลผลต้องโต้ตอบกับโลกจริง ในกรอบเวลาที่จำกัด และต้องทำซ้ำ ๆ ให้ได้ด้วย ซึ่งผู้ผลิตอุปกรณ์อาจปรับแต่งให้ใช้งาน ระบบปฏิบัติการแบบเรียลไทม์ (Real-time Operating System) หรือ RTOS ยกตัวอย่างเช่น ระบบควบคุมในอุตสาหกรรมที่ต้องส่งต่อการปฏิบัติการให้กับโรงงานสาขาหรือโรงผลิตไฟฟ้า บรรดาสิ่งอำนวยความสะดวกก็จะทำสัญญาญขึ้นมาจากเซนเซอร์ที่มีอยู่เป็นจำนวนมาก แล้วส่งสัญญาณเหล่านี้ต่อไปยังวาล์ว, ตัวกระตุ้น, มอเตอร์, และอุปกรณ์อื่น ๆ ที่เกี่ยวข้องอีกนับไม่ถ้วน
เครดิตภาพ : https://www.freepik.com/free-photo/industrial-building-large-warehouse-interior-with-forklift-palette-with-goods-shelves_11451232.htm#query=facility&position=15&from_view=search
ซึ่งในสถานการณ์ต่าง ๆ ที่กล่าวมาข้างต้น ต้องใช้ระบบการควบคุมในอุตสาหกรรมที่ต้องตอบสนองอย่างรวดเร็วและคาดการณ์ตามสถานการณ์ในเปลี่ยนไปในโลกจริงได้ มิฉะนั้น ก็จะเกิดผลกระทบอย่างร้ายแรงตามมา โดยตัวอย่างระบบปฏิบัติการที่มีในประเภทนี้ได้แก่ FreeRTOS และ VxWorks
Kernel ในระบบปฏิบัติการจะมีระดับการควบคุมพื้นฐานอยู่เหนืออุปกรณ์คอมพิวเตอร์อื่น ๆ (External Devices) ซึ่ง Kernel ถือเป็นองค์ประกอบสำคัญในทุกระบบปฏิบัติการ ที่ต้องทำการโหลดและคงไว้ในหน่วยความจำหลัก เพื่อให้แอปพลิเคชันต่าง ๆ สามารถเข้าถึงและจัดการหน่วยความจำได้ภายใน หน่วยความจำ RAM และสร้างโปรแกรมเพื่อเข้าถึงทรัพยากรฮาร์ดแวร์ พร้อมทั้งจัดการรีเซ็ตสถานะการทำงานให้กับ หน่วยประมวลผลกลาง (CPU) เพื่อประสิทธิภาพที่ดีขึ้นในการใช้งานแต่ละครั้ง
ข้อมูลเพิ่มเติม : Kernel คืออะไร ? ทำหน้าที่อะไรในระบบปฏิบัติการ ? และ Kernel มีกี่ประเภท ?
ตัวระบบปฏิบัติการ จะมีอินเตอร์เฟซไว้แสดงผลระหว่างฮาร์ดแวร์ด้วยกัน เฉกเช่นเดียวกันกับแอปพลิเคชัน เพื่อให้สามารถเชื่อมต่อกับอุปกรณ์ฮาร์ดแวร์ตามขั้นตอนและหลักการที่ถูกตั้งค่าไว้ใน OS โดยกระบวนการการทำงานของโปรแกรม ประกอบไปด้วยโปรเซสขึ้นพื้นฐานที่ถูกสร้างโดยเคอร์เนลของ OS ซึ่งจะใช้พื้นที่หน่วยความจำและทรัพยากรอื่น ๆ ในรูปแบบที่หลากหลาย
การ Disruption หรือการแทรกแซงในระบบปฏิบัติการถือเป็นสิ่งสำคัญ เพราะเป็นเทคนิคที่เชื่อถือได้ภายใน OS มีไว้สำหรับการติดต่อสื่อสารและโต้ตอบกันภายใน OS โดย Disruption เป็นสัญญาณของอะไรบางอย่างที่อยู่ระหว่างอุปกรณ์และระบบคอมพิวเตอร์ หรือในอีกแง่หนึ่งก็คือ เป็นตัวที่ทำให้เราช่วย OS ตัดสินใจได้ว่าจะตัดโปรแกรมไหนทิ้งไปและจะต้องไปทำอะไรต่อ
เมื่อไหร่ก็ตามที่ได้รับสัญญาณการถูกแทรกแซง ฮาร์ดแวร์ของคอมพิวเตอร์จะทำการย้อนกลับไปยังโปรแกรมใด ๆ ก็ตามที่กำลังทำงานอยู่ จัดการคงสถานะเอาไว้ และรันโปรแกรมที่ถูกเชื่อมต่อก่อนหน้าเข้ากับการ Interupt ในครั้งนั้น ๆ อีกครั้ง
คำ ๆ นี้หมายถึงฟังก์ชันในโปรแกรมอิสระหลาย ๆ โปรแกรมที่ทำงานบนคอมพิวเตอร์เครื่องเดียวกัน เป็นการทำให้ตัวจัดการมัลติทาส์กกิ้ง (Multitasking) สามารถปฏิบัติการบนเครื่องคอมพิวเตอร์ได้มากกว่าหนึ่งเครื่องในเวลาเดียวกันบน OS รวมทั้งคอมพิวเตอร์หลายเครื่อง ก็สามารถทำงานได้มากกว่าหนึ่งอย่างในเวลาเดียวกันด้วย ดังนั้น การมีระบบมัลติทาส์กกิ้ง ก็จะช่วยให้งานสามารถเสร็จพร้อมกันได้โดยการแชร์เวลาทำงานระหว่างกัน โดยทุกโปรแกรมจะทำงานโดยใช้เวลาของคอมพิวเตอร์เป็นหลัก
เครดิตภาพ : https://www.freepik.com/free-vector/multitasking-concept-with-man-computer_6686252.htm#query=multitasking&position=12&from_view=search
ฟังก์ชันการทำงานของ OS จะขึ้นอยู่กับการจัดการหน่วยความจำเป็นหลัก ซึ่งทำงานโดยการขับเคลื่อนโพรเซสไปมาระหว่างฮาร์ดดิสก์และหน่วยความจำหลักในระหว่างการประมวลผล โดยจะแทรคหน่วยความจำในทุก ๆ สถานะและทุกหน่วยความจำที่มีทั้งหมด โดยจะถูกเปิดไว้ตลอดเวลาจนกว่าจะได้รับมอบหมายให้เริ่มกระบวนการทำงาน
ฟังก์ชันการจัดการหน่วยความจำสามารถแบ่งออกได้เป็นสามส่วนที่สำคัญ ได้แก่ การจัดการหน่วยความจำฮาร์ดแวร์, ระบบปฏิบัติการ, และการจัดการหน่วยความจำของแอปพลิเคชัน
คำว่า Networking เราสามารถจำกัดใจความโดยคร่าวได้ว่า เมื่อหน่วยประมวลผลสื่อสารกับอีกฝ่ายหนึ่งผ่านสายสื่อสาร การออกแบบเครือข่ายวิธีการเชื่อมต่อเส้นทางการสื่อสาร ก็ควรคำนึงถึงการรักษาความปลอดภัย, ความปลอดภัย, และประเด็นความคิดเห็นอื่น ๆ ด้วย
เครดิตภาพ : https://www.freepik.com/free-vector/cloud-services-isometric-composition-with-big-cloud-computing-infrastructure-elements-connected-with-dashed-lines-vector-illustration_7199787.htm
ซึ่งในปัจจุบัน ระบบปฏิบัติการส่วนใหญ่จะรักษาเทคโนโลยีเครือข่าย ฮาร์ดแวร์ และแอปพลิเคชันต่าง ๆ ไว้ ดังนั้น ข้อมูลคอมพิวเตอร์ที่ทำงานบนระบบปฏิบัติการที่แตกต่างกัน ก็จะสามารถรวมเข้ากับเครือข่ายทั่วไปเพื่อแบ่งปันทรัพยากรต่าง ๆ ต่อกันได้ เช่น คอมพิวเตอร์หลายเครื่อง, สแกนเนอร์, ปรินเตอร์ ที่อาจเชื่อมต่อผ่านสาย หรือไร้สายก็ได้
จะมีการใช้วิธีการที่แตกต่างกันเพื่อวัตถุประสงค์ในการปกป้องโพรเซสต่าง ๆ ของระบบปฏิบัติการจากกิจกรรมของแต่ละฝ่ายที่สื่อสารหากัน เพื่อให้แน่ใจว่ากระบวนการที่ต้องการเรียกใช้ไฟล์ หน่วยความจำ และทรัพยากรฮาร์ดแวร์อื่นๆ จะต้องมีการอนุญาตที่เหมาะสมจากระบบปฏิบัติการ
ยกตัวอย่างเช่น ฮาร์ดแวร์ที่ระบุหน่วยความจำ สามารถช่วยให้เราแน่ใจได้ว่า โปรเซสนั้น ๆ จะรันบนพื้นที่ของตัวแอดเดรสเองที่ว่างอยู่ ซึ่งสุดท้ายแล้ว ไม่มีโปรเซสใดที่ได้รับอนุญาตให้แสดงผล I/O ของตัวเอง เพื่อเป็นการป้องกันที่ช่วยให้เราสามารถคงสภาพการผนวกรวมเข้ากับอุปกรณ์ปลีกย่อยต่าง ๆ ได้
หน่วยความจำหลักในที่นี้ สามารถมีมากขนาดเป็นที่เก็บข้อมูลสำรองได้ ไปจนถึงขนาดไบต์เล็ก ๆ และเพื่อให้โปรแกรมสามารถทำงานได้ มันจะต้องถูกแมปจนเต็ม และถูกโหลดภายในหน่วยความจำ ซึ่งกระบวนการจัดการหน่วยความจำ ก็จะมีหลาย ๆ ปัจจัยเข้ามาเกี่ยวข้องด้วย
ทั้งนี้ทั้งนั้น ก็จะขึ้นอยู่กับว่า ตัวฮาร์ดแวร์ของระบบถูกออกแบบมาอย่างไร เพราะอัลกอริทึมทั้งหมด ล้วนต้องการการรองรับจากฮาร์ดแวร์ โดยหน่วยความจำหลัก จะทำให้เราสามารถเก็บข้อมูลได้อย่างรวดเร็ว และสามารถเข้าถึงได้โดยตรงผ่านทาง CPU ซึ่งหน่วยความจำหลักเหล่านี้จะมีราคาแพง และสามารถจุข้อมูลได้น้อย อย่างไรก็ตาม ตัวจัดการหน่วยความจำหลัก จะต้องอยู่ในหน่วยความจำหลักตามชื่อเท่านั้น จึงจะสามารถรันโปรแกรมได้
ไฟล์ ถือเป็นเซ็ตของข้อมูลที่ผู้สร้างไฟล์ควรเป็นผู้กำหนดเอง โดยทั่วไปแล้วจะแสดงทั้งแหล่งที่มากับรูปแบบของ Object และข้อมูลของโปรแกรมนั้น ๆ โดยไฟล์ข้อมูลต่าง ๆ สามารถอยู่ในรูปแบบของสถิติ, ตัวอักษร, หรือตัวเลขก็ได้
|
เกมเมอร์หญิงทาสแมว ถ้าอยู่กับแมวแล้วจะน้วยแมวทั้งวัน |