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

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

1.ความเป็นมาของ 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 ได้เขียนยูนิกซ์ขึ้นมาใหม่ด้วยภาษาซี ทำให้สะดวกต่อการนำยูนิกซ์ไปทำงานบนเครื่องชนิดอื่นมากขึ้น ทาง 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 ซึ่งเป็นสาเหตุในการดำเนินคดีละเมิดลิขสิทธิ์กับลินุกซ์
ที่มา : http://th.wikipedia.org/wiki/%E0%B8%A2%E0%B8%B9%E0%B8%99%E0%B8%B4%E0%B8%81%E0%B8%8B%E0%B9%8C

2.คุณสมบัติของ Unix
ตอบ
•Software Tool
–โปรแกรมบน UNIX จะแบ่งตัวเองออกเป็นส่วนย่อยๆ และสามารถใช้งานส่วนย่อยเหล่านั้นร่วมกัน ระหว่างหลายๆ โปรแกรมได้
•Portability
–เนื่องจาก UNIX สามารถนำไปใช้กับเครื่องแบบต่างๆ ได้มากมาย โปรแกรมที่ใช้งานบน UNIX จะสามารถนำไปใช้ได้ด้วยเช่นเดียวกัน
•Flexibility
–UNIX มีความยืดหยุ่นในการใช้งานสูง สามารถนำไปใช้กับงานเล็กๆ หรืองานใหญ่ๆ ก็ได้
•Power
–สามารถทำงานที่ซับซ้อนได้ดี และมีความสามารถในด้านต่างๆ มากกว่าระบบปฏิบัติการอื่นๆ
•Multi-user & multitasking
–สามารถมีผู้ใช้งานได้ทีละหลายๆคน และทำงานหลายๆ อย่างพร้อมกัน
•Elegance
–หลักการทำงานของส่วนต่างๆ จะเหมือนกัน ดังนั้นเมื่อผู้ใช้ทำงานส่วนหนึ่งได้ ก็จะเรียนรู้และใช้งานส่วนอื่นๆ ได้ง่าย
•Network Orientation
–UNIX เป็นระบบปฏิบัติการที่สนับสนุนการใช้งานเครือข่าย โดยเฉพาะเครือข่าย TCP/IP ซึ่งใช้ในระบบ Internet
ที่มา :http://www.compsci.buu.ac.th/~jakkaman/C_Programming/week01(18%20June%2001)/Unix.ppt#356,9,คุณสมบัติของระบบ UNIX

3.โครงสร้างของ Unix
ตอบ ระบบปฏิบัติการ Unix สามารถแบ่งโครงสร้างหลัก ๆ ได้ 4 ระดับ แต่ละระดับก็จะทำหน้าที่ต่างกัน
ฮาร์ดแวร์ หมายถึงอุปกรณ์หรือทุกชิ้นส่วนของคอมพิวเตอร์ ที่เราสามารถจับต้องได้ เช่น จอภาพ คีย์บอร์ด เม้าส์ ดิกส์ไดรซ์ ซีดีรอม เป็นต้น
ยูนิกซ์ เคอร์เนล เคอร์เนล จะทำหน้าที่ควบคุมการทำงานทั้งหมดของระบบ ได้แก่ การจัดสรรทรัพยากร การจัดการข้อมูลบริการหน่วยความจำ ซึ่งเคอร์เนลนี้จะขึ้นกับฮาร์ดแวร์ เช่น ถ้ามีการเปลี่ยนแปลง ฮาร์ดแวร์ เคอร์เนลนี้ก็จะถูกเปลี่ยนไปด้วย เป็นต้น
เชลล์ คือ ตัวกลางระหว่างผู้ใช้กับตัวเคอร์เนล ทำหน้าที่รับคำสั่งจากผู้ใช้ แล้วนำไปแปลเป็นภาษาที่เครื่องคอมพิวเตอร์เข้าใจ เราเรียกอีกอย่างหนึ่งได้ว่า 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
โปรแกรมประยุกต์ หมายถึง โปรแกรมการใช้งานเพิ่มเติมต่าง ๆ ที่ใช้บนระบบปฏิบัติการยูนิกซ์ ได้แก่ pine เป็นต้น
ที่มา :http://www.it-guides.com/lesson2/linux01.html

4.Shell คืออะไร
ตอบ
ทำหน้าที่เป็นตัวกลางในการติดต่อระหว่างผู้ใช้กับ Kernel
แปลคำสั่งจากผู้ใช้
คำสั่งสามารถนำมาเขียนเป็นชุดคำสั่งให้ทำงานเรียกว่า Shell script
กำหนดทิศทางการเข้าออกของ Input/Output
shell ที่นิยมใช้
Bourne Shell มีโครงสร้างคล้ายภาษา ALGOL มีเครื่องหมายเตรียมพร้อมเป็น $
C Shell เป็นเชลล์ที่มีไวยากรณ์คล้ายภาษา C มีเครื่องหมายเตรียมพร้อมเป็น %
uKorn Shell เป็นเชลล์ที่การทำงานมีลักษณะโต้ตอบ และ Kernel มีขนาดใหญ่กว่าเชลล์อื่น
ที่มา :http://www.compsci.buu.ac.th/~jakkaman/C_Programming/week01(18%20June%2001)/Unix.ppt#353,6,ประวัติความเป็นมาของ UNIX

5.ระบบไฟล์และไดเรกเทอรรี่
ตอบ
ประเภทของไฟล์
Regular File(-) เป็นไฟล์ปกติที่สร้างจาก Editor หรือสำเนามาจากไฟล์อื่น โดย
Directory (d) เป็นไฟล์ที่เก็บไฟล์ต่าง ๆ หรือ directory
ใช้สัญลักษณ์ / แทน root directory
Character device file (c) เป็นไฟล์ชนิดพิเศษ เรียกว่า
Block device file (b)
UNIX domain sockets (s) อยู่ใน BSD Unix
Name pipes (p) ของ AT&T
Symbolic link (l)
การตั้งชื่อไฟล์หรือ directory
จะใช้ตัวอักษรใดในการตั้งชื่อก็ได้ ยกเว้นตัวอักษรต่อไปนี้ & * ( ) ; ‘ “ , < > /
ตั้งชื่อได้ยาวไม่จำกัด
ตัวอักษรตัวเล็กหรือตัวใหญ่ถือว่าแตกต่างกัน
ในเชลล์จะรับคำสั่งรวม Argument หรือชื่อที่สั่งให้ทำงานได้ไม่เกิน 225 ตัว
การอ้างถึงชื่อแฟ้มข้อมูลหรือ directory
ระหว่างชื่อแฟ้มข้อมูลกับ directory หรือระหว่าง directory กับ directory ใช้เครื่องหมาย “/” เป็นตัวคั่น
Absolute Path Name เป็นการอ้างชื่อเต็มของแฟ้มหรือ directory เช่น /unix, /usr/home/seree, /etc/passwd
Relative Path Name เป็นการอ้างชื่อแฟ้มหรือ directory โดยมีการสัมพันธ์กับตำแหน่งปัจจุบัน
. (current directory)
.. (parent directory)
./office (relative from current directory)
../office (relative from parent directory)

Home directory

Home directory เป็น directory บ้านของผู้ใช้
ผู้ใช้ชื่อ seree
home directory คือ /usr2/home/seree
ที่มา :http://www.compsci.buu.ac.th/~jakkaman/C_Programming/week01(18%20June%2001)/Unix.ppt#353,6,ประวัติความเป็นมาของ UNIX

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