Top Banner
Linux B asic L essons book I
48

Linux Lesson I

Apr 11, 2015

Download

Documents

api-3748447

Linux Basic Lesson : Book I
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Linux Lesson I

LinuxBasicLessons

book I

Page 2: Linux Lesson I

Linux Basic Lessons

บทนำำ

หากจะเอยถง Operating System (OS) หรอ “ระบบปฏบตการ” ทงหมดทกำาลงไดรบความสนใจจากผใชงานทวโลกในปจจบน เรากคงหลกไมพนทจะตองเอยถง Microsoft Windows, UNIX แลวก... โดยเฉพาะอยางยง ... Linux ... OS ทถอวาเปน “ญาตสนท” กบ UNIX มาแตกำาเนด โดยยงคงรกษาสถานภาพความเ ปน Open Source แบบ GPL (General Plublic License) หรอsoftware ทมลขสทธเปน “ของสาธารณะ” ตราบจนกระทงทกวนน

อะไรคอ “ลขสทธสาธารณะ”?

software ทพฒนาขนมาภายใต GPL หรอ “ลขสทธสาธารณะ” หมายถง software ท “ทกคน”สามารถทจะเปนเจาของ, จดทำาสำาเนา, ดดแปลง, แกไขเพมเตม หรอจำาหนายจายแจกได “อยางเสร”โดย ไมมคาใชจายใดๆ ทเปน “คาลขสทธ” เขามาเกยวของเลยตลอดทงกระบวนการ

ดงนนเอง ... ปจจยหนงททำาให Linux กลายมาเปน OS ยอดนยมสำาหรบนกคอมพวเตอรห ลายตอหลายคนทวโลก กเพราะ Linux เปน OS ทให “อสรภาพ” แกนกพฒนาโปรแกรมในการปรบแตงทกๆอยางตามทแตละคนตองการไดอยางประหยดทสด ... และถงแมวา Linux จะไดรบการพฒนาตอยอดมาจาก UNIX ซงทำาใหมพนฐานการใชงาน รวมไปถงโครงสรางและรปแบบของคำาสงทใกลเคยงกบUNIX มากจนเกอบจะนบใหเปน OS ในตระกลเดยวกนได ... แต Linux กไมใช UNIX อยด ...เพราะสวนทเปน source code ในระดบ kernel ของ Linux นน ถกพฒนาขนมาจากการผสมผสานsource code ของกลมนกพฒนาโปรแกรมคอมพวเตอรอสระทเรยกตวเองวา GNU (ยอมาจากชอเตมๆวา Gnu's Not UNIX เปนการเลนคำาของชอ เตมกบชอ ยอใหสะกดวนทบซอนกน) ซงเปน source code ทเขยนขนมาภายใตเงอนไขของ GPL หรอ “ลขสทธส าธารณะ” เชนเดยวกน ... จงทำาใหหลายๆ คนคดวาLinux ควรจะมชอเรยกเตมๆ วา GNU Linux ดวย ... แตนนกไมใชขอบงคบของ GNU อยด !!

จดกำาเนดทแทจรงของ Linux นนถอกำาเนดมาจากความตองการทจะจำาลองระบบปฏบตการ UNIXใหสามารถใชงานไดบนเครองคอมพวเตอรสวนบคคล เพอชวยใหนกศกษาทกคนสามารถเรยนรและฝกหดการใชงาน UNIX ไดบนเครองคอมพวเตอรทมระดบราคาไมสงมากจนเกนไป (UNIX เปน OS ทมลขสทธเชงพาณชย และมการจดจำาหนายในระดบราคาทเหมาะกบองคกรขนาดใหญเทานน ทงยงถกพฒนาขนมาใหทำางานบนเครองระดบ Mini Computer และ Mainframe ซงแพงเกนกวาทจะมไวในกรรมสทธระดบบคคลทวๆ ไปได) ... ในเวลานนกมsoftware เลกๆ ตวหนงทชอวา Minix ถกพฒนาขนมาโดย Andy Tanenbaum และแจกจายใหฟรแกนกศกษาทวไปเพอจดประสงคดงกลาวอยแลว ... อยางไรกตาม Minix ถกกำาหนดขอบเขตใหอยเพยงในกรอบของวตถประสงคท างการศกษา จงไมไดรบความสนใจทจะพฒนาตอยอดขนไปใหเปนOS อยางสมบรณดวยตวของมนเอง ... จนกระทงนกศกษาแหงมหาวทยาลย Helsinki คนหนง ชอวาLinus Torvalds คนไมคนมอจนกระโดดเขามาจดการเรองนดวยตวเองเมอป 1991 ... และนนกคอปเกดของ Linux

Linux เปน OS ทไดรบการพฒนาอยางตอเนองนบตงแตวนแรกๆ ของมน โดยอาศยความรวมมอจากนกพฒนาโปรแกรมคอมพวเตอรอ สระทวโลก มการสอสารขอมลเพอแลกเปลยนความคดและความร รวมไปถง source code ระหวางกนผานเครอขาย internet ... เปน “ผลตผลของชมชนขนาดใหญ” ในโลก Cyberspace ... จงเปนเรองธรรมดาสำาหรบนกคอมพวเตอรท มสวนรวมในเรองนทกๆ คน ทจะรสกถง “ความเปนเจาของรวมกน” ของพวกเขาตลอดมา

47.1

Page 3: Linux Lesson I

Linux Basic Lessons

เปนเวลากวา 10 ปท Linux ไดรบการรวมพฒนาโดยนกคอมพวเตอรนบลานคนทวโลก ... จนกระทงทกวนน ... Linux ไดรบการพสจนแลววา มนคอหนงใน OS ท มประสทธภาพและมเสถยรภาพสงมาก มการใชงานเปน “เครองแมขาย” หรอ server จรงบน internet เกนกวา 60%ของทงหมด และมการใชงานภายในองคกรธรกจทงขนาดใหญและขนาดเลกอกจำานวนนบไมถวน ถอเปนระบบปฏบตการหรอ OS ทมผลกระทบตอธรกจในวงการอตสาหกรรมคอมพวเตอรอยางมหาศาล ... เพราะ Linux ยงเปน Open Source แบบ GPL ทไมไดเรยกเกบ “คาลขสทธ” ใดๆ จากผใชงานเลย ... เนองจากลขสทธนนยงเปนของ “สาธารณชน” ทกๆ คน

อยางไรกตาม เราตองไมลมวา Linux นนถกพฒนาโดย “นกคอมพวเตอรอสระ” ซงสวนใหญกจะมความเชยวชาญและชำาชองกบการใชงานคอมพวเตอรอ ยในระดบทสงถงสงมาก ... ทงยงเรมตนการพฒนาโดยใหมโครงสรางของคำาสงใชงานแบบ UNIX ซงมประวตศาสตรยาวนานกวา 40 ปอกดวย ...ดงนน Linux ทพวกเราเหนในทกวนน จงเปนผลผลตทเกดจากการสะสมของประสบการณทไมใชระดบของ user ปกตทวไป ... ทกษะและมมมองทผใชงานจะตองเขาไปเกยวของ จงแตกตางจาก OSอยาง Microsoft Windows หรอ MacOS ทเนนการใชงานในระดบของ user มาตงแตแรก ... แตLinux ถกเนนหนกไปในเรองของความยดหยน , ความปลอดภย , ความมประสทธภาพ , ความมเสถยรภาพ ซงจำาเปนตองอาศยความเปนระบบระเบยบของการจดการ เพอจะสามารถตอบสนองความตองการในระดบเครอขาย computer network มากกวาจะเปนการใชงานแบบ stand aloneทไมยอมเกยวของกบใคร

โดยเหตนเอง การเรยนรและศกษา Linux จงจำาเปนทจะตองทำาอยางมระบบระเบยบพอสมควร เพอทจะจดกลมกอนของประสบการณอ นหลากหลายทสะสมรวมกนอยใน Linux ใหสามารถถกมองเหนเปนสวนๆ ไดอยางชดเจนมากขน ... ถงแมจะมคำากลาวอางทวา “ในระดบการใชงานของ user ปกตนน ไมจำาเปนตองเรยนรรายละเอยดในทกๆ เรอง” กตาม แตการแจกแจงรายละเอยดทสะสมอยในLinux ตลอดชวงเวลากวา 10 ปทผานมานน จะชวยเปนสอให user ทวไปสามารถเขาใจไดวาสวนไหนของ Linux บางทเขาไมจำาเปนตองเรยนรเลย หรอมสวนไหนทอยในอำานาจควบคมท userสามารถจดการไดดวยตวเองอยางมประสทธภาพ

เปนทนาเสยดายทนกคอมพวเตอรเ กงๆ ในโลกของ Linux จะเกงเฉพาะในเรองของการนำาความรมาใชเพอพฒนาโปรแกรม หรอไมกแคเกงในการบรหารจดการระบบเทานน แตไมไดเกงมากนกกบการถายทอดความรใหกบ user ทวๆ ไป เพอพฒนาคนทยงจะตองมสวนเกยวของอยในระบบดวยเสมอ ...การเขยนตำาราวาดวย Linux ฉบบนจงถกเขยนขนมาจากมมมองของ user คนหนง โดยหวงทจะถายทอดประสบการณขนพนฐานนใหกบ user อนๆ ดวยการพยายามคดสรรแยกแยะกลมกอนของประสบการณทรวบรวมอยใน Linux นนออกมาเปนหมวดหมทชดเจน เพอใหมองเหนภาพรวมของOS ททรงประสทธภาพตวนอยางเตมท กอนทจะเจาะลกลงไปศกษารายละเอยดของแตละสวนอยางจรงๆ จงๆ ตอไป.

Mr.Z.กรงเทพฯ, 09.11.2004

47.2

Page 4: Linux Lesson I

Linux Basic Lessons

Studying Outline of Linux

Partitioning &Installation /

/bin : binary files / command/dev : device drivers

root filesystem

/etc : configuration file/lib : kernel modules/sbin : superuser binary files /cmd.

/boot : boot images

/usr : system files & software

/var : log file & web/mail server

/tmp : temporary files

/swap : swap file system

/home : user’s files

Bootup Sequence ขนตอนในการ boot / ลำาดบของการเขาสระบบ

System Admin User & Group Account Management

File SystemRAIDSLVMNFSSMBFS (Samba)Local

ServicesDNShttpd / Apachesquid / proxye-mail

SecuritiesPAMNISiptables / firewallstcp / wrappers

47.3

Page 5: Linux Lesson I

Linux Basic Lessons

โครงรำงของบทเรยน

ผมจดการแบงหวขอของ “แบบเรยน” Linux ออกเปน 3 กลมใหญๆ คอ

1. Partitioning & Installation : เปนรายละเอยดของการตดตงระบบ2. Bootup Sequence : เปนรายละเอยดของขนตอนในการ boot / ลำาดบของการเขาสระบบ3. System Administration : เปนเรองของการดแลรกษา, การปรบแตง, หรอตดตงเพมเตม

โดยในแตละกลมทจดแบงไวน กจะมรายละเอยดปลกยอยออกไปอกหลายเรองดวยกน ซงผมทำาตารางสรปคราวๆ ไวในหนาท 3 แลว ... ผมสรางตารางนขนมาดวย concept แบบ mind map เพอใชเปน“แผนท” หรอ “ตกตา” ทจะเลารายละเอยดตอไปทละเรองๆ จนกวาจะจบเอกสารทงฉบบ ... ในขณะเดยวกน ผมกหวงวา “แผนท” ทเหนเปนตารางทวาน นาจะมสวนชวยใหผทเรมตนศกษา Linuxสามารถมองเหนหมวดหมของระบบตางๆ ททบซอนกนเปนโครงสรางหลกๆ ของ OS ตวนอยางชดเจนมากขนดวย

อยางไรกตาม ผมจะเรมตนเลาจากกลมท 1 ไปกลมท 2 แลวกจะแทรกเรองราวของคำาสงและการใชงานพนๆ ทวๆ ไป กอนทจะเลยเถดไปถงรายละเอยดในระดบของ System Admin ... ซงกเปนไปไดวาผมจะตองแยกเอกสารนออกเปน 2 ฉบบ โดยเอาสวนของ System Admin แยกไปเลาตางหากในแบบทตวเองตองคนควาเพมเตม ซงกจะถอโอกาสเรยนรในเชงลกเกยวกบ Linux ในระหวางการเรยบเรยงเอกสารทอนสดทายนนดวยเหมอนกน

กอนทเรมตนเขาสเนอหาของเอกสารฉบบน ผมขอออกตวไวกอนวา นคอตำาราทเขยนจากมมมองของuser ธรรมดาๆ คนหนง ถอเปนการเลาสกนฟงมากกวาการบรรยาย แลวกไมคอยจะเนนในเรองของความแมนยำาถกตอง 100% ... แตเอาแคยงสามารถมชวตรอดตอไปไดกบเครองคอมพวเตอรส วนบคคลทเหนตำาหนาตำาตากนอยทกวทกวน ... กพยายามอยางทสดครบทจะใหเนอหานนตรงไปตรงมาอยางเขาใจไดงายๆ ... บางทอนบางตอนอาจจะเขยนรายละเอยดจน 'เวอรไปหนอย แตเกอบทงหมดผมกเพงจะเรยนรเปนครงแรกเหมอนกน ... ทงคนเขยนกบคนอานไมไดมความรดไปกวากนมากนกหรอกครบ ... พวกเราลวนแลวแตเรมตนกนท "ศนย" ทงนนแหละคราวน :-) ... ผมยนยนไดแควาการไดเรยนรสงทเราไมเคยรบรมากอนเลยนน เปนความสขและความสนกอยางทสดเสมอ !!

47.4

Page 6: Linux Lesson I

Linux Basic Lessons

สวนท 1 : Partitioning & Installation

เราจะเรมตนกนตงแตการตดตงระบบ ... ?!

แมวา user สวนใหญจะมองวาการตดตงระบบเปนเรองทางเทคนคท “ ผใชงานทวไป” ไมนาจะตองเขาไปเกยวของ แตกอยางทบอกไวตงแตแรกแลววา การเรยนรเกยวกบ Linux นนจำาเปนทจะตองปรบทศนคตบางอยางของ user ซะกอนเปนอนดบแรก ... โดยเฉพาะในเรองของการดแล “เครองมอ”ของตวเอง

ทก วนน Linux ทมกำรจำำหนำยจำยแจกกนในตลำด จะมอยดวยกนหลำยคำยครบ และทกๆ คำยกพยำยำมทจะอำำนวยควำมสะดวกใหกบ user มำกขนกวำยคแรกๆ ของมนแลวดวย อยางเชนRed Hat, Mandrake, SuSE รวมไปถง YellowDog หรอของไทยๆ อยาง SiS, Grand Linux,Linux TLE, ฯลฯ (ซงสองตวหลงนไปเอา Red Hat มาใสภาษาไทยครบ เชนเดยวกบ Mandrakeทเรมตนจากการนำา Linux ของ Red Hat ไปดดแปลงมากอน สวน YellowDog กเอา Linuxของ Red Hat ไปดดแปลงใหใชงานไดกบเครอง Macintosh หรอเครองคอมพวเตอรท ใช CPUแบบ PowerPC) โดยสวนใหญกจะพยายาม “แขงกนงาย” ในปจจบน ยกเวน Linux “หวเอยงซาย”อยาง Slackware ทยงคงความเปนอมตะนรนดรกาลของเหลานกพฒนาโปรแกรมคอมพวเตอรรนแรกๆ ของ Linux ตราบจนกระทงปจจบน ... คายตางๆ ของ Linux เรมทจะรวมตวกนบางและเรมทจะถก take over โดยยกษใหญในวงการ software บางแลว แตกเกดมคายใหมๆ เขามาแซมอยเรอยๆ เพราะการตดตอเพมเตมหรอดดแปลง Linux นนเปน “ความอสระ” ทใครๆ กสามารถทำาไดอยแลว ... สำำหรบในปจจบน คำยทคอนขำงจะมนคงและมอทธพลมำกทสด กนำจะเปน คำยของRed Hat เพรำะตงใจทจะทำำตวเปนองคกรทำงธร กจมำตงแตแรก ตางจาก Linux คายอนๆ ทตงใจกน “อดมการณ” ตางอาหารหลก และจบลงดวยการ “ขายชอ” หรอ Brand Name ของตวเองใหกบยกษใหญเขาไปบรหารเพอการบรโภคกนตอไป

Linux แจกจำยไดฟรๆ แตไมไดแปลวำหำมทำำมำคำขำย !! เพรำะ Linux ตวจรงๆ นนมนเปนแค kernel ทเปนหวใจสำำคญของทงระบบเทำนนเอง ... แตกำรทเรำเหน Linux มอยดวยกนหลำยคำยหลำยสำำนกนน ลวนแลวแตเปน สงทแตงเตมเขำไปใหกบ kernel หรอ Linux แทๆเพออำำนวยควำมสะดวกใหกบ user แตละกลมแตละพวกอยำงเฉพำะเจำะจง ... อยางเชนSlackware จะเนนไปทกลมของ System Admin ทมความรความชำานาญในการตดตงและดแลระบบเครอขาย ... ในขณะท SuSE จะเนนทม software แถมฟรมาใหมากมายเพอให user เลอกใชไดตามใจชอบ ... หรอ Mandrake ทหลายคนมกจะบอกวาเหมาะกบการทำาเปน Workstationแตไมเหมาะกบงาน Server ... สวนคายของ Red Hat กประกาศตวผลตภณฑของตวเองออกมาเปนWorkstation บาง เปน Enterprise Server บาง หรอเปน Advanced Server บาง แตกตางกนไปหลายระดบองคกรดวยกน ยงไมนบรวมคายอนๆ อกหลายคาย ... เปน "อสรภาพทนาปวดหว"

พอสมควรทเดยว

กำรเลอกใช Linux คำยไหนไมสำำคญเทำกบทเรำจะตองเขำใจวำ kernel หรอตวแกนกลำงของระบบจรงๆ นนมนคอตวเดยวกนเสมอ ... นถงจะเปนจดเรมตนของการใชงานและการเรยนร ...ระบบปฏบตการหรอ OS ตวอนๆ อยาง Microsoft Windows มกจะมการ preloaded อยในเครองคอมพวเตอรหลายยหออยแลว ... หรอ MacOS กทำาการ preloaded มาจากโรงงานซะเลย

47.5

Page 7: Linux Lesson I

Linux Basic Lessons

เพราะเขาเปนเจาของลขสทธทง hardware และ software มาตงแตไหนแตไร ... สวน Linux มกจะมาถงเราในสภาพทเราตองจดการตดตงดวยตวเองเทานน คนทอยากจะใชงาน Linux จงตองเปนมนษยประเภทท “มอคน” พอสมควร

มแงมมเลกๆ อยเรองหนงทอยากจะบอกเอาไว ... สวนใหญของผทใชงาน Linux นนมกจะเปนพวก“ผตอตาน” software เถอน หรอของทละเมดลขสทธ พวกเขาจะใหความเคารพในทรพยส นทางปญญาของคนอนๆ คอนขางมาก ไมวาเจาของลขสทธนนจะไดรบความจงเกลยดจงชงจากชาวโลกขนาดไหนกตาม ... software ฟรในความหมายของพวกเขา คอ software ทเจาของลขสทธ “ยนยอม” ใหใชงานกนฟรๆ เทานน โดยไมนบรวม software เถอนทลกลอบขโมยรหสผานมาใชงานกน ทงๆ ทเจาของลขสทธไมยนยอมพรอมใจ ... เรยกวา “ไมใหกไมงอ” เพราะพวกเขารวมตวกนพฒนา software ขนมาใหใชงานกนฟรๆ อยางถกตองตามกฎหมายอยตลอดเวลาอยแลว ... เปนกลมบคคลทม “ความมอคน” อยางมศกดศรทถกทควรตามกฎหมายครบ

ดงนน หำกมใครยอนถำมขนมำวำ “ในเมอเรำม MS Windows ทใชงำนกนงำยๆ อยแลว ยงจะขยนหำตำำแยมำใสมอเพออะไรกน?” ... เหตผ ลกคอกำรทเรำม MS Windows ไวใชงำนกนงำยๆ นน สวนใหญมนไมถกกฎหมำยไงละครบ!! ... ซงบางครงผมเองกไมแนใจเหมอนกนวา การทชาวโลกตงแงรงเกยจนาย Bill Gates และ Microsoft นน เพราะเขานาเกลยดจรงๆ หรอเพราะพวกเราอยากจะมขออางทไมยอมจายคาลขสทธกนแน?! ... ผมเคยอานทงประวตและขอเขยนในหนงสอของBill Gates มากอนแลว แตกยงไมเหนแงมมไหนทควรจะถกจงเกลยดจงชงกนขนาดนน ยกเวนอปนสยสวนตวทคอนขางจะกาวราว และไมแครค วามรสกแบบมนษยดวยกนเทานนเอง ... แตวาคนทงโลกมโอกาสไดสมผสกบประสบการณทางตรงอยางนนซกกคน? พวกเราเกอบทงหมดรบรเรองราวของเขาผานสอ ผานขอเขยน หรอผานคำาบอกเลาตอๆ กนมา ... แลวกรมกนเกลยดเขา?! ... หรอเพราะพวกเราไมอยากจายคาลขสทธใหกบเขา พวกเราถงตองแกลงทำาเปนเกลยดกนจรงๆ ?! ... จะวาไปแลว ผมเองกรสกนยมชมชอบคนอยาง Bill Gates อยพอสมควร ... แตวาผมรกวธคดแบบของLinus Torvalds มากกวา ...

แตไมวาเราจะรสกรกใครหรอเกลยดใคร หากเรา “ มอคน” พอทจะตดตง OS ตวใดตวหนงดวยตวเองแลวละกอ ... ยากงายตางกนไมมากนกหรอกครบ ... แลวทสำาคญกคอ หากเราคดทจะตดตงแบบไมสนใจเรยนรอะไรเลยนะ ... Linux จากคายใหญๆ อยาง Red Hat, SuSE, Mandrake จะตดตงงายกวาเดมมากแลวครบในเวลาน !! ... แลวถาหากวาเรายง “มอคน” พอทจะซกซนทางปญญาอกการตดตง Linux นนกจะมเรองราวทเปดโอกาสใหเราไดเรยนรอกมากมายกวา OS ตวอนๆ ทงหมดดวย ... เพราะนคอโลกของ Open Source !!

เอารยง? ... เราจะเรมกนตงแต ... การแบง Partitions !!

เรองเลาเกยวกบ Partitions

คำาวา Partitions แปลตรงๆ ตววา “ฉากกน” เมอถกนำามาใชในโลกของ hard disk ทตดตงอยในเครองคอมพวเตอรทวๆ ไปนนจงหมายถง “ สงทแบงพนทของ hard disk ออกเปนสวนๆ” ... คอแทนทจะปลอยใหเครองคอมพวเตอรเหนพนททงหมดของ hard disk เปนเนอเดยวตอเนองกนโดยตลอด เรากจดการสงใหคอมพวเตอรมอง hard disk นนๆ แยกออกเปนทอนๆ โดยมจดเรมตนและจดสนสดทแนนอนลงไป ... คลายๆ กบการนำาชนวางของมาแบงซอยชองวางๆ ในตเอกสารออกเปนชนๆ ชองๆ อยางนนแหละ

หลายคนนาจะสงสยวาทำาไปเพออะไร? ในเมอเรากสามารถสราง folders หรอ directories แยก

47.6

Page 8: Linux Lesson I

Linux Basic Lessons

ตางหากกนเพอจดเกบไฟลทมหลากหลายเรองราวและประเภทของมนไดอยางเรยบรอยอยแลว ยงจะตองไปยงเกยวกบเรองของ partitions อกทำาไม?

โดยปกตแลว การแบง folders หรอ directories นนเปนเรองของการจดเกบ “ไฟลข อมล” ซงเปนเรองพนฐานท user ควรจะตองเขาใจไวเปน routine ของชวตการทำางาน (พวกทจดการกบเรองนไมไดแปลวาไมเขาใจชวต ... วางน!!) ... แตการจดแบง partitions เปนเรองของระบบครบ !!

เอำงนะ ...

... ลองนกถงภาพหองทำางานในสำานกงานทวๆ ไปกแลวกน ... ถงแมวาเราจะมแฟมใสเอกสารแบงเปนพวกๆ .. แยกเปนเรองๆ .. แลวในแตละแฟมกยงจดเรยงเปนหมวดหมทชดเจนดวยแถบชอหรออปกรณอะไรอยางอนกตาม ... มนกเรยบรอยดใชมยละ? ... แตเรากไมวางมนไวตามพน หรอกองสมไวบนโตะทำางานตลอดเวลา ... ใชรเปลา?

... เอาเรองพนทใชสอยในสำานกงานอกกแลวกน การทเราไมไดใชพนทรวมๆ กนทกอยางในหองโลงๆแตตองแบงเปนหองทำางาน, หองรบแขก, หองประชม, หองนำาฯ, หรอหองเกบเอกสาร ฯลฯ เพราะมนเปนเรองของความเปนระบบระเบยบ และความเปนสดสวนของพนทใชสอยทชดเจน ... ใชรเปลา?

การจดแบง partitions ใหกบ hard disk ของเครองคอมพวเตอร กเพอความเปนระบบระเบยบของการใชสอยพนททงหมดใน hard disk นนเอง ... น ... concept ของมนกคออยตรงน !!

แลวยงไงถงเรยกวาเปนระบบระเบยบละ?

โดยปกตแลว เรำจะแบงพนทสวนทเปน OS ออกไปตำงหำกเลยทอนหนง แลวกแยกสวนทเกบapplication software หรอโปรแกรมประยก ตสำำหรบใชงำนอนๆ ออกไปอกทอนหนง จำกนนกเปน พนทสวนทเรำเกบไฟลขอมลหรองำนตำงๆ ของเรำ ... ซงโดยทฤษฎแลวพนททง 3 สวนนไมควรจะปะปนกน เพราะ software สวนทเปน OS อาจจะตองมการ upgrade หรอไมกตองตดตงซอมแซมในกรณทเสยหาย หรอตดตงสวนประกอบอนๆ เพมเตม ... ซงไมแนวาเราอาจจะโชครายทตองลางไสลางพงทงทงหมดดวยรเปลา ... ดงนนจงไมควรเสยงใหมนปะปนกบพนททเราใชจดเกบไฟลขอมล !! ... ในขณะท OS มกจะมขนาดคงท ไมคอยจะมการเปลยนแปลงทหวอหวามากนก softwareประเภท application กลบมโอกาสทจะเพมเตมจำานวนเขาไปไดเรอยๆ ขนอยกบความหลากหลายของงานทเราจำาเปนตองใช ... ดงนน เขาจงมกจะแยกพนทสวนหนงใหเอาไวเกบ application โดยเฉพาะ เพอทมนจะไมรกลำาไปกนพนทสวนอนๆ ของ hard disk จนเตม ... เพราะถงแมวาจะไมมอะไรเสยหายเลยในระบบ แตหากพนทของ hard disk เกดเตมขนมาจรงๆ ... ระบบนนๆ กจะไมสามารถ boot ขนมาไดอกเหมอนกน ... เปนอนตรำยทหลำยคนไมทนจะคำำ นงถงครบเรองน !!

พนททเราใชเกบขอมลกเหมอนกน เปนอกพนทหนงทมแตการใชมากขนเรอยๆ ตลอดเวลา และนาจะมอตราการเพมของพนทมากกวาสวนทเปน application ซะอก ... ในขณะเดยวกน การเปลยนแปลงของขอมลในพนทตรงนกแทบจะมการเปลยนแปลงเปนรายวน ซงบอยครงท user มกจะตองการbackup หรอทำาสำาเนาขอมลแยกออกไปเกบตางหาก ... และไมมเหตผลทจะปลอยใหขอมลทมกจะเปลยนแปลงไปปะปนกบขอมลสวนทไมคอยจะมการเปลยนแปลงอยาง application software ...โดยเหตน พนทสวนทใชเพอการจดเกบไฟลข อมล จงมกจะถกแยกออกไปตางหาก ทงเพอเหตผลของการ backup และเพอความปลอดภยในกรณทระบบเกดลมขนมาจนตองตดตงใหม ... เพราะอยางนอยทสด hard disk สวนทแบงไวเพอเกบขอมลน กจะไมตองเขาไปพวพนกบการลางไสลางพงครงไหนๆ ดวยเลย

เปนทนาเสยดายทระบบปฏบตการทวไปไมพยายามพดถงเรองนใหชดเจน โดยเฉพาะ Microsoft

47.7

Page 9: Linux Lesson I

Linux Basic Lessons

Windows และ MacOS เพราะเลงเปาไปท “ความไมตองปวดหว” ของผใชงาน ดวยการปลอยใหผใชงานทวๆ ไปเสยงกบการตอง “ปวดใจ” แทน เมอระบบเกดลมขนมาจรงๆ ...

ทสาหสกวานนกคอ ... Microsoft Windows มขอจำากดในเรองของการจดแบง partitions อกตางหาก เพราะดนไปกำาหนดชอของ partitions ทงหมดดวย “ตวอกษรเดยว” แลวกยงกนอกษรบางตวไวเพอการใชงานในระบบ network หรอเพอใชเรยกอปกรณตอพวงอนๆ อกดวย ทำาใหความยดหยนในเรองของการแบง partitions เตมไปดวยขอจำากดทไมควรจะตองม จนผใชงานทวโลกไมมโอกาสไดเรยนรถงประสทธภาพทแทจรงของการจดการระบบทถกตอง

สำาหรบ MacOS ยงแลวใหญ เพราะตลอดประวตศาสตรของ Macintosh นนเปนระบบปดทไมเปดโอกาสใหใครเขาไปจนจานกบตวระบบเลย มนคดเองเออเองมาตงแตแรก ถงแมวาจะพยายามทำาใหงายตอการใชงาน แตกไมไดชวยเพมพนความรในการจดการระบบใดๆ ใหกบ user เลย ... คำาวาpartitions จงเกอบจะไมมการเอยถงเลยในโลกของ Macintosh !!

สวนในกรณของ Linux นนจะแตกตางกน ... Linux ยอมให user แบง partitions ไดอยางอสระอยากจะมเทาไหรกทำาเอาเอง อยากจะใหแตละสวนใหญแคไหนกได อยากจะใหตรงไหนเรยกวาอะไรกไมคอยเกยงงอนมากนก ... ปญหากคอ ... จะเอายงไงกบมนดละ? เพราะถาแบงไมดมนกตดตงไมสำาเรจ หรอบางทเรากอาจจะเผอพนทเอาไวไมพอกบทมนตองการซะอก !! ... นาปวดขมบมาก !!

ครงหนงในอดต มนจงเกอบจะเปนภาคบงคบท user ตองอานเอกสารทแนบมากบ Linux ใหเรยบรอยซะกอนทจะเรมทำาการตดตง ตองรจกชอและ spec ของอปกรณท กชนทตวเองมอย ... แคน userกเผนแนบไปแลวครบ ยอมไปเสยงกบ “ความปวดใจ” ท OS อนๆ หยบยนใหซะดกวา ... แตทกวนนLinux คายใหญๆ อยาง Red Hat หรอ Mandrake กเลกทำาตวเปน technicians ตาบอดกนแลวมนมระบบ auto-partitioning ให user ใชงานเหมอนกบ OS ตวอนๆ ดวย ... เรยกวาหยบยนความเสยงใหเลยง “ความนาปวดหว” ไปทอดหนงกอน ... เพอความสบายใจชวคราวของ user นนๆ

โดยปกตแลว Linux จะใชเวลาในการตดตงตวเองประมาณ 1 ชวโมงครบ ซงเปน 1 ชวโมงทเราจะไดครบทง OS และ application พนฐานทตองการ ไมเหมอนกนกบ Microsoft Windows ทใชเวลาประมาณ 1 ชวโมงเพอทจะไดแค OS มาปรบแตงอะไรๆ อกหลายอยางกอนทจะเรมใสapplication ใหกบมน ... ดงนน การเรยนร Linux กนาจะเรมจากเวลา 1 ชวโมงทเราควรจะตองจายนนเอง ...

เรากเพยงแตบอกให Linux จดแบง partitions ตามทมนเหนสะดวก ... (ตรงนยงไมพดถงการตดตงเครองคอมพวเตอรแบบหลาย OS นะครบ เพราะการตดตงแบบนนควรจะตองเรยนรอะไรๆ ใหมากกวานอกนดหนอย :-) ... เนองจากการทำา “ตามสะดวก” ของ Linux อาจจะหมายถงการลบขอมลของทง hard disk ทงไปเลยกได) ... จากนนกเลอก applications พนฐานทเรานกอยากจะมไวใชงาน ... ตอบคำาถามใหกบมนซกนดหนอย แลวกปลอยใหมนจดการสวนทเหลอ สำาหรบเราในฐานะของ user กแครอและคอยเปลยนแผน CD ตามทมนเรยกรอง ... ประมาณ 1 ชวโมงใหหลงLinux ตวทเราเลอกกจะตดตงตวเองจนเสรจเรยบรอย ... งายมาก !!

ถาเราเปน user ประเภท “แดกดวน” เรากจะได OS พรอมดวย applications ไวใชงานบนเครองทจดหามาเรยบรอยแลว ซงสามารถใชงานพนฐานของสำานกงานทวไปไดทนทไมวาจะเปนการพมพง านเอกสารทเรยกวา word processor หรอสรางกระดาษทำาการทตองใสสตรคำานวณประเภทspreadsheet, ทำา slides เพองาน presentation, ใชโปรแกรมวาดรประบายส , ดหนง-ฟงเพลง,ทอง internet หรอใชโปรแกรม IM (Instant Messenger) ของคายตางๆ รวมไปถง e-mail ...กวา 80% ของเครองคอมพวเตอรประจำาสำานกงานกใชงานกนอยแคนเอง ... ถกมย?

47.8

Page 10: Linux Lesson I

Linux Basic Lessons

ในกรณข อง “พวกมอคน” ... เรำกำำ ลงจะเรมบทท 1 กนจรงๆ ซกท ... :-)หลงจากการตดตงแบบ “แดกดวน” ... Linux ไดสรางไฟลขนมาประมาณ 3-4 หมนไฟล แยกเกบไวใน directories ตางๆ นบ 10 directories ... ถาเรยกกนดวยภาษาแบบ Linux เขามกจะเรยกทงหมดนนวา File Systems ... มนคอเวทมนตศกดสทธในโลกของ Linux ครบ ... เพรำะ Linux

จะจดกำรทกอยำงทเกยวกบกำรทำำงำนของมนดวยระบบ File Systems เทำนน ... คอมองทกๆองคประกอบเปน "ไฟล" อยำงสมบรณ และบรหำรจดกำรดวย concept ของกำรบรหำรจดกำร"ไฟล" เทำนนเอง !! ... เปนแนวคดงายๆ ททรงประสทธภาพอยางเหลอเชอ ซงตองยกยองนกคอมพวเตอรรนบกเบก UNIX ทคดเรองอยางนออกมาเมอกวา 40 ปทแลว และตกทอดเปนมรดกมาถง Linux ในปจจบน

ดงนน แมวาเราจะแบง partitions ออกไปหลายๆ สวนตามทเราตองการ Linux กยงคงจดการทงหมดดวยแนวคดและวธการแบบ “ไฟล” ธรรมดาอยด ... จะแตกตางกนกเพยงในดานของ Logicalทจะมการกำาหนดขอบเขตหรอขนาดใหญสดของแตละ partitions ไวใน File System Tables(พวกเขาเรยกกนยอๆ วา fstab) ...

ถำเรำรขนำดทตองกำรใชในแตละ directories เรำกจะรขนำดของ partitions ทเรำควรจะตองจดแบงไวตงแตแรกดวย ... ถกมย?

แตการตดสนใจวาควรจะกำาหนดใหแตละ partitions มพนทสำารองมากนอยเทาไหรนน เรากตองรดวยวาแตละสวนทเหนเปน directories นน ถกกำาหนดใหทำาหนาทอะไรบางในระบบของ Linux

ยอนกลบไปดตารางหรอ “แผนท” ทผมทำาไวใหอกครงครบ ...

File System หลกๆ ท Linux จะตองมกคอ Root File Systems ซงสวนนแทนดวยเครองหมำย / หรอทเรยกวำ slash (เปนคนละขางกบทเราเหนในระบบของ DOS หรอ Windows ทใชเครองหมาย \ หรอเรยกวา back slash แทน) ... ถาเราตดตงแบบทปลอยให Linux ตดสนใจเองมนกจะสรางเฉพาะ partition สำาหรบ / หรอ Root File Systems นขนมาโดดๆ แบบเดยวกบทWindows หรอ MacOS นยมทำากน

ในระบบของ Root File Systems นนจะตองประกอบไปดวย 5 directories

ดวยกน โดยทง 5 ตวนจะตองไมแยกออกไปเปนคนละ partitions เดดขาด ...ถอวาเปนแกนหลกของระบบ Linux ทงระบบเลยกวาไดครบ ... 5 directories ทวานกคอ

/bin : เปนพนททเกบรวบรวมคำาสงของ Linux สำาหรบการใชงานในระดบ user ทวไป ... คำาวา bin ยอมาจากคำาเตมวา binary โดยไฟลค ำาสงทอยใน /bin นมกจะเปน softwareเลกๆ ทใชงานแบบ interactive command line ลวนๆ ... เปนโลกทเขาเรยกกนวาshell หรอ terminal บางคนกเรยกวา text mode แบบทจะไมคอยจะไดมโอกาสเหนอกแลวในโลกของ Microsoft Windows และ MacOS

อยางไรกตาม text mode ถอเปน mode การใชงานท “บรสทธ” มากๆ ทงยงมประสทธภาพและความคลองตวสง ใชทรพยากรของระบบนอย และทำางานตรงกบเรองทตองการอยางรวดเรว ... ทไมสะดวกกคอการจดจำาคำาสงและรปแบบการใชงานแตละคำาสง ซงมรายละเอยดเยอะมาก ... แตกคมคาสำาหรบการเรยนร เพราะ Linux นำาคมอทงเลม copy ลงไปใหเราเรยกดไดงายๆ ตลอดการใชงานอยแลว

47.9

Page 11: Linux Lesson I

Linux Basic Lessons

/dev : ชอนมาจากคำาเตมวา device มนจงเปนพนทท Linux เกบรวบรวม drivers ของอปกรณท งหมดเอาไวตงแต hard disk, floppy disk, modem, printer, mouse,lan card, pcmcia, ฯลฯ และอนๆ ... เปนจดรวมท Linux จะใชคนหาวธการสอสารกบอปกรณท งหมดทตอพวงอยกบเครองคอมพวเตอรของเรา

/etc : ผมแปลคำานวา “จบฉาย” หรอทภาษาไทยเราใชเครองหมายเปน “ฯลฯ” นนแหละครบภาษาองกฤษอานวา et cetera หมายถง “อนๆ อกมากมาย” ... เปน directory ทเกบไฟล configuration ทงหมดของระบบเลยครบ ... เรยกวาจะตกแตงดดแปลงอะไรใหกบระบบกใหมาจดการเขยนคำาสงทงไวในนกแลวกน ไมวาจะเปนการตดตงระบบnetwork, web server, mail server, ร ะบบ ร กษาคว ามปลอ ดภ ยปร ะ เภทfirewalls, และอนๆ ... Linux ทวาใชงานไดตงหลากหลายรปแบบนน เกอบทงหมดครบทกำาหนดวธทำางานใหกบมนจากใน directory นเพยงแหงเดยวเลย

/lib : มาจากคำาเตมวา library ซงเปนแหลงรวมของ module ยอยๆ อกมากมายใหเราเลอกใชงานควบคไปกบระบบของ Linux ... ความยดหยนของ Linux กอยทตรงนดวยครบเพราะ Linux ทำางานในลกษณะทเปน module มาประกอบกน โดย user จะสามารถเลอกไดวาตองการให Linux เรยกเฉพาะ module ไหนขนมาใชงาน หรองดการเรยกใช module ไหนทไมมความจำาเปน ... ดวยวธการอยางน Linux จงสามารถทจะตดตงใหเปนเครองแมขาย (server) หรอเครองลกขายแบบ workstation ไดโดยไมตองแยก software ออกเปนคนละผลตภณฑ (การแยก product ออกจากกนอยางในกรณของ Red Hat นนเปนเรองของการใหบรการเทานนครบ Linux ตวทเราไดมาคอตวเดยวกนแตถกกำาหนดคาใหเรยกใชงานแตละ module ไวแตกตางกน หรออาจจะจดหา modules ไวใหมากนอยแตกตางกนบางเทานน ซง user พอจะสามารถหาจากแหลงอนๆ ไดฟรอยแลว

/sbin : เปนไฟล binary สำาหรบ superuser หรอผดแลระบบเทานนครบ ... สวนนนาจะนบเปนสดยอดของความปลอดภยทคนออกแบบ UNIX และ Linux คดออกมาเลยทเดยวคำาสงใชงานทอนตรายแกระบบทงหมดจะถกแยกเกบตางหากจาก /bin และไมอนญาตให user ทวไปมองเหนไฟลค ำาสงเหลานเลยดวย ... เพราะฉะนนการท user ธรรมดาๆคนหนงจะทำาอะไรใหระบบถงขนเสยหายหรอลมลงไปจรงๆ นนไมใชเรองงายเลยในโลกของ Linux

ปกตแลวทง 5 directories น user จะไดรบสทธใน “การอาน” หรอเรยกไปใชงานเทานน แตไมมสทธแกไขหรอดดแปลงใดๆ ทงสน เพราะตองปลอยใหเปนธระของคนทมหนาทดแลระบบโดยตรงเพยงคนเดยว ... โดยทวไปแลว Root File Systems ทถอเปนหวใจของระบบนน เกอบจะไมมการเพมเตมหรอเปลยนแปลงในดานขนาดของการจดเกบอกเลยหลงจากการตดตง ... ดงนน สวนใหญเขาจงจดการแบง partition ออกมาเพอทำาหนาทของ Root File Systems แคเพยงพอกบการupgrade ไวบาง หรอเผอการหา module มาเพมภายหลงเลกๆ นอยๆ เทานน โดยจะไมยอมใหปะปนกบพนทสวนอนๆ เพอใหการเปลยนแปลงแกไขหรอการตดตงเพมเตมแกระบบ สามารถแยกเปนเอกเทศตางหากจากไฟลขอมลหรอ application พนฐานทมการตดตงไวทงหมด

boot images

ม directory เลกๆ อยตวหนงทนาจะพดถงครบ เราจะเหนมนแสดงตวในชอวา /boot ซงโดยปกตมนจะมขนาดรวมเบดเสรจแลวประมาณ 5 MB เทานนเอง

47.10

Page 12: Linux Lesson I

Linux Basic Lessons

ขางในของ /boot จะเกบไฟลทเรยกกนวา boot images หรอ kernel images เอาไว ซงเปนไฟลทตองใชในการ boot ระบบ Linux ขนมา เรยกวาถาสวนนเสยหายกเปนอนวาไมตอง boot ขนมาใชงานกนละ เพราะนคอสวนทเปน kernel ทจะกำาหนดคาตางๆ ใหเครองคอมพวเตอรของเราสามารถเขาใจคำาสงแบบ Linux ทเกบอยใน Root File Systems ไดนนเอง

จรงๆ แลวมนตองทำางานคกบ Root File Systems อยแลวครบ บางครงจงไมนยมแยกออกไปเปนpartition ตางหากจาก Root File Systems แตผดแลระบบหลายคนกยงนยมแยกมนออกไป รวมทงการตดตง Linux ก ยงม option ใหเราสามารถแยก partition นออกมาจาก Root FileSystems ไดดวย ... เพราะโดยปกตแลว Linux มกจะมการปรบปรงแกไขเฉพาะสวนของ kernelเลกๆ นอยๆ กอนทจะมการ upgrade ครงใหญๆ ในระดบ version หรอตวเราเองสามารถทจะเขาไปกำาหนดคาของ module ตางๆ แลวสราง kernel ทใชงานอยางเฉพาะเจาะจงของเราขนมาเองกได... การแยกออกมาตางหากกเพอใหมนสะดวกกบการซอมแซมเฉพาะสวนเฉพาะเรองของการ bootโดยทไมตองเรมตดตงระบบใหมเทานนเอง

เรองของ boot images มสวนทใกลชดกบเรองของ boot sequence หรอลำาดบขนตอนในการboot ระบบ ซงเปนสวนท 2 ของเอกสารชดน เพราะฉะนนจงขอเวนไวเลารายละเอยดทหลงครบ

/usr : พนทสำำ หรบเกบ software และ application ตำงๆถาเปรยบเทยบกบ Microsoft Windows แลวนกเปรยบเสมอน folder ทชอวา Program Filesนนเอง ... เปนแหลงรวมของ software และ application ตางๆ เพอการใชงานทนอกเหนอจากการดแลระบบดวย shell command

การตดตง Linux มกจะนยมใหแยก /usr ออกไปเปน partition ตางหาก เพราะเปนสวนท user หรอadmin สรรหาอยางอนเขามาเพมเตมใหกบการใชงาน แตไมถงกบเปนตวระบบจรงๆ ... ถงแมวาจะมapplication ทมสวนเกยวของกบระบบหลายตวถกจดเกบไวท /usr นกตาม แตโดยปกตของการใชพนทสวนน กมกจะโตวนโตคนพอสมควร ขนอยกบความขยนหา application แปลกๆ มาเพมเขาไปมากแคไหนดวย ... ดงนน เพอเปนการปองกนไมใหเกดการเตมจนเพลน แลวลกลามไปกนพนทสวนอนๆ ของระบบเขา เขาจงนยมใหแยกไวตางหาก

/var : พนทเพอกำรสอสำรและกำรตรวจสอบไมแนใจเหมอนกนวามนจะมาจากตวเตมๆ วา varieties รเปลา? เพราะสวนใหญของไฟลท ถกจดเกบอยใน /var นมความหลากหลายไมแพ /etc เหมอนกน คอเปนทง mail box, message log,log file, ตลอดไปจนถงเรองของ web server ดวย ... ผมจงเหมาๆ เอาวามนเปนพนทท Linux ใชเพอ “การสอสารในระบบ” มากกวาจะเปนการเกบไฟลขอมลทตอเนองเปนชนเปนอน

หวใจสำาคญของ /var ทเกยวของกบการดแลรกษาระบบกคอ มนจะมไฟลทบนทกรองรอยของการทำางานทงหมดของ Linux เอาไวตลอดเวลา เพอใหเราสามารถเขามาคนดไดวา ปญหาทเกดขน ณ เวลาหนงๆ นน มสาเหตมาจากสวนไหนของระบบบาง เพอทเราจะไดตามไปแกไขใหถกทศถกทาง ... ตรงนกตองถอเปนสวนหนงของการสอสารทระบบตดตอกบผดแลอยตลอดเวลา

นอกจากนนแลว /var กมสวนทเอาไวเกบ spool ตางๆ เชนการสงพมพผ าน print server และระบบe-mail ทจะพกไฟลขอความระหวาง user ทกคนไวใน mailbox ทอยใน /var นเหมอนกน

สำาหรบ web server ซงเปนเรองของการกระจายขาวสารขอมลแบบไมเจาะจงผรบ ผมกยงถอวาเปน

47.11

Page 13: Linux Lesson I

Linux Basic Lessons

เรองของการสอสารอกเชนกน แมวาเราสามารถกำาหนดให web pages ของเราอยทไหนกไดในระบบแตคา defaults ของ Linux กคอเกบอยภายใต directories ใน /var นเทานน

อยางไรกตาม โดยหนาทจรงๆ แลว /var เกอบจะถอวาไมมความเกยวของกบการใชงานโดยตรง แตมประโยชนเ พอการดแลรกษาและการตรวจสอบการใชงานของระบบเทานน องคกรใหญๆ หลายแหงจงมการสง backup ขอมลประเภทนแยกออกไปเกบตางหากเปนระยะๆ ... การแยก partition ตางหากใหกบ /var จงเปนเรองของความสะดวกในการ backup มากกวาการปองกนความเสยหายทอาจจะเกดขน

/tmp : กระดำษทดของระบบเปน directory ยอดนยมครบตวน ยอมาจาก temporary ทหมายถง “ชวคราว” สวนใหญจะเปนไฟลขยะทเกดขนระหวางกระบวนการทำางานของ application ตางๆ หรออาจจะเกดจากคำาสงบางอยางของระบบซะเอง

ไฟลประเภทนไมมความจำาเปนตอง backup แลวกไมจำาเปนตองกลวเสยหรอหาย แตทตองกลวคอมนจะเลอะเทอะอยใน File Systems อนๆ เทานนเอง ... ดงนน /tmp จงควรจะถกแยกออกไปเปนpartition ตางหาก เราจะไดซดกบมนไดเตมทไมวาในกรณใดๆ กตามครบ

swap : หนวยควำมจำำ สำำ รองตวนเปน File System ตางหากประเภทหนงไปเลยครบ และไมไดถกมองเปน directory เพราะปกตจะมโครงสรางของการจดเกบไมเหมอนระบบไฟลป กตของ Linux ... ดงนนจงควรจะแยกออกไปเปน partition ตางหาก เพอใหมนสามารถถก format ใหเปนโครงสรางแบบพเศษของมน (มบางกรณทเราไมสามารถสราง swap partition ขนมาในระบบทเราตดตง เรากสามารถสรางไฟลเ ปลาขนาดใหญๆ ขนมาทำาหนาทนแทนกได ซงจะคลายกบ Microsoft Windows ทไมไดแยก swap fileออกไปเปน partition ตางหาก)

หนาทหลกของ swap กคอ มนจะทำาตวเปน “หนวยความจำาสำารอง” ของระบบ ในกรณทหนวยความจำาหลกทเปน memory card แบบ hardware จรงๆ เกดไมพอใชขนมา Linux กจะทดลงไปในสวนswap น โดยสงทแตกตางจาก /tmp กคอ อะไรกตามทถกเขยนลงไปใน swap จะถกลบหายไปเองเมอความจำาเปนทจะตองใชงานนนหมดไป โดยทเราไมตองตามไปเชดหรอตามไปลบใหวนวาย

/home : พนทสวนตวของ user

ถาจะพดถงไฟลขยะ พนทใน /home นเองทนาจะมขยะมากทสด และเปนขยะทไมคอยจะมใครกลาทำาลายแบบสมสสมหาดวย เพราะสวนใหญจะเปนไฟลข อมลท user แตละคนจดเกบเอาไว แตอาจจะรกรางและไมไดรบการดแลรกษาเทาทควร ... ดงนน /home จงเปนอกหนง partition ทสมควรจะแยกออกไปตางหากมากทสด เพราะนอกจากมนจะไมถกรบกวนเนองจากการตดตงระบบใหมแลว มนยงอาจจะมการกำาหนด quota ของพนทใชสอยสำาหรบ user แตละชอไดอกดวย (การกำาหนด quotaของ Linux เปนการกำาหนดในระดบ partition ดงนนพนทสวนไหนทจำาเปนตองมการกำาหนด quotaของ user จงตองแยกออกไปเปน partition ตางหากเสมอ)

พนทใน /home ถอเปนพนทของ user โดยตรงทจะไดรบสทธเตมทในการจดการไฟลข อมลทอยภายใตชอของตวเองทงหมด ซง user จะตองหมนดแลรกษาอยาใหรกเลอะเทอะหรอมขยะเกบไวมากจนเกนไป เพราะในการเรยกใชงาน application บางตว หรอระบบ graphic ของ Linux ท

47.12

Page 14: Linux Lesson I

Linux Basic Lessons

เรยกกนวา X Windows นน user หนงๆ จะตองสามารถเขยนไฟลบางอยางลงไปใน /home

ของตวเองไดดวย มฉะนนแลว กจะไมสามารถเขาส graphic mode ของ Linux ไดเลย

ทงหมดนกคอ partitions หลกๆ ของ Linux ทพวกเราจำาเปนจะตองรจกเอาไว และจะตองกำาหนดขนาดของมนใหพอเพยงกบการใชงานจรงดวย เพอใหระบบของเรามประสทธภาพและมความยดหยนบนพนฐานทจะตองปลอดภยทสด ... ปญหาของคนทเพงจะเคยสมผสกบ Linux กคอ มนไมมกฎตายตวในเรองของขนาดสำาหรบแตละ partitions เพราะขนอยกบความจำาเปนของเราเอง ... ผมกเคยใชวธการลงแบบ auto-partitioning เพอขอดขนาดแตละ directories แลวนำามาประกอบการตดสนใจกอนทจะตดตงระบบเปนรอบทสองหรอสามสหา ... ซงในขณะทเราไมไดคนเคยหรอชำานชำานาญกบการดแลระบบดวยตวเอง ผมคดวาเรานาจะลองศกษาตวเลขทตำาราบางเลมแนะนำาเอาไวเปนแนวทางเบองตนกนาจะเปนความคดทไมเลวนก ... ปกตเขาจะแนะนำากนอยางนครบ ...

/ : 256 MB/boot : 5 MB<swap> : 2 เทา -2.5 เทา ของขนาด physical memory/usr : 512 MB/var : 256 MB/tmp : 329 MB/home : ประมาณ 100 MB ตอ 1 user

ดงนน ถาสมมตวาเราม physical memory อยท 256 MB เรากควรจะม swap partition ใหญประมาณ 512 MB และหากเราเตรยมเครองไวใชงานรวมกนซก 5 user ท /home กควรจะมขนาดประมาณ 500 MB ... หลงจงกจะตองใชพนท hard disk ประมาณ 2.37 GB เพอตดตง Linuxทงตวพรอม application พนฐานครบ

ตรงเรองของ swap partition นนมเกรดเลกๆ ทางเทคนคเลาวา ขนาดใดๆ ทใหญเกนกวา 256 MBนนจะเปนพนทเสยเปลาทไมมโอกาสถกใชงานเลยในโลกของ Linux !? ... แตทกตำารากจะพยายามบอกไวเหมอนๆ กนคอใหสราง swap partition ประมาณ 2-2.5 เทาของ physical memory ...ทงๆ ท เครองคอมพวเตอรทมหนวยความจำาระดบ 256 MB นน Linux เกอบจะไมเคยถามหา swapเลยซกครงเดยว !! ... ถางนอะไรคอเหตผลของการสราง swap partition ไวใหญโตเกนจำาเปน?

เกยวกบเรองน ผรทางดาน Linux กลาววา swap สวนทเกนจำาเปนนน จะถกใชงานในกรณเดยวคอการ dump ขอมลของทง hard disk เพอเหตผลในการทำาสำาเนากอนทจะมการตรวจซอมบำารงเครองแมขายหรอ Server เพราะโดยปกตแลว Linux จะไมไดเขยนไฟลจำานวนมากๆ พรอมๆ กนในลกษณะนน เราจงไมเคยพบเหนความตองการ swap ทใหญเกนกวา 256 MB เลยตลอดการใชงาน

อยางไรกตาม ในกรณของคนทกำาลงคดทจะเรมแกะรอย Linux สวนใหญกมกจะนำาเครองรนเกาๆมาตดตงระบบเพอศกษาเรยนร ... spec เครองจงอาจจะตำาขนาดวาม hard disk อยเพยงไมเกน 2GB ซำายงม physical memory ไมกสบ MB อกตางหาก ... กตองขอแสดงความยนดดวยครบเพราะ Linux สามารถถกตดตงในลกษณะทบบๆ รดๆ อยางนน ดวย options ของระบบทอาจจะไมfull features ไดดวยเหมอนกน ... พนทของ partitions ตางๆ กจะมความจำาเปนดานขนาดเลกลงตามตวเลขนครบ ...

/ : 35 MB/boot : 5 MB/usr : 232 MB/var : 25 MB/tmp : 30 MB/home : 100 MB

47.13

Page 15: Linux Lesson I

Linux Basic Lessons

นคอ minimum ท Linux ตองการครบ ... รวมกนทงหมดยงไมถง 500 MB เลยดวยซำา!! ซงกตองยอมรบความจรงดวยวาการตดตงในพนทจำากดจำาเขยอยางน ไมตองหวงผลในเรองของ graphic ครบเพราะมนเปนไปไมไดเลย ... Linux ทตดตงในสภาพแวดลอมอยางนจงทำางานไดเฉพาะ text modeหรอ command line เทานนเอง ... แตกเหมาะกบการศกษาเรยนร และใชเครองคอมพวเตอรร นเกาๆ ใหเปนประโยชนม ากทสดดวยครบ เพราะงาน system admin สวนใหญไมไดมความตองการในดาน graphic mode เลย (นอกจากนนกยงมขอแนะนำาวา ไมควรทจะใชชอของ system adminหรอ root ในสวนทเปน graphic mode อกตางหาก !! )

ขออนญาตเลาเปรยบเทยบกบ Microsoft Windows ซกเลกนอยครบ การแบง partitions แบบทยกมาใหเหนน ถอวาเปน minimum ทควรจะเปนในโลกของ Linux ... แตกเปนสงทแทบไมนาจะเกดขนไดในโลกของ MS Windows เพราะ MS Windows จะตองกำาหนด “ตวอกษร” 1 ตวใหกบแตละ partitions ทมในระบบของมน ... ดงนนเราจงนาจะเหน MS Windows ทำาอยางนครบ

/ : ใหเปน drive C:

/boot : ใหเปน drive D:

/usr : ใหเปน drive E:

/var : ใหเปน drive F:

/tmp : ใหเปน drive G:

/home : ใหเปน drive H:

ซงถามการตดตง CD-drive ไว มนกตอง run ชอตอไปอก เปน I:, J:, K:, ... etc. ... ม externaldrives หรออปกรณบนทกขอมลอะไรทตอพวงอย ทงหมดกจะถกกำาหนดชอใหตอเนองไปเรอยๆอยางน ... แตกเปนไปได “ในทางทฤษฎ” เทานนครบ เพราะ MS Windows จำาเปนตองสงวนบางdrive ไวใชเฉพาะงานของมนอยางเชน A: กบ B: ทหวเดดตนขาด MS Windows กไมยอมรบใหมนเปนสวนหนงของ hard disk อยางนเปนตน ... นกเปนอกเหตผลหนงทนกคอมพวเตอรห ลายๆคนมกจะรสกวา MS Windows ไมใช OS ในแบบทพวกเขาตองการอกตอไป

ทงหมดทเลามาเปน “แนวความคด” หรอ concept หลกๆ เกยวกบเรอง partitions เทานนครบ ยงไมไดพดถงคำาสงอะไรเลยซกคำาสงเดยว ... เพราะการศกษาเรยนรคอมพวเตอรทถกตองนน เราจะตองเขาใจใน concept ของมนใหถกตองซะกอน เพอเปน “ฐานราก” ในการรองรบระดบความร และรายละเอยดอนๆ ทจะตองซอนทบจนสงขนเรอยๆ

การแบง Partitions ของ Linux

คำาสงหรอ software ทเขามาเกยวของกบการจดการ partitions ของ Linux มอยดวยกน 3 ตวครบคอ Disk Druid, fdisk และ parted ... สวนคำาสง partprobe จะเปนแคคำาสงเสรมเฉยๆ

Disk Druid เปนชดคำาสงททำางานไดทงใน graphic mode และยงสามารถทำางานแบบmenu driven ใน text mode ไดดวย แตกเฉพาะตอนทจะทำาการตดตงครงแรกเทานนหมายความวาพวกเราทกคนจะมโอกาสไดพบเหนกบ Disk Druid เพยงครงเดยว แลวกจะไมตองเจอหนาเจอตากนอกตลอดไปจนกวาจะมการตดตงระบบใหม ... รปแบบการใชงาน Disk

Druid นนถอวางายมากทเดยว มการใช mouse เปนอปกรณในการสงงานเกอบทงหมด ชอPartitions หลกๆ กมใหเลอกเปน options อยแลวโดยท user ไมจำาเปนตองจำาตวสะกดใหวนวาย

โดยสวนมากแลว คมอ Linux มกจะบอกเลาเฉพาะเรองของ fdisk เพยงคำาสงเดยว เพราะเปนคำาสงท

47.14

Page 16: Linux Lesson I

Linux Basic Lessons

เราใชเพอการจดการ partition โดยทไมจำาเปนตองผานกระบวนการตดตงใหม รวมทง user ทเรยนรรายละเอยดตางๆ จาก fdisk ไปแลว กนาทจะเขาใจ Disk Druid ไดในทนทดวย เพราะสวนทแตกตางกนจรงๆ กจะมเพยง interface ของโปรแกรมทใชงานเทานน

อกเหตผลหนงทตำาราทงหลายไมนยมเอาเรองของ Disk Druid มาเขยนกเพราะวา Linux นนมอยดวยกนหลายเผาหลายตระกลพอสมควร และสวนทเปน graphics กจะมการออกแบบทแตกตางกนไปทำาใหคมอตางๆ ไมสามารถเจาะจงวธการหรอขนตอนตางๆ ไดอยางสะดวก ... แตกตางกบกรณของคำาสง fdisk ซงเปน text mode ทเหมอนๆ กนหมดทกคายของ Linux

หนาตาของ Disk Druid ทมาจากคาย Red Hat จะมใหเหนไดทง 2 mode อยางนครบ

นคอการ dump หนาจอ Disk Druid จากเครองคอมพวเตอรทเคยมการแบง partitions ไวกอนแลวใน hard disk จะเหนวามนม menu คำาสงอยตอนกลางๆ จอใหเราเลอกใช ดานบนเปนgraphic งายๆ เพอบอกเราวาพนท hard disk นนๆ ถกใชไปมากนอยเทาไหรแลว ยงเหลอพนทวางๆอกรเปลา ดานลางของจอกเพยงแตบอกเรองเดมในแบบตารางรายงาน และใหรายละเอยดของ filesystem ทถกเลอกใชในแตละ partition ดวย ในกรณทเราเลอกคำาสง Edit เรากจะเหนหนาจอถดมานครบ

47.15

Page 17: Linux Lesson I

Linux Basic Lessons

ทนถาเปน text mode บางละ? ... ของคาย Red Hat กจะออกมาเปนอยางทเหนขางลางนครบ

แลวถาเลอกใชคำาสง Edit จาก menu ทเหน Disk Druid ในแบบ text mode กจะแสดงหนาจอออกมาอยางทเหนตอไปนครบ

47.16

Page 18: Linux Lesson I

Linux Basic Lessons

กอนทจะไปเลาตอทคำาสง fdisk เพออธบายขนตอนในการแบง partitions สำาหรบการตดตง Linuxขอแทรกเรองของ hard disk ในโลกของ Linux ไวยอๆ ตรงนซกหนอยหนง ...

ยอนกลบไปดรปท dump มาใหอกครง เราจะเหนวา Linux เรยกชอ hard disk ของเครองคอมพวเตอรดวยคำาวา /dev/hda ... จากนนมนกจะระบลำาดบของ partitions ตอๆ กนไปเรอยๆเปน /dev/hda1, /dev/hda2, /dev/hda3. ... จนกวาจะครบทก partitions ทเราแบงใหกบมน ...

ถายงจำากนได /dev เปนสวนหนงของ root filesystem นะ เปนพนทสวนท Linux ใชเกบ driversของอปกรณตางๆ เอาไวทงหมด ซงกรวมทง hard disk ดวย ... โดยในปจจบน Linux จะรจกhard disk อย 2 ตระกลคอ IDE และ SCSI ... drivers สำาหรบกลม IDE กจะเปนพวกทมชอเรยกเปน /dev/hd? เชน hard disk ตวแรกกจะเปน /dev/hda, ตวท 2 กจะเปน /dev/hdb, ตวท3 กเปน /dev/hdc, ... เรยงลำาดบตามอกษรไปเรอยๆ ... แตถาเปน hard disk กลมทเปน SCSIก ตองใ ช drivers เ ปน /dev/sd? เ ชน /dev/sda, /dev/sdb, /dev/sdc, ... เ รยงไปอยาง นเหมอนกน

เพราะฉะนนเวลาทเราเหนชอ partitions ตางๆ ในระบบของ Linux เรากพอจะบอกไดวา hard diskทใชงานอยนนเปนตระกลไหน แลวแตละ partition นนอยบน hard disk ลกเดยวหรอวาแยกกนอยหลายลก ... อยางในกรณทเหนตวอยางขางบนนน จะเหน /dev/hda1, /dev/hda2, ... ไปเรอย กแปลวามนเปน partitions ทแบงใน hard disk แบบ IDE ลกเดยวกนทงหมดเลย ... อยางนเปนตน

ในโลกของ Linux นน Partitions แบงเปน 2 ประเภทคอ Primary Partitions กบ ExtendedPartition ... ทงนจำานวนของ Primary Partitions จะมไดสงสดเพยง 4 partitions เทานน ถอเปนขอจำากดของ hard disk ทถกควบคมการทำางานดวย chip ในตระกลของ intel กบ Linux ในปจจบน (รายละเอยดเกยวกบ chip ในแตละตระกลนนผมเองกไมมรายละเอยดมากนก เพราะสวนใหญจะใชงานกบเครองในตระกลของ intel เพยงตระกลเดยว และถอเปนตระกลตนกำาเนดของ Linux ดวย เพราะ Linux ทไดรบการดแลโดยตรงจาก Linus Torvalds คอ Linux บน platform ของ intel เพยงตระกลเดยว สวน Linux บน chip แบบ PowerPC

จะไดรบการดแลโดย Cort Dougan แลว Alan Cox กจะดแลในสวนของ MIPS) ... ดงนนหากเราตองการแบงpartitions ใหมากกวานน ... อยางทเหนในตวอยาง ... เรากตองยอมสละ Primary Partition ตวหนงมาเปน Extended Partition จากนนคอยแบงพนทใน Extended Partitions ออกเปนสวน

47.17

Page 19: Linux Lesson I

Linux Basic Lessons

ยอยๆ ตอไปไดอยางไมจำากด ... ผมไมแนใจวา OS อนๆ แกปญหาเหมอนอยางนมย เพราะ MSWindows รนแรกๆ จะยอมใหมแค 1 Primary กบ 1 Extended เทานน (แลวไปแยกเปน drivesตางๆ นอกเหนอจาก C: ใน Extended Partition) และจำากดวา OS จะตองอย ท PrimaryPartition เทานนอกดวย ... แต Linux ไมไดจำากดวา OS ตองอย ทไหน โดยมนจะถอวาทกpartitions ทแบงออกมามศกดศรเทยบเทากนเสมอ ... บทบาททแตกตางกนของแตละ partitionsจะขนอยกบ user ทตดตงระบบวาตองการให partitions ไหนทำาอะไรบาง ... ซงในโลกของ Linuxจะเรยกการกำาหนดบทบาทของ แตละ partitions ในลกษณะนวา “การกำาหนด mount point”

แตละ mount point ของ Linux อำจจะเรยกไดอกอยำงวำ file system โดยม mount point

ภำคบงคบทจะตองมกคอ Root File Systems ทแทนดวยสญญลกษณ / นนเอง ... สำาหรบmount point อนๆ ทเลาไปแลวคอ /boot, /usr, /var, /tmp, /home กจะถกสรางเปนเพยงdirectories ทยอยลงไปจาก / หรอ Root File Systems เทานนหากเราไมแยก partitions ออกไปตางหากแลวกำาหนดเปน mount point ใหกบพวกมน

เอาละ ... ผมถอโอกาสดงเอาหนาจอของ Disk Druid ออกมาเพอเปน “ตกตา” ประกอบการเลารายละเอยดตางๆ ทเกยวกบการแบง partitions ในโลกของ Linux ไปบางแลว ซงตองถอวาเปนการ“เลายอนศร” ไปบาง เพราะโดยปกตแลว คนอนๆ เขาจะเรยนเรอง partitions นจากโปรแกรม fdiskมากอน ซงมรายละเอยดมากกวา เวลามาเหน Disk Druid กเลยไมตองเลาอะไรกนมาก เพราะวางายกวากนเยอะอยแลว ... หลายคนกมองวา Disk Druid จะมโอกาสเหนเพยงครงเดยวในตอนทเราตดตงเทานน และคดวามนไมนาสนใจเทากบ fdisk ทเรามโอกาสไดใชงานบอยครงกวาเทาทจำาเปน ...กเปนมมทมองกนคนละแบบครบ ... เพราะผมอยากใหเหนภาพรวมๆ ของมนกอนทจะเรมลงสรายละเอยดของคำาสงหรอโปรแกรมทเรยกวา fdisk อนลอลนของ UNIX และ Linux

ทำาความรจกกบ fdisk

ผมมความเชอเสมอวา การจดการกบคอมพวเตอรอ นดบแรกสดนนกคอ การจดการกบ hard diskของมน เพราะนคอการกำาหนดวาเราจะใชพนทมากนอยเทาไหรสำาหรบการทำางานอะไรไดบางกบเครองมอชนนนๆ ของเรา ... การยอมเสยเวลาเรยนรเกยวกบคำาสงทนานปทหนถงจะมโอกาสไดใชงานจรงๆ นน อาจจะฟงดเปนเรองทบาบอ ... แตกวา user คนหนงๆ จะหาญกลาเรยกใชคำาสง fdiskนน ... สวนใหญแลวกมกจะเปน user ทผานรอนผานหนาวกบเครองคอมพวเตอรมานานพอสมควรทเดยว ... ดงนนผมจงกำาหนดทฤษฎขนมาวา “กำรเรยนรคำำสง fdisk ตงแตแรกๆ นน จะเสมอนหนงเปน "การเรยนกวดวชา" ในดำนกำรใชงำนคอมพวเตอรสำำหรบ user มอใหมทก คน” ...เพราะมนคอการเรงให user ตองผานรอนผานหนาวกบรายละเอยดปลกยอยอกหลายเรองในการจดการกบคอมพวเตอรดวยตวของเขาเอง

fdisk ถอเปนหนงใน “คำาสงอนตราย” หรอ “คำาสาป” ทระบบปฏบตการสวนใหญจะซอนมนจากความซกซนของ user ทวๆ ไป ... โดยวธการซอนของ MS-DOS และ MS-Windows เทาทเคยปฏบตกนมากคอ “ไมยอมเอยถงมน” ทงๆ ทมนยงถกตดตงเขาไปในระบบเหมอนปกต ... แตสำาหรบLinux แลว มนถกกำาหนดใหเปนคำาสงของ super-user หรอ root โดยเฉพาะ ดวยการตดตงมนลงไปใน /sbin ซงปกตแลวจะมแต root เทานนทสามารถเรยกใชงานโดยตรง ...

เวลาเรยกใชคำาสง fdisk ใน Linux จะตองระบชอ device หรอชอ hard disk ใหกบมนดวยเสมอเชน fdisk /dev/hda ... แลวเรากจะเขาสโปรแกรมทหนาตานารกนาชงทสดตวหนงของโลก

47.18

Page 20: Linux Lesson I

Linux Basic Lessons

จะเหนวาเกอบจะไมมอะไรตอบสนองกลบมาใหเราเลยครบ นอกจากขอความสนๆ ทบอกใหเรารวาเราสามารถขอดรายการคำาสงใชงานทงหมดไดดวยการกด m ซงกยอมาจากคำาวา menu นนเอง ...และเมอเรากดลงไปจรงๆ มนกชวยใหเราเหนตวมนมากขนอกหนอยเดยวเทานนครบ ... คอมรายการยาวๆ โผลออกมาใหเรารบรวาม key อะไรใหเรากดไดบาง หลงจากนนเรากตองเลอกกดแตละขอตามทเราตองการใชงาน เพราะ fdisk จะไมไดชวยเราอะไรมากไปกวาทเราสงงานมนแตละครงแตละเคาะเลย ... แบบนไงครบทเขาเรยกวา interactive คอจะตองม "ปฏสมพนธ" กนระหวางผใชงานหรอuser กบเครองคอมพวเตอรอยตลอดเวลาการใชงาน :-)

ทเหนขางบนนนกคอหนาจอหลงจากทเรากด m เพอขอด menu คำาสงท fdisk มมาใหครบ รายละเอยดของคำาสงตางๆ ในเมนคงไมตองเลาดกวา เพราะ user ควรจะไดทดลองสมผสและศกษาจากการมปฏสมพนธกบ Linux ดวยตวเอง อยางนอยทสดคำาสง fdisk ในโลกของ Linux กมความปลอดภยในระดบหนง เพราะการปย ปยำาในระหวางทอยในโปรแกรมนจะยงไมมผลใดๆ ในการทำาลาย

47.19

Page 21: Linux Lesson I

Linux Basic Lessons

ขอมลของ hard disk เลย จนกวำ user จะกด w เพอเขยนลงไปใน hard disk จรงๆ เทำนน ...แลวกหมายความวาหากเราออกจากโปรแกรม fdisk ดวยการกด q เฉยๆ ทกอยางบน hard diskลกเดมของเรากจะยงปลอดภยจากการทำาลายลาง 100% ... ตรงนไมเหมอนกบ OS คายอนๆ นะครบ เพราะปกตของการเปลยนแปลงใดๆ ในระหวางทอยในโปรแกรม fdisk ของ MS-DOS หรอMS-Windows จะเกดผลทนททกขนตอนเสมอ ... user จงไมมโอกาสแกตวใดๆ ทงสน!!

แตทอยากจะใหดกตรง menu ตว t ทอธบายรายการไววา change a partition's system id นนแหละครบ ... ปจจบน (คอขณะทเรยบเรยงเอกสารชดน ) Linux ม system id สำาหรบแตละpartition ใหเลอกมากถงประมาณ 92 ชนดดวยกน ...

ผมเองกไมชดเจนวา partition แตละ format ในโลกของคอมพวเตอรนนมนมจดเดนจดดอยแตกตางกนมากนอยแคไหน แตการท Linux ถกออกแบบมาใหสามารถจดการไดอยางหลากหลายรปแบบนนเปนปจจยหนงทมนสามารถตดตงลงไปในเครองเดยวกนกบ OS ตวอนๆ ไดอยางคอนขางจะกลมกลนในขณะเดยวกนกนาจะเปนปจจยหนงททำาให Linux สามารถถกใชงานกบเครองคอมพวเตอรไดหลากหลายทสดดวย ไลไปตงแตเครอง laptop, desktop, server ตางๆ, mini-computer จนถงระดบmainframe ... มนคอประสทธภาพแอบแฝงทนอกเหนอจากความ "ฟร" ในดานคาลขสทธของมน เพราะการใชงาน Linux ในองคกรธรกจจรงๆ นน จะชวยประหยดบคลากรดาน IT ลงไปอยางมหาศาลเลยทเดยว เนองจากความจำาเปนทจะตองมผเชยวชาญเฉพาะทางของแตละ OS ในเครองคอมพวเตอรแตละ platform กจะหมดไปในทนทดวย ... เพราะ Linux คอหนงเดยวทสามารถตดตงไดทก platform ของhardware ในปจจบน และสามารถปฏบตงานไดในหลากหลายหนาทตามทเราจะเปนผกำาหนดใหกบมนอยางเฉพาะเจาะจง ... กระแสความตนตวของ Linux จงไมใชเปนเรองของแฟชนทเหอกนไปตามยคตามสมย แตมนคอการปฏวตของวงการ IT ทครงหนงเคยแตกกระสานซานเซนจนหาจดรวมทแทจรงไมไดเลย

47.20

Page 22: Linux Lesson I

Linux Basic Lessons

กลบมาทเรองของ fdisk กนตออกนดหนอย ...

ความไมสะดวกของ fdisk เมอเทยบกบ Disk Druid กคอ มนไมมคำาสงในการสราง mount pointเพอการตดตงระบบในคราวเดยวกน ดงนนในระหวางการตดตงระบบครงแรกของ Linux เกอบทกคายในปจจบนนจงไดตด option ของการแบง partition ดวย fdisk ออกไปหมดแลว (ยกเวนคายของslackware ทยงคงความ classic ของมนเอาไวเสมอ :-)) ... โดย Disk Druid จะเปนโปรแกรมทตดอยบนแผนทใชในการ install และจะถกเรยกใชงานเฉพาะเมอทำาการตดตงเทานน สวนโปรแกรมทใชในการจดการเกยวกบ partitions ตางๆ ของ hard disk ทจะถกตดตงลงไปใหกบเรา เพอจะสามารถเรยกใชงานไดในโอกาสอนๆ กจะมแค fdisk กบ partprobe และคำาสงททรงพลงกวาอยางparted เทานนเอง

นอกจาก fdisk จะไมไดรวม function ในการกำาหนด mount point เอาไวดวยแลว มนกยงมขอจำากดเกยวกบการใชงานอกนดหนอย นนกคอ partitions ทมการเปลยนแปลงใดๆ เนองจากคำาสงในfdisk ทงหมด แมวา user จะสง write ลงไปเรยบรอยแลวกตาม ระบบของเรากจะยงไมรบรถงการเปลยนแปลงนนๆ จนกวาเครองของเราจะไดรบการ restart ใหมอกครงหนงกอนเสมอ ... ความไมสะดวกนเองททำาใหเกด software ตวเลกๆ เขามาดบความรำาคาญใหกบ user ... นนกคอคำาสงpartprobe ... ซงโดยปกตหลงจากทเราใชคำาสง fdisk ในการจดการอะไรบางอยางเรยบรอยแลวนนเรากจะเรยกโปรแกรม partprobe ใหทำาการอานคา partitions ทเกดการเปลยนแปลงนนอกครงหนง แทนทจะตอง restart เครองใหวนวายอารมณ

อยางไรกตาม ในระหวางการทำาเอกสารชดน ผมไดมโอกาสทดลอง Linux บนเครอง Macintoshซงถอเปนเครองคอมพวเตอรตางตระกลกบ PC ทเราคนหนาคนตากนอยในภาคปกต และไดเรยนรมาวา คำาสง fdisk นนถกออกแบบมาสำาหรบเครองคอมพวเตอรในกลมทใช chip ของ intel เทานน(ผมยงไมมโอกาสทดลองกบเครองทใช chip จากคาย AMD วาเปนยงไงเหมอนกน) ... กตองถอวาเปนสถานการณภาคบงคบทผมจะตองทดลองใชคำาสง parted เปนครงแรก เพอจดการกบ partitionsตางๆ ใหกบเครอง Macintosh จอมดอทผมเอามาใชประกอบการศกษา Linux และการเขยนเอกสารชดน

เรองเลาของคำาสง parted

ผมไดยนชอคำาสงนครงแรกเมอตอนทไป take course ของ Red Hat นเอง ไมใชคำาสงทนาจะคนเคยเลยครบ เพราะ fdisk เปนคำาสงทแพรหลายมากกวา ไมวาจะเปน UNIX, Linux หรอแมแตในโลกของ MS-DOS และ MS-Windows ... แมวาคำาสง parted จะถกตดตงคกบ Linux มานานพอสมควรแลว แตกมไมกคนทจะเอยถงมน เพราะวาหากเรารสกวาคำาสง fdisk ม interface ทไมสะดวกกบการใชงานแลวละกอ ... คำาสง parted กจะเปนสงทยนยนวา "นรกมจรง" สำาหรบ userเลยทเดยว ... แลวนกคอหนาจอเมอเราเรยกใชคำาสง parted ละครบ ...

47.21

Page 23: Linux Lesson I

Linux Basic Lessons

คอถาเปน fdisk ยงบอกนะวาใหกด m เพอด menu แตเจา parted ไมบอกอะไรเลย การเรยกดmenu จรงๆ จะตองกดแปน '?' หรอพมพคำาวา help เทานนครบ แลวมนกจะมคำาสงใชงานทงหมดโผลออกมาใหดกน แตกมแคนนจรงๆ ครบ

ออกตวไวซกหนอยวาหนาจอท dump มานนเปนคนละตวกบภาพชดแรกๆ เพราะหนาจอท dumpมาใหมนเปนหนาจอของ YellowDog Linux ท run บนเครอง Macintosh 100% ไมใชเปนการสราง virtual machine ขนมาทดลองเหมอนกบทอนแรกๆ ของเอกสาร

สงทนาสนใจของ parted กคอ มนสามารถ copy แบบยก partition กนทงยวงไดเลย ไมใชสรางpartition ขนมาแลวคอยมาสง copy กนทหลง แต parted จะทำางานเหมอนกบ dump ขอมลกนทงpartition ในคราวเดยวไปเลย แลวมนกยงสามารถปรบเปลยนขนาดของ partition ตางๆ ไดดวยโดยไมมการทำาลายขอมลเดมทมอยใน partition นนๆ ... ซงในโลกของ MS-Windows จำาเปนตอง

47.22

Page 24: Linux Lesson I

Linux Basic Lessons

อาศย software ประเภท third party ทชอวา Partition Magic มาจดการหนาทตรงนแทน ...

ลำาพงแคทเหนตรงหนาจอนนแทบจะไมไดชวยใหรอะไรเลยครบสำาหรบคำาสง parted น ตางกบคำาสงfdisk ทแมวาจะไมสวยงามแตกสอสารกบ user ไดดทระดบหนง เพราะฉะนนผมกเลยจดการdownload ไฟลคมอของ parted มาเกบเอาไวซะเลย เพราะมนคอคำาสงททรงอานภาพมากในการจดการกบ hard disk ของ Linux ... แตในขณะเดยวกนมนกมอำานาจการทำาลายลางสงมากดวยเพราะ parted จะเขยนขอมลของ partition ทถกกำาหนดใหมลงไปส hard disk ทนท ... แนนอนทเราสะดวกสบายกบการไมตอง restart เครองหรอเรยกใชคำาสง partprobe อก แตเรากอาจจะตองre-install ทกอยางใหมอกรอบกไดถาขนทำาอะไรสมสสมหาลงไปกบคำาสงประเภทน ... สำาหรบขอความทงหมดในคมอฉบบสมบรณข อง parted ผมไมไดเอามารวมไวในเอกสารฉบบน เพราะมนยาวประมาณ 70-80 หนากระดาษ ใครทสนใจจะอานกชวยเขาไปหาอานกนเอาเองใน server ของบรษทฯ กแลวกนครบ :-)

...

เอาละ ... ทเลามาซะยดยาวนนกคอสวนทผมถอวาเปน "ความรพนฐาน" เกยวกบ Linux ครบ เพราะวาพอเราเรยนรเรองของ partition ซงกคอเรองของการจดการกบ hard disk ไปแลว เรากจะเรมทำาการตดตงโปรแกรมหรอทเรยกวา install หรอ setup นนแหละ แลวถงจะเรมตนใชงานกน ... ผมจะเวนสวนทเปนเรองของการตดตงออกไป เพราะ Linux ตางคายตางสำานกกจะมวธการตดตงและหนาจอทสอสารกบ user ทแตกตางกนออกไป ชวยไปหาอานเอาเองจากคมอของคายทเราเลอกใชกแลวกนซงสวนใหญกจะเปน graphic กนไปหมดแลว ไมไดโหดรายทารณเหมอนกบ Linux ยคแรกๆ อกแลวละครบ ... โดยภาพรวมๆ ของ Linux หลายๆ คายเทาทเคยสมผสมาแลวนน ผมวามนดเขาใจไดงายกวาของ MS-Windows ซะดวยซำาในเวลาน :-)

ดงนน ผมจงขออนญาตทจะกระโดดขามไปหวขอใหมกนเลยกคอเรองของ Bootup Sequence หรอลำาดบขนตอนในการ boot เขาสระบบของ Linux ซงเปนตอนทตอจากการตดตงทผมขอเวนขามไปนนเอง ... มนเปนขนตอนการทำางานทมความสวยงามของกระบวนการคดและมความเปนระเบยบเรยบรอยของ Linux ทพฒนาตอยอดออกมาจาก UNIX ซงผมเชอวาเปนสดยอดแหงการพฒนาระบบปฏบตการเลยทเดยว !!

47.23

Page 25: Linux Lesson I

Linux Basic Lessons

สวนท 2 : Bootup Sequence

โดยปกต หลงจากทเรากด switch เพอเปดเครองแลว เรากจะเดนไปขหรอไปเยยวอยางไมคอยจะสนใจอะไรกบเครองคอมพวเตอรของเราเองซกเทาไหร เพราะมนยงไมพรอมทจะใหเราเขาไปแทรกแซงอะไรในระหวางการ boot ของมนเลย ... ซำารายการแทรกแซงอยางผดกาละเทศะในบางกรณกอาจจะทำาใหระบบพงไปเลยกไมแนเหมอนกน :-)

สมยหนงในโลกของ MS DOS เครองคอมพวเตอรของเรากจะทำางานเงยบๆ อยพกเดยว แลวถงจะเรมทำางานจากชดคำาสงใน AUTOEXEC.BAT ทหลายคนเชอวามนคอ "หนงเดยว" ททำางานหลงจากการ boot ระบบ (ซงจรงๆ แลวเราสามารถทจะสงให MS DOS ไปทำางานทไฟลชออะไรกไดในขนตอนของการboot ... เพยงแตไมคอยจะมคน "มอคน" ในเรองนเทานนเอง) ... ในระยะตอมาทโลกของอปกรณค อมพวเตอรมความหลากหลายและซบซอนมากขน ชดคำาสงทตองประกอบการ boot กเลยมากขนไปดวย ระยะเวลาในการ boot กใชเวลานานกวาเดมเยอะทเดยว ... ทกๆ OS กเลยพยายามสราง interfaceบางอยางขนมาเพอทจะสอสารกบ user วา ... "ฉนยงมลมหายใจและยงทำางานอยางขมกเขมนอยนะ... กรณาอดทนรอใหถงทสดจนกวาฉนจะ boot ตวเองใหเเรยบรอยและกรณาอยาเสอก " ... ผมประมาณเอาวาแถบสวงๆ บนจอของ MS Windows หรอของ MacOS กำาลงพยายามสอสารขอความทวานน ... แตสำาหรบ Linux มกจะนยมแสดง interface แบบขอความเพอสอสารวาทำางานสวนไหนเรยบรอยแลวหรอทำาไมสำาเรจตรงสวนไหนบาง ... เปน interface ทบางคนเรมจะเหมนเบอแลว และเรมจะมการสราง interface แบบ quiet boot ทเหนแตแถบสหยาบๆ คายๆ นนขนมาแทน ... แตเกอบทก OS ในสมยนกตองใชเวลาประมาณ 1 เยยวกวาจะจบขนตอนแรกนของพวกมน ... ซงความรสกทวา "สนใจไดแตหามเสอก" กบหนาจอทดอยประสทธภาพในการสอสารของ OS หลายๆคายนเองททำาให user เกอบทงโลกขเกยจจะรบรอะไรๆ ในระหวางการ boot ระบบของเครองมอชนทเรยกกนวาคอมพวเตอรน

สวนหนงของอาการ "ละเลยความร" ของ user กเกดมาจากการท OS เกอบทงโลกพยายามเกบงำาการทำางานของตวเองใหเปน "ความลบทซบซอน" ซงแตกตางจากระบบของ Linux ทพยายามสรางระบบให "เปดเผยอยางซบซอน" แทน ... เพราะเราตองอยาลมนะวา ตนกำาเนดจรงๆ ของ Linux นนเกดจากแวดวงของการศกษา และตองการทจะเผยแพรความรใหกบนกเรยนนกศกษาเปนหลก มนจงเปนทศนคตและมมมองทแตกตางจาก OS เชงพาณชยคายอนๆ มาตงแตแรก ... การรจกเกบเกยวความรจากขนตอนนจงเปนประโยชนอยางมากตอความเขาใจในระบบการทำางานของเครองมอทเราเลอกใช ซงความเขาใจนนๆ กจะเปนประโยชนตอการดแลรกษาและปรบแตงคณสมบตตางๆ ของเครองมอนดวยตวของเราเองตอไปไดอยางอสระ ... ความแขงแรงและความปลอดภยของระบบ Linuxสวนใหญกเกดมาจาก "การเปดเผยความลบ" สวนนออกมาใหแกสาธารณชนรบร ซงสงผลใหมการปรบแตงระบบอยางเฉพาะเจาะจงทหลากหลายจนยากแกการโจมตระบบดวยวธใดวธหนงอยางตายตว

... ในความเหนสวนตวของผมแลว ผมเชอวา Linux มความเรยบงายในตวของมนเองเปนอยางมากไมไดสลบซบซอนเหมอนกบ OS คายอนๆ อยางทเราหลงเชอ แตมนเปนความเรยบงายทเราจำาเปนตองมความรไปจดการกบมน เพราะมนเกอบจะสงตอมาใหเราแบบดบๆ โดยทเราสามารถปรงแตงของเราเองตอไปได ขนาดของระบบ Linux ทงระบบจงเลกกระทดรด ไมไดใหญโตมโหฬารเหมอนกบ OSตวอนๆ ... มนคลายกบของเลนทสงตอมาใหเราเปนเพยงชนสวนยอยๆ เพอใหเราเอามาประกอบเปนรปเปนรางตางๆ กนเอาเอง ในขณะท OS ตวอนๆ จะหลอเปนรปสำาเรจทพรอมใชพรอมเลนอยางจำากดจำาเขยเทาทมนถกออกแบบเอาไวอยางสลบซบซอน ... อฐทเหนเปนกอนๆ ยงไงกซบซอนนอยกวาอาคารทสรางสำาเรจรปอยแลว โดยสวนทแตกตางกนกคอ เรายงสามารถใชอฐเหลานนมาประกอบ

47.24

Page 26: Linux Lesson I

Linux Basic Lessons

เปนสงปลกสรางอยางอนหรอรปรางหนาตาแบบอนไดอยางอสระ ในขณะทเราจะไมสามารถเปลยนแปลงความสลบซบซอนทสำาเรจดวยมอคนอนไปกอนแลวเทานนเอง ... การตองปรงอาหารดวยตวเองอาจจะสลบซบซอนกวาการสงซออาหารสำาเรจมาแดกๆ กนเขาไปใหหมดเรอง แตมนเปนความสลบซบซอนในระดบของขนตอนหรอกระบวนการ ไมใชความสบซบซอนทตวเครองปรงและวตถดบ ... ในมมมองแบบน Linux กยงไมถงกบปาเถอนขนาดสงตอมาใหเราเปนแคดนกบถงปยแลวกเมลดพนธใ หไปปลกผกปลกหญาสำาหรบกนกนเอง แตมนถกจดเตรยมไวใหแลวในระดบหนง พรอมทจะใช พรอมทจะเลน แตกพรอมทจะปรงเสรมเพมรสอยางทเราตองการไดเสมอ ... อยางนเหนภาพชดมย?!

เอาละ ... มาดกนซวา Linux ทำาอะไรมงในขณะทมนกำาลง boot ตวเองขนมา :-)

ภาพรวมๆ ของขนตอนในการ boot ระบบของ Linux แบงออกเปน 4 ขนตอนสนๆ แคนคอ

1. BIOS initialization2. Boot Loader3. Kernel initialization4. init starts and enters desired run level by executing:

• /etc/rc.d/rc.sysinit• /etc/rc.d/rc and /etc/rc.d/rc?.d• /etc/rc.d/rc.local• X Display Manager if appropriate

1. BIOS initialization : กำรเรมตนระบบของ BIOS

BIOS (ยอมาจาก Basic Input/Out System) คอชดคำา ส งพนฐานท ถกจดเกบไวใน ROMสำาหรบใหระบบปฏบตการหรอ OS หนงๆ เรยกใชเพอการควบคมและสงการชนสวนหรออปกรณตอพวงอนๆ ของเครองคอมพวเตอรนนๆ ... ปกตแลว BIOS จะเรมทำางานดวยตวของมนเองหลงจากทเรา start เครอง ไมวาจะโดยการเปดสวทชข นมาใหมหรอทำาการ restart ดวยวธการใดๆ กตาม

สงแรกท BIOS ทำากคอ POST หรอ Power On Self Test เพอตรวจสอบความพรอมของอปกรณต างๆ ของมนจากทะเบยนขอมลทจดเกบไวใน CMOS (Complementary Metal OxideSemiconductor) โดย CMOS นไดรบการหลอเลยงหนวยความจำาของมนดวย battery เลกๆ บนแผงวงจร main board อยตลอดเวลา เพอให BIOS สามารถอานคาไดวา ในระบบของ hardwareประจำาเครองนนๆ มอะไรประกอบอยบาง เชนม hard drive กตว, ม floppy drive หรอไม, ตดตงCD-ROM หรอ DVD-ROM อยบางรเปลา หรอวาม Network Interfaced Card กชนกแผงแลวสามารถ boot ระบบจากสวนไหนของ hardware ทมอย? เรยงลำาดบกนยงไง? ตลอดไปจนถงวนท, เวลา, และรายละเอยดปลกยอยอนๆ ของ hardware ทประกอบอยนน

พอทำางานในสวนของ POST เรยบรอยแลว BIOS กจะพยายามอานคาของ boot sector จาก bootdevices หรออปกรณต างๆ ทจะทำาการ boot ระบบตามลำาดบรายการของมน เชนจาก floppydrive, hard drive, CD-ROM drive, หรออาจจะเปน Network Interfaced Card ขนอยกบวาเราจะสงใหมนเรยงลำาดบกอนหลงยงไงดวย ... boot sector นกคอพนทสวนตนๆ ทมขนาดเพยง512 bytes ของ media ทเราเลอกไมวาจะเปน floppy disk, hard disk, หรอ CD-ROM ... เมอBIOS เจอคาของ boot sector จาก media ไหนกอน กจะทำาการ boot เขาสระบบดวย bootdevice นนๆ

การทำางานในสวนของ BIOS นยงไมเกยวกบระบบปฏบตการใดๆ เลย เพราะเปนการปฏบตตามคำาสงทฝงมากบ ROM (Read Only Memory) หรอ Firmware ของเครองคอมพวเตอรเทานน

47.25

Page 27: Linux Lesson I

Linux Basic Lessons

2. Boot Loader

ทนทท BIOS ทำางานของมนเองเสรจสมบรณแ ลว มนกจะอานคาของ boot sector จาก media ทถกเลอก หนาทในการดแลระบบและการทำางานตอจากนนกถกโอนถายไปใหกบ Boot Loader ของระบบปฏบตการหรอ OS ทเราเลอกใช

ในระบบปฏบตการรนโบรำาโบราณหนอยอยางเชน MS-DOS, MS Windows 98 หรอ MSWindows ME อาจจะไมม Boot Loader ใหเรยกใชงานกนครบ แตใน Linux จะม Boot Loaderมาใหใชงานกนตงแตยคแรกๆ คอ LILO (LInux LOader) และพฒนาเพมเตมขนมาอกตวหนงคอGRUB (GRand Unified Bootloader)

ผมบงเอญไดมโอกาสเหน LILO ในชวงทายๆ ของอายขยของมนจากการตดตง Slackware v8.1หนาตานาเกลยดแบบ text mode แทๆ เลยครบ ซงกจะไมคอยไดเหนกนอกแลว เพราะ Linux รนใหมๆ จะกำาหนดให GRUB เปน Boot Loader มาตรฐานแทน ... แต LILO จะเหมาะสำาหรบเครองรนเกาๆ ท

เรายงนกเสยดายแลวอยากจะมไวใชงานแบบ text mode อยนะครบ :-) ... มนกเลยทำาใหระยะหลงๆ นผมเรยนรเฉพาะเรองของ GRUB เพยงตวเดยวเทานน

ปกตของ Boot Loader จะแยกออกเปน 2 ทอน ทอนแรกเรยกวา Initial Program Loader (IPL)เปนตวทรบหนาทตอมาจาก BIOS โดยมกจะมขนาดเลกๆ เพยง 446 bytes เทานน แลวกมกจะไดรบการตดตงอยใน MBR (Master Boot Record) ของ media ทเราเลอกใชเสมอ มนจะทำาหนาทแคจดจำาตำาแหนงทเกบของ Boot Loader ทอนท 2 ของมน หรออาจจะเปนทอนแรกของระบบปฏบตการอนๆ ทจะถก boot ขนมาแทน ... GRUB กคอเจาทอนแรกทวาน โดยการทำางานของมนจะถกควบคมผานไฟลเลกๆ ตวหนงทชอวา /boot/grub/grub.conf

แลวนกคอตวอยางของ /boot/grub/grub.conf ของเครองทผมใชเพอเขยนเอกสารชดนครบ

default=0timeout=30splashimage=(hd0,2)/grub/splash.xpm.gz

# hiddenmenu

title Microsoft Windows 98 SE/Thairootnoverify (hd0,0)chainloader +1

title Fedora Core (2.6.10-1.766_FC3)root (hd0,2)kernel /vmlinuz-2.6.10-1.766_FC3 ro root=LABEL=/ rhgb quietinitrd /initrd-2.6.10-1.766_FC3.img

title Fedora Core (2.6.9-1.667)root (hd0,2)kernel /vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quietinitrd /initrd-2.6.9-1.667.img

มนเปน text file ธรรมดาทเราสามารถแกไขไดไมยากเยนนก คลายๆ กบ boot menu ในconfig.sys รนหลงๆ ของ MS-DOS อยางนนแหละ แตสำาหรบ grub.conf จะมรายการบนทกไวแคตำาแหนงแหงทเกบของ kernel และ boot image หรอ Boot Loader ทอนทสองของระบบเทานนเอง เมอเราเลอกเมนตวใดตวหนงแลว GRUB กจะจดการเรยก kernel และ boot image นนๆขนมารบหนาทตอจากมนไป ... ในกรณของเครองทใชกบงานเอกสารชนน ถาเราเลอกทอนทเปนMicrosoft Windows 98 SE/Thai ระบบกจะ boot เขาสโลกของ Windows แทนทจะเปนLinux ... สวนในกรณของ Linux มนกยงมใหเลอก 2 version ดวยกนเพราะมการ update ระบบ

47.26

Page 28: Linux Lesson I

Linux Basic Lessons

หลงจากการตดตงครงแรกไปแลวนนเอง ... ตอนทเราเลอก Fedora Core ซงกคอ Linux จากคายRed Hat นนเองท Linux ตวจรงๆ หรอ kernel จะเรมตนการทำางานของมน และเขาทำาหนาทควบคมทกๆ อยางของ hardware ในระบบของมนตอไป (Fedora เปนชอ project ของ Red Hat หลงจากท Red Hat

ปรบเปลยนรปแบบการดำาเนนงานเปน commercial มากขน โดยแยก product ออกเปน 2 lines อยางชดเจนคอ Red Hat เปน Linux ทจะดำาเนนงานแบบ commercial ในขณะท Fedora จะเปน Linux ทดำาเนนงานแบบ community ตอไป โดยคำาวา Fedora กคอคำาศพทเฉพาะของ "หมวกทรงปก" ท Red Hat ใชเปน logo ของตวเองนนเอง)

รายละเอยดของ grub.conf มเยอะพอสมควรครบทงๆ ทมนมหนาทแคนเอง คนทสนใจอยากจะอานกนจรงๆ กคงตองตดตง Linux ใหเรยบรอยกอน จากนนกออกไปท terminal screen หรอcommand line mode แลวพมพคำาสงวา info grub เพอดคมอฉบบเตมของมนเอาเอง ... ขนเลารายละเอยดในเอกสารฉบบน มนคงจะด 'เวอรไปหนอยละครบ :-)

3. Kernel initialization

ขนตอนนถงจะเรมตนเขาสระบบปฏบตการหรอ OS กนจรงๆ ... kernel คอสวนทเปนหวใจการทำางานของระบบปฏบตการทกตว โดยทวไปแลวมนจะมหนาททำาความรจกกบชนสวนและอปกรณตอพวงตางๆ ทตอตดอยกบตวเครองโดยการอานคาจาก drivers ทมนมอยเพอใชในการตดตอสอสารและควบคมบงคบการทำางานของอปกรณแตละชนเหลานน ... โดยปกตแลวขนตอนของ kernelinitialization จะใชเวลาแปบเดยว และ Linux จะจดการบนทกผลลพธของการทำางานในขนตอนนไวใน log file ตวหนงทชอวา /var/log/dmesg ... เพอใหเราเอาไวตรวจดวา kernel ทเราตดตงไวนนมนทำาความรจกกบอปกรณของเราครบถวนเรยบรอยขนาดไหน

เมอ drivers ทระบบตองการทงหมดถก load ขนมาเรยบรอยแลว kernel กจะทำาการเชอมโยง filesystems ตางๆ เพอเตรยมพรอมสำาหรบการใชงาน เราเรยกขนตอนนวาการ mount file systemsโดยเฉพาะ root file system (/) จากนน Linux กจะเรยกใชงาน process แรกของระบบขนมา(init) แลวสงผานการควบคมระบบทงหมดไปท process ทชอวา init นตอไป

4. init initialization

จะวาไปแลว init กจะคลายๆ กบ AUTOEXEC.BAT ในระบบปฏบตการของ MS-DOS หรออาจจะทำาหนาทใกลเคยงกบ system.ini และ win.ini ในระบบปฏบตการของ MS-Windows อยบางแตรายละเอยดของ init จะมมากมายกวานน เพราะมนเลนพวงเอาหนาททคลายๆ กบ login scriptในระบบ network เขาไปอยในตวของมนดวย ... สวนหนงกเพราะ Linux ถกออกแบบใหเปนระบบปฏบตการแบบ multi-user มาตงแตเรมตนชวตของมนนนเอง

การทำางานของ Linux ทงระบบเกอบจะเรยกไดวาทำางานตาม script ทเขยนสงเอาไวลวงหนา โดยuser สามารถทจะเขาไปแกไขดดแปลงหรอเพมเตมลกเลนตางๆ ไดดวยตวเองตลอดเวลา (ถารตำาแหนงทจดเกบไฟลเ หลานนทงหมดนะ :-)) ... ความสามารถอนลนหลามของ Linux จงขนตรงกบผดแลระบบนนๆ เปนหลก โดย Linux จดเตรยม script มาตรฐานมาใหแลวจำานวนหนงสำาหรบพวก"มอไมคน" สามารถปฏบตงานไปไดอยางราบรนพอสมควร แตกเปดชองวางขนาดมหมาใหกบพวก"มอคน" ไดมโอกาสทดสอบหรอประลองความบาระหำาของตวเองดวยเหมอนกน ... เพราะ Linuxเตบโตขนมาใน "โลกแหงการเรยนรตลอดเวลา" นนเอง

init คอ "process แรก" และถอเปน "process ราก" ของ Linux ทงระบบ โดยทกๆ processหรอคำาสงในการทำางานขนตอนอนๆ ทงหมดทจะเกดขนตอๆ ไปนน จะเปนการแตกแขนงออกมาโดยมจดเรมตนจาก init ตวนเสมอ ... โดยปกต init จะเปน executable file ทเราไมสามารถอานดวยภาษามนษยทวๆ ไป แตมนไดรบการออกแบบใหถกควบคมขนตอนการทำางานทกอยางผาน script

47.27

Page 29: Linux Lesson I

Linux Basic Lessons

ตวหนงทมชอวา /etc/inittab ... เนอในของไฟล /etc/inittab เปนตวอกษรในระบบ ASCII หรออกษรโรมนทเราสามารถอานออกอยางภาษาองกฤษทวไป แตจะมโครงสรางภาษาเฉพาะตวทเรยกวาscript เพอเรยกใชงานโปรแกรมอนๆ อกทอดหนงในระบบของ Linux ... ซงพอเราแกะเขาไปดกนจรงๆ แลว เรากจะพบวา inittab นนนาจะยอมาจากคำาเตมๆ วา INITialization TABle นนเอง !!

ภายใน /etc/inittab มระบคำาสงเพยงไมกบรรทด และโดยมากกเปนการกำาหนดคาตวแปรใหกบscript ตวอนไปทำางานตอ ... ตวแปรหลกๆ ทกำาหนดไวใน /etc/inittab กคอ run level ซงปจจบนLinux ออกแบบไวเพยง 6 (คอ run level 0 ถง run level 6 แตกยงไมมการกำาหนดหนาทใดๆ ใหกบ run level 4 เทานน)

## inittab This file describes how the INIT process should set up# the system in a certain run-level.## Author: Miquel van Smoorenburg, <[email protected]># Modified for RHS Linux by Marc Ewing and Donnie Barnes#

# Default runlevel. The runlevels used by RHS are:# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)# 3 - Full multiuser mode# 4 - unused# 5 - X11# 6 - reboot (Do NOT set initdefault to this)# id:5:initdefault:

# System initialization.si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0l1:1:wait:/etc/rc.d/rc 1l2:2:wait:/etc/rc.d/rc 2l3:3:wait:/etc/rc.d/rc 3l4:4:wait:/etc/rc.d/rc 4l5:5:wait:/etc/rc.d/rc 5l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETEca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes# of power left. Schedule a shutdown for 2 minutes from now.# This does, of course, assume you have powerd installed and your# UPS connected and working correctly. pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

# Run gettys in standard runlevels1:2345:respawn:/sbin/mingetty tty12:2345:respawn:/sbin/mingetty tty23:2345:respawn:/sbin/mingetty tty34:2345:respawn:/sbin/mingetty tty45:2345:respawn:/sbin/mingetty tty56:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5x:5:respawn:/etc/X11/prefdm -nodaemon

47.28

Page 30: Linux Lesson I

Linux Basic Lessons

ไฟล /etc/inittab ถอวามความสำาคญมากตอการ boot ระบบของ Linux เพราะหากไฟลนเสยหายหรอกำาหนดคาบางอยางผดพลาด มนกจะสงผลให Linux ไมสามารถ boot ตวเองขนมาไดเลย เรามาลองดบรรทดทปายแถบสเหลองๆ ไวนน

id:5:initdefault:

ตรงนคอสงให Linux ใช run level 5 เปนคามาตรฐานในการ boot ระบบ ซงหากเรากำาหนดคาผดไปเปน run level 0 ระบบกจะถอวาการ boot ปกตคอการปดเครองเสมอ หรอถากำาหนดคาลงไปเปนrun level 6 ระบบกจะวนเวยนเปดๆ ปดๆ ตวเองตลอดเวลา เพราะ run level 6 หมายถงการreboot เครองคอมพวเตอรของเรานนเอง

run level แตละตวจะใชคำาสงในการ boot ทแตกตางกน แลวกอาจจะไมเทากนดวย โดยตวทควบคมscript ทจะทำาการ boot ระบบตอจาก inittab กคอ /etc/rc.d/rc.sysinit ซงจะมการสงตอคำาสงไปยง script ทควบคมแตละ run level ตอไปอกทอดหนง ... script ทเกยวกบการ boot ทงหมดนนLinux ไดจดการเกบรวบรวมไวในทเดยวกนคอ /etc/rc.d แลวแยกยอยออกไปเปน sub-directoryเพอความเปนระเบยบเรยบรอยและเหมาะแกการจดการแตละ run level ตอไป ... ถาดจากตวอยางของ /etc/inittab ทลอกมาใหขางบนนน กจะเหนวา init จะเรยกใชคำาสงทเกยวกบ run level 5 ในการ boot ตามปกตของมน (คำาสงทมระบายสฟาไว) ... โดยทกๆ run level จะถกควบคมดวยscript เพยง 2 ตวเทานนคอ /etc/rc.d/rc.sysinit และ /etc/rc.d/rc ทใชเพยงตวเลขของ run levelนนๆ เปนตวแปรในการเรยกชดคำาสงทตองการขนมาใชงาน

ขออนญาตยกตวอยางของ run level 5 ซงเปน run level ทเรยกใช Linux แบบ graphic modeอนเปน interface ทนยมแพรหลายอยในปจจบน ... run level 5 นนจะมชดของ script ทควบคมอกกระบงใหญทถกจดเกบเอาไวใน /etc/rc.d/rc5.d ครบ

K01yum K02NetworkManager K05saslauthdK10psacct K20nfs K24irdaK28amd K30spamassassin K35vncserverK35winbind K36lisa K50netdumpK50snmpd K50snmptrapd K73ypbindK74nscd K74ntpd K85mdmpdK89named K89netplugd K90bluetoothK94diskdump K99microcode_ctl S01sysstatS04readahead_early S05kudzu S06cpuspeedS08iptables S09isdn S09pcmciaS10network S12syslog S13irqbalanceS13portmap S14nfslock S15mdmonitorS18rpcgssd S19rpcidmapd S19rpcsvcgssdS25netfs S26apmd S26lm_sensorsS28autofs S33nifd S34mDNSResponderS40smartd S44acpid S54hpojS55cups S55sshd S56xinetdS80sendmail S85gpm S90crondS90xfs S95anacron S95atdS96readahead S97messagebus S97rhnsdS98cups-config-daemon S98haldaemon S99local

รายชอไฟลท งหมดทเหนใน /etc/rc.d/rc5.d นนเปนเพยง link เทานน คอจะคลายๆ กบ short-cutทหลายๆ คนคนเคยมากบ MS-Windows อยางนนเอง โดยทไฟลตวจรงๆ ของทงหมดจะถกเกบไวใน/etc/rc.d/init.d ซงเปน script ทใชงานรวมกนสำาหรบทกๆ run level ... และใน directory ของแตละ run level เรากจะเหน links ทคลายๆ กนอยางนทก directory ... แตกตางกนกเพยงแตตว Kและตว S กบตวเลขกำากบลำาดบตรงตนชอของไฟลเทานนทอาจจะมากนอยไมเทากน

ไอทเลามาซะยดยาวกเพราะอยากจะใหเหนไสในตรงนแหละครบ ผมชอบแนวคดทเขานำามาใชในระบบสงการของ Linux แบบนมากทเดยว ... คอเขาทำาการแบงงานออกเปนสวนๆ ซงเขยนสงเอาไว

47.29

Page 31: Linux Lesson I

Linux Basic Lessons

ดวย script ยอยๆ หลายๆ ตวแทนทจะเขยนเปนชดคำาสงตอเนองทยาวๆ จากนนกจบมาเรยงรอยเขาดวยกนผาน "เลขลำาดบ" ทกำากบไวหนาชอ เพอบงคบใหชดคำาสงแตละตวทำางานตามลำาดบกอนหลงอยางทออกแบบเอาไว ... การจะสลบลำาดบการทำางานของแตละทอนจงงายมากหาก user อยากจะทดลอง :-) ... สำาหรบตวอกษรกำากบตรงหนาชอคอตว K นนยอมาจากคำาวา Kill หมายถงชดคำาสงทตองการให Linux กำาจด process บางอยางออกไปกอนทจะมการเปลยนแปลงไปส run levelหนงๆ (มนคอเหตผลททำาใหมจำานวนไฟลไมเหมอนกนใน directory ของแตละ run level ไง!!)และตว S ยอมาจากคำาวา Start กคอชดคำาสงทสงให Linux เรยกใช module ตางๆ ของมนทจำาเปนสำาหรบการใชงานของแตละ run level ... การ Kill หรอการ Start กจะเรยงตามลำาดบกอนหลงในหมวดหมของมนตาม "เลขลำาดบ" ของชอไฟลอยางเปนระเบยบเรยบรอยอยางทสด ... การเขยนscript ตวใหมๆ เพมเตมขนมาโดยไมตองแตะตอง script มาตรฐานเดมของระบบ จงเปนเรองทสามารถทำาไดอยางอสระ และสามารถกำาหนดให script ตวใหมของ user ถกเรยกใชงานกอนหรอหลงชดคำาสงมาตรฐานตวใดกไดอกเชนกนโดย user กทำาเพยงแคกำาหนดชอไฟลใหถกหมวดหมของ Kill หรอ Start

พรอมทงกำาหนด "เลขลำาดบ" ทตองการลงไปใหเหมาะสม ... เทานนเอง :-)

เราจำาเปนทจะตองระลกไวเสมอวา Linux นนเตบโตขนมากบมอไมของเหลา Hackers และบรรดานกพฒนา software ทงหลายทวโลก แมวามนจะมชดคำาสงทเปนภาษา binary ตดมากบระบบอยางคอนขางหลากหลายแลวกตาม แตทงหมดนนตองถอวาเปนเพยง building blocks หรอตวjigsaw ใหกบพวกเรามาหาวธเลนกนตอดวยตวเอง ... ดงนนเอง อาวธสำาคญทสดของ Linux กคอtext editor ตวเกงทใชกนอยางแพรหลายตงแตสมยเรมตนของ UNIX และยงเปน text editor ทใชงานกนอยจนกระทงปจจบนในเครองระดบ hi-end ทงหมดดวย ... มนคอ vi ซงถกพฒนาตอมาเปนvim แลว ... แตทกๆ คนกยงรจกมนในชอเดมเสมอ

Linux ในมอของเหลาโปรแกรมเมอรนนไมไดตองการอะไรทมากไปกวา text editor เกงๆ ซกตวหนงเพอเอาไวเขยนโปรแกรม หรอแมแตนกเขยนหนงสอบางคนกไมไดตองการอะไรทหรหราไปกวานนเนองจากการสงตนฉบบใหกบโรงพมพดวยไฟลทเถอนดบทสดจะชวยลดความสลบซบซอนของการโอนชนงานขามไปขามมาระหวาง software ทแตกตางกนไดอยางมหาศาล ... และทสำาคญกคอโลกของLinux หรอเครองคอมพวเตอรระดบ hi-end ทงหมด จะ process งานของมนผานไฟลขอมลทเรยบๆ งายๆ ในแบบของ text file เทานน เพอทมนจะสามารถสงผานขอมลหนงๆ ไปยงเครองลกขายทอาจจะตางเผาตางพนธกนในโลกของ user ทวๆ ไปไดอยางไมมอปสรรคทางโครงสราง

อยางไรกตาม เมอ Linux มอายอานามทแกกลาเจรญวย และมคนเรยกรองตองการทจะทำางานกบมนในรปแบบทงายกวานกพฒนา software ทวๆ ไป ... จงไดเกดการพฒนาระบบ graphic ทสวยสดงดงามใหกบมนเพมเตมขนมาจากรากฐานดงเดมแบบ pure text ของ UNIX และ Linux ... เขาเรยกระบบ graphic นนวา X-Windows ... ในทำานองวาเพอเปนการใหเกยรตแกตนตำารบGraphic User Interfaced (GUI) รายแรกของโลก ... นนกคอ Xerox ... เจายทธจกรตวจรงทถกApple และ Microsoft ชวยกนขโมยผลงานบนลอโลกชนนนมาอยางหนาตาเฉย !! ... X-Windowsกลายมาเปนระบบทสนบสนนการแสดงภาพ graphic ใหกบ Desktop Manager อนหลากหลายของ Linux แมวาในทสดแลวจะมทไดรบความนยมแพรหลายกนอยเพยง 2 ตวคอ KDE และGNOME กตาม

การ boot ระบบของ Linux นนจะไลทำางานไปตาม script ทกำาหนดเอาไว แลวใน run level 5 ทเปนคามาตรฐานของเครองสวนใหญในปจจบนกจะจบลงทการ load ตวเองเขาส X-Windows แลว

47.30

Page 32: Linux Lesson I

Linux Basic Lessons

เรยกใชงาน Desktop Manager ตวโปรดของเราขนมารบหนาทตอไปแทน ... อยางไรกตาม ระบบgraphic หรอ X-Windows ของ Linux นน จะมการทำางานคนละรปแบบกบทเราเคยสมผสมาในMacOS หรอ MS-Windows ... เพราะ Linux จะไมไดทำาการผกมดทงระบบเขาเปนชนเดยวกนอยางสลบซบซอนเหมอนอยางท Apple หรอ Microsoft เคยทำาเอาไว ... X-Windows ยงเปนเพยงmodule หนงของระบบทถก plug-in เขาไปใหกบ kernel เฉยๆ ไมไดมสวนทผกตดอยางแยกกนไมออกเหมอนกบ GUI คายอนๆ จงทำาใหระบบ GUI ของ Linux มความเสถยร (stable) มากกวาเนองจากความเรยบงายและตรงไปตรงมาของมน :-)

แลวนกคอการ dump หนาจอทกำาลงใชงานอย โดยจะเหนไฟลเอกสารฉบบนโชวหราไวดวย เพราะนคอเอกสารฉบบแรกทสรางขนมาภายใตระบบปฏบตการ Linux ลวนๆ

เราคงจะไมลวงลกลงไปกบเรองของ X-Windows มากกวาน เพราะระบบ GUI นนถกออกแบบมาจากแนวคดทจะให user สามารถสอสารกบคอมพวเตอรไดงายๆ อยแลว นอกจากนน GUI ของLinux กเปนสงทเกดขนมาเพอ "สนองตลาด" ไมใชเกดขนมาจากความตงใจเดมของบรรดานกพฒนาระบบในยคยคแรกๆ ... features หลายๆ อยางของ GUI ในโลกของ Linux จงมความสามารถจำากดจำาเขยอยแคระดบการใชงานพนฐานของสำานกงานทวๆ ไปเทานนเอง และยงตองรอการพฒนาทหลากหลายกวาทเปนอยนซะกอน อทธฤทธดาน GUI ของ Linux จงจะเกงอยางทหลายๆ คนคาดหวง... ดงนนเอง แมวา GUI ของ Linux จะมความสวยงามและ "สนองตลาด" ไดทระดบหนง แตความสามารถทแทจรงของ Linux ยงอยในรปของ command line มากกวาการสงงานดวย mouseอยางทนยมกน เพราะฉะนน มนจงเปนเรองทหลกเลยงไมไดทเราจำาเปนตองเรยนรคำาสงพนฐานแบบcommand line ของ Linux เอาไว เพอจะสามารถจดการกบเครองคอมพวเตอรข องเราไดอยางสะดวกและรวดเรวมากขน

แตกอนทจะกระโดดไปเลาเรองของคำาสงพนฐานในระบบของ Linux ผมคดวาเรานาจะทบทวนเรองทเลามาทงหมดอกทดกวามย ... คอวาจรงๆ แลวเราเพงจะจบไปแค 2 หวขอเองนะ คอเรองของPartitions แลวกเรองของ Bootup Sequence :-) ... เรยกวาเพงจะผานเรองของการตดตงแลวก

47.31

Page 33: Linux Lesson I

Linux Basic Lessons

boot ระบบขนมาเทานนเองนะ การทผมจะตอไปทเรองของคำาสงพนฐานมนกสมควรอยแลว ...ใชรเปลา?!

ในเรองของ Partitions นน Linux บงคบวาอยางนอยตองม 1 partition ทเรยกวา root หรอแทนดวยเครองหมาย / ... แตโดยมากเราจะจดการแบงออกเปน /, /boot, /usr, /var, /tmp และ /homeหรอบางครงกจะใมคนแบงออกเปน /usr/local เพมไวอกกได ทงนเพอความเปนระเบยบเรยบรอยและความปลอดภยของระบบ

ภายใน / หรอ root partition นนจะตองประกอบไปดวย 5 directories ยอยคอ /bin, /sbin, /dev,/lib, และ /etc ... ถอเปน 5 directories ทไมสามารถจดวางไวคนละ partition อยางเดดขาด

/boot ทำาหนาทแคเกบรกษา boot images ของ Linux kernel ไวเทานน

/usr เปนพนทสำาหรบตดตงโปรแกรมประยกตหรอ applications ตางๆ ซงโดยมากแลวในระบบการตดตงมาตรฐาน applications สวนใหญจะตดตงลงไปใน /usr/local นนคอเหตผลทบางคนนยมแยก/usr/local ออกไปตางหากอก 1 partition

/var เปนพนทสวนทใชเพอการสอสารไมวาจะเปน e-mail, system log files, และ web serverรวมไปถง cache ทเกดจากการ download ไฟลตางๆ ดวย

/tmp เปนพนทสำาหรบเกบขยะประเภท temporary files ทงหลายของระบบ

/home คอพนทใชงานเฉพาะตวของ user แตละคน สวนใหญกจะเอาไวเกบไฟลขอมล และ configทตงคาเอาไวแบบ customized ของ applications ตางๆ

เมอตดตงระบบเรยบรอยแลว Linux กจะ boot ตวเองขนมาใหมเพอใหเรา set คาบางอยางอกเลกนอยกอนทจะเขาสระบบจรงของมน และในครงตอๆ ไป การ boot ระบบของ Linux กจะดำาเนนไปตามขนตอนปกตของมนคอ

1. BIOS initialization2. Boot Loader3. Kernel initialization4. init starts and enters desired run level by executing:

• /etc/rc.d/rc.sysinit• /etc/rc.d/rc and /etc/rc.d/rc?.d• /etc/rc.d/rc.local• X Display Manager if appropriate

ในทกขนตอนทวามาน ไฟลทเปนหวใจสำาคญในขนตอนสดทายของการ boot กคอ /etc/inittab, และ/etc/rc.d/rc.sysinit ซงจะไปเรยกใชงาน script ทชอวา /etc/rc.d/rc และ /etc/rc.d/rc?.d ...ทงน user ยงสามารถเพมเตม script ของตวเองไวใน /home ของตวเองไดดวย โดย Linux จะเรยกscript ทเขยนเพมเตมนจากใน script ทชอวา /etc/rc.d/rc.local ... ใหสงเกตดวยวาทกๆ scriptทเอยถงนนจะถกเกบอยใน directories ยอยของ /etc ทงสน ... และเมอทกอยางเสรจสนสมบรณแลวLinux ถงจะ load สวนทเปน graphic ของมนทเรยกวา X-Windows ขนมา ขนอยกบวาเราเลอกใช run level ไหน

47.32

Page 34: Linux Lesson I

Linux Basic Lessons

พนฐานการใชงานทวๆ ไปของ Linux

หลงจากทเราทำาการตดตง Linux เรยบรอยแลว เครองกจะถก boot กลบขนมาใหมและจะมาหยดใหเราเตมชอของ user และรหสผาน หรอ password เพอจะเขาไปใชงานระบบ ... โดยปกตนน เราจะถกบงคบใหตองบนทก password ของ root กนตงแตระหวางการตดตงอยแลว (ชอวา root นเปนuser's name พเศษทไมสามารถแกไขหรอเปลยนแปลงใดๆ ในระบบของ Linux จะถอวาเปนsuper-user หรอ system admin) ... และหลงจากการตดตงครงแรก เรากจะมโอกาสเพมเตมชอuser อนทไมใช root อกอยางนอย 1 ชอ ... เพราะฉะนนผมกจะไมเรมจากการเพมชอ user เหมอนกบตำาราอนๆ เพราะการเพมชอใหกบ user นนผมถอวาเปนธระของ admin หรอ root ซงจะมคำาสงอนๆ และสวนประกอบอนอกหลายตวทตองพดถง กเลยจะเกบรวบยอดไปเลาทหลงดกวา

ตอนน ผมจะสมมตวาพวกเราเขามาสตวระบบเรยบรอยแลว ...

ปกตหลงจากท login เขาไปในหนา graphic ของ Linux มนกจะโลนๆ เกลยงๆ กบม icons อยซก3-4 icons มแถบเมนทอาจจะอยดานลางหรอดานบนกแลวแตความถนดของแตละคน ... ตรงนไปหาทดลองกนเอาเองแลวกน ทดลองจบ mouse แลว click ไป click มา เดยวกคนไปเองแหละ ...ซงในกรณของ user ทวๆ ไปเขากเรมใชงานกนดยๆ จากตรงนเลย ไมตองเรยนรอะไรอก มเมนแคไหนม icons อะไรก "ถซ" กนไปแคนน (คำาวา "ถซ" คอการออกเสยงทถกตอง แตคนไทยชอบทำาเปนมเสนหจากการออกเสยงไมชดวา "ทซ" ทงๆ ทระบบอกขระของเราสามารถเลยนเสยงไดสมบรณอยแลว)

สวนประดาสาวก "ลทธมอคน" ใหไป click ตรง icon ทมคำาอธบายวา Terminal ในแถบ MenuBar หรอหาก Linux ตวทตดตงนนไมยอมสราง icon นไวให กใหไปทเมน System Tools แลวเลอกตวทมคำาอธบายวา Terminal กได ... แลวกจะม window ขนาดกลางๆ ปรากฏขนมาอยางทเหนในรป ... แตถาชอบแบบ pure text เลยนะ ใหกด Ctrl-Alt-<Function Key> ... โดยสามารถ

47.33

Page 35: Linux Lesson I

Linux Basic Lessons

เลอกกดไดตงแต F1 จนถง F6 ... สวน F7 จะเปนหนาจอทระบบจองเอาไวเปน graphic modeโดยเฉพาะ (ไมได dump หนาจอทเปน pure text ไวใหนะ เพราะดเหมอนจะทำาไมได)

ทตองพาออกมาดในสวนทเปน Terminal หรอ Text Mode ของ Linux กเพราะตรงสวนนถงจะมอะไรใหเรยนรเยอะกวา แลวกถาไมลมกนนะนะ ผมกเคยตงขอสงเกตไววา Linux นนมพนเพดงเดมมาจาก command line เพยง mode เดยว และพฒนาสวนทเปน graphic ขนมาสนองความตองการของตลาดเทานน โดยความสามารถทมทงหมดยงไมไดรบการพฒนาเปน graphic interfacedอยางสมบรณเทาทควร ... ดงนน graphic mode ของ Linux กสนองความตองการของ user ไปไดกลมหนง (ประมาณ 70%-80% ของคอมพวเตอรในสำานกงานทวๆ ไปเทานน) แตกยงขาดๆ เกนๆสำาหรบ user อกกลมหนงทอยในหนาทของ admin กบการใชงานแบบเฉพาะกจเฉพาะทางบางจำาพวกหรอพวกบา software ประเภททชอบมใหครบทกตระกลแตไมเคยใชงานจรงหลากหลายขนาดนน(อยางใน Microsoft Windows ทเครองของผม เปนตน)

คำาสงพนฐานจรงๆ ทไมมทางเลยงเลยกคอ การขอดรายชอของไฟล, การ copy

ไฟล, การสรางไฟล, การลบไฟล, แลวกคำาสงทเกยวกบ directory ตางๆ ... ซงในโลกของ Microsoft Windows เขากพยายามทำาเปนลมๆ จนไมยอมพดถงกนอกแลว เพราะมวแตไปใชงานแบบ graphic ทอยอายกวาในหลายๆ ลกษณะของงาน ... เพราะฉะนนผมกจะไมตองไปเปรยบเทยบกบอดตอยาง DOS วาเปนยงไงมายงไงอกหรอวาเคยมการใชคำาสงแบบไหน ... เราจะวากนเฉพาะ command line ของ Linux เพยง OS เดยวไปเลยดกวา

เอาละนะ ... คำาสงแรกกคอ ls (แอล-เอส ทเปนตวพมพเลกนะ)

ls นคอคำาสงเพอขอดรายชอของไฟลทอยใน directory ตางๆ ปกตกจะเรยกใชแค ls เฉยๆ แตหากตองการเหนรายละเอยดของไฟลตางๆ ดวยกจะเตม parameter ตอทายเลกนอยคอ -l(ขด-แอล)

ในรปทเหนนนกคอผลลพธของวธสง ls กบ ls -l ... ครงแรกจะเหนแตชอไฟลเ รยงไปตาม

47.34

Page 36: Linux Lesson I

Linux Basic Lessons

แนวขวาง แตพอสงดวย ls -l มนกจะเรยงชอไฟลล งมาทางแนวตง พรอมๆ กบแสดงรายละเอยดตางๆ ของไฟลเชนวาใครเปนเจาของ , ขนาดก bites, ถกสรางขนมาเมอไหรเอาไวดวย ... เราจะขามรายละเอยดพวกนไปกอนนะ เดยวจะมเรองเลาอกเยอะ

cp คอคำาสงทใชในการคดลอก หรอ copy ไฟล รปแบบในการใชหรอ syntax ของมนกงายๆแควา cp <source> <target> ... อานกนงายๆ แบบไทยๆ วา "กอปปจากไหนไปไหน"เทานนเอง ... เชนสมมตวาจะ copy ไฟลชอวา ZhuqiDOX-II.sxw ไปเปน ZqDX2.sxwเรากสงอยางนครบ ...

cp ZhuqiDOX-II.sxw ZqDX2.sxw

อยางนเปนตน หลงจากกด <Enter> เรากจะไดไฟล 2 ตวทเหมอนกนแตใชชอแตกตางกน

rm คอคำาสงทใชเพอการลบไฟล ปกตกจะใชแค rm <ชอไฟล> ... ซงการจะใชงานคำาสงนตองระมดระวงซกหนอย เพราะวาระบบปกตของ Linux นน การลบไฟลใน text mode คอการลบจรง ไมใชแคเอาใสใน trash แบบทเหนใน graphic mode ซงเรายงมโอกาสกคนกลบมาไดบาง (ถาจะให text mode ม feature คลายๆ อยางนตองมการกำาหนดคาบางอยางไวตางหาก

ในกรณของการสรางไฟลน น หากไมมการใช software อยางอนเขามาปะปนเลย มนกจะเปนการสราง text file ธรรมดาเทานน ซงจรงๆ แลว Linux กจะมคำาสงในการสรางไฟลเลกๆ ประเภท lineeditor อยบางเหมอนกน แตผมจำาชอไมไดแลวละ เพราะสวนใหญของการสราง text file ในโลกของLinux นน เขาจะใชอภมหาอมตะนระนดรกาลอยาง vi เพยงหนงเดยวเทานนเอง

การสรางแค text file อาจจะฟงดเปนเรองบาๆ บอๆ สำาหรบคนทเตบโตมากบ software เถอนทสามารถสรางงานไดสารพดชนดดวยเครองคอมพวเตอรป ระจำาตว ... แตสำาหรบ Linux ทเปนอกโลกของเหลาโปรแกรมเมอรหรอ developers แลวนน แค text file ธรรมดาๆ ทผกโยงกนไวดวยไวยากรณทางโปรแกรมคอมพวเตอรภาษาใดภาษาหนง กอาจจะกอใหเกดผลลพธท user ธรรมดาๆอยางเราๆ ไมมทางเขาใจไดเลย

สำาหรบ vi ทเปน text editor ยอดนยมของชาว Linuxian นน ผมคดวาจะไมเลาไวเลยดกวา เพราะรายละเอยดเยอะขนาดทสามารถเขยนเปนตำาราตางหากไดเลมหนงเลยทเดยว ประกอบในระบบปกตทตดตง Linux ไวแลวนน จะมคำาสง vimtutor เอาไวเรยนรและฝกหด vi อยแลวดวย ... แลวกทสำาคญสดๆ เลยนะ ... vimtutor ทวานนเปนแค text file ธรรมดาๆ ทผกโยงกนไวดวยไวยากรณพเศษชนดหนงทเรยกวา shell script ... หนงในอานภาพทรายกาจทสดของ Linux เลยทเดยว

mv เลาเ รองคำา สงพนฐานตอ ... mv เปนคำาสงเ พอใชในการ "ยายไฟล " ใหไปเกบไวในdirectory อน หรออาจจะเปน "ชออน" กได ... อยาลมวา Linux จดการทกเรองอยบนพนฐานของfilesystems เทานน คอมองทกๆ องคประกอบเปน "ไฟล" ไปหมด ... รปแบบของคำาสง mv ทเปน mv <source> < target> นน หากเรากำาหนด <target> ใหเปนเพยงชอไฟลอกชอหนงLinux กจะถอวาเปนการ "เปลยนชอ" แลวกจดเกบไฟลนนๆ ไวท directory เดม ... แตหาก<target> มการกำาหนดใหมชอของ directory กำากบไวพรอมกบชอไฟล Linux กจะถอวาเปนการยายทเกบไฟล สวนวาจะเปนชอเดมหรอไมกชนอยกบการกำาหนดของเราอกเชนกน

47.35

Page 37: Linux Lesson I

Linux Basic Lessons

คำาสงพนๆ ทเกยวกบไฟลของ Linux กจะมกนแค 4 คำาสงนเปนหลกเทานนแหละครบ ทนเรากมาถงเรองของ directory กนมง

mkdir ใชในการสราง directory ใหม วธใชกแคสง mkdir <ชอ directory>

rmdir ใชในการลบ directory ใด directory หนง รปแบบคำาสงกจะคลายๆ กบตอนทสรางคอ rmdir <ชอ directory> ... แตหาก directory นนๆ มไฟลห รอsub-directory อยดวย เรากจะตองไลลบไฟลห รอ sub-directory ยอยๆ ทงหมดออกไปกอน จงจะสามารถลบ directory ระดบบนสดออกไปได ... ซงเปนวธการทโบรำาโบราณแตกปลอดภยด แตสำาหรบคนทชอบทำาอะไรๆ ใหรวบรด เราจะใชคำาสงวา rm -rf <ชอ directory> แทน ซงจะลบทงไฟลใน directory นนๆรวมทงตว directory ทระบออกไปทงหมดพรอมๆ กน ... แลวกอยาลมวามนกคนไมไดนะ โปรดใชอยางระมดระวงสดๆ โดยเฉพาะ rm -rf * จะรนแรงขนาดทำาใหทกอยางพงพนาศไดในเวลาเพยงพรบตาเทานนเอง

cd ใชในการยายตำาแหนงของการปฏบตงานของเราไปยง directory ตางๆ ของระบบคำาสงกไมมอะไรมาก กแค cd <ชอ directory> เทานนครบ

ถอวาทบทวนความจำากนตรงนนดหนง สำาหรบเครองหมายทใชขนระหวางชอไฟลก บชอ directoryในระบบของ Linux ... เขาใชเครองหมาย slash ( / ) เปนตวขนนะครบ ตวอยางเชน/home /viruch /dosemu หรอ/usr /share /wallpapers /ZhuqiFract .bmp อยางนเปนตน

ดงนน เวลาจะ cd ไปไหนตอไหน หรอจะระบชอไฟลอะไรตรงไหนของระบบ กตอง key ใหมนครบๆและสะกดอยางถกตองพรอมกบตองใชตวพมพใ หญ -พมพเลกใหแมนยำาเสมอดวย ... ตรงนของแทรกชอdirectory พเศษไว 3 ตวดวยครบ

. (จดเดยว) จะหมายถง current directory ทเราทำางานอย

.. (2 จด) จะหมายถง parent directory ของ directory ปจจบนของเรา~ (เครองหมาย tile) หมายถง home directory ของ user นนๆ ทใชงานระบบอย

ตวสดทายทถอวาพนๆ และจำาเปนพอสมควรกคอ exit ทเราเอาไวออกจาก Terminal หรอคำาสงlogout ในกรณทเรากระโดดออกไปท text mode จรงๆ ดวยการกด Ctrl-Alt-<Fn-Key> ตงแตแรกเลย ... เพราะผมนกอยากจะหยดตรงนกอนแลวละ :-)

คำาสงพนฐานมากๆ กลมน กคอสงท user ทกคนตองรกอนทจะเรมออกทวรในระบบ filesystemsของ Linux ในตอนตอๆ ไปครบ คนทคนเคยกบคอมพวเตอรม านานโดยเฉพาะกบ MS-DOS ทมคำาสงคลายๆ จนเกอบจะเหมอนกนเลยนน อาจจะรสกวาคำาสงเหลานไมคควรกบการเปลองกระดาษ ...แตสำาหรบคนทแทบจะคลงใจตายเวลาเหน prompt กระพรบๆ อยตรงหนาจอนน ... ชวยกนจำาไวหนอยกจะดนะครบ เพราะผมคดวาถงเวลาออกทวรกนจรงๆ แลวละ :-)

47.36

Page 38: Linux Lesson I

Linux Basic Lessons

ประถมบทของ Linux

อยากจะบอกวาทเลาไปเมอไมกคำาสงทผานมานน ผมถอวาเปนความรในระดบ "อนบาล" เทานนเองแบบเดยวกบทเดกๆ ตองรวธชวยเหลอตวเองขนพนฐานไวบางกอนทจะเรมกาวเขาสระบบการศกษาจรงๆ ... หลงจากนน เดกๆ กจะเรมงงกบสงทผานเขามาในชวตของตวเองงายขนเรอยๆ :-)

"การงง" เปนอำกำรทดและมประโยชนตอระบบกำรเรยนรของมนษยเปนอยำงมำก เพรำะขณะทเรำเรมงงนน จะหมำยถงกลไกในสมองเรมทจะตอบสนองตอสงเรำภำยนอก และมกำรประมวลผลเพอแยกแยะระหวำงสงทรแลวกบสงทยงไมร สมองจะพยายามหาจดตอรอยเชอมเพอสงเคราะหประสบการณตางๆ เหลานนเขาดวยกน อนจะนำาไปสการเกดขนขององคความรใหมๆ ... ยงเดกๆเกดอำกำรงงไดงำยเทำไหร กจะยงมโอกำสเรยนรไดมำกขนเทำนน ... ถาบงเอญมนไมทอแทสนหวงไปซะกอนนะ :-)

เอาละนะ ... เพอทจะใหพวกเรางงกนไดอยางอสระ ผมขอแนะนำาใหใชคำาสง man <ชอคำำ สง>

คำาสง man ยอมาจากคำาวา manual มเอาไวเพอเปดอานคมอ หรอเพอเรยนรวธใชคำาสงตางๆเกอบจะทงหมดของ Linux เลยกวาได กไปทดลองเปดคมอของคำาสงระดบอนบาลทเลาไปแลวนนดแลวกน เพราะมนม options หรอ parameters ใหเลอกใชไดอกเยอะมาก ทงยงสามารถเอาoptions เหลานนมาผสมผเสกนไดอกตางหาก ... เวลาจะออกจาก man กใหกด q เพอกลบออกมาทsystem prompt ตามเดม ... ไปลองกนเองนะ ...

ทน ... ผมจะยอนกลบไปทคำาสง ls -l

เวลาทเราใชคำาสงน Linux กจะตอบสนองดวยการแสดงรายชอของไฟลพรอมรายละเอยดประกอบออกมาเตมไปหมด โดยในแตละบรรทดทเหน กจะเปนรายละเอยดของไฟลเ พยง 1 ไฟลเ ทานน ...อะไรถงจะตองมากมายกนขนาดนน?

- rw-r—-r-- 1 root root 325 Oct 16 07:21 auto.master

d rwxr-xr-x 2 root root 4096 Jan 24 04:57 autopackage

l rwxrwxrwx 1 root root 22 Jan 18 04:43 grub.config

1 2 3 4 5 6 7 8

ยกตวอยางมาใหด 3 ไฟลแ ลวกน ผมระบาย shade กบระบตวเลขกำากบเปนแถบๆ เอาไวนะ จะไดเลาไดถนดๆ หนอย

column 1 เปนตวแสดงคณสมบตของไฟลนนๆ วาเปน file (-) , directory (d) , link (l) ,หรออาจจะเปน block device (b) ... column 1 นเปนอกษรตวเดยวและมกจะเขยนตดกนพรดกบ column 2 ไปเลย ไมไดเวนหางๆ อยางในตวอยางน

column 2 เปนสวนทแสดง permission ของไฟลนนๆ ... ตรงสวนนประกอบดวยอกษร 3ชดทเหมอนๆ กน โดยแตละชดกจะมอกษรได 3 ตวคอ r w และ x ... คอrwxrwxrwx ... แตอาจจะมการเปดๆ ปดๆ สทธเหลานสลบไปสลบมาดงทเหนในตวอยางขางบนนน

47.37

Page 39: Linux Lesson I

Linux Basic Lessons

ชดแรกเปนสวนของ user หรอเจาของไฟล , ชดถดมาตรงกลางเปนของ user's groupหรอผใชอนๆ ทอยใน group เดยวกบเจาของไฟล, ชดหลงสดดานขวากจะเปนเรองของ other user หรอผใชอนๆ ทไมใชเจาของไฟล ทงยงไมไดอยใน group เดยวกบเจาของไฟลอกตางหาก

r ทเหนนนยอมาจาก read หมายถงสทธในการ "อาน" ไฟลนนๆ หรอ "เปด" ไฟลน นๆออกมาดเนอหาขางใน หรออาจจะสงใหอานไปออกทเครองพมพ อยางนเปนตน

w ยอมาจาก write หมายถงสทธในการ "เขยน" ไมวาจะเปนการเขยนเพมเตมหรอลบบางสงบางอยางออก รวมทงการสงลบทงไปทงไฟล

x ยอมาจาก execute หมายถงการสงใหไฟลนนๆ ปฏบตงานตามโปรแกรมทถกกำาหนดเอาไวภายในตวของมน ... ตรงนจะแตกตางจากโลกของ Microsoft Windowsหรอ MS-DOS ทความสามารถในการ execute ไฟลใดไฟลหนงนน มกจะผกตดอยกบการกำาหนดชอใหกบไฟลเสมอเชนตองเปน .com .exe หรอตวอนๆ ทกำาหนดไวอยางตายตวดวย OS ... แตในโลกของ Linux จะกำาหนดผานระบบpermission ของไฟลแทน จงหมายความวาไฟลใดๆ กตามแมวาจะเปนโปรแกรมทเขยนเอาไวอยางถกตอง แตหากไมไดรบการกำาหนดสทธใหสามารถ executeไฟลนนๆ เรากจะไมสามารถ load ขนมาสการปฏบตงานใดๆ ไดเลย

มาดไฟลใ นตวอยางกนหนอย ไฟลแรกทชอวา auto.master นนมขอมลทกำาหนดไวเปน -rw - - r - - r - - หมายความวามนเปน "ไฟลธ รรมดา" ทสามารถอานและเขยนไดโดยเจาของไฟล แตจะอานไดเพยงอยางเดยวสำาหรบคนอนๆ ไมวาจะอย group เดยวกบเจาของไฟลหรอไมกตาม ... ขามไปตวท 3 กอน มนมขอมลทกำาหนดไวเปนlrwxrwxrwx หมายความวามนเปนเพยง link ไมใชเปนตวไฟลจรงๆ และกำาหนดใหทกๆ user ของระบบสามารถ "อาน" , “เขยน" , หรอ execute ใหมนปฏบตงานได เพราะเปดสทธเอาไวเตมทง 3 ชด

ไฟลตวอยางท 2 นนเปน directory เพราะม bit แรกของชดขอมลเปนตว d โดยมpermission เปน drwxr-xr-x ซง permission ของ directory จะเพยนไปจากของไฟลบางเลกนอย เพราะ r จะหมายถงมสทธมองเหนชอของ directory นและ w จะหมายถงมสทธในการเพมไฟลห รอลบไฟลอ อกจาก directory น ในขณะท x จะหมายถง access หรอสทธในการเขาไปเหนสงทถกจดเกบเอาไวภายในdirectory นเทานน ... แตทงหมดนนกยงคาบเกยวกบ permission แบบไฟลดวยเหมอนกน เชน directory ท ม permission เปน dr-xr-xr-x จะกลายเปนdirectory ทไมมใครสามารถเอามนออกไปจากระบบ เพราะการลบไฟลหนงๆ จะตองมสทธ w อยใน permission นนเสมอ หรอ directory ทม permissionเปน d - -x - -x - - x กจะกลายเปน directory ท user สามารถเขาไปได แตจะไมเหนไฟลหรออะไรอนใดขางในเลย เพราะไมมสทธในการ read ทจะตองกำาหนดเอาไวตงแตระดบ directory ดวยเสมอ ... หรอแมแตสทธ w ทสามารถเขยนหรอลบไฟลกเหมอนกน หากไมไดรบอนญาตตงแตระดบ directory แลว user หนงๆ กจะไมสามารถลบไฟลใ ดๆ ออกจาก directory นนๆ เลย ไมวา user นนจะมสทธในระดบไฟลม ากแคไหนกตาม :-) ... มนดมยละ?

column 3 เปนจำานวนนบของ hard link ทชอของไฟลนนๆ มอยในระบบ (เรอง link จะเอาไว

47.38

Page 40: Linux Lesson I

Linux Basic Lessons

เลาทหลงครบ)

column 4 ชอเจาของไฟล ... การเปนเจาของไฟลจะหมายถงสทธในการกำาหนด permissionใหกบไฟลนนๆ ดวยคำาสง chmod ได

column 5 ชอ group ของเจาของไฟล หรอ group ทตองการใหเกยวของกบไฟลนน

column 6 ขนาดของไฟลทคำานวณเปน bites

column 7 วนทและเวลาทไฟลนนๆ ถกสรางขน หรอหมายถงวนทสดทายทไฟลนนถกแกไข

column 8 ชอของไฟล ซงสวนใหญจะใชตวพมพเลก เพอความสะดวกในการเรยกใชเรยกหาเนองจากระบบการเรยกชอไฟลข อง Linux นนจะเปนพวก case sensitive คอไฟลทชอวา ZHUQ, zhuq, Zhuq, ZHuq, ฯ จะหมายถงคนละไฟลไ ปเลยในโลกของ Linux :-) เพราะฉะนนพงระมดระวงในการตงชอไฟล เพราะอาการแบบนอาจจะทำาให Microsoft Windows กลายเปนบาไปไดงายๆ หากจะมการ shareไฟลใหใชงานรวมกน

ไหนๆ กลากมาจนถงเรอง permission bits กนแลว เพราะฉะนนผมกจะเลาตอทเรองนไปเลยกอนทจะพดถงเรองอนๆ ตอไป คำาสงทเกยวกบ permission bits กคอ chmod

chmod เปนคำาสงทม options ไดหลายรปแบบ แตแบบทนยมใชมากทสดกคอแบบทใชตวเลขในการกำาหนด permission เพราะ key กนนอยๆ และรวดเรว แตกอาจจะเขาใจยากกวาแบบทกำาหนดดวยตวอกษรตรงๆ ... ทงนกขนอยกบแตละสถานการณดวย เพราะมนจะมความยากงายแตกตางกนไป

วธการกำาหนดเปนตวเลขคอ r = 4, w = 2, x = 1 ... กเลยทำาให rwx = 7, rw- = 6, r-x = 5

ตวอยางเชน ถาจะกำาหนด permission ใหเปน rwxr-xr-x เรากจะสงวา

chmod 755 <ชอไฟล/ชอ directory> แทนทจะสงวา

chmod u=rwx,g=rx,o=rx <ชอไฟล/ชอ directory> หรอ

chmod u+r+w+x,g+r+x,o+r+x <ชอไฟล/ชอ directory>

อยางนเปนตน :-) ลองดความรมรามของคำาสงกนเอาเอง ... แตทำาไม r=4, w=2, x=1 นนมนเปนเรองของการแปลงคาเลขฐานสองครบ ทง r, w, x นนหากเปดสทธใหกหมายถง 1 แตหากปดไวกหมายถง 0 ดงนน rwx หากเขยนเปนเลขฐานสองกคอ 111 เมอแปลงกลบมาเปนเลขฐานสบจะมคาอยางนครบ หลกแรกมคาเทากบ 20=1 หลกทสองมคาเทากบ 21=2 และหลกทสามมคาเทากบ 22=4อยางนเองแหละครบ เวลากำาหนด permission เปน rwx จงมคาเทากบ 4+2+1=7 นนเอง

กคงตองนงนงๆ แลวทำาความเขาใจกนหนอยละครบ หรออาจจะเปดดวธใชคำาสง chmod ดวยการเรยก man chmod ดกได เนองจาก Linux เปนระบบแบบ multi-users และการกำาหนดpermission กเปนงานเบอตนของระบบ security ซะดวย เพอทจะไมให user ซซวไปเขยนหรอไปลบไฟลทเจาของงานเขาไมยนยอมพรอมใจ

นอกจาก permission แบบพนๆ นแลว Linux ยงม bit ทซอนไวอก 1 bit เรยกวา sticky bit ซงจะสลบซบซอนกวา และผมคดวาไมอยากเลาดวยตวอกษรเพราะมนอธบายดวยปากเปลาจะงายกวาและจรงๆ กยงมเรองของ attribute ของไฟลทไมคอยจะมใครพดถง เพราะ Linux ทเตบโตมากบโลก

47.39

Page 41: Linux Lesson I

Linux Basic Lessons

แบบ community หรอ communist นน อาจจะไมคอยพะวกพะวงกบเรองของการปองกนความรวไหลหรอเรองจกๆ จกๆ ใน "โลกแบบทนนยม" เทาทควร ทงๆ ทมการกำาหนดรายละเอยดบางอยางเอาไวแลวตงแตในระดบของ kernel ดวยซำาไป ... ผมเองกเคยเหนแคผานๆ และยงอยากจะหาเอกสารเกยวกบเรองพวกนมาศกษาเพมเตม เพราะลำาพง permission แค 9 bit เทาทเหนน ยงไมเพยงพอกบความตองการจรงในโลกของ network หรอกครบ!!

ถดจากเรองของ permission กจะมาถงเรองของ user's name กบ user's group ซงตำารา Linuxสวนใหญจะจบมนไปอยทอนแรกๆ ดวยซำาไป ทงๆ ทมนเปนงานของ admin หรอ root ไมใชธระของuser ทวๆ ไป ... ในความรสกของผมเองนะ คำาสงในการเพมหรอลดหรอการบรหารระบบ user นนตองเอาบทสดทายเลยครบ :-) เพราะหากวาตวเราเองยงไมรจะทำาอะไรอยางอนตอ ผมกไมรเหมอนกนวาจะม user ทไหนทเขาจะยอมมาใชเครองของเรา? แลวถาuser นนๆ เกดมปญหาขนมาจรงๆ เราเองททะลงตดตงระบบอยางงๆ ปลาๆ น ยงจะไปชวยแกปญหาหรอทำาอะไรใหกบเขาไดบาง? ... อยากระนนเลย ... ผมยงไมอยากเลาเรองของการเพมหรอลดหรอการบรหารระบบ user ในตอนนหรอก !!..

ยงไงซะเรากเปนคนทตดตงระบบทงหมดดวยตวเองเองมาตงแตแรก ดงนนกเปนเราเองอกนนแหละทเปนผกำาหนด password ของ root หรอ admin ของเครองทเราจดการอย เราจงควรจะสนใจรายละเอยดในหนาทของ root กอนทจะไปสนใจวาใครจะเขามาใชงานในระบบของเราเวลาน ... เพราะงนผมกเลยจะยอนกลบไปใหไกลกวา ls -l อกซกหนอย ... ยอนกลบไปถงตอนทตดตงระบบกนเลย...

จำาไดมยวาผมบอกไวยงไงตอนทเรมตดตงระบบ ... เราอาจจะกำาหนด mount point มนโดดๆ ไปเลยแคจดเดยวกคอ / หรอ root filesystem จากนนกเลอก packages ทเราตองการใหหนำาใจแลวกรอการตดตงทงหมดประมาณ 1 ชวโมง ... นนคอการลงทนเวลา 1 ชวโมงทเราจะไดเรยนรอะไรบางอยางทสำาคญของ Linux ตวทเราเลอก ...

เอาละ !! .. ออกไปท Terminal อกครง แลวเรยกใชคำาสงนครบ

df -hT แลวกด <Enter> ลงไป เครองทผมใชงานอย มนจะแสดงอยางน ...

Filesystem Type Size Used Avail Use% Mounted on/dev/hda4 ext3 9.3G 5.3G 3.6G 60% //dev/hda3 ext3 97M 14M 79M 15% /bootnone tmpfs 379M 0 379M 0% /dev/shm

จะเหนวา เครองทผมใชงานอยนนมนแบง partitions ไวแค 2 partitions เทานนคอ / กบ /boot ...อนนเนองจากขอจำากดบางอยางในตอนทตดตง เพราะมนเปนเครอง multi-platform ทลงคกนกบMicrosoft Windows ซงแยก partitions ไวคอนขางจากมากแลวกอนทจะลง Linux ... เอา! ..เราดกนแคเหนๆ นแหละ

พนทของ Root Filesystems หรอ / นนผมแบงเอาไวแค 9.3GB และถกใชไปแลว 5.3GB ...ใชอะไรไปมงเดยวคอยวากน สวน /boot นนตอนทตดตงผมแบงไว 100MB แตมนคำานวณเพยนกนนดหนอยกเลยออกมาแค 97MB แตกใชงานไปแค 14MB เทานนเอง ยงเหลอเนอทอกบานสำาหรบการเกบแค boot images กบ kernel ของ Linux เพราะทเหนวาใชไป 14MB นนหมายถงมนมอย

47.40

Page 42: Linux Lesson I

Linux Basic Lessons

ดวยกนตง 3 version !! ... ตวสดทายเปน tempory directory ของ Linux ทมนสรางขนมาเองจะเหนวาประเภทหรอ format ของมนจะเปน tmpfs หรอ temporary file system

ทนลองมาดอกเครองหนงทเปน Macintosh แตเอามาลง YellowDog Linux ซงไมไดตดขดในขอจำากดของการแบง partition แบบ PC ดมง ... ดวยคำาสงเดยวกนผมจะไดรายการอยางนครบ

Filesystem Type Size Used Avail Use% Mounted on/dev/hda4 ext3 485M 173M 287M 38% //dev/hda3 ext3 97M 16M 76M 18% /bootnone tmpfs 314M 0 314M 0% /dev/shm/dev/hda8 ext3 985M 75M 860M 9% /home/dev/hda5 ext3 485M 8.1M 452M 2% /tmpdev/hda10 ext3 7.9G 4.1G 3.5G 55% /usr/dev/hda6 ext3 485M 100M 360M 22% /var/dev/hda9 ext3 5.0G 33M 4.7G 1% /zhuqidisk

จะเหนวาผมเลนตามตำาราเลย :-) แยกเปน /, /boot, /home, /tmp, /usr, /var แถมดวย partitionประหลาดตางหาก เพอเอาไว download ไฟลขนาดใหญๆ จาก internet ... ลองดขนาดของแตpartition กนเอาเองนะ เรยกวาเผอกนเอาไวเตมๆ (แลวยงเหลอพนทวางอก 12G ทยงไมไดแบงเปนpartition ใดๆ เลยดวย)

แตนนกแคคำาสง df หรอ disk-free ซงสามารถเรยกใชงานไดทกคน เพราะมนไมได access เขาไปในพนทตองหามของระบบ แคตรวจสอบดขนาดของแตละ partition เทานนเอง ... คอถาตอนตดตงระบบนน เราเลอกลงแบบม / หรอ Root Filesystems เพยงตวเดยว เรากจะไดหนาตาออกมาคลายกบตวอยางแรก ซงกนนแหละทเราอยากจะไปรตอวา เราควรจะแบงเปน /boot, /home, /usr, /var, /tmp อยางละประมาณเทาไหร

ตอนนถาใครไมได login เขาระบบดวย root กจดการ switch user ไปเปน root ดวยคำาสง

su -

... อยาลม - ขางหลงนะครบ เพราะมนมบางอยางไมเหมอนกนระหวาง su กบ su – ... แมวาทง 2คำาสงจะเปนการ switch user ไปเปน root ดวยกนทงค แต su – เทานนทจะไปอานคาตวแปรหรอparameters ของ root มาจรงๆ ซงในบางกรณเรากจำาเปนตองใชเหมอนกนเชนพวก %path หรออะไรพวกนน ... เพราะฉะนนแคขดเดยวกใสๆ เขาไปซะ ... อยางเรองมาก!!

จากนน cd ไปท root directory ดวยคำาสง cd /

แลวกเรยกคำาสงนขนมา ... du -h --max-depth=1 ... แลวกกด <Enter>

เครองของเราจะนงไปพกหนงเลยครบ เพราะมนจะตองไปควานหาและคำานวณขนาดของไฟลตางๆ ทตดตงไวในระบบของเราออกมา ... กคงไมตองเปรยบเทยบกบเครอง Macintosh แลวนะครบ เพราะจรงๆ กตองการจำาลองเหตการณวา เราไดตดตงแบบใช partition เดยวอยแลว ... อกอยาง ... เครองPC ทใช chip ของ intel กหา software มาลองเลนไดมากกวาดวย เพราะฉะนนเรากมาดซวา หลงจากการตดตงและผานการ update หลายๆ อยางจนเขาทอยางทตวเองอยากไดแลวนน แตละสวนมนจำาเปนตองใชพนท hard disk ซกเทาไหร

เครองของผมมนจะสงผลลพธเปนตวเลขนออกมาครบ ...

47.41

Page 43: Linux Lesson I

Linux Basic Lessons

8.7M ./root8.1M ./boot0 ./selinux14M ./sbin8.0K ./opt4.1M ./tmp8.0K ./initrd248K ./dev16K ./lost+found251M ./lib5.4G ./usr53M ./home770M ./proc0 ./sys8.0K ./misc16K ./media6.0M ./bin32K ./windows68M ./etc8.0K ./.automount8.0K ./mnt360M ./var8.0K ./srv6.9G .

ดแคไอทปายเหลองๆ เอาไวนนกแลวกน จะเหนวา /usr นนใหญโตมโหระทกเลยทเดยว เพราะผมเลนตดตง software ของ Fedora Linux ลงไปเกอบจะครบทกตว แลวยงไปหามาเตมเขาไปอกตงเยอะ:-) ถาขน follow ตามตวเลขทผมลอกตำาราเลมอนมาตงแตแรก กเปนอนวาตดตงไมสำาเรจอยด ...เพราะฉะนนจงไมตองแปลกใจวา ทำาไมในอกเครองหนงนนผมแยก partition ของ /usr ออกมาตง7.9G เพราะวาผมทรนทรายกบการตดตง Linux บนเครองนนเครองนมาตงหลายหนแลวนนา :-)สำาหรบ partition อนๆ กเพยนจากตำาราไมนกหรอกครบ /var อาจจะใหญไปหนอย แตเพราะมขยะเนองจากการ update แลวยงไมไดลบออกอยบางมนกเลยดตงๆ พนท hard disk พอสมควร

ทนกไดรขนาดทตองการของตวเองละ ... ถาอยากจะลงใหมดวยการแบง partition ใหเปนระเบยบเรยบรอยกจำาตวเลขไปเผอๆ กนเอาเองกแลวกน ถาจะบาเลอดกบ software ขนาดหนก กตองเผอพนทของ /usr ไวใหมากๆ ... ลองไปดซวา /usr มนไปโตๆ บวมๆ ตรงไหนมง :-P

2.3G ./share22M ./sbin136M ./include88M ./java331M ./local2.1G ./lib120K ./doc1.6M ./kerberos2.5M ./games278M ./bin204M ./X11R68.0K ./etc104K ./src31M ./libexec5.4G .

47.42

Page 44: Linux Lesson I

Linux Basic Lessons

ตวทกนพนทดๆ เลยกคอ /usr/share กบ /usr/lib ครบ ยงไมไดเขาไปสำารวจเหมอนกนวาอะไรจะตองใหญโตขนาดนน ? เพราะจรงๆ แลวผมกจบเอา fonts ของ MS-Windows ยดเขาไปในdirectory ทชอวา /usr/local/share/fonts/local ไปแลว ... เพราะงนทใหญบะลกกกออกมานนมนจงไมใชผลงานของผมโดยตรงอยางแนนอน :-)

จบเรองทอยากจะเลาในระดบประถม 1 แคนกอนแลวกนครบ ถาบงเอญวาใครอยากจะเรมตดตงใหมอกรอบหนง กจดการกนซะตอนนเลย ... ผมขออนญาตไปคนตำารากอนวา ระดบประถม 2 น Linuxควรจะตองรคำาสงอะไรทมากกวานมงดกวา :-D

หรอถาใครคดวาอยากจะทบทวนอกครง รายการคำาสงขางลางนกคอทผมเลาผานๆ มาทงหมดครบหาอานรายละเอยดของแตละตวกนเอาเองจากในเครองททำาการตดตงไวกได

ทผมเรยกเปนระดบอนบาลม ... ls, cp, rm, mv, mkdir, rmdir, cd, exit, logout และ man ...แลวชดตอมาใน "ประถมบท" ผมเลาเพมเตมไวแค 4 คำาสงคอ chmod, su, df และ du

นาจะเลาคำาสงไหนตอไปอกดหวา? ... เดยวคอยวากน!!

ออ !... เพอจะไมเปนการเสยเวลารอ ผมขอแนะนำาใหทดลองฝก vi ไปเลยดกวามย ... ทำาอยางนครบเปดเครองขนมา login กนตรงหนา graphic หรอจะออกไป login จาก virtual console ทเปนtext mode กได จากนนเรยกคำาสง vimtutor ขนมา ... แคนนแหละครบ ทเหลอกทำาตามตำาราทเขาเตรยมไวใหไปเรอยๆ ... เทานกพอจะใช vi ไดคลองๆ ในระดบหนงแลวละครบ... แฮม !!

47.43

Page 45: Linux Lesson I

Linux Basic Lessons

ประถมบทท 2 : อยไหนหวา?

อยางทเลาเอาไวแลววา ตอนทตดตง Linux โดยทวๆ ไปนน จะเกดไฟลตางๆ ในระบบของเราประมาณ3 - 4 หมนไฟลดวยกน มทงทเปนไฟลคำาสง , บางกเปน config, บางกเปนคมอหรอ documentsเพอใหเราศกษาเพมเตม, หรอไฟลประกอบทจำาเปนบางไมจำาเปนบางกบการทำางาน ขนอยกบวาเราจะบาเลอดขนาดไหนในตอนทตดตง :-)

ทน ... พอใชงานไปซกพกหนง เรากจะเรมสบสนกบผลงานของตวเอง เพราะเราชกไมแนใจวาไฟลทเราตองการแตละตวนนมนอยทไหน? หรอวามนยงมอยในระบบรเปลา? ในโลกของ MS-Windowsผมเคยเหน user หลายคนใชระบบการคนหาใน graphic mode หรอบางคนกอาจจะใชคำาสง attribหรอแมแต dir ทม /s เปน parameter ตามหลง ... กถา Linux ไมม features เหลานเลยกตองถอวาเชยละเอยดจรงๆ ... ถกรเปลา?

คำาสงทใชในการคนหาไฟลของ Linux นาจะมอยดวยกนหลายวธครบ ขนอยกบความชำานชำานาญและตาม style การเรยกใชคำาสงของแตละคน เพราะคำาสงของ Linux ไดรบการพฒนามาจากหลายแหลงทวโลก ... เรากคงจะเลากนแคกลมคำาสงมาตรฐานของมนกพอ แลวใครทอยากจะลองวธอนๆ กหาโอกาสไปลองใชลองฝกกนเอาเอง

คำาสงในกลมทจะเลาตอไปนกจะม locate หรอ slocate, whereis, which, และ find

slocate เปนคำาสงทปรบปรงมาจาก locate โดยเพมเตมรายละเอยดเกยวกบดาน securityลงไป แลวกเลยเรยกกนวา slocate ... ปจจบนคำาสง locate ไมมอกแลวครบ แตทพวกเรายงเรยกใชมนได เปนเพราะ Linux รนหลงๆ จดการใหคำาสง locate เปนlink ของ slocate ไปแลว เวลาเรยก locate หรอ slocate กเลยหมายถงคำาสงเดยวกน ... วธใชคำาสงกแค ...

locate <ชอไฟล>

locate หรอ slocate นทำางานไดคอนขางเรวครบ เนองจากมนจะมการทำารายการ indexหรอสารบญของไฟลตางๆ ในระบบเอาไวกอน เรยกวาพอหาปบกเกอบจะเจอในทนทเลย ... ถำเรำรตวสะกดทแ นนอนของชอไฟลนนๆ :-)

แตถาบงเอญไมรจรงๆ หรอจำาไดเพยงบางสวน หรอไมรวาไฟลทตองการหานนถกกำาหนดใหมชอเปนตวพมพใหญพมพเ ลกยงไงมง กตองอาศย parameter ชวยนดหนอยครบ

locate -i <ชอไฟล>-i เปน parameter ทสงให locate ไมตองสนใจ case ของตวอกษรวาจะเปนพมพเลก

หรอพมพใหญ

locate -r <regular expression ของชอไฟล>

ตวอยางเชน ... locate -r grub*

แตเพราะวามนจะทำางานกบ database ของระบบทมอยแลวเทานน ซงเรากอาจจะตองคอยupdate ฐานขอมลนหรอทำาการซอมสรางตามแตเวลาทเหนสมควร ซงบางครงเรากเลยอาจจะรสกสะดวกกวาถาจะใชคำาสง find ทำาหนาทนแทน

47.44

Page 46: Linux Lesson I

Linux Basic Lessons

find ชอคำาสงกบอกไวโจงแจงเลยครบ ผมเจอคำาสงนครงแรกดวยการขอดคมอมวๆ วา man findแลวกเลยเหนวธการใชของมน :-) ... เพราะฉะนนเวลานกชอคำาสงอะไรแลวไมแนใจวาสะกดถกรเปลา หรอไมแนใจวาจะเปนคำาสงทตองการมย กใหทดลองขอดคมอจากการเรยกใช man <ชอคำำสง> กอนกไดครบ

สวนใหญของการใชคำาสง find เปนอยางน ...

find <starting path> -name <reg.exp ของชอไฟล>

วธระบชอไฟลทตองการหากจะเหมอนกบคำาสง locate -r นนเอง คอสามารถใสเครองหมาย* หรอ ? แทนตวอกษรใดๆ ของชอไฟลได

รายละเอยดและความสามารถของคำาสง find มเยอะครบ เชนหาวาไฟลไหนถกสรางขนมาหรอถกแกไขเปลยนแปลงในวนทหรอเวลาไหน หรอจะหาไฟลทมขนาดเทาไหร ...อยางนเปนตน ... กไปหาอานเอาเองจากการเรยก man find กแลวกน

whereis เปนคำาสงทเอาหาไฟลป ระเภท binary, หรอ source code, หรอคมอการใชของคำาสงใดคำาสงหนง ... จะเหนวามนม scope แคบกวา 2 คำาสงแรกทเลาเอาไวในบทน แตกเหมาะกบการหาคำาสงทตองการโดยไมตองยงเกยวกบชอไฟลทไมเกยวของวธใชกแค ... whereis <ชอคำำ สง>

which ในทางหนงมนทำาหนาทคลายกบการหาดวย whereis ตางกนเพยงแควา whichจะหยดการคนหาทนทเมอมนพบคำาสงนนๆ ใน path ทไดรบการกำาหนดเอาไว ...ดงนนโดยลกษณะดงกลาว เราจงเอามนไวเพอตรวจสอบวาคำาสงทเราเรยกใชอยเปนประจำานน ใชตวทเราตองการจรงๆ รเปลาดวย เพราะระบบการคนหาคำาสงของLinux กจะไลไปตามลำาดบกอนหลงของ path ทกำาหนดเอาไวกอนแลวตงแตตอนทlogin เขาสระบบของ user แตละคน

ครบแลวนะ 4 คำาสง ปญหาทยงจะตามมาอกสำาหรบ "มนษยขสงสย" กคอ เรากหาจนเจอไฟลท อยากจะหาแลว หรออาจจะเหนชอของไฟลบ างตวทนาสนใจ ... แตในเมอ Linux ไมไดกำาหนดเงอนไขของexecutable files เอาจาก extension ของไฟลนนๆ ... แลวเราจะไปรไดยงไงละวามนเปนไฟลประเภทไหน? ... เราจะใชคำาสง file ครบ :-) วธใชกงายนดเดยว

file <ชอไฟล>ผลลพธท ไดกจะแตกตางกนไป เพราะบางตวเปน binary, บางตวกเปน ASCII text file, บางตวกเปน link, บางตวกเปน directory, หรออาจจะเปน block device, ไมงนกเปน shared object,ฯลฯ ไมแนใจเหมอนกนวายงมประเภทอนๆ อกมย :-) ... แตทงหมดกจะมแต ASCII text file เทานนแหละครบทเราสามารถอานออก แลวก text file บางตวมนกเปน script หรอ configurationของ software ตางๆ ในระบบของ Linux ดวย ... แลวกเพราะ Linux ทำางานเกอบทกอยางอยบนพนฐานของ text file นแหละครบ ททำาให text edtor อยาง vi หรอ vim รวมไปถง emacs หรอjoe มความสำาคญมากมายขนาดท user ทวๆ ไปนกไมถงกนเลยทเดยว

47.45

Page 47: Linux Lesson I

Linux Basic Lessons

การเปดอาน text files ทวๆ ไปนนจะใชคำาสง cat, more, หรอ less ... แตบางคนกขเกยจจำากนหลายตว เขากจะตะบนใช vi เพยงตวเดยว เพอจดการกบ text file ทกตวไปเลย ... เพยงแตในบางสถานการณนน การใช vi ซงสามารถ edit แกไขเพมเตมเขาไปใน text file หนงๆ ไดนน กไปพวพนกบเรองของ security หรอความ stable ของระบบเขาใหเหมอนกน ... มนคอทมาของการสราง utilities เลกๆ กลมหนงขนมาเพอใชในการ "อาน" เพยงอยางเดยว

คำาสงทงหมดทเลามาน ถอเปนเรองพนฐานทงนนเลยครบ เพราะเรองราวของ Linux ตอจากคำาสงงายๆ เหลานกคอการ setup หรอการแกไขเปลยนแปลงคา configuration ตางๆ ของ softwareแตละตว ... แนนอนท Linux มคำาสงเปนรอยเปนพนขนาดทรวบรวมเปนหนงสอไดหนาๆ ขนาดสมดโทรศพทห นาเหลองเลยทเดยว ซงมความจำาเปนตองใชในสถานการณท ไมเหมอนกน ... ทสำาคญกคอหลายๆ คำาสงกเหมาะกบการเอาไปเขยนเปน script มากกวา เพราะม syntax ทยงยากทงยงสามารถpipe ( | ) หรอ redirection ( > และ >> ) ใหไปเกดเปนผลลพธต างๆ ไดอกสารพดเรอง ... กคงถอโอกาสจบ "ประถมบท" กนแตเพยงเทาน และปลอยให user ทอยากจะเรยนรไดไปสมผสและฝกหดการใชงานคำาสงตางๆ จนเกดความชำานาญของแตละคนกนเอาเองตอไป

อยาลมวาคำาสง man คอคมอชนสำาคญสำาหรบการศกษาคนควาและทดลองใชงาน Linux เพราะมนบรรจแทบจะทกคำาสงเอาไวใหอยแลว และนอกจากนนกอยาลมหดใช vi หรอ vim จากเครองมอชวยสอนทแถมมาใหอยาง vimtutor นนดวย ... แมวา power ของ Linux สวนหนงจะอยทการกำาหนดคา configuration ตางๆ ของระบบ แต power ทแทจรงในระบบของ Linux นนจะอยทการเขยน script ใหกบ shell ทเราทำางานอยเปนประจำามากกวา ... หากใครทซกซนพอจะเขาไปซอกๆแซกๆ กบแตละ directory ของ Linux แลวกจะเหนวา เราอาศยการทำางานหรอการแกไขconfiguration ตางๆ ของระบบผาน scripts นบรอยๆ ทคนอนๆ ชวยกนเขยนเอาไวทงสน :-)

ผมกคงจะกระโดดขามไปเรองอนกอนทจะยอนกลบมาทเรองของ shell scripts เพราะรายละเอยดของการเขยน scripts นน นาจะมมากกวาการกำาหนดคา configuration ของระบบซะอก เพราะมนเกอบจะเปนโลกของ developers จรงๆ ไปแลว ในขณะทการตดตงระบบและการกำาหนดคาconfiguration นนยงเปนโลกของ administrator เทานนเอง

47.46

Page 48: Linux Lesson I

Linux Basic Lessons

จบภาคแรก

การเขยนตำาราไมใชเรองงาย ผมเองกเขยนเลาไปเทาทตวเองเคยร และเอกสารฉบบนกอาจจะไมตางไปจากบนทกลำาดบขนตอนของการเรยนร Linux ของผมเอง ซงอาจจะผดเพยนไปจากลำาดบขนตอนของคนอนๆ อยบาง ... แตนนไมนาจะใชปญหา :-)

ผมเลอกใชงาน Linux เพราะมน "ฟร" ... :-) นนอาจจะเปนปจจยสำาคญประการแรกๆ ของหลายๆองคกร แตทผมชอบมนเพราะมนเปดกวางใหกบการเรยนร แลวมนกยงไมจบทงทมความสมบรณใ นตวของมนมากพอสมควรแลว ... มเรองราวใหมๆ และมสงแปลกๆ ใหเราไดสมผสมนไดตลอดเวลา ในขณะทเรากยงสามารถใชงานมนอยางปกตทกๆ วนตอไปได ... ถาการเรยนรคอสงทสนกสนานในชวตของพวกเรา ผมกเชอวา Linux คอทางเลอกทนาสนกสนานนน

ผมเรมตนจากสงทเลามาทงหมดน แลวกยงสนกกบการอานและการเรยนร features ใหมๆ ทยงซกซอนอยใน Linux ตอไป มนอาจจะเปนทงการปฏบตงาน และเกมลาสมบตสนกๆ ในเวลาเดยวกน ...มนเปนสงทเราสามารถใชประโยชนกบการปฏบตงานได และเปนสงเดยวกนกบทเราจะสามารถมสงคมเลกๆ อกสงคมหนงทจะพดคยแลกเปลยนความคดกนถงเทคนคหรอกลวธแปลกๆ บนเครองมอประจำาโตะหรอประจำาตวของพวกเราชนทเรยกวาคอมพวเตอรน ... มนอยทเราจะมองวา Linux เปนเรองทนา serious ทควรจะตองจรงจงกบมนอยางเอาเปนเอาตาย หรอเราจะมองมนเปน "ของเลน"ทสามารถใชประโยชนกบการปฏบตงานประจำาวนของเราได ?! ... เรากตองเลอกของเราเองละ ...

ผมจะเวนวรรคทางเอกสารนซกระยะหนง เพอทบทวนเรองทเรยนรมาแลวกบสงทกำาลงเรยนรใหมตอไปเรอยๆ แลวคอยจบมาประมวลทงหมดเปนเอกสารชดท 2 ของการเผยแพรความรเกยวกบ Linuxตอไป ... บอกตรงๆ วามนเขยนยากกวาเอกสารบาๆ บอๆ ทตวเองเคยเขยนไวเยอะทเดยว ... กสนกของผมไปอกแบบครบ :-)

Mr. Z.,กรงเทพฯ, 26.03.2005

47.47