ยูนิกซ์กับเน็ตเวอร์ก
ปัจจุบันระบบยูนิกซ์ชักเริ่มแพร่หลายมีคนใช้กันมาก
เพราะมีข้อดีหลายประการ เช่น เป็นระบบที่มีคนบัญญัติศัพท์แสนจะเท่ห์ว่า
"หลายผู้ใช้หลายภาระ" ซึ่งมาจากคำว่า Multiuser Multitasking
มีสภาวะ (Environment) ที่ดีในการพัฒนาโปรแกรม ทำให้โปรแกรมที่พัฒนาแล้วโอนย้ายข้ามเครื่องได้โดยง่าย
โดยเฉพาะมีขีดความสามารถทางด้านการสื่อสารที่ดีมาก เหมาะกับสังคมสารสนเทศแบบไฮเทค
ความฝันของผู้ใช้
หน้าที่ของข่ายสื่อสารโดยทั่วไปจะสนับสนุนจุดประสงค์หลัก
2 ประการด้วยกันคือ
1. การใช้ข้อมูลร่วมกัน (Information Sharing) ผู้ใช้ทุกคนเมื่อใช้คอมพิวเตอร์
ซึ่งต่อกันเป็นเน็ตเวอร์กแล้วควรจะเข้าถึงข้อมูลได้ทุกอย่างที่ต้องการ
ไม่ว่าข้อมูลนั้นจะอยู่ที่ไหน แถมเจ้าเครือข่ายนี้ต้องสนับสนุนการประสานงานระหว่างผู้ใช้
2. การใช้ทรัพยากรร่วมกัน ชาวบ้านเขามีเครื่องพิมพ์เลเซอร์ชั้นยอด
ผมอยากจะใช้บ้าง แต่ไม่มีปัญญาซื้อระบบเน็ตเวอร์กต้องช่วยให้ผมส่งงานพิมพ์ไปใช้ได้ง่าย
มีดิสค์ตัวโต มีเทปแบคอัพอยู่ที่ไหนในคอมพิวเตอร์นี้ต้องใช้ได้หมด
ความเป็นมาของยูนิกซ์กับข่าวสื่อสาร
ระบบยูนิกซ์เป็นระบบที่มีมาตั้งแต่ต้นทศวรรษที่
1970 โดยเริ่มจากงานวิจัยเล็ก ๆ ของเคน ทอมป์สัน เดนนิส ริตชี่
และไบรอัน เคอร์นิเกน ที่ห้องปฏิบัติการวิจัยเบลล์ แต่ความคิดในการสื่อสารข้อมูลด้วยระบบยูนิกซ์
เริ่มจากโปรแกรม UUCP *UNIX to UNIX Copy) ซึ่งพัฒนาขึ้นในปี ค.ศ.
1976 และปล่อยออกมานอก AT&T ในปี ค.ศ. 1978 พร้อมกับยูนิกซ์
เวอร์ชัน 7 UUCP ให้บริการด้านอีเมล์และรับส่งไฟล์ ในปัจจุบันก็ยังเป็นรูปแบบที่แพร่หลายที่สุดรูปแบบหนึ่งของการสื่อสารภายในยูนิกซ์
ในปี ค.ศ. 1978 อีริค ชมิด ได้พัฒนาซอฟต์แวร์สื่อสารข้อมูลขึ้นชื่อ
"Berknet" ซึ่งใช้กันอย่างแพร่หลายที่มหาวิทยาลัยแคลิฟอร์เนียที่เบิกร์เล่ย์เริ่มจากยูนิกซ์ที่เบิร์กพัฒนาขึ้นคือ
BSD 2.0 ระบบนี้ใช้สาย RS-232C เชื่อมกันที่ความเร็ว 9600 บิต/วินาที
ก็พัฒนาขีดความสามารถของยูนิกซ์ในแง่ของการสื่อสารขึ้นมาเช่นกัน
แต่เก็บไว้ใช้ข้างในไม่ค่อยปล่อยออกมา ระบบที่พัฒนาขึ้นสามารถส่งไฟล์ได้
ทำรีโมตล็อคอินและพิมพ์ข้อมูลต่างเครื่องได้ รวมทั้งให้บริการอีเมล์ด้วย
ในช่วงกลางทศวรรษที่ 1980 มีคนพัฒนาโปรแกรมที่ใช้กับ UNIX System
V โดยสนับสนุนการทำงานกับ TCP/IP ซึ่งส่วนใหญ่แล้วบริษัทเหล่านี้ก็คือคนที่พัฒนาฮาร์ดแวร์สื่อสารนั่นเอง
บริษัท เอทีแอนด์ที เริ่มกลับมามีบทบาทในเรื่องของข่ายคอมพิวเตอร์ในยูนิกซ์อีกครั้งเมื่อนายเดนนิส
เริ่มกลับมามีบทบาทในเรื่องของข่ายคอมพิวเตอร์ในยูนิกซ์อีกครั้งเมื่อนายเดนนิส
ริตชี่ เสนอความคิดเรื่อง I/O เทคนิคเรียกว่า สตรีม (Stream I/O)
ซึ่งเป็นแนวคิดใหม่ในยูนิกซ์ใน UNIX System V.3 ได้บรรทุกเทคโนโลยีนี้เข้าไปอย่างเต็มที่
รวมทั้ง TLI (Transport Layer Inter - face) ซึ่งติดต่อกับส่วนสื่อสารในยูนิกซ์ในลักษณะของไลบรารี
ภาษาซีก็เริ่มปรากฏในยูนิกซ์รุ่นนี้ด้วย ทำให้มีการพัฒนาวอฟต์แวร์ต่าง
ๆ ที่ใช้ความสามารถของข่ายคอมพิวเตอร์ขึ้นมาก
เทคโนโลยี ข่ายสื่อสารสำหรับยูนิกซ์
ถ้าเรามองดูคอมพิวเตอร์ที่ใช้ระบบยูนิกซ์ทั่วไปแล้ว
ในสายตาผมจะแบ่งตามการใช้งานออกเป็น 2 พวก พวกหนึ่งคือ พวกใช้ส่วนตัวได้แก่
เวอร์กสเตชันทางวิศวกรรม ซึ่งเทคโนโลยีสมัยใหม่ทางด้านเน็ตเวอร์กเรียกได้ว่าเติบโตมาจากระบบพวกนี้
อีกพวกหนึ่งคือตัวระบบยูนิกซ์ที่ใช้งานกับผู้ใช้จำนวนมาก ๆ เพื่อทำงานทางด้านธุรกิจ
เช่น พวกระบบฐานข้อมูล เป็นต้น ในการเชื่อมต่อในหน่วยงานเดียวกันที่นิยมใช้กันมากที่สุดคือใช้อีเธอร์เน็ตแลนดังรูปที่
1

รูปที่ 1 แลนของยูนิกซ์เวอร์กสเตชัน
การเชื่อมต่อกันด้วยแลนจะให้ความเร็วถึง
10 เมกะบิต/วินาที เคเบิลที่ใช้จะมีหลัก ๆ 2 ชนิด คือ 10BASE5
ซึ่งบางทีจะเรียกว่า Thick Ethernet (อย่างหนา) ใช้สาย COAX แบบ
RG-9 ความต้านทาน 50 โอห์ม ส่วนอีกแบบคือสายแลนแบบอีเธอร์เน็ตปกติที่เราจะเห็นใช้กับระบบของพีซีเป็นสาย
50 โอห์ม RG-58 แบบนี้จะเรียกว่า 10BASE2 หรือ Thin Ethernet (อย่างบาง)
บางทีเขาก็เรียก Cheaper net (แลนแบบปอน ๆ ว่างั้นเถอะ) ในการต่อกับ
Thick Ethernet นั้นต้องมีส่วนเชื่อมโยงกับสายแลน เรียกว่า ทรานซีฟเวอร์
(Tranceiver) และมีสายเดินจากตัวทรานซีฟเวอร์เข้ามายังการ์ดแลนเรียกว่า
AUI เคเบิลหรือ Drop เคเบิล แต่ในบางครั้งถ้าการ์ดแลนมีทรานซีฟเวอร์อยู่ภายใน
(สำหรับ Thin Ethernet) ก็อาจต่อได้เลย เราสรุปเป็นสรุปได้ดังรูปที่
2
ระบบยูนิกซ์เป็นระบบที่เน้นแนวคิดของระบบเปิด (Open System) ทั้งทางฮาร์ดแวร์และซอฟต์แวร์
ระบบปิดของบริษัทใดบริษัทหนึ่ง เช่น SNA และ IBM หรือ Decnet ของ
DEC ไม่ค่อยเป็นที่สนใจของชาวยูนิกซ์นัก แนวคิดของระบบเปิดคือ
มีมาตรฐานกลางในระดับนานาชาติที่ออกโดยองค์กรทางมาตรฐาน เช่น CCITT
หรือ ISO ผู้ขายก็ผลิตไปตามมาตรฐาน ผู้ใช้ซื้อมาเชื่อมแล้วใช้ได้ทันที
ของใครดีกว่าดูที่ประสิทธิภาพครับ ลักษณะนี้จะเป็นตลาดของผู้ใช้
ซึ่งผู้ใช้จะได้เปรียบมากในการเลือกซื้อของดีที่สุดมาใช้ ซึ่งในปัจจุบันแนวโน้มมุ่งไปทางระบบเปิดมากขึ้นทุกที
ระบบยูนิกซ์ในปัจจุบัน ส่วนใหญ่จะสนับสนุนโปรโตคอลแบบ TCP/IP ซึ่งคิดขึ้นโดย
DOD (Department of Defense) หรือกระทรวงกลาโหมสหรัฐ และใช้งานกันอย่างมากในอเมริกา
โปรโตคอลนี้ทำให้เกิด Internetworking คือส่งข้อมูลระหว่างเครื่องที่ต่อผ่านข่ายคอมพิวเตอร์ชนิดไหนบ้าง
และทำให้เกิดการติดต่อระหว่างโปรเซส (Interprocess Communication
หรือ IPC) ที่อยู่ต่างเครื่องกัน

รูปที่ 2 การต่อเครื่องยูนิกซ์เข้ากับแลน
สำหรับในระยะทางไกลนั้น
ระบบยูนิกซ์ของบริษัทต่าง ๆ มักจะสนับสนุนการเชื่อมโยงผ่านโมเด็มแบบ
Point to Point โดยใช้โปรโตคอลเรียกว่า SLIP (Serial Link Internet
Protocol) หรือผ่าน X.25 WAN ซึ่ง X.25 นี้เริ่มมีให้บริการใช้ได้แล้วในเมืองคือระบบ
Thaipak ของการสื่อสาร
ฮาร์ดแวร์ต่อกันแล้ว
ถึงคราวซอฟต์แวร์บ้าง
พอจับฮาร์ดแวร์คุยกันได้
(LAN, WAN, Serial) ถึงคราวซอฟต์แวร์บ้าง การที่คอมพิวเตอร์จะคุยกันรู้เรื่องก็ต้องเจรจาภาษาเดียวกัน
ภาษาหรือข้อตกลงในการเจรจาพาทีระหว่างคอมพิวเตอร์ผ่านข่ายสื่อสารเราเรียกว่า
โปรโตคอล ซึ่งแม่แบบของโปรโตคอลในระบบเปิดที่สำคัญมี 2 พวก คือ
OSI และ TCP/IP
ผู้พัฒนาโปรแกรมจะพัฒนาโปรแกรมโดยใช้ส่วนเชื่อมต่อกับโปรแกรมประยุกต์
(Application Program Interface หรือ API) ซึ่งมีในระบบที่ดังมากก็คือ
Socket Interface ที่มีมากับยูนิกซ์ 4.2 BSD ขึ้นไป อีกแบบคือใช้
Remote Procedure Call หรือ RPC ซึ่งมีแนวคิดดังรูปที่ 3
ในแนวคิดของ RPC คอมพิวเตอร์แต่ละเครื่องในระบบจะมีส่วนของโปรแกรมซึ่งทำงานอยู่
โปรแกรมประยุกต์ที่เราเขียนขึ้นจะเรียกใช้โปรแกรมที่อยู่ต่างเครื่องได้เสมือนกับว่าเป็นซับรูทีนในโปรแกรมของเรา
โดยระบบจะช่วยให้เราสร้าง Stub ซึ่งแปลงจากการเรียกฟังก์ชันธรรมดาเป็นโปรโตคอลคุยผ่านเครือข่ายคอมพิวเตอร์ไป
โปรแกรมที่อยู่อีกเครื่องก็ทำงานกุ๊กกิ๊กสักพักก็ส่งคำตอบกลับมา
ซึ่ง Stub จะแปลงกลับเป็นค่าที่คืนจากการเรียกฟังก์ชัน คนพัฒนาโปรแกรมก็ไม่ต้องรู้เรื่องเน็ตเวอร์กเลย
แค่รู้ว่ามีอะไรให้เรียกใช้บ้างก็พอ

รูปที่ 3 แนวคิดของ RPC
ไคล์เอนต์-เซอร์ฟเวอร์
และเหล่าปีศาจ
ถ้าพูดถึงแนวโน้มของการวางระบบขนาดใหญ่
แนวคิดจะเริ่มเปลี่ยนแปลงจากระบบแบบรวมศูนย์ (Centralize) เป็นระบบแบบกระจาย
(Distributed) โดยกระจายงานประมวลผลไปตามคอมพิวเตอร์ต่าง ๆ ที่ต่อกันผ่านข่ายข้อมูลคอมพิวเตอร์
ในการพัฒนาซอฟต์แวร์ตามแนวนี้เขาจะใช้โมเดลที่เรียกว่าไคล์เอนต์เซอร์ฟเวอร์
คือแบ่งโปรแกรมเป็น 2 ส่วน ดังรูปที่ 4

รูปที่ 4 แนวคิดแบบไคล์เอนต์เซอร์ฟเวอร์
เซอร์ฟเวอร์เป็นคนถือทรัพยากรของระบบไว้
เช่น ฐานข้อมูล, ไฟล์, เครื่องพิมพ์ ส่วนไคล์เอนต์เป็นโปรแกรมที่นำเอาทรัพยากรมาใช้
ไคล์เอนต์จะขอใช้ทรัพยากรต่าง ๆ ผ่านข่ายคอมพิวเตอร์โดยเซอร์ฟเวอร์จะตอบกลับมา
โดยส่งสิ่งที่ต้องการมาให้ ตัวอย่างของแนวคิดนี้ได้แก่ SQL เซอร์ฟเวอร์บนแลนของพีซี
เป็นต้น
ในยูนิกซ์ได้สนับสนุนแนวคิดนี้อยู่แล้วโดยธรรมชาติ ในยูนิกซ์จะมีโปรเซสปีศาจ
(Daemon process) ทำงานอยู่ตลอดเวลาเพื่อรอรับการติดต่อผ่านข่ายคอมพิวเตอร์จากภายนอก
เมื่อโปรแกรมบนเครื่องอื่นติดต่อเข้ามาก็จะให้บริการบางอย่าง ตัวอย่างของปีศาจเหล่านี้ได้แก่
|
ftpd |
:
ให้บริการเกี่ยวกับการส่งรับไฟล์ |
|
nfsd |
:
ให้บริการเกี่ยวกับการใช้รีโมตดิสค์ |
|
rlogind |
:
ให้บริการทำรีโมตล็อคอิน |
|
telretd |
:
ทำรีโมตล็อคอินมาตรฐานของ DOD |
อื่น ๆ อีกมากมายครับ พูดไม่หมดแน่
โปรเซส daemon เหล่านี้จะรอให้บริการโดยจองสิ่งที่เรียกว่า well
known port ซึ่งเป็นตัวเลขที่กำหนดไว้ ใครจะใช้บริการก็ติดต่อมาโดยอ้างแอดเดรสเครื่องแล้วบอกตัว
well know port ให้ระบบก็จะเกิดการเชื่อมต่อกับเซอร์ฟเวอร์ได้
ตัวอย่างของ well know port แสดงไว้ในรูปที่ 5
Decimal |
Keyword
|
UNIX Keyword |
Description
|
0 |
- |
- |
- |
1 |
TCPMUX |
- |
Reserved |
5 |
RJE |
- |
TCP Multiplexer |
7 |
ECHO |
echo |
Remote
Job Entry |
9 |
DISCARD |
discard |
Echo |
11 |
USERS |
systat |
Discard |
13 |
DAYTIME |
daytime |
Active
Users |
15 |
- |
netstat |
Daytime |
17 |
QUOTE |
gotd |
Network
status program |
19 |
CHARGEN |
chargen |
Quote
of the Day |
20 |
FTP-DATA |
ftp-data |
Character
Generator |
21 |
FTP |
ftp |
File
Transfer Protocol (data) |
23 |
TELNET |
telnet |
File Transfer
Protocol |
25 |
SMTP |
smtp |
Terminal
Connecton |
37 |
TIME |
time |
Simple
Mail Transport Protocol |
42 |
NAMESERVER |
name |
Time |
43 |
NICNAME |
whois |
Host Name
Server |
53 |
DOMAIN |
nameserver |
Who is |
77 |
- |
rje |
Domain
name Server |
79 |
FINGER |
finger |
Any private
RJE Service |
93 |
DCP |
- |
Finger |
95 |
SUPDUP |
supdup |
Device
Control Protocol |
101 |
HOSTNAME |
hostnames |
SUPDUP
Protocol |
102 |
ISO-TSAP |
iso-tsap |
NIC Host
Name Server |
103 |
X400 |
x400 |
ISO-TSAP |
104 |
X400-SND |
x400-snd |
X.400
Mail Service |
111 |
SUNRPC |
sunrpc |
X.400
Mail Sending |
113 |
AUTH |
auth |
Sun Remote
Procedure Call |
117 |
UUCP-PATH |
uucp-path |
Authentication
Service |
119 |
NNTP |
nntp |
UUCP Path
Service |
129 |
PWDGEN |
- |
USENET
News Transfer Protocol |
139 |
NETBIOS-SSN |
- |
Password
Generator Protocol |
160-223 |
Reserved |
- |
NETBIOS
Session Service |
รูปที่ 5
แสดงบริการที่มี และ Well known port number
ในขณะนี้มีระบบติดต่อกับผู้ใช้ที่โด่งดังขึ้นมาคือเอกซ์วินโดว์
โดยที่ระบบนี้เน้นในเรื่องของ Distributed มาก บนเครื่องเวอร์กสเตชั่นจะทำตัวเป็นเอกซ์เซอร์ฟเวอร์ซึ่งคุมทรัพยากร
ได้แก่ เมาส์ คีย์บอร์ด และวินโดว์ โปรแกรมของเรา เช่น CAD ที่ต้องการแสดงผลปรากฏบนจอภาพของเรา
แล้วผู้ใช้เล่นอะไรได้บ้าง
ในแง่ของคนใช้เครื่องแล้วเรามีอะไรให้เล่นบ้าง
การทำรีโมตล็อคอินบนระบบยูนิกซ์มียูทิลิตี้อยู่ 2 ตัวคือ rlogin
ซึ่งเขียนโดยเบิร์กเล่ย์ เรานั่งอยู่หน้าคอมพิวเตอร์เครื่องใดก็ตามสามารถทำการล็อคอินไปใช้เครื่องอื่นที่ต่อผ่านข่ายสื่อสารได้หมด
แต่ rlogin ใช้ได้กับยูนิกซ์ด้วยกันเท่านั้น
ในเรื่องนี้มีโปรแกรมอีกโปรแกรมคือ telnet ซึ่งเป็นโปรแกรมที่ทำงานในลักษณะของเวอร์ชวลเทอร์มินัลตามมาตรฐานของ
DOD ใช้เทลเน็ตแล้ว นอกจากจะใช้กับยูนิกซ์ด้วยกันได้ยังใช้กับคอมพิวเตอร์อื่นที่ต่อร่วมข่ายสื่อสารเดียวกันด้วย
ในระบบของเวอร์กสเตชันที่เป็นแบบมัลติวินโดว์ยิ่งสนุกมากครับ เปิด
3 วินโดว์ใช้พร้อมกัน 3 เครื่องเลย
การทำไฟล์ทรานสเฟอร์มีโปรแกรมช่วยคือ rcp ของเบิร์กเล่ย์ ซึ่งจะก๊อปปี้ไฟล์ข้ามระบบมาให้คล้ายกับทำคำสั่ง
cp ในยูนิกซ์ แต่การส่งรับไฟล์จะไม่ซับซ้อนมาก ถ้าต้องการโปรแกรมเก่ง
ๆ ต้องใช้โปรแกรม ftp โดยที่เราต้องมียูสเซอร์ที่อีกเครื่องด้วย
ใน ftp เราสามารถสั่งเปลี่ยนไดเรคทอรี ดูไดเรคทอรีที่เครื่องอื่น
ส่งรับไฟล์ที่ดีกว่านั้นคือ ทำการติดต่อกับระบบที่ไม่ใช่ยูนิกซ์ได้ด้วย
เพราะทำงานตามมาตรฐานของ DOD เช่นเดียวกับเทลเน็ต ในเรื่องของไฟล์มีผลิตภัณฑ์อีกตัวซึ่งถือเป็นมาตรฐานกลาย
ๆ คือ NFS (Network File System) ซึ่งถือกำเนิดมาจากบริษัทซันไมโครซิสเต็มส์และแพร่หลายมากในโลกของ
UNIX NFS ทำให้เครื่องยูนิกซ์ที่อยู่บนแลนมองเห็นดิสค์ของอีกฝ่ายถึงกันหมด
เหมือนกับเป็นดิสค์ในระบบของตัวเอง โดยแต่ละเครื่องจะมี NFS ไคล์เอนต์และเซอร์ฟเวอร์ทำงานอยู่
ยิ่งไปกว่านั้นในปัจจุบันยังมี NFS สำหรับพีซี เช่น PC-NFS ของบริษัทซันไมโครซิสเต็มส์
ทำให้พีซีของเราสามารถมองเห็นไดเรคทอรีบนเครื่องยูนิกซ์เป็นไดรฟ์ตัวหนึ่งในพีซี
และยังสนับสนุนการใช้งานรีโมตพรินเตอร์อีกด้วย
สุดท้ายก็คือ บริการไปรษณีย์อิเล็กทรอนิกส์ ซึ่งใช้โดยโปรแกรม
mail ในยูนิกซ์นั้น ระบบเมล์จัดว่าเป็นสิ่งหนึ่งที่มีการใช้งานมากที่สุด
และมีเครือข่ายที่ไพศาลไปทั่วโลก มาตรฐานของอีเมล์ที่ใช้จะเป็น
SMTP (Simple Mail Transfer Protocol) และ UUCP เป็นหลัก โดยตัวระบบเมล์จะแบ่งเป็นส่วนที่ติดต่อกับผู้ใช้
และส่วนที่ส่งเมล์ของไปยังเน็ตเวอร์กคือโปรแกรม sendmail โปรแกรมนี้เองจะไปดูรูปแบบของที่อยู่ผู้รับเพื่อตัดสินใจในการส่งว่าไปไหน
และใช้วิธีใดอีกครั้ง แต่ในแง่ผู้ใช้รู้แค่ที่อยู่ปลายทางก็พอแล้ว
ก้าวต่อไปของยูนิกซ์กับการสื่อสาร
ในแง่ของมาตรฐานแล้ว
ยูนิกซ์ก็คงเน้นความเป็นระบบเปิดต่อไป แต่มีแนวโน้มที่จะเปลี่ยนจาก
TCP/IP เป็น OSI แต่ก็นานมาก (อาจจะศตวรรษหน้า) ตอนนี้พัฒนาการทางด้านเทคโนโลยีทำให้การวางข่ายคอมพิวเตอร์มีราคาถูกลงมาก
ดังนั้นในแง่ผู้ใช้คงจะได้ใช้โปรแกรมประยุกต์ที่มีลักษณะทำงานแบบกระจายมากขึ้น
และการทำงานเป็นกลุ่มโดยมีข่ายข้อมูลคอมพิวเตอร์เป็นตัวเชื่อมโยงในลักษณะเครือข่ายของบริษัท
(Corporate Network) คงจะเข้ามามีบทบาทในธุรกิจมากขึ้น ด้วยเทคโนโลยีของระบบเปิดจะทำให้ผู้ใช้เลือกเอาผลิตภัณฑ์ต่าง
ๆ มาเชื่อมโยงเข้าด้วยกันได้ง่ายกว่าเดิม ระบบข่ายข้อมูลของพีซีและยูนิกซ์จะเข้ามาร่วมทำงานด้วยกันเพื่อเพิ่มความสะดวก
และประสิทธิภาพให้กับผู้ใช้อย่างเต็มที่
|