เรามาทำความรู้จักระบบปฏิบัติการLinux กันดีกว่า

Linux Operating System

ในบทเรียนนี้เราจะเริ่มเรียนรู้เกี่ยวกับระบบปฎิบัติการ Linux ขั้นพื้นฐานเสียก่อน เพื่อให้เข้าใจถึงความเป็นมาและลักษณะการทำงานของ Linux ก่อน จากนั้นจึงจะเริ่มในเนื้อหาที่มีการใช้งานที่ซับซ้อนต่างๆนานๆต่อไปครับ

ก้าวแรกสู่โลกแห่งระบบปฎิบัติการ Linux

Linux คือ Operating System (OS) ชนิดหนึ่ง เหมือนๆกับ Windows , FreeBSD(UNIX), Mac OSX โดยที่ Linux ถูกพัฒนาต่อมาจาก UNIX  ซึ่ง Linux มีทั้งแบบ 32 Bit และ 64 Bit ไม่แตกต่างกับระบบปฎิบัติการอื่น สามารถนำมาใช้งานได้ทั้งแบบ Workstation(PC) และ Server มีการทำงานที่เหมือนกับ OS อื่นๆ กล่าวคือทำงานได้ทั้งเป็นแบบ Multi-tasking และ Multi-user ซึ่ง Linux นั้นมี X Windows เป็นหน้า Graphic User Interface(GUI) ในการตอบโต้กับuser ด้วย  
Linux เป็นการพัฒนาแบบ Open Source กล่าวคือมีการเปิดเผย Source Code ให้ Developer ทั่วโลกสามารถเข้ามาช่วยกันพัฒนาได้หรือสามารถนำเอาไปสร้างเป็น OS ใหม่ก็สามารถทำได้เช่นกัน  อีกทั้งที่สำคัญ Linux นั้นยังอยู่ภายใต้สัญญาเงื่อนไข GPL (GNU General Public License) ซึ่งหมายถึงสามารถเปลี่ยนแปลงแก้ไข พัฒนาOSได้ และแจกจ่ายให้ใช้ฟรีได้อีกด้วย ซึ่งนั่นคือจุดแข็งมากๆของ Linux อีกทั้ง Linux แต่ละแบบ(Distribution)เช่น Ubuntu, Redhat, CentOS เป็นต้น ก็ยังมีทีมพัฒนาของแต่ละ Distribution อีกด้วย
Linux มีความ compatible กับ มาตรฐาน POSIX ซึ่งเป็นมาตรฐานอินเทอร์เฟสที่ระบบยูนิกซ์ส่วนใหญ่จะต้องมีและมีรูปแบบบางส่วนที่คล้ายกับระบบปฏิบัติการยูนิกซ์จาก ค่าย Berkeley และ System V จริงๆแล้ว Linux ที่เราใช้กันอยู่ปัจจุบันคือ kernel ของระบบปฏิบัติการ ซึ่งจะทำหน้าที่ในด้านของการจัดสรรและบริหารโพรเซสงาน การจัดการไฟล์และอุปกรณ์ I/O ต่างๆแต่ผู้ใช้ทั่วๆไปจะรู้จักLinuxผ่านทางแอพพลิเคชั่น และระบบอินเทอร์เฟสที่เขาเหล่านั้นเห็น (เช่น Shell หรือ X วินโดวส์)

ประวัติของระบบปฎิบัติการ Linux

ระบบปฎิบัติการ Linux ถือกำเนิดขึ้นในประเทศฟินแลนด์ปี คศ. 1991 โดยลีนุส โตรวัลด์ส (Linus Benedict Torvalds) นักศึกษาภาควิชาวิทยาการคอมพิวเตอร์ (Computer Science) ในมหาวิทยาลัยเฮลซิงกิ โดยได้พัฒนามาจากระบบปฏิบัติการ Minix ซึ่งเป็นระบบยูนิกซ์บนพีซีในขณะนั้น โดยในตอนแรกเป็นเพียงโครงงานที่เขาทำส่งอาจารย์สมัยเรียนปริญญาตรีเท่านั้น แต่ต่อมาก็ได้มีการพัฒนาต่อ โดยลีนุสก็ได้ทำการชักชวนให้นักพัฒนาโปรแกรมอื่นๆมาช่วยทำการพัฒนา Linux ซึ่งความร่วมมือส่วนใหญ่ก็จะเป็นความร่วมมือผ่านทางเครือข่าย Internet ลีนุสจะเป็นคนรวบรวมโปรแกรมที่ผู้พัฒนาต่างๆ ได้ร่วมกันทำการพัฒนาขึ้นมาและแจกจ่ายให้ทดลองใช้เพื่อทดสอบหาข้อบกพร่อง และทำงานผ่าน Internet ทั้งหมด ปัจจุบันพัฒนามาถึงรุ่น 4.0 (ณ วันที่ 28 เมษายน 2558) และจะพัฒนาต่อไป อย่างไม่หยุดยั้งเพราะ Linux เป็นระบบปฏิบัติการที่เปิดเผยต้นฉบับของโปรแกรม (Open Source) นั่นเอง
Linux มีสัญลักษณ์เป็นรูป Penguin ชื่อว่า Tux โดยก็มีคนสงสัยเหมือนกันว่าทำไม ทาง Linux Journal จึงได้เมล์ไปถามลีนุสถึงสาเหตุที่ตั้งชื่อแบบนั้น ทางลีนัสก็ตอบมาแบบนี้ครับ
(ต้นฉบับจาก http://www.sjbaker.org/wiki/index.php?title=The_History_of_Tux_the_Linux_Penguin)
Re: Linux Logo
Linus Torvalds (torvalds@cs.helsinki.fi)
Sun, 12 May 1996 09:39:19 +0300 (EET DST)
Linus(ตัวเค้าเอง) ก็เหมือนกับเพนกวิ้นแค่นั้นแหล่ะ มันถึงขนาดเคยเป็นพาดหัวข่าวของนิตยสารลีนุกซ์บางเล่มเมื่อก่อน (ตัวผมเองเคยถูกนกเพนกวิ้นเพชรฆาตกัดตอนอยู่ออสเตรเลียด้วยนะ – ไม่ได้ล้อเล่นนะ) เพนกวินน่ะน่าสนุกจะตาย
สำหรับว่าทำไมถึงใช้เพนกวิ้นเป็น Logo? ไม่มีเหตุผลดีๆอะไรหรอก, จริงๆนะ แต่จริงๆแล้ว Logo น่ะจำเป็นต้องมีความหมายถึงอะไรทั้งสิ้น – มันเป็นสมาคมที่รวมกันจากหลายๆคนเท่านั้น และผมคิดว่าการที่ Linux เป็นการรวมตัวกันของเหล่าเพนกวิ้นดีกว่าการรวมตัวกันของสิ่งที่มันแย่กว่านี้นะ
การที่มีเพนกวิ้นเป็น Logo ยังเป็นการให้อิสระต่อทุกคนที่ต้องการจะใช้สิ่งใดๆแทนตัว Linux ได้อีกด้วย: แทนที่จะใช้ Logo ที่เจาะจงไปเลย (เช่น การใช้รูปสามเหลี่ยม, การใช้คำว่า “Linux 2.0” หรืออะไรก็แล้วแต่ที่เป็นการระบุตายตัว), การใช้อะไรท่ีไม่ระบุตายตัวอย่างเพนกวิ้น ทำให้ทุกคนมีโอกาสในการสร้าง Logo ของตัวเองหรือการดัดแปลงใดๆ แล้วยังคงเป็น Logo ที่น่าจดจำได้อีกด้วย
ดังนั้นคุณจะใช้ภาพเพนกวิ้นจริงๆบนแผ่น CD ก็ทำได้ได้ ขอแค่ให้คนหลายๆคนรวมตัวกัน หรือคุณจะเขียนให้เพนกวิ้นทำอะไรซักอย่างที่ต้องการก็ได้ (เช่น เพนกวิ้นที่เขียนด้วย wordperfect (เป็นโปรแกรมเขียนเอกสารที่โด่งดังในสมัยนั้น) บนแผ่น WP Linux CD, หรืออะไรก็ได้ แล้วแต่ไอเดียของคุณ)
ลองเปรียบเทียบกับรูปภาพที่แฝงความหมายอื่นๆ (Abstract Logo) (เช่น Windows Logo ที่ก็ออกแบบมาไม่ได้แย่นะ) เราไม่สามารถที่จะทำทุกอย่างได้โดยใช้ Logo แบบนั้น เพราะมันคือแค่นั้น
อย่างไรก็ตาม ลองไปดูใน "http://www.isc.tamu.edu/~lewing/linux/” เพื่อดูตัวอย่างแจ่มๆได้…
Linus
Screen Shot 2562-06-30 at 22.54.05.png
รูปภาพของ Tux ภาพแรกโดย Larry Ewing
จะเห็นว่า Linus ไม่ได้ให้ความสำคัญอะไรกับ Logo Linux มากนัก เค้าต้องการให้มันจดจำในแบบของคนที่นำ Linux ไปพัฒนากันออกมา Linux ของแต่ละกลุ่มต่างๆมีความแตกต่างกันออกไปแล้วแต่คนกลุ่มที่นำไปพัฒนาต่อซึ่งไม่ต่างอะไรกับ source code ของ Linux เลยนั่นเอง และคำถามที่ว่าทำไมเพนกวิ้นนั้นถึงชื่อ “Tux” อันนี้ไม่มีอะไรที่มันแน่นอนครับ แต่มีความเป็นไปได้ 2 อย่างคือ
1. ตัวของเพนกวิ้นเปลี่ยนเสมือนกับการใส่ Tuxedo อยู่ เลยเรียกย่อๆว่า “Tux” นั่นเอง
2. ย่อมาจากชื่อของ (T)orvalds (U)ni(X) เลยออกมาเป็น “TUX” ครับ

เปรียบเทียบ Windows กับ Linux

ในปัจจุบันการใช้งาน Windows ยังคงเป็นอันดับหนึ่งในหมู่ของผู้ใช้งานทั่วไป ซึ่งสามารถดูข้อแตกต่างการใช้งานทั่วไปได้ดังตารางที่ 1.1
TypeMS WindowsLinux , UNIX
TypeMS WindowsLinux , UNIX
Graphic User Interface มีมี
Text User Interface มี แต่ใช้งานผ่าน GUI อีกทีอยู่ดีมี, สามารถรันแบบ Native ได้เลย
License cost มี โดยราคาแล้วแต่ versionFree
Easy installation ติดตั้งผ่าน graphic interfaceมีทั้งแบบ graphic และ text mode
Security ต้องลอง software 3rdparty เพิ่มเติม (Antivirus, Anti-spyware, Personal firewall)มีอยู่ใน Security feature
Application and software support มีเยอะแยะมีเยอะแยะ
Update มี update ผ่านทาง Microsoft เท่านั้นมี update ผ่านทาง Linux Website แต่ผู้ใช้งานใดๆสามารถอัพเดตได้เช่นกัน
User and password management มีมี
Hardware device support มี, by default hardware vendor support Microsoftมี, แต่หากเป็น hardware เฉพาะทางอาจต้องพัฒนา driver เอง
ตาราง 1.1 เปรียบเทียบระหว่าง Windows และ Linux,Unix
จะเห็นว่าความแตกต่างของ Windows กับ Linux จะมีส่วนที่เด่นชัดสุดคือการ update ซึ่งทาง Linux จะดีกว่าตรงที่เป็น Open Source ผู้ใช้งานสามารถช่วยกันไล่แก้โค้ดและออก update ช่วยกันได้ แต่กลับกัน Windows ต้องรอ update official จากทาง Microsoft เองเท่านั้น ซึ่งทาง Windows จะมีข้อดีที่สุดที่เหนือกว่า Linux นั่นคือการที่มี Driver รองรับ Hardware ใหม่ๆตลอดเวลา แต่กลับกัน Linux จำเป็นต้องรอนานมากกว่าจะมี driver สำหรับ Hardware ใหม่ๆออกมารองรับ
Screen Shot 2562-06-30 at 22.56.09.png
*ตาราง 1.2 สัดส่วนการใช้งาน OS ต่างๆในช่วงปี 2018 จาก *http://www.w3schools.com/browsers/browsers_os.asp
แต่กลับกันในส่วนของ Server มีการใช้งาน Linux เพิ่มขึ้นอย่างต่อเนื่อง ทีนี้หากมาดูในแต่ละ service แล้วระหว่าง Windows และ Linux นั้นมีให้บริการทั้งคู่ โดยสามารถสรุปรายชื่อของ server มีดังตารางที่ 1.3
ServerMicrosoft WindowsLinux Server 
ServerMicrosoft WindowsLinux Server
Mail Server MS Exchange Server Postfix, QMail or Sendmail 
Web Server MS Internet Information Service (IIS) Apache 
File sharing MS File and printing sharing SAMBA 
FTP Server MS FTP Service vsFTP / proFTP 
DNS Server MS DNS Service Bind 
Proxy Server MS ISA Squid 
Firewall MS ISA IPTABLEs 
ตาราง 1.3 รายชื่อ Server ในการให้บริการแบบต่างๆระหว่าง Windows และ Linux Server

การเข้าถึงและควบคุมเครื่องจากระยะไกล

โดยปกติแล้วการควบคุมเครื่องจากระยะไกลของ Windows นั้นจะใช้เป็น Remote Desktop Protocol (RDP) โดยจะใช้ port เป็น TCP/3389 ซึ่งจะเป็นการ remote แบบ GUI (Graphic User Interface) แต่ Linux นั้นแตกต่างกัน อย่างที่ทราบกันดีว่า Linux mode โดยปกติแล้วจะเป็น text mode ดังนั้นการ remote โดยปกติแล้วจะเป็น text mode เสียมากกว่า ซึ่ง remote service ที่แต่ก่อนมักใช้กันเป็น telnet ในการ remote แต่สืบเนื่องด้วย telnet นั้นมีปัญหาทางด้านความปลอดภัยเพราะเป็นการคุยกันแบบไม่มีการเข้ารหัส ผลที่เกิดขึ้นคือหากมีการดักฟังข้อมูลจะทำให้ผู้ดักฟังสามารถทราบได้หมดว่าผู้ใช้งานสั่งการอะไรไปยังเครื่องบ้าง รวมถึง username, password ที่ใช้เมื่อเข้าสู่ระบบด้วย ด้วยเหตุผลดังกล่าวจึงเลิกใช้ telnet service ในการใช้ remote service ให้หันไปใช้ ssh (Secure-Shell) แทน โดย ssh service นั้นจะมีการเข้ารหัสการคุยกันระหว่าง user และ server ทำให้ไม่เกิดปัญหาเช่นเดิมอีก แต่สืบเนื่องด้วยมีการใช้งาน library ในการเข้ารหัสข้อความทำให้หาก library ที่นำมาใช้นั้นมีช่องโหว่ก็จะได้รับผลกระทบไปด้วย อย่างเช่น Heartbleed (CVE-2014-0160) เป็นต้น โดยจริงๆแล้วการ remote โดยใช้ SSH สามารถทำได้ทั้งจาก Client ที่เป็น Windows และ Linux โดยหากเป็น Windows Client จะใช้ ssh client ต่างๆเช่น putty เป็นต้น แต่หากเป็นการ remote จาก Linux Client จะใช้เป็น ssh command ได้เลย
และสำหรับการ remote แบบ GUI จริงๆแล้วเราก็สามารถทำการ remote แบบ GUI ได้เช่นกัน โดยใช้เป็น Xdesktop service หรือ service ใดๆที่คล้ายคลึงกันแทน

ตัวอย่างการ remote เข้า Linux โดยใช้ SSH จาก Windows

3. เปิดใช้งาน Putty โดยไปที่ Start -> Putty -> Putty
Screen Shot 2562-06-30 at 23.25.09.png
4. กรอก IP เครื่องเป้าหมายแล้วกด Open
Screen Shot 2562-06-30 at 23.27.52.png
5. จากนั้นจะมีการถามเรื่องการเก็บ fingerprint ของเครื่องเป้าหมายปลายทาง ให้เรากด Yes เพื่อจำ fingerprint ของเครื่องเป้าหมาย
Screen Shot 2562-06-30 at 23.28.06.png
6. จากนั้นใส่ username, password เพื่อเข้าสู่ระบบ
Screen Shot 2562-06-30 at 23.28.49.png
หลังจากเข้าสู่ระบบสำเร็จจะพบการตอบกลับจาก server ลักษณะดังภาพ
Screen Shot 2562-06-30 at 23.28.57.png

ตัวอย่างการ remote เข้า Linux โดยใช้ SSH จาก SSH

การเข้าใช้งาน SSH จาก Linux จะแตกต่างจาก Windows ตรงที่ไม่ต้องติดตั้งอะไรเพิ่มเติม สามารถเข้าถึงระบบได้เลย โดยให้ทำดังต่อไปนี้
1. เปิด console ขึ้นมา
2. พิมพ์คำสั่ง
ssh <username>@<IP>
เมื่อมีการถามว่าจะให้จำ fingerprint ของเครื่องหรือไม่ ให้ตอบว่าใช่เพื่อเมื่อมีการ login ไปยังเครื่องเดิมจะไม่มีการถามซ้ำอีก
จากนั้นใส่รหัสผ่านเพื่อ login เข้าสู่ระบบ
Screen Shot 2562-06-30 at 23.37.17.png
3. เมื่อ login สำเร็จจะพบ message ต้อนรับจากระบบดังภาพ
Screen Shot 2562-06-30 at 23.39.11.png

Comments

Popular Posts