Tuesday, October 21, 2008
ตอบคำถามความรู้เบื้องต้นเกี่ยวกับ UNIX
1. ความเป็นมาของ UNIX
- บริษัท AT&T ร่วมมือกับ AIT พัฒนาระบบ MULTICS ขึ้นมาในช่วงปี 1960
- MULTICS ทำท่าว่าจะไปไม่รอด AT&T จึงถอนตัวออกจากโครงการ
- นักพัฒนาของ AT&T จึงได้นำความรู้และปัญหาจากโครงการ MULTIC
- พัฒนาระบบใหม่แล้วสร้างเป็นระบบปฏิบัติการขึ้นมา และใช้ชื่อว่า UNIX
- ในช่วงแรก UNIX ยังถูกใช้งานกับเครื่อง PDP-7 และ PDP-11 ของ AT&T เท่านั้น
- ในช่วงปี 1973 UNIX ถูกเขียนขึ้นมาใหม่ทั้งหมด โดยใช้ภาษา C ซึ่งเป็นจุดเปลี่ยนแปลงที่สำคัญมากที่สุดอย่างหนึ่งของ UNIX เพราะ
- ทำให้ UNIX สามารถนำไปใช้ได้กับเครื่องหลายชนิด
- แก้ไขระบบได้ง่ายกว่าระบบปฏิบัติการอื่นๆ ที่เขียนด้วยภาษา Assembly
- ราคาถูกลง
- AT&T แจก Code ของ UNIX ไปให้กับมหาวิทยาลัยต่างๆ เพื่อหวังให้เป็นที่นิยมมากขึ้น แต่กลับทำให้เกิด UNIX ตัวใหม่ขึ้นมา เรียกว่า BSD UNIX (Berkeley Software Distribution UNIX) ซึ่งเขียนโดย University of California ที่ Berkeley ระบบ UNIX ตัวนี้แจกฟรี และกลายเป็น UNIX ที่ใช้กันอย่างกว้างขวางตัวหนึ่งโดยเฉพาะในมหาวิทยาลัย
- เมื่อเครื่อง PC มีความสามารถสูงขึ้นและราคาถูกลงทำให้เกิด UNIX ที่ใช้บน PC ขึ้นมาชื่อว่า XENIX
- ในช่วงกลางทศวรรษ 1980 ได้มีการพัฒนา X-window ขึ้นมา ทำให้การใช้งาน UNIX เริ่มมี Graphic User Interface - AT&T ได้ทำการพัฒนา UNIX ของตนขึ้นมาเรื่อยๆ จนกระทั่งถึงรุ่น System V Release 4 (SVR4) AT&T ได้รวมข้อกำหนดและมาตรฐานต่างๆ ของ BSD UNIX และ XENIX เข้าไปด้วย ทำให้โปรแกรมที่ออกมาสำหรับ BSD UNIX และ XENIX สามารถนำไปใช้บน SVR4 ได้ ซึ่งส่งผลให้กลุ่มนักพัฒนาและบริษัทอื่นๆวิตกว่า AT&T จะผูกขาดการกำหนดมาตรฐานของ UNIX จึงได้รวมตัว
- ในจัดตั้ง Open Software Foundation (OSF) ขึ้นมาเพื่อวิจัยและกำหนดมาตรฐานต่างๆ ของระบบ UNIX ขึ้นมาป้องกันการผูกขาดของ AT&T
2. คุณสมบัติของ UNIX
- Software Tool โปรแกรมบน UNIX จะแบ่งตัวเองออกเป็นส่วนย่อยๆ และสามารถใช้งานส่วนย่อยเหล่านั้นร่วมกัน ระหว่างหลายๆ โปรแกรมได้
- Portability เนื่องจาก UNIX สามารถนำไปใช้กับเครื่องแบบต่างๆ ได้มากมาย โปรแกรมที่ใช้งานบน UNIX จะสามารถนำไปใช้ได้ด้วยเช่นเดียวกัน
- Flexibility UNIX มีความยืดหยุ่นในการใช้งานสูง สามารถนำไปใช้กับงานเล็กๆ หรืองานใหญ่ๆ ก็ได้
- Power สามารถทำงานที่ซับซ้อนได้ดี และมีความสามารถในด้านต่างๆ มากกว่าระบบปฏิบัติการอื่นๆ
- Multi-user & multitasking สามารถมีผู้ใช้งานได้ทีละหลายๆคน และทำงานหลายๆ อย่างพร้อมกัน
- Elegance หลักการทำงานของส่วนต่างๆ จะเหมือนกัน ดังนั้นเมื่อผู้ใช้ทำงานส่วนหนึ่งได้ ก็จะเรียนรู้และใช้งานส่วนอื่นๆ ได้ง่าย
- Network Orientation UNIX เป็นระบบปฏิบัติการที่สนับสนุนการใช้งานเครือข่าย โดยเฉพาะเครือข่าย TCP/IP ซึ่งใช้ในระบบ Internet
3. โครงสร้างของ UNIX
- โครงสร้างของระบบปฏิบัติการ Unix นั้น สามารถแบ่งได้เป็น 4 ระดับด้วยกัน คือ
1. ฮาร์ดแวร์ ทุกคนก็คงรู้จักกันแล้วว่ามันคือ อุปกรณ์ที่สามารถจับต้องได้นั่นเอง
2. ยูนิกซ์ เคอเนล จะทำหน้าที่ในการควบคุมการทำงานทั้งหมดของระบบ ได้แก่ การจัดสรรทรัพยากร การจัดการกับข้อมูลต่างๆ ซึ่งส่วนประกอบตัวนี้จะขึ้นอยู่กับฮาร์แวร์ หากมีการเปลี่ยนแปลงฮาร์ดแวร์ เคอเนลก็จะเปลี่ยนแปลงด้วยค่ะ
3. เซลล์ เป็นตัวกลางระหว่างคอมพิวเตอร์และผู้ใช้ คือ นำคำสั่งจากผู้ใช้ไปแปลเป็นภาษาที่คอมพิวเตอร์เข้าใจได้ เรียกว่า command interpreter เซลล์ที่ใช้งานกันก็มีหลายแบบ แต่ที่เป็นที่นิยม ได้แก่
-->Bourne shell (sh) เป็นเซลล์ต้นแบบของทุกเซลล์
-->C shell (csh) พัฒนาหลังจาก Bourne shell แต่สามารถเก็บข้อมูลคำสั่งที่เคยใช้ได้
-->Korn shell (ksh) เป็นเซลล์ที่นำคุณสมบัติเด่นของ Bourne shell และ C shell มารวมกัน
-->Bourne again shell (bash) มีลักษณะคล้าย Korn shell และสร้างขึ้นมาให้มีการใช้ฟรี ซึ่งระบบปฏิบัติการ Linux ก็นำมาใช้ด้วยเช่นกัน
4. โปรแกรมประยุกต์ โปรแกรมที่ใช้งานเพิ่มเติม
4. Shell ของ UNIX
- Shell (command Interpreter)
> ทำหน้าที่เป็นตัวกลางในการติดต่อระหว่างผู้ใช้กับ Kernel
> แปลคำสั่งจากผู้ใช้
> คำสั่งสามารถนำมาเขียนเป็นชุดคำสั่งให้ทำงานเรียกว่า Shell script
> กำหนดทิศทางการเข้าออกของ Input/Output
- shell ที่นิยมใช้
> Bourne Shell มีโครงสร้างคล้ายภาษา ALGOL มีเครื่องหมายเตรียมพร้อมเป็น $
> C Shell เป็นเชลล์ที่มีไวยากรณ์คล้ายภาษา C มีเครื่องหมายเตรียมพร้อมเป็น %
> Korn Shell เป็นเชลล์ที่การทำงานมีลักษณะโต้ตอบ และ Kernel มีขนาดใหญ่กว่าเชลล์อื่น
5. File System และ Directory ของ UNIX
- File System
> เป็นส่วนที่ใช้เก็บข้อมูล (Hard Disk)
> จัดเก็บในรูปของแฟ้มข้อมูล(Files) และไดเร็กทอรี(Directory)
> จัดเก็บในรูปต้นไม้หัวกลับ
> เรียกใช้อุปกรณ์ต่าง ๆ เหมือนกับเรียกใช้ไฟล์ข้อมูล
ประเภทของไฟล์
> Regular File(-) เป็นไฟล์ปกติที่สร้างจาก Editor หรือสำเนามาจากไฟล์อื่น โดย
> Directory (d) เป็นไฟล์ที่เก็บไฟล์ต่าง ๆ หรือ directory ใช้สัญลักษณ์ / แทน root directory
> Character device file (c) เป็นไฟล์ชนิดพิเศษ
- Directory หรือ Folder หมายถึง สารบัญ ทำหน้าที่เก็บรายชื่อแฟ้มไว้ในที่เดียวกัน เพื่อให้ผู้ใช้เรียกใช้ได้ และ Directory ก็ถือเป็นแฟ้มประเภทหนึ่งที่ประกอบด้วยหน่วยย่อยต่าง ๆ เมื่อแบ่งฮาร์ดดิสก์ออกเป็นหลาย partition แต่ละ partition ก็จะมีระบบ directory ของตนเอง
ปฏิบัติการเกี่ยวกับ Directory
1. Search for a file
2. Create a file
3. Delete a file
4. List a directory แสดงรายชื่อแฟ้มใน 1 directory
5. Rename a file
6. Traverse the file system แสดง หรือเก็บรายชื่อแฟ้มในทุก directory ได้
โครงสร้างไดเรกทรอรี่เชิงตรรก (Logical structure of the directory)
1. Single-level directory
2. Two-level directory
3. Tree-structured directory
4. Acylic-graph directory
5. General graph directory
การตั้งชื่อไฟล์หรือ directory
- จะใช้ตัวอักษรใดในการตั้งชื่อก็ได้ ยกเว้นตัวอักษรต่อไปนี้ & * ( ) ; ‘ “ , < > /
- ตั้งชื่อได้ยาวไม่จำกัด
- ตัวอักษรตัวเล็กหรือตัวใหญ่ถือว่าแตกต่างกัน
- ในเชลล์จะรับคำสั่งรวม Argument หรือชื่อที่สั่งให้ทำงานได้ไม่เกิน 225 ตัว
ที่มา :
1. http://www.compsci.buu.ac.th/~jakkaman/C_Programming/week01(18%20June%2001)/Unix.ppt
2. http://www.thaiall.com/os/os08.htm
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment