เรามาทำความรู้จักระบบปฏิบัติการ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 เป็นการพัฒนาแบบ 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)
Linux มีสัญลักษณ์เป็นรูป Penguin ชื่อว่า Tux โดยก็มีคนสงสัยเหมือนกันว่าทำไม ทาง Linux Journal จึงได้เมล์ไปถามลีนุสถึงสาเหตุที่ตั้งชื่อแบบนั้น ทางลีนัสก็ตอบมาแบบนี้ครับ
(ต้นฉบับจาก http://www.sjbaker.org/wiki/index.php?title=The_History_of_Tux_the_Linux_Penguin)
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/” เพื่อดูตัวอย่างแจ่มๆได้…
สำหรับว่าทำไมถึงใช้เพนกวิ้นเป็น 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

รูปภาพของ Tux ภาพแรกโดย Larry Ewing
รูปภาพของ Tux ภาพแรกโดย Larry Ewing
จะเห็นว่า Linus ไม่ได้ให้ความสำคัญอะไรกับ Logo Linux มากนัก เค้าต้องการให้มันจดจำในแบบของคนที่นำ Linux ไปพัฒนากันออกมา Linux ของแต่ละกลุ่มต่างๆมีความแตกต่างกันออกไปแล้วแต่คนกลุ่มที่นำไปพัฒนาต่อซึ่งไม่ต่างอะไรกับ source code ของ Linux เลยนั่นเอง และคำถามที่ว่าทำไมเพนกวิ้นนั้นถึงชื่อ “Tux” อันนี้ไม่มีอะไรที่มันแน่นอนครับ แต่มีความเป็นไปได้ 2 อย่างคือ
1. ตัวของเพนกวิ้นเปลี่ยนเสมือนกับการใส่ Tuxedo อยู่ เลยเรียกย่อๆว่า “Tux” นั่นเอง
2. ย่อมาจากชื่อของ (T)orvalds (U)ni(X) เลยออกมาเป็น “TUX” ครับ
2. ย่อมาจากชื่อของ (T)orvalds (U)ni(X) เลยออกมาเป็น “TUX” ครับ
เปรียบเทียบ Windows กับ Linux
ในปัจจุบันการใช้งาน Windows ยังคงเป็นอันดับหนึ่งในหมู่ของผู้ใช้งานทั่วไป ซึ่งสามารถดูข้อแตกต่างการใช้งานทั่วไปได้ดังตารางที่ 1.1
Type | MS Windows | Linux , UNIX |
---|---|---|
ตาราง 1.1 เปรียบเทียบระหว่าง Windows และ Linux,Unix
จะเห็นว่าความแตกต่างของ Windows กับ Linux จะมีส่วนที่เด่นชัดสุดคือการ update ซึ่งทาง Linux จะดีกว่าตรงที่เป็น Open Source ผู้ใช้งานสามารถช่วยกันไล่แก้โค้ดและออก update ช่วยกันได้ แต่กลับกัน Windows ต้องรอ update official จากทาง Microsoft เองเท่านั้น ซึ่งทาง Windows จะมีข้อดีที่สุดที่เหนือกว่า Linux นั่นคือการที่มี Driver รองรับ Hardware ใหม่ๆตลอดเวลา แต่กลับกัน Linux จำเป็นต้องรอนานมากกว่าจะมี driver สำหรับ Hardware ใหม่ๆออกมารองรับ

*ตาราง 1.2 สัดส่วนการใช้งาน OS ต่างๆในช่วงปี 2018 จาก *http://www.w3schools.com/browsers/browsers_os.asp
*ตาราง 1.2 สัดส่วนการใช้งาน OS ต่างๆในช่วงปี 2018 จาก *http://www.w3schools.com/browsers/browsers_os.asp
แต่กลับกันในส่วนของ Server มีการใช้งาน Linux เพิ่มขึ้นอย่างต่อเนื่อง ทีนี้หากมาดูในแต่ละ service แล้วระหว่าง Windows และ Linux นั้นมีให้บริการทั้งคู่ โดยสามารถสรุปรายชื่อของ server มีดังตารางที่ 1.3
Server | Microsoft Windows | Linux Server |
---|---|---|
ตาราง 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 แบบ GUI จริงๆแล้วเราก็สามารถทำการ remote แบบ GUI ได้เช่นกัน โดยใช้เป็น Xdesktop service หรือ service ใดๆที่คล้ายคลึงกันแทน
ตัวอย่างการ remote เข้า Linux โดยใช้ SSH จาก Windows
1. Download putty จาก \<span class="colour" style="color: rgb(17, 85, 204);">\<u>https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html\</u>\</span>

2. ติดตั้ง Putty

2. ติดตั้ง Putty
3. เปิดใช้งาน Putty โดยไปที่ Start -> Putty -> Putty

4. กรอก IP เครื่องเป้าหมายแล้วกด Open

5. จากนั้นจะมีการถามเรื่องการเก็บ fingerprint ของเครื่องเป้าหมายปลายทาง ให้เรากด Yes เพื่อจำ fingerprint ของเครื่องเป้าหมาย

6. จากนั้นใส่ username, password เพื่อเข้าสู่ระบบ

หลังจากเข้าสู่ระบบสำเร็จจะพบการตอบกลับจาก server ลักษณะดังภาพ

4. กรอก IP เครื่องเป้าหมายแล้วกด Open
5. จากนั้นจะมีการถามเรื่องการเก็บ fingerprint ของเครื่องเป้าหมายปลายทาง ให้เรากด Yes เพื่อจำ fingerprint ของเครื่องเป้าหมาย
6. จากนั้นใส่ username, password เพื่อเข้าสู่ระบบ
หลังจากเข้าสู่ระบบสำเร็จจะพบการตอบกลับจาก server ลักษณะดังภาพ
ตัวอย่างการ remote เข้า Linux โดยใช้ SSH จาก SSH
การเข้าใช้งาน SSH จาก Linux จะแตกต่างจาก Windows ตรงที่ไม่ต้องติดตั้งอะไรเพิ่มเติม สามารถเข้าถึงระบบได้เลย โดยให้ทำดังต่อไปนี้
1. เปิด console ขึ้นมา
2. พิมพ์คำสั่ง
ssh <username>@<IP>
เมื่อมีการถามว่าจะให้จำ fingerprint ของเครื่องหรือไม่ ให้ตอบว่าใช่เพื่อเมื่อมีการ login ไปยังเครื่องเดิมจะไม่มีการถามซ้ำอีก
จากนั้นใส่รหัสผ่านเพื่อ login เข้าสู่ระบบ

จากนั้นใส่รหัสผ่านเพื่อ login เข้าสู่ระบบ
3. เมื่อ login สำเร็จจะพบ message ต้อนรับจากระบบดังภาพ

Comments
Post a Comment