วันพฤหัสบดีที่ 30 ตุลาคม พ.ศ. 2551

VMWARE

VMWAREคืออะไร


VMware เป็นโปรแกรมที่ใช้ในการทำ Virtual disk สำหรับการติดตั้งหลายระบบปฏิบัติการบนฮาร์ดดิสก์ตัวเดียวกัน ปัจุบันมีโปรแกรมที่ใช้ทำ Virtual disk อีกหลายตัวอาทิ Virtual PC


VMWARE มีประโยชน์อย่างไร
- ติดตั้งหลาย OS ไว้บนฮาร์ดดิสก์ตัวเดียวกัน ระบบจะมอง OS อีกตัวเพียงโฟลเดอร์ตัวหนึ่งเท่านั้น
- สามารถสลับหน้าต่างๆ OS ด้วยคีย์ลัด ไม่ต้องทำการบู๊ตเครื่องใหม่
- เหมาะสำหรับท่านที่นำเสนองานหลายระบบพร้อมๆ กัน
- สามารถติดตั้งได้ทั้งระบบ Windows และ Linux (มีตัวติดตั้งทั้งสองระบบ)

หน้าตาของ VMWARE




เว็บไซต์ที่เกี่ยวข้องกับ VMWARE

http://www.justusers.net/articles/ossystem/vmware/vmware.htm

http://www.vmware.com/

www.justusers.net/articles/ossystem/vmware/vmware.htm

www.vue.com/vmware/

https://help.ubuntu.com/community/VMware

www.rmutclub.com/forums/

www.electoday.com/spaw/images/or/VMware.pdf

www.narisa.com/forums/index.php




วันอาทิตย์ที่ 26 ตุลาคม พ.ศ. 2551

ประวัติระบบปฏิบัติการ Unix และแหล่งเรียนรู้ UNIX


ความเป็นมาของระบบปฏิบัติการ 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 สำหรับเครื่อง PDP-11
ระบบปฏิบัติการของ Thompson เป็นที่ประทับใจของนักวิจัยที่ห้องปฏิบัติการ Bell มาก ดังนั้นในเวลาต่อมาจึงมีนักวิจัยอื่นเข้าร่วมโครงการด้วย ผู้ที่เข้าร่วมงานด้วยเป็นคนแรกได้แก่ Dennis Ritchie และต่อมานักวิจัยทั้งแผนกเข้าร่วมโครงการด้วย โครงการนี้มีแนวทางในการพัฒนาระบบปฏิบัติการสองประการด้วยคือ ประการแรกเป็นการพัฒนาระบบปฏิบัติการ UNIX ขึ้นใหม่สำหรับเครื่องรุ่น PDP-11/20 ซึ่งมีขีดความสามารถสูงกว่าเครื่องรุ่น PDP-7 ซึ่งเลิกผลิตแล้ว และทำการพัฒนาต่อไปเพื่อให้สามารถใช้ได้กับเครื่องรุ่น PDP-11/45 และ PDP-11/70 ด้วย เครื่องคอมพิวเตอร์ทั้งสองรุ่นเป็นเครื่องที่ได้รับความนิยมในตลาดสูงในช่วงทศวรรษ 1970 และเป็นเครื่องที่มีหน่วยความจำขนาดใหญ่ มีกลไกการป้องกันหน่วยความจำที่ใช้ hardware ทำให้เป็นเครื่องที่มีความเหมาะสมสำหรับการรองรับการใช้งานของผู้ใช้หลายคนในเวลาเดียวกัน (multiuser)
แนวทางในการพัฒนาประการที่สองเป็นการพัฒนาภาษาระดับสูงเพื่อใช้ในการเขียนระบบปฏิบัติการ เพื่อให้สะดวกในการพัฒนาระบบปฏิบัติการสำหรับเครื่องคอมพิวเตอร์หลายรุ่นที่มีโครงสร้างทาง hardware ต่างกัน เนื่องจากการใช้ภาษา Assembly ใช้เวลาในการพัฒนามาก ในระยะแรกของการพัฒนา Thompson ใช้ภาษา B ซึ่งเป็นภาษาที่ Thompson ดัดแปลงให้ง่ายขึ้นจากภาษา BCPL แต่เนื่องจากภาษา B เป็นภาษาที่มีโครงสร้างข้อมูลและโครงสร้างควบคุมจำกัด ดังนั้นการพัฒนาระบบปฏิบัติการ UNIX โดยใช้ภาษา B จึงไม่ประสบความสำเร็จเท่าที่ควร Dennis Ritchie จึงทำการพัฒนาและปรับปรุงภาษา B ให้มีคุณสมบัติเหมาะสมในการเขียนระบบปฏิบัติการและเรียกภาษานี้ใหม่ว่าภาษา C เมื่อได้ภาษาตามความต้องการแล้ว Thompson และ Ritchie จึงร่วมกันพัฒนาระบบปฏิบัติการ UNIX โดยใช้ภาษา C นอกจากภาษา C จะเป็นภาษาที่เหมาะสมในการเขียนระบบปฏิบัติการแล้ว ยังเป็นภาษาเอนกประสงค์สำหรับใช้เขียนโปรแกรมทั่วไปด้วยทำให้เป็นภาษาที่ได้รับความนิยมในหมู่นักเขียนโปรแกรมมานับตั้งแต่นั้นเป็นต้นมา
ในปี ค.ศ. 1974 Ritchie และ Thompson ทำการตีพิมพ์ผลงานการวิจัยและพัฒนาระบบปฏิบัติการ UNIX อันมีผลทั้งสองคนได้รับรางวัล ACM Turing Award ในปี ค.ศ.1984 จากผลงานดังกล่าวนี้เองทำให้มหาวิทยาลัยต่างๆเกิดความสนใจและติดต่อขอใช้งานระบบปฏิบัติการ UNIX จากบริษัท AT&T ซึ่งเป็นเจ้าของห้องปฏิบัติการ Bell และเป็นผู้ถือลิขสิทธิ์ เนื่องจากในขณะนั้นบริษัท AT&T ยังเป็นบริษัทที่อยู่ภายใต้การควบคุมของรัฐบาลและไม่ได้รับการอนุญาตให้ประกอบธุรกิจเกี่ยวกับคอมพิวเตอร์ ดังนั้นบริษัท AT&T จึงอนุญาตให้มหาวิทยาลัยต่างๆใช้ระบบปฏิบัติการ UNIX ได้โดยเสียค่าธรรมเนียมเพียงเล็กน้อย
การอนุญาตให้มหาวิทยาลัยใช้งานระบบปฏิบัติการ UNIX เป็นผลดีต่อการวิจัยและพัฒนาระบบปฏิบัติการ UNIX ในระยะเวลาต่อมา เนื่องจากเครื่องคอมพิวเตอร์ที่มหาวิทยาลัยต่างๆมีใช้งานอยู่ในขณะนั้นเป็นเครื่อง PDP-11 และระบบปฏิบัติการที่มากับเครื่องมีประสิทธิภาพต่ำและใช้งานยาก ระบบปฏิบัติการเดิมของเครื่องจึงถูกทดแทนด้วยระบบปฏิบัติการ UNIX และเนื่องจากมหาวิทยาลัยได้รับสิทธิในการใช้งานโปรแกรมต้นฉบับด้วย จึงทำให้เกิดการวิจัยและพัฒนาระบบปฏิบัติการ UNIX กันอย่างต่อเนื่องและกว้างขวางจนถึงกับมีการจัดประชุมสัมมนาเรื่อง UNIX โดยเฉพาะ และเมื่อ John Lions อาจารย์ชาวออสเตรเลียเขียนเอกสารทางเทคนิคอธิบายการทำงานของโปรแกรมต้นฉบับของระบบปฏิบัติการ UNIX อย่างละเอียดและตีพิมพ์เผยแพร่ออกไป ทำให้มีผู้สนใจทำการวิจัยและพัฒนาเพื่อปรับปรุงระบบปฏิบัติการ UNIX มากยิ่งขึ้น ระบบปฏิบัติการ UNIX ที่ได้รับการยอมรับเป็นมาตรฐาน(อย่างไม่เป็นทางการ)ในกลุ่มสถาบันการศึกษาได้แก่รุ่นที่เรียกว่า UNIX version 6 ตามชื่อคู่มือ UNIX Programmer’s Manual ฉบับพิมพ์ครั้งที่ 6 และในช่วงระยะเวลาหลังจากนั้นอีกสองสามปีมีการพัฒนาระบบปฏิบัติการ UNIX version 7 ขึ้นใช้งานแทน เนื่องจาก UNIX เป็นระบบปฏิบัติการที่ใช้กันอย่างแพร่หลายในสถาบันการศึกษาทำให้มีจำนวนนิสิตนักศึกษาที่รู้จักและคุ้นเคยกับระบบปฏิบัติการนี้เป็นจำนวนมาก เมื่อนิสิตนักศึกษาเหล่านี้จบการศึกษาและออกไปทำงาน มีการนำระบบปฏิบัติการ UNIX ไปเผยแพร่ในภาคธุรกิจและอุตสาหกรรมที่ตนทำงานด้วย ทำให้ระบบปฏิบัติการ UNIX แพร่หลายออกไปจนเป็นระบบปฏิบัติการที่นิยมใช้แพร่หลายในเครื่องมินิคอมพิวเตอร์ และเครื่องคอมพิวเตอร์แบบ workstation ที่ใช้งานในด้านวิทยาศาสตร์และวิศวกรรม
ภาพโดยรวมของระบบปฏิบัติการ 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
ระบบปฏิบัติการ UNIX มีลักษณะโครงสร้างคล้ายระบบปฏิบัติการทั่วไปคือแยกการทำงานออกเป็นชั้นโดยในระดับล่างสุดเป็น hardware ประกอบด้วยหน่วยประมวลผลกลาง, หน่วยความจำ, จานแม่เหล็ก, จอภาพ และอุปกรณ์อื่นๆ ชั้นถัดมาเป็นระบบปฏิบัติการ UNIX ซึ่งมีหน้าที่ในการควบคุมและจัดการ process หน่วยความจำ ระบบแฟ้ม และhardware อื่นๆ รวมถึงการให้บริการต่างๆแก่ระดับชั้นที่อยู่เหนือขึ้นไปและสามารถให้บริการผู้ใช้โดยตรงผ่านการบริการที่เรียกว่า system call การทำงานของระบบปฏิบัติการในชั้นนี้เรียกว่า kernel mode ส่วนการทำงานของชั้นที่อยู่เหนือขึ้นไปทั้งหมดเรียกว่า user mode ชั้นที่อยู่ถัดจากระบบปฏิบัติการขึ้นไปเป็นชั้นที่เรียกว่า standard library ซึ่งเป็นที่รวมของโปรแกรมย่อยสำหรับบริการของระบบปฏิบัติการที่โปรแกรมผู้ใช้สามารถเรียกใช้ได้ เช่น open, close, read, write และ fork เป็นต้น ชั้นต่อไปเป็นชั้นของโปรแกรมอรรถประโยชน์ (utility) ในระบบ เช่น shell ตัวแปลภาษาเป็นต้น และชั้นสุดท้ายเป็นชั้นของผู้ใช้ (user)
จากโครงสร้างดังกล่าวแล้วเมื่อผู้ใช้ต้องการเรียกใช้บริการของระบบปฏิบัติการ (system call) จากโปรแกรมภาษา Assembly ผู้ใช้ต้องกำหนดค่า arguments ที่ต้องการลงใน register หรือใน stack ที่กำหนดไว้สำหรับ system call นั้นๆ จากนั้นจึงใช้คำสั่ง trap เพื่อเปลี่ยนภาวะการทำงานของโปรแกรมจาก user mode ไปเป็น kernel mode เพื่อทำงานตามความต้องการ สำหรับภาษาระดับสูงเช่น C ซึ่งไม่สามารถใช้คำสั่ง trap ได้โดยตรง ต้องมีการสร้าง library สำหรับเรียกใช้งาน system call เหล่านี้ โดยกำหนดให้มีโปรแกรมย่อยหนึ่งโปรแกรมต่อ system call หนึ่งตัว โปรแกรมย่อยเหล่านี้เขียนขึ้นด้วยภาษา Assembly และสามารถเรียกใช้ได้จากภาษา C เสมือนหนึ่งเป็นโปรแกรมย่อยที่เขียนขึ้นด้วยภาษา C เมื่อผู้ใช้ต้องการใช้งาน system call ผู้ใช้จะทำการเรียกใช้ได้เช่นเดียวกับการเรียกใช้ฟังก์ชันทั่วไปในภาษา C เช่นการเรียกใช้ READ system call โปรแกรมภาษา C จะทำการเรียกใช้ โปรแกรมย่อย READ ที่กำหนดไว้ใน library บริการหรือ system call เหล่านี้มีการกำหนดไว้เป็นมาตรฐานโดย POSIX เพื่อให้การให้บริการของระบบปฏิบัติการ UNIX ที่มีการพัฒนาจากผู้ผลิตต่างๆ มีการให้บริการแบบเดียวกันและมีวิธีการเรียกเหมือนกัน
นอกจากตัวระบบปฏิบัติการและ system calls แล้ว ระบบปฏิบัติการ UNIX ทุกระบบยังมีโปรแกรมอรรถประโยชน์ (utility) จำนวนมาก โปรแกรมเหล่านี้ส่วนหนึ่งเป็นไปตามมาตรฐาน POSIX 1003.2 และอีกส่วนหนึ่งมีความแตกต่างกันออกไปตามผู้ผลิตและรุ่นระบบปฏิบัติการ โปรแกรมเหล่านี้ได้แก่โปรแกรมสำหรับติดต่อกับผู้ใช้เรียกว่า command preprocessor หรือ shell โปรแกรมตัวแปลภาษา (compiler) โปรแกรมสำหรับใช้พิมพ์เอกสารทั่วไป (editor) โปรแกรมสำหรับดำเนินการกับข้อความ (text processing program) และโปรแกรมสำหรับดำเนินการกับแฟ้ม หรือกล่าวอีกนัยหนึ่งคือเป็นโปรแกรมทั่วไปที่ผู้ใช้เรียกใช้ในระบบนั่นเอง
จากที่ได้กล่าวมาแล้วจะเห็นได้ว่าการเชื่อมต่อระหว่างผู้ใช้และระบบปฏิบัติการ UNIX มีสามแบบคือ การเชื่อมต่อผ่าน system call การเชื่อมต่อผ่าน library และการเชื่อมต่อผ่านโปรแกรมอรรถประโยชน์ เนื่องจากผู้ใช้ทั่วไปมีการเชื่อมต่อกับระบบปฏิบัติการส่วนใหญ่ผ่านโปรแกรมอรรถประโยชน์ จึงทำให้ผู้ใช้ทั่วไปคิดว่าโปรแกรมอรรถประโยชน์เหล่านี้คือระบบปฏิบัติการ UNIX ซึ่งโดยความเป็นจริงแล้วเป็นโปรแกรมส่วนนี้ไม่ใช่ระบบปฏิบัติการและสามารถเปลี่ยนแทนได้โดยง่าย เช่นในระบบปฏิบัติการ UNIX ที่สนับสนุนการติดต่อกับผู้ใช้แบบรูปภาพ (Graphic User Interface) โดยใช้ระบบ X-Window สามารถนำโปรแกรมส่วนของการติดต่อกับผู้ใช้ด้วย mouse เพิ่มเติมเข้าในระบบหรือเปลี่ยนแทนโปรแกรมการติดต่อกับผู้ใช้ด้วยแป้นพิมพ์ โดยไม่ต้องมีการเปลี่ยนแปลงตัวระบบปฏิบัติการแต่อย่างใด ความยืดหยุ่นเช่นนี้เองที่ทำให้ระบบปฏิบัติการ UNIX เป็นระบบปฏิบัติการที่ได้รับความนิยมแพร่หลาย และเป็นระบบปฏิบัติที่คงอยู่ได้ตลอดเวลาถึงแม้ว่าเทคโนโลยีจะเปลี่ยนแปลงไปเพียงใดก็ตาม
การเข้าใช้งานระบบปฏิบัติการ UNIX
ในการใช้งานระบบปฏิบัติการ UNIX ผู้ใช้ต้องเริ่มด้วยการระบุตนเองต่อระบบโดยการแจ้งชื่อผู้ใช้และรหัสผ่าน ซึ่งโปรแกรม login จะทำการอ่านข้อมูลดังกล่าวและทำการตรวจสอบว่าเป็นผู้ใช้ที่ถูกต้องหรือไม่ หากถูกต้องจึงจะยอมให้ผู้ใช้นั้นเข้าใช้ระบบได้ การระบุตนเองนี้มีความสำคัญมากในการรักษาความปลอดภัยของระบบ เนื่องจากระบบปฏิบัติการ UNIX จะทำการตรวจสอบและติดตามอยู่ตลอดเวลาว่าแฟ้มข้อมูลใดเป็นของผู้ใช้คนใด ดังนั้นแฟ้มข้อมูลแต่ละแฟ้มจะได้รับการอนุญาตให้ใช้งานได้เฉพาะผู้ใช้ที่มีสิทธิในการใช้แฟ้มข้อมูลนั้น เท่านั้น ถึงแม้ว่าแนวความคิดเช่นนี้จะเป็นแนวคิดพื้นฐานทั่วไปในระบบ timesharing แต่ก็เป็นระบบที่แตกต่างจากระบบปฏิบัติการของเครื่องคอมพิวเตอร์ส่วนบุคคลเช่น MS-DOS และ MS-Windows ซึ่งไม่มีการรักษาความปลอดภัยในการใช้งานทรัพยากรในระบบเลย ผู้ใช้สามารถเข้าถึงและเปลี่ยนแปลงแฟ้มข้อมูลใดๆก็ได้โดยไม่ต้องสนใจว่าแฟ้มข้อมูลนั้นผู้ใช้ใดเป็นผู้สร้างขึ้น
ระบบปฏิบัติการ UNIX เก็บชื่อผู้ใช้และรหัสผ่านที่เข้ารหัสแล้วในแฟ้ม /etc/passwd ซึ่งเป็นแฟ้มที่ผู้ใช้ทั่วไปสามารถขอดูข้อมูลได้ ข้อมูลแต่ละบรรทัดของแฟ้มนี้เป็ฯตัวแทนผู้ใช้แต่ละคนซึ่งประกอบด้วยชื่อผู้ใช้ (login name) รหัสผ่านที่เข้ารหัสไว้แล้ว (encrypted password) หรืออักขระตัวแทนของรหัสผ่าน เลขประจำตัวผู้ใช้ (user id) home directory และข้อมูลอื่นๆ เมื่อผู้ใช้เข้าใช้งานระบบโปรแกรม login จะทำการรับชื่อผู้ใช้และรหัสผ่าน แล้วทำการเข้ารหัสรหัสผ่าน และเปรียบเทียบกับรหัสผ่านที่เข้ารหัสไว้แล้ว หากรหัสทั้งสองชุดตรงกัน ระบบจะถือว่าเป็นผู้ใช้ที่มีสิทธืจริงและยอมให้ผู้ใช้นั้นเข้าใช้งานระบบได้
เนื่องจากรหัสผ่านที่ผู้ใช้เห็นในแฟ้ม /etc/passwd เป็นรหัสผ่านที่มีการเข้ารหัสไว้แล้ว ดังนั้นผู้ดูแลระบบจึงไม่ต้องกังวลว่าแฟ้มเก็บข้อมูลรหัสผ่านจะรั่วไหลออกไป นอกจากนี้แล้วการยอมให้ผู้ใช้ทั่วไปอ่านข้อมูลส่วนนี้ได้ช่วยทำให้ระบบมีลักษณะเป็นกลาง (generality) ตัวอย่างเช่นหากโปรแกรมหนึ่งต้องการใช้งานแฟ้มข้อมูลหนึ่งแต่ไม่มีสิทธิในการใช้ ผู้เขียนโปรแกรมนั้นอาจตรวจสอบเลขประจำตัวผู้ใช้ของเจ้าของแฟ้มข้อมูลจากระบบปฏิบัติการแล้วนำไปตรวจสอบเพื่อหาชื่อของเจ้าของแฟ้มข้อมูลนั้นกับข้อมูลในแฟ้มรหัสผ่าน ทั้งนี้เพื่อติดต่อขออนุญาตใช้งานแฟ้มข้อมูลนั้นต่อไป ลักษณะเช่นนี้ช่วยให้การทำงานของระบบมีความคล่องตัวมากขึ้น
การติดต่อกับผู้ใช้ (Shell)
หลังจากที่ผู้ใช้ได้รับการอนุญาตให้ใช้งานระบบแล้ว โปรแกรม login จะทำการเรียกโปรแกรมที่ทำงานเป็น command line interpreter ตามที่ระบุไว้ในแฟ้มรหัสผ่านขึ้นมาทำงานแทน ถึงแม้ว่าโปรแกรมที่ทำหน้าที่เป็น command line interpreter จะมีหลายแบบ แต่แบบที่เป็นพื้นฐานและมีการใช้งานแพร่หลายที่สุดเรียกว่า shell เมื่อโปรแกรม login ทำการเรียก shell เข้าสู่หน่วยความจำแล้ว shell จะทำการ initialize ตนเองแล้วแสดงเครื่องหมาย prompt ออกทางหน้าจอ ซึ่งเครื่องหมาย prompt นี้อาจเป็นเครื่องหมาย $ หรือ % หรือเครื่องหมายอื่นใดตามที่ผู้ดูแลระบบกำหนดไว้ก็ได้ การที่ shell แสดงเครื่องหมาย prompt หมายความว่า shell พร้อมที่จะรับและดำเนินการตามคำสั่งที่ผู้ใช้จะป้อนเข้ามาทางแป้นพิมพ์แล้ว
เมื่อผู้ใช้ป้อนคำสั่งและ argument ที่เกี่ยวข้อง ซึ่งรวมเรียกว่าบรรทัดคำสั่ง (command line) โปรแกรม shell จะทำการแยกคำออกจากบรรทัดคำสั่ง โดยใช้คำแรกที่แยกได้เป็นชื่อของโปรแกรมที่ผู้ใช้ต้องการเรียกใช้ จากนั้น shell จะทำการค้นหาแฟ้มโปรแกรมนั้นตามเส้นทางการค้นหาแฟ้มโปรแกรมที่กำหนดไว้ หาก shell พบแฟ้มโปรแกรมตามที่กำหนดจะอ่านโปรแกรมนั้นเข้าสู่หน่วยความจำและส่งผ่านการทำงานให้กับโปรแกรมนั้น เมื่อโปรแกรมนั้นทำงานจบแล้วจะคืนการควบคุมให้กับ shell ซึ่งจะแสดงเครื่องหมาย prompt เพื่อรอรับบรรทัดคำสั่งต่อไป เนื่องจากผู้ใช้ทั่วไปทำงานโดยการติดต่อกับ shell จึงมักจะเข้าใจว่า shell คือระบบปฏิบัติการซึ่งในความเป็นจริงแล้ว shell เป็นโปรแกรมธรรมดาโปรแกรมหนึ่งที่มีความสามารถในการอ่านข้อมูลขจากแป้นพิมพ์และส่งผลลัพ์ออกสู่จอภาพ และมีความสามารถในการเรียกโปรแกรมอื่นขึ้นมาทำงานภายใต้การควบคุมของตน shell ในระบบปฏิบัติการ UNIX มีหลายแบบ เช่น Bourne shell, C shell และ Korn shell เป็นต้นซึ่งผู้ใช้สามารถเลือกใช้ได้ตามความพอใจ
หากในบรรทัดคำสั่งที่ผู้ใช้ป้อนเข้ามามี argument ประกอบการทำงานของโปรแกรม shell จะทำการผ่าน argument เหล่านั้นให้กับโปรแกรมที่ผู้ใช้ต้องการในรูปของ character string ตัวอย่างเช่นบรรทัดคำสั่ง
cp myfile backup
เป็นการกำหนดให้ shell เรียกใช้โปรแกรม cp (ทำการสำเนาแฟ้ม) โดยมี argument 2 ตัวคือ myfile และ backup เมื่อ shell ได้รับบรรทัดคำสั่งนี้แล้ว จะทำการแยกคำแรกของบรรทัดคำสั่ง คือ cp เป็นชื่อโปรแกรมและทำการผ่านค่า myfile และ backup เป็น argument ให้กับโปรแกรม cp เมื่อโปรแกรม cp เริ่มทำงานจะทำการอ่านแฟ้มชื่อ myfile ทำการสำเนาเนื้อหาโดยเขียนลงในแฟ้มชื่อ backup อย่างไรก็ตาม argument ที่ผู้ใช้กำหนดในบรรทัดคำสั่งไม่จำเป็นต้องเป็นชื่อแฟ้มเสมอไป เช่นคำสั่ง
head –20 myfile
argument แรกคือ –20 เป็นค่าที่กำหนดให้โปรแกรม head ทำการพิมพ์ข้อความ 20 บรรทัดแรกของแฟ้มข้อมูลชื่อ myfile ออกทางจอภาพ แทนที่จะใช้ค่าที่กำหนดไว้ในโปรแกรม (default) คือ 10 บรรทัด สำหรับ argument ที่ใช้ในการควบคุมการทำงานของโปรแกรม หรือใช้ในการกำหนดทางเลือกในการทำงาน (option) นิยมเรียกว่า flags และโดยทั่วไปแล้วนิยมนำหน้าด้วยเครื่องหมายขีด (-) ทั้งนี้เพื่อทำให้คำสั่งนั้นมีความหมายที่ชัดเจน เนื่องจากคำสั่ง
head 20 myfile
เป็นคำสั่งที่ถูกต้องและมีความหมายสมบูรณ์ในตัว เพราะเป็นคำสั่งให้โปรแกรม head แสดงข้อความ 10 บรรทัดแรกของแฟ้มข้อมูลที่มีชื่อเป็น 20 จากนั้นจึงแสดงข้อความ 10 บรรทัดแรกของแฟ้มที่มีชื่อเป็น myfile คำสั่งใน UNIX เป็นคำสั่งที่สามารถรับ flags และ arguments หลายตัวได้ในบรรทัดคำสั่งเดียว
จากการที่คำสั่งใน UNIX สามารถรับ argument ได้หลายตัวโดยเฉพาะ argument ที่เป็นชื่อแฟ้ม ดังนั้นเพื่อความสะดวกในการระบุชื่อแฟ้มหลายแฟ้มจึงกำหนดให้ shell สนับสนุนการใช้อักขระพิเศษที่เรียกว่า wildcards เช่น เครื่องหมายดอกจัน (* - asterisk) ใช้แทน string ใดๆก็ได้ ดังนั้น
ls *.c
*.c เป็น argument ที่กำหนดให้โปรแกรม ls แสดงรายชื่อแฟ้มใน directory ปัจจุบันที่มีชื่อแฟ้มลงท้ายด้วย .c นอกจากเครื่องหมายดอกจันแล้วยังมีการกำหนดให้เครื่องหมายปรัศนีย์ (?) เป็น wildcard อีกตัวหนึ่งและใช้แทนอักขระใดๆจำนวนหนึ่งตัว
การทำงานของโปรแกรมใดๆมีลักษณะคล้ายกับ shell ที่ไม่ต้องทำการเปิด terminal สำหรับอ่านข้อมูลจากแป้นพิมพ์ และเขียนข้อมูลออกสู่จอภาพ โดยที่เมื่อโปรแกรมเริ่มทำงาน โปรแกรมสามารถติดต่อกับแฟ้มสามแฟ้มได้โดยอัตโนมัติ แฟ้มทั้งสามนี้ได้แก่ standard input สำหรับอ่านข้อมูลเข้าสู่โปรแกรม standard output สำหรับส่งข้อมูลออกจากโปรแกรม และ standard error สำหรับส่งข่าวสารแสดงความผิดพลาดออกจากโปรแกรม โดยทั่วไปแล้วแฟ้มทั้งสามนี้กำหนดให้เป็น terminal เพื่อจะได้สามารถอ่านข้อมูลที่ผู้ใช้ป้อนเข้าทางแป้นพิมพ์ได้ และสามารถแสดงผลการทำงานหรือข่าวสารแสดงความผิดพลาดออกทางจอภาพได้ โปรแกรมส่วนใหญ่ใน UNIX อ่านข้อมูลจาก standard input และเขียนข้อมูลออกสู่ standard output เช่นการใช้คำสั่ง
sort
เป็นการเรียกใช้โปรแกรม sort ซึ่งทำหน้าที่ในการอ่านบรรทัดข้อความที่ผู้ใช้ป้อนเข้ามาทางแป้นพิมพ์ (standard input) จนกว่าผู้ใช้จะกดแป้น Ctrl-D ซึ่งใช้เป็นสัญลักษณ์แทนจุดสิ้นสุดของแฟ้ม (end-of-file) ทำการจัดเรียงบรรทัดข้อมูลที่ได้รับตามลำดับตัวอักษร และส่งบรรทัดข้อมูลที่จัดเรียงแล้วออกทางจอภาพ (standard output)
โปรแกรมที่มีอ่านข้อมูลจาก standard input และเขียนข้อมูลสู่ standard output เช่นนี้ ผู้ใช้สามารถเปลี่ยนทิศทางของ input และ output ได้ และเรียกการทำเช่นนี้ว่า redirect โดยใช้เครื่องหมายน้อยกว่า (<) แทนการเปลี่ยน standard input จากแป้นพิมพ์เป็นแฟ้มที่กำหนด และใช้เครื่องหมายมากกว่า (>) แทนการเปลี่ยน standard output จากจอภาพเป็นแฟ้มที่กำหนด เช่น
sort <> outfile
เป็นการกำหนดให้โปรแกรม sort รับข้อมูลจากแฟ้มข้อมูลชื่อ infile แทนที่จะเป็นแป้นพิมพ์ และบันทึกผลลัพธ์ที่ได้ลงในแฟ้มชื่อ outfile แทนที่จะส่งออกจอภาพ อย่างไรก็ดีเนื่องจากคำสั่งนี้ไม่ได้มีการกำหนดใดกับ standard error ดังนั้นหากมีความผิดพลาดเกิดขึ้นในระหว่างการทำงาน ข่าวสารแสดงความผิดพลาดนั้นจะถูกส่งออกไปยังจอภาพซึ่งเป็น standard error ในขณะนั้น ผู้ใช้สามารถทำการ redirect standard error ได้เช่นเดียวกับ standard out โดยมีกรรมวิธีซับซ้อนขึ้นอีกเล็กน้อย ผู้สนใจสามารถศึกษาได้จากคู่มือการใช้งานระบบปฏิบัติการ UNIX สำหรับโปรแกรมใดๆที่มีการรับข้อมูลจาก standard input ทำการประมวลผลข้อมูลนั้น และส่งผลลัพธ์ออกสู่ standard output มีชื่อเรียกเฉพาะว่า filter ขอให้ลองพิจารณาบรรทัดคำสั่งต่อไปนี้
sort <> temp; head -30 <> outfile
กำหนดให้โปรแกรม grep หาบรรทัดที่มีคำว่า “ter” จากแฟ้มทุกแฟ้มใน directory ปัจจุบันที่มีชื่อลงท้ายด้วย .c ผลลัพธ์ที่ได้ใช้เป็นข้อมูลของโปรแกรม sort ซึ่งจะทำหน้าที่ในการจัดเรียงบรรทัดเหล่านั้นตามตัวอักษร บรรทัดข้อความที่ผ่านการจัดเรียงจากโปรแกรม sort ใช้เป็นข้อมูลของโปรแกรม head ซึ่งจะแยกเอาเฉพาะบรรทัดข้อความ 20 บรรทัดแรกที่ได้จากโปรแกรม sort ส่งเป็นข้อมูลให้กับโปรแกรม tail ซึ่งจะทำการแยกเอาเฉพาะ 5 บรรทัดสุดท้าย (บรรทัดที่ 16 - 20 ที่ได้จากโปรแกรม head) บันทึกลงในแฟ้มชื่อ outfile คำสั่งดังกล่าวนี้แสดงให้เห็นแนวความคิดที่ว่าโปรแกรมแต่ละโปรแกรมมีการทำงานเพียงอย่างเดียว และสามารถนำโปรแกรมเหล่านี้มาเชื่อมต่อกันเพื่อให้เกิดงานตามที่ต้องการได้โดยไม่มีข้อจำกัด
ระบบปฏิบัติการ UNIX ไม่ได้เป็นเพียงแต่ระบบ timesharing เพียงอย่างเดียว หากแต่เป็นระบบ multi-programming ชนิดเอนกประสงค์ด้วย ความหมายของระบบนี้คือผู้ใช้แต่ละคนสามารถทำงานได้หลายงานในเวลาเดียวกัน (multitask) โดยโปรแกรมแต่ละโปรแกรมมี process เป็นของตนเอง อย่างไรก็ตามถึงแม้ว่าผู้ใช้จะสามารถใช้งานโปรแกรมหลายโปรแกรมพร้อมกันแต่จะมีเพียงโปรแกรมเดียวที่สามารถติดต่อกับผู้ใช้ได้โดยตรงหรือมีการทำงานแบบ foreground โปรแกรมอื่นที่เหลือจะมีการทำงานแบบ background กล่าวคือไม่สามารถติดต่อโต้ตอบกับผู้ใช้ได้โดยตรง ข้อมูลที่โปรแกรมเหล่านี้ต้องใช้มาจากแฟ้มข้อมูลโดยอาศัยการทำ redirection และผลลัพธ์ที่ได้ต้องบันทึกลงในแฟ้มข้อมูลโดยใช้การทำ redirection เช่นเดียวกัน เพื่อให้การปฏิบัติงานเช่นนี้เป็นไปโดยสะดวกมากขึ้น shell จึงมีคำสั่งเตรียมไว้ให้ผู้ใช้ทำการตรวจสอบ และสลับการทำงานของโปรแกรมในแบบ foreground และ background การเรียกใช้โปรแกรมให้ทำงานเป็น background ทำได้โดยการจบบรรทัดคำสั่งด้วยเครื่องหมาย ampersand (&) เช่น
wc -l <> b &
เป็นการเรียกใช้โปรแกรม wc สำหรับนับจำนวนตัวอักขระ คำ และบรรทัด โดยในตัวอย่างนี้มีผลลัพธ์เป็นจำนวนบรรทัด เนื่องจากมีการใช้ flag –l (line) และกำหนดให้รับข้อมูลที่จะทำการนับมาจากแฟ้มชื่อ a และส่งผลลัพธ์ไปบันทึกลงในแฟ้มชื่อ b โดยให้ทำงานนี้เป็น background การสั่งงานในลักษณะนี้เมื่อผู้ใช้พิมพ์คำสั่งเสร็จ shell จะแสดง prompt เพื่อรอรับคำสั่งต่อไปทันที โดยไม่ต้องรอให้การทำงานของบรรทัดคำสั่งดังกล่าวเสร็จสิ้นก่อน การทำงานเช่นนี้สามารถใช้กับคำสั่งที่มีลักษณะเป็น pipeline ได้ด้วย เช่น
sort <>เรียบเรียงจาก
Tanenbaum, A. S. (1992) Modern Operating Systems, Prentice-Hall International Inc., New
Jersey.
Deitel, H. M. (1990) Operating Systems, 2nd Edition, Addison-Wesley Publishing Company, Inc.,
Massachusetts.
ผู้เรียบเรียง
จิระ จตุรานนท์, ภาควิชาวิทยาการคอมพิวเตอร์, คณะวิทยาศาสตร์ มหาวิทยาลัยบูรพา ชลบุรี
C:\jira\unix\unix1.doc –1 มกราคม 2542

แหล่งเรียนรู้ UNIX

www.compsci.buu.ac.th/
www.learners.in.th/blog/utraaom
www.mut.ac.th/
www.fedorasb.saiyaithai.org/uploads/unix
www.cp101km.swu.ac.th/index.php/




วันพุธที่ 15 ตุลาคม พ.ศ. 2551

คำอธิบายรายวิชา ระบบปฏิบัติการ 2 (Operating Systems 2 )

คำอธิบายรายวิชา (Operating Systems 2 )

ศึกษาหน้าที่และการดำเนินงานของระบบปฏิบัติการ เกี่ยวกับจัดการหน่วยความจำ หน่วยประมวลผลกลาง การจัดแฟ้มข้อมูล หน่วยรับและแสดงผลข้อมูลในลักษณะของผู้ใช้คนเดียว งานเดียว และใช้หลายคนหลายงานพร้อมกัน รวมทั้งการสื่อสารระหว่างขบวนการ (Interprocess Communication : IPC)

บทเรียน E-reanning ที่เกี่ยวกับรายวิชาระบบปฏิบัติการ 2
www.elearningvec.net
www.mis.pkru.ac.th
www.thaiabc.com
www.sup.th.gs
www.elearning.nrct.go.th
www.surajit.vecict.net/elearning/
www.bkkthon.ac.th/
www.krutechnic.net/pdf/elearning
www.blmiacec.ac.th/E-learning/
www.sa.ac.th/elearning




แนะนำตัวเอง


ประวัติส่วนตัว


ชื่อ นางสาวจิรอภิญญา เพ็งพา ชื่อเล่น สม หรือเรียกญาก็ได้ค่ะ

รหัส 5012252221 โปรแกรมวิทยาการคอมพิวเตอร์ ชั้นปีที่ 2

วัน/เดือน/ปี เกิด วันที่ 21 เดือน กรกฎาคม พ.ศ.2531

ปัจจุบันอาศัยอยู่บ้านเลขที่ 81 หมู่1 ต.คูซอด อ.เมือง จ.ศรีสะเกษ 33000

งานอดิเรก ขายสินค้าในมหาวิทยาลัยเช่น กิ๊ฟช๊อฟ เสื้อผ้า รับจ้างพิมพ์งาน

สิ่งที่ชอบ สิ่งที่ดีๆที่เข้ามาในชีวิต

สิ่งที่ไม่ชอบ สิ่งไม่ดีทุกอย่าง

เบอร์ที่ติดต่อได้ 0876531554

เพื่อนสนิท
ไม่มีค่ะ