Thursday, March 26, 2009

ไกลปืนเที่ยง : FreeBSD --> simply freebsd

เรื่องของ FreeBSD ตั้งแต่ง่ายๆไป จนถึงการใช้งาน FreeBSD เป็นฐานรองรับ hardware เพื่อทำหน้าที่เป็น servers และงานอื่นๆในที่สุด ใจความในตอนนี้ ถอดจาก FreeBSD Handbook บทที่ ๓ Virtual consoles and Terminals โดยแต่งเรื่องราวเสริมขึ้นบ้าง
FreeBSD สามารถใช้งานได้หลายลักษณะ หนึ่งในนั้นคืออันที่เรียกว่า พิมพ์คำสั่งตรงๆลงไปยัง text terminal และ ความสามารถทั้งหลาย ทั้งปวงของ FreeBSD กระทำผ่านนิ้วมือของท่าน ได้ด้วยวิธีนี้ ในตอนนี้ ใคร่ขอแนะนำ ให้ท่านรู้จักว่า อะไรคือ terminals และ อะไรคือ consoles และ ท่านสามารถใช้งานทั้ง ๒ แบบนี้ อย่างไร
๗ โมงครึ่ง ของอีกวันแล้ว ขอพักก่อน แป้บน่ะ
กินเถอะ แม่


Console
ถ้าท่านยังไม่ตั้งให้ FreeBSD เริ่มทำงานในกราฟโหมด ระบบ จะนำท่านมาสู่ login prompt เมื่อท่านเปิดเครื่อง และท่านจะพบกับสิ่งที่คล้ายๆกันนี้
Additional ABI support:.
Local package initialization:.
Additional TCP options:.

Fri Mar 27 01:23:45 ICT 2009

FreeBSD/i386 (jotawski.lampoon.org) (ttyv0)

login:

ข้อความ อาจจะแตกต่างไปบ้าง จากระบบของท่าน อย่างไรก็ดี ท่านสมควรพบกับสิ่งที่คล้ายๆกัน แต่สองบรรทัดสุดท้าย คือสิ่งที่ใคร่ขอแนะนำให้รู้จักโดยละเอียด สำหรับตอนนี้ ซึ่งบรรทัดที่ ๒ ก่อนสุดท้ายคือ

FreeBSD/i386 (jotawski.lampoon.org) (ttyv0)


ซึ่งมีข้อมูลเล็กๆน้อยเกี่ยวกับระบบที่ท่านเพิ่งจะเปิดใช้งานอยู่ นั่นคือ ท่านกำลังมองดู ``FreeBSD'' console ที่วิ่งบนสถาปัติยกรรมของ หน่วยประมวลผล ตระกูล Intel ในจำพวก x86 หรือเทียบเท่า ชื่อของเครื่องนี้ (unix ทุกเครื่อง มีชื่อ) คือ jotawski.lampoon.org และขณะนี้ ท่าน กำลัง จ้อง มองดู console ของระบบ ของเขาล่ะ -- terminal ที่เรียกว่า ttyv0

และที่สุด บรรทัดสุดท้าย ซึ่งจะเป็นอย่างนี้เสมอ คือ

login:

นี่เป็นส่วนที่ท่านได้รับการคาดหวังว่า ท่านจะกรอก ``username'' เพื่อเข้าสู่ FreeBSD ซึ่งจะได้รับการบอกเล่า ในลำดับถัดไป

เข้าใช้งาน FreeBSD
ฟรีบีเอ้สดี เป็นระบบหลายโปรเซส หลายผู้ใช้งาน นี่เป็นการบรรยาย แบบทั่วไป กับระบบที่ สามารถใช้งานได้หลายคน และ สามารถ วิ่งโปรแกรมได้ ครั้งล่ะ หลายๆโปรแกรม พร้อมๆกัน ในเครื่องเดียว

ทุกระบบหลายผู้ใช้ จำเป็นต้องมีวิธีการที่จะจำแนกแยกแยะ ผู้ใช้งานผู้ใดผู้หนึ่ง ออกจะคนอื่นๆ ในฟรีบีเอ้สดี (และในระบบ unix อื่นๆด้วยเช่นกัน) สิ่งนี้บรรลุได้โดย กำหนดว่า ผู้ใช้ ต้อง เข้าสู่ระบบ ก่อนที่จะสามารถวิ่งโปรแกรมใดใดได้ ผู้ใช้ทุกคนจะได้รับ ชื่อ (username) ที่ไม่ซ้ำกัน พร้อมกันนั้น ก็จะมีกุญแจลับจำเพาะตัว (หรือ ระหัสลับ (password) ที่รู้กันแต่ผู้เดียว) ฟรีบีเอ้สดี จะถามสองสิ่งนี้ ก่อนที่จะอนุญาตให้ใช้งาน และวิ่งโปรแกรมใดใดได้

ภายหลังจากที่ ฟรีบีเอ้สดี บู้ตเครื่อง และจบงานเริ่มต้นแล้ว มันก็จะนำเสนอท่านด้วย prompt และถามหาชื่อที่ถูกต้อง

login:

เพื่อเป็นการยกตัวอย่างในที่นี้ สมมติว่า ชื่อ ของท่านคือ taparow ก็ให้ท่าน กรอก taparow ไปที่ prompt นี้ แล้วตามด้วยการกดปุ่ม Enter ซึ่งท่านควรจะได้รับ การสนองตอบ ด้วย การบอกให้ท่านกรอก ระหัสลับ

login: taparow
Password:

ก็ให้ท่าน กรอก ระหัสลับ ของ taparow ไป และกัดปุ่ม Enterโดยที่ไม่ต้องกังวลว่าจะมีผู้อ่าน หรือ เห็น ระหัสลับ ของท่านได้ เพราะ มันจะไม่แสดงออกมา ทางหน้าจอภาพ ก็พอจะบอก ให้ท่าน สบายใจได้ในขณะนี้ว่า มันทำไปดังนั้น ด้วยเหตุผล เพื่อ ความปลอดภัย ของระบบ

ถ้าท่านใส่ระหัสลับได้ถูกต้อง ท่านสมควรได้รับการนำเข้าสู่ ระบบปฏิบัติการ FreeBSD และ พร้อมที่จะ ทดลองใช้ คำสั่งต่างๆประดามีได้ ตามปราถนา

ท่านควรจะเห็น MOTD หรือ ข่าวประจำวัน ตามด้วย prompt (อาจจะเป็นอักขระ # $ หรือ % ตามแต่กรณี) ซึ่งบ่งบอกว่า ท่าน ได้เข้าสู่ระบบปฏิบัติการ FreeBSD เรียบร้อยแล้ว

การทำงานหลาย Consoles
การใช้งานโปรแกรม unix ใน console เดียวนั้นก็ดีอยู่หรอก แต่ ฟรีบีเอ้สดี นั้น สามารถที่จะ วิ่งได้ หลายๆโปรแกรม พร้อมๆกัน การมี console เดียวขณะที่ สามารถ สั่งงาน ได้อีกนั้น ดูจะเป็น การสูญเปล่าไป ในเมื่อระบบปฏิบัติการ เช่น FreeBSD นั้น สามารถวิ่ง ได้หลายๆโปรแกรม พร้อมๆกัน และ นี่เอง ที่ ``virtual consoles'' สามารถช่วยได้มาก

FreeBSD นั้นสามารถ ปรับแต่ง ให้ท่านใช้ virtual console ได้มากเท่าที่ต้องการได้ ท่านสามารถ กระโดด ไปมา ระหว่างแต่ละ console ได้โดยง่าย เพียงแค่ กดปุ่ม สองสามปุ่ม บนแป้นพิมพ์ของท่านเท่านั้น แต่ละ console ก็จะมี ช่องทางผลลัพธ์ เป็นของ ของตัวของตัวไป ฟรีบีเอ้สดี จะรับผิดชอบ ในการสลับ สับหลีก คู่แป้นพิมพ์จอภาพ สำหรับแต่ละ console ที่ท่านใช้งานได้อย่างถูกต้อง

ป่มพิเศษ ที่สงวนไว้สำหรับงานนี้โดย FreeBSD เป็นการจำเพาะ ท่านสามารถใช้ปุ่ม Alt F1, Alt F2 ถึง Alt F8 เพื่อสลับไปมา ระหว่าง virtual console ใน FreeBSD

ขณะที่ท่านกระโดดไปยังอีก console หนึ่ง FreeBSD เขารับผิดชอบ ในการเก็บ และนำกลับ ผลลัพธ์หน้าจอ ซึ่งผลก็คือทำให้ท่าน รู้สึก ว่ามี virtual คู่แป้นพิมพ์จอภาพ ได้หลายคู่ ที่ท่านสามารถ ใช้ สำหรับ เขียนคำสั่งให้ FreeBSD ทำงาน โปรแกรม ที่ท่านวิ่งในอีก console หนึ่ง ไม่หยุดทำงาน แม้ว่า console นั้นจะมองไม่เห็น มันยังทำงานอยู่ แม้ท่านจะสลับไปยัง console อื่นก็ตาม

แฟ้ม /etc/ttys
FreeBSD ได้รับการปรับให้ เริ่มต้นเมื่อเปิดเครื่อง สามารถมี 8 virtual consoles อันนี้ ไม่ใช่การติดตั้งกับตัวเครื่องมา แต่ ท่าน สามารถ ปรับ ระบบของท่าน เอาเองได้ ตามใจชอบว่า จะให้มี น้อย หรือ มาก เท่าไรก็ได้ จำนวน และ การกำหนดค่าต่างๆ ของ virtual consoles สามารถปรับ ได้จากแฟ้ม /etc/ttys

ท่านสามารถใช้แฟ้ม /etc/ttys ปรับ virtual consoles ของ FreeBSD ซึ่งแต่ละบรรทัด ที่ไม่ได้ comment ไว้ (บรรทัดที่ไม่ได้ขึ้นต้นด้วย #) มีการกำหนดค่าตั้งต้น สำหรับ terminal เดี่ยว หรือ virtual console แฟ้มที่ให้มากับระบบปฏิบัติการ FreeBSD นี้ ได้รับการปรับแต่ง ให้มี 9 virtual consoles และ ให้เริ่มทำงาน เพียง 8 อัน ก็ประดาบรรทัด ที่เริ่มต้นด้วย ttyv: นั่นเอง
# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
สำหรับ รายละเอียดของแต่ละ column ในแฟ้มนี้ รวมทั้ง options ต่างๆ ที่ท่านสามารถเลือก เพื่อกำหนดสิ่งต่างๆ ใน virtual console ได้เอง นั้น กรุณาอ่าน หน้าคู่มือ ttys(5)
หมายเหตุมะไฟ ตารางนี้ แต่ละบรรทัด มี ๕ สดมภ์ แต่ละ สดมภ์ คั่นด้วย space ถ้าสดมภ์ใดมี space อยู่ให้ใช้ " ปิดหัว ท้าย สดมภ์นั้น

Single User Mode Console
ความลับของ single user mode console ท่านสามารถหาอ่านดูได้จากเรื่องของ init process ที่จะนำเสนอต่อไป สิ่งที่สำคัญที่จะทราบไว้ก็คือ ท่านสามารถมี และใช้ console ได้เพียง 1 console เท่านั้น เมื่อท่านวิ่ง FreeBSD ใน single user mode ไม่มี virtual console ให้ท่านใช้ การกำหนด หรือ ปรับแต่ง console ใน single user mode สามารถกระทำได้ผ่านแฟ้ม /etc/ttys เช่นกัน โดยมองหาบรรทัดที่เริ่มด้วยคำ console
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure

อย่างที่บอกไว้ตรง comment ของรายละเอียดข้างบนของ console ถ้าเราเปลี่ยนจาก secure เป็น insecure เมื่อ FreeBSD เข้าสู่ single user mode มันจะถามหา ระหัสลับ ของ root ซึ่งจะทำให้ท่านวุ่นวายเอาได้

เรื่องราวที่เหลือ ของบทนี้ ผมขอผ่านไป ไม่นำเสนอเพราะเห็นว่า ไม่ค่อยได้ใช้งานมากนัก ในครั้งต่อไป ของ ไกลปืนเที่ยง ถ้าเรื่องที่เกี่ยวข้องกับ handbook ก็จะบอกไว้ แต่ต้น ดังที่ท่านเห็นในตอนนี้ หวังว่าคงพอได้ สาระ บ้าง

7 comments:

Chaiyut said...

ปกติไม่ค่อยได้มองอะไรก่อนบรรทัด log in เลย เข้ามาปุ๊บ รอ บรรทัด log in อย่างเดียวจะเข้าล่ะ อิอิ แต่ที่เคยสังเกตุ แล้วก็เล่นด้วยก็ตรง MOTD นี่แหละ ไปเปลี่ยนเล่น นิดนึง ทำนองว่า เครื่องข้าครายอย่าหยาม อิอิ

ลุงมะขามครับ ขอถามนิดนึงได้มั้ยครับว่า ปกติแล้ว การ copy ในเครื่องเดียวกัน กับ copy ข้ามเครื่อง มันใช้ ซีพียู ต่างกันเหรอครับ พอดีสังเกตุว่า copy ข้ามเครื่อง ใช้งาน ซีพียู มากเลยครับ (ผ่านทาง sftp) เอ๊ะ หรือเป็นเพราะ sftp หว่า เพิ่งมา อ๋อ ถ้าเป็น ftp จะใช้น้อยกว่ารึ๊ป่าวครับ

มะขาม said...

เล่นมาถามปัญหาทางวิชาการจาก แมว แล้วคำตอบก็คงหนีไม่พ้น ปลาปลา
ฮาาาาาา
มันใช้ cpu หรือเปล่าละครับ คำสั่งนี้หนะ
นั่นหละ คำตอบ คิกคิก
ขอบใจมากน่ะ ที่อุตสาห์แวะมาอ่าน อ่านขณะที่กำลังเขียนอยู่ เรียกว่า เป็นผู้ตรวจต้นฉบับ เลยก็ว่าได้

Chaiyut said...

หุ หุ นึกว่าเขียนเสร็จแล้ว อิอิ

พอดีตอนแรกที่สงสัย ก็คือคุยกับเพื่อนแล้วเพื่อนถามถึงเรื่อง DMA ว่าได้ไปเปิดฟังก์ชั่นนี้รึยัง แต่ก็คิดว่า FreeBSD6.2 น่าจะเปิดให้เรียบร้อยแล้วนะ ที่ต้องไปทำ นั่นมันน่าจะสมัยเมื่อก่อน (วินโดว์ 98 และก่อนหน้านั้น) น่ะ อิอิ

ขอบคุณที่ตอบคำถามครับ แล้วจะแวะเข้ามาอ่านบ่อย ๆ ครับ อิอิ

มะขาม said...

ขอบคุณครับ ขอบคุณมาก
แวะมาบ่อยๆน่ะ
อยากอ่านเรื่องไร บอกด้วยหละ

มะไฟ ฅนเหลิงฟ้า

Chaiyut said...

กลับมาอ่านต่อจนจบ แหะ ๆ ครั้งที่แล้วอ่านไม่จบ

ว่าแต่ตรงท้ายบทความ ถ้าเปลี่ยนเป็น
console none unknown off insecure //จะถามหาระหัสลับของ root
แต่ถ้าเป็น
console none unknown off secure // ก็จะไม่ถามเหรอครับ


ส่วนอยากอ่านเรื่องอะไรนี่ จริง ๆ แล้วผมชอบอ่านแนวปรับแต่ง จูน ให้แรงกว่า เดิม ๆ ที่ลงมาอ่ะ จูนให้เป็น NAT Server ให้เป็น Database Server หรือเป็น Web Server อะไรประมาณนี้ครับ ตอนนี้ที่กำลังทำอยู่ก็ไปนั่ง คอมไพล์ kernel ใหม่ นั่งดูว่าส่วนไหนไม่เกี่ยวกะเราก็เอาออก แต่บางอันไม่แน่ใจว่าคืออะไรก็ปล่อยไว้แบบนั้น แต่ก็ทำให้ลดขนาดลงเยอะพอควรเลยครับ อิอิ
เดี๋ยวเอาไว้คิดเรื่องอยากอ่านได้อีกจะเอามา รีเครสโต๊ะ อีกนะครับ อิอิ

มะขาม said...

ถ้าเปลี่ยนจาก secure --> insecure เขาจะถามหา root password จริงๆครับ

ขอบคุณจริงๆ ที่เข้ามาอ่าน
เมื่อวาน หัวค่ำ ฝนตก เลยนั่งกินข้าวต้มร้อนๆ กับผักดอง กับ ปลาทอด ที่บ้าน แต่พอ ๒ ทุ่ม ก็ หลับ เพราะอากาศ มันชวนนอน

ตื่นเพราะเจ้าหนูที่บ้าน มันวิ่งถีบจักรอยู่เนี่ย

dekdar said...

ผ่านไปเกือบ เดือนกว่า เพิ่งถ่างตาอ่าน (หุหุหุ)

ขอบคุณลุงมากสำหรับบทความ บัชกำลังรวบรวม
กะทำเป็น คอลาเจล เอ้ย คอเลคชั่นอยู่ อิอิ


View My Stats