วันอังคารที่ 21 ตุลาคม พ.ศ. 2551

ตอบคำถามความรู้เบื้องต้นเกียวกับ UNIX


ความเป็นมาของ UNIX

ย้อนหลังไปในช่วงทศวรรษที่ 1940 และ 1950 เครื่องคอมพิวเตอร์ทุกเครื่องที่มีในโลกอาจกล่าวได้ว่าเป็นเครื่องคอมพิวเตอร์ส่วนบุคคล เนื่องจากระบบปฏิบัติการของเครื่องอนุญาตให้ผู้ใช้ใช้งานเครื่องได้เพียงครั้งละคนเดียว ดังนั้นผู้ใช้ที่มีความประสงค์จะใช้เครื่องต้องทำการจองเวลาใช้เครื่องไว้ล่วงหน้า เมื่อถึงเวลาที่จองไว้ผู้ใช้นั้นจะได้เครื่องคอมพิวเตอร์นั้นแต่เพียงผู้เดียวตลอดระยะเวลาที่จองไว้ ผู้ใช้อื่นไม่สามารถใช้งานเครื่องอีกได้ และโดยทั่วไปในระหว่างการใช้งาน ผู้ใช้ไม่ได้ใช้งานหน่วยประมวลผลกลางเต็มกำลัง เพราะอาจต้องหยุดคิดแก้ปัญหา หรือป้อนข้อมูลเข้าเครื่องซึ่งใช้ความสามารถของเครื่องน้อยมาก จึงกล่าวได้ว่าผู้ใช้งานนั้นไม่ได้ใช้เครื่องจนเต็มขีดความสามารถตลอดเวลา เนื่องจากระบบคอมพิวเตอร์ในยุคนั้นมีราคาแพงจึงเกิดแนวความคิดที่จะสร้างระบบปฏิบัติการที่ผู้ใช้สามารถใช้งานเครื่องได้เต็มกำลังตลอดเวลาโดยการให้ผู้ใช้แต่ละคนเตรียมงานไว้ล่วงหน้าโดยใช้บัตรเจาะรู เมื่อมีปริมาณของงานมากถึงระดับหนึ่งจึงจะเดินเครื่องและทำการอ่านงานเหล่านั้นเข้าไปประมวลผลต่อเนื่องกันไป ระบบปฏิบัติการเช่นนี้เรียกว่าระบบการประมวลผลแบบ batch ระบบนี้ช่วยให้ใช้งานเครื่องได้โดยมีประสิทธิภาพมากขึ้นกว่าเดิม แต่อย่างไรก็ดีสำหรับผู้เขียนโปรแกรมแล้วระบบเช่นนี้ยังมีการตอบสนองไม่ดีนัก กล่าวคือเมื่อผู้เขียนโปรแกรมนำโปรแกรมต้นฉบับซึ่งอยู่ในรูปของบัตรเจาะรูไปส่งที่ห้องเครื่อง แล้วต้องรอเป็นระยะหนึ่งกว่าจะทราบผลการดำเนินการภายใต้ภาวะการณ์เช่นนี้การตรวจสอบและแก้ไขโปรแกรม (debugging) จึงเป็นกระบวนการที่กินเวลามาก หากผู้เขียนโปรแกรมลืมใส่เครื่องหมายวรรคตอนเพียงตัวเดียวผู้เขียนโปรแกรมต้องใช้เวลานานหลายชั่วโมงกว่าทราบความผิดพลาดนั้นและทำการแก้ไข ทำให้การพัฒนางานล่าช้า ดังนั้นผู้เขียนโปรแกรมโดยทั่วไปจึงต้องการระบบปฏิบัติการที่มีการตอบสนองเร็วเพื่อให้สามารถตรวจสอบแก้ไขโปรแกรมได้ดียิ่งขึ้น
http://nooma511.exteen.com/20080923/unix

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

โครงสร้างของ UNIX
ระบบปฏิบัติการ Unix สามารถแบ่งโครงสร้างหลัก ๆ ได้ 4 ระดับ แต่ละระดับก็จะทำหน้าที่ต่างกัน
1.ฮาร์ดแวร์ หมายถึงอุปกรณ์หรือทุกชิ้นส่วนของคอมพิวเตอร์ ที่เราสามารถจับต้องได้ เช่น จอภาพ คีย์บอร์ด เม้าส์ ดิกส์ไดรซ์ ซีดีรอม เป็นต้น

2.ยูนิกซ์ เคอร์เนล เคอร์เนล จะทำหน้าที่ควบคุมการทำงานทั้งหมดของระบบ ได้แก่ การจัดสรรทรัพยากร การจัดการข้อมูลบริการหน่วยความจำ ซึ่งเคอร์เนลนี้จะขึ้นกับฮาร์ดแวร์ เช่น ถ้ามีการเปลี่ยนแปลง ฮาร์ดแวร์ เคอร์เนลนี้ก็จะถูกเปลี่ยนไปด้วย เป็นต้น

3.เชลล์ คือ ตัวกลางระหว่างผู้ใช้กับตัวเคอร์เนล ทำหน้าที่รับคำสั่งจากผู้ใช้ แล้วนำไปแปลเป็นภาษาที่เครื่องคอมพิวเตอร์เข้าใจ เราเรียกอีกอย่างหนึ่งได้ว่า command interpreter แต่ถ้ามีการนำ เชลล์หลาย ๆ ตัวมาเขียนรวมกัน (คล้าย ๆ กับ batch file ในระบบปฏิบัติการ DOS) เราจะเรียกว่า เชลล์สคริปต์ นอกจากนี้ เชลล์ (Shell) ยังมีอีกหลาย ๆ ประเภท แต่ที่นิยมกันได้แก่

Bourne shell (sh) เป็นเชลล์ต้นแบบของทุก ๆ เชลล์ มีความสามารถในการเขียน เชลล์สคริปต์ได้ด้วย
C shell (csh) เป็นเชลล์ที่สร้างหลัง Bourne shell ความสามารถพิเศษของ C shell คือเก็บข้อมูลเกี่ยวกับคำสั่งที่เคยใช้
Korn shell (ksh) ซึ่งพัฒนาโดย AT&T โดยได้นำคุณสมบัติเด่น ๆ ของ Bourne shell และ C shell มารวมกัน
Bourne again shell (bash) มีคุณสมบัติและความสามารถคล้ายกับ Korn shell แต่ shell นี้ถูกสร้างขึ้นมาใช้สำหรับแจกฟรี ซึ่งเป็นเหตุผลสำคัญที่ทาง Linux นำมาใช้
คำสั่งที่ทำให้ทราบว่าเราใช้งาน เชลล์อะไรอยู่คือ echo $SHELL

4.โปรแกรมประยุกต์ หมายถึง โปรแกรมการใช้งานเพิ่มเติมต่าง ๆ ที่ใช้บนระบบปฏิบัติการยูนิกซ์ ได้แก่ pine เป็นต้น
http://www.it-guides.com/lesson2/linux01.html

shell
shell เป็นคำของ UNIX สำหรับการอินเตอร์เฟซ ระหว่างผู้ใช้กับระบบปฏิบัติการ shell เป็นชั้นของโปรแกรมที่เข้าใจ และประมวลผลคำสั่งที่ผู้ใช้ป้อนเข้า ในบางระบบ shell ได้รับการเรียกว่า command interpreter โดยทั่วไป shell หมายถึง การอินเตอร์เฟซกับไวยากรณ์คำสั่ง (เปรียบเทียบกับระบบปฏิบัติการ DOS และ "c:\>" คือ prompts และคำสั่งผู้ใช้ เช่น " dir" และ "edit" ) shell เป็นชั้นนอกของระบบปฏิบัติการ ดังนั้น จึงแตกต่างจาก "kernel" ซึ่งเป็นชั้นใจของระบบปฏิบัติการ หรือแกนของการบริการ
http://www.widebase.net/knowledge/itterm/it_term_desc.php?term_id=shell

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