ภาษาไทย
中文(简体)
中文(繁体)
한국어
日本語
English
Português
Español
Русский
العربية
Indonesia
Deutsch
Français
ภาษาไทย
หน้าแรก
ดาวน์โหลดซอร์สโค้ด
เกี่ยวกับการเขียนโปรแกรม
ทรัพยากรสร้างเว็บไซต์
หนังสือและบทเรียน
บทเรียนออกแบบเว็บ
บทเรียนการเขียนโปรแกรมเครือข่าย
เกมมือถือ
แอปมือถือ
บทความ
หน้าแรก
>
หนังสือสอน
>
บทช่วยสอนเซิร์ฟเวอร์
การวิเคราะห์ระบบลีนุกซ์และเทคโนโลยีการเขียนโปรแกรมขั้นสูง
บทช่วยสอนเซิร์ฟเวอร์
ไม่มีทรัพยากร
หนังสือเล่มนี้แนะนำวิธีการเขียนโปรแกรมในสภาพแวดล้อม Linux รวมถึงคำสั่งระบบ Linux, เชลล์สคริปต์, ภาษาการเขียนโปรแกรม (gawk, Perl), เคอร์เนลของระบบ, ระบบรักษาความปลอดภัย, X Window ฯลฯ มีเนื้อหามากมายและครอบคลุมการอภิปราย ครอบคลุมทุกด้านของระบบ Linux แผ่นซีดีที่มาพร้อมกับหนังสือเล่มนี้ประกอบด้วยระบบ RedHat Linux เวอร์ชันล่าสุดและวิธีการติดตั้งตลอดจนรหัสโปรแกรมจำนวนมากในหนังสือเล่มนี้ซึ่งอำนวยความสะดวกให้กับผู้อ่านอย่างมากและให้การอ้างอิงที่ครอบคลุมสำหรับช่างเทคนิคที่ใช้และจะใช้ ระบบลินุกซ์
สารบัญ คำนำ บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบ Linux บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับ Linux…1
1.1 ต้นกำเนิดของ Linux 1
1.2 โครงการ GNU ของมูลนิธิซอฟต์แวร์เสรี 1
1.3 การออกเสียงลินุกซ์ 2
1.4 คุณสมบัติของลินุกซ์ 2
1.5 ข้อกำหนดฮาร์ดแวร์ขั้นพื้นฐาน 3
1.6 วิธีรับ Linux 3
1.6.1 ดาวน์โหลด Linux 3 จากอินเทอร์เน็ต
1.6.2 การรับ Linux 3 จากซีดี
1.7 เว็บไซต์ที่เกี่ยวข้องกับ Linux และกลุ่มสนทนาข่าวสาร 6
1.8 ข้อเสียของลินุกซ์ 7
บทที่ 2 เชลล์และคำสั่งทั่วไป 8
2.1 เข้าสู่ระบบและออกจากระบบ8
2.2 ระบบเชลล์ของลินุกซ์ 8
2.3 คำสั่งเชลล์ทั่วไป 9
2.3.1 เปลี่ยนรหัสผ่านบัญชี 9
2.3.2 ความช่วยเหลือออนไลน์ 9
2.3.3 การเข้าสู่ระบบระยะไกล 9
2.3.4 การประมวลผลไฟล์หรือไดเร็กทอรี 9
2.3.5 การเปลี่ยนไดเร็กทอรีการทำงาน 10
2.3.6 คัดลอกไฟล์ 10
2.3.7 ย้ายหรือเปลี่ยนชื่อไฟล์และไดเร็กทอรี 10
2.3.8 สร้างไดเร็กทอรีใหม่10
2.3.9 ลบไดเร็กทอรี 11
2.3.10 ลบไฟล์ 11
2.3.11 แสดงรายการที่ตั้งไดเร็กทอรีปัจจุบัน 11
2.3.12 ดูเนื้อหาไฟล์ 11
2.3.13 ดูเนื้อหาไฟล์ตามหน้า 11
2.3.14 ตรวจสอบพื้นที่ดิสก์ที่ไดเร็กทอรี 11 ครอบครอง
2.3.15 การถ่ายโอนไฟล์ 11
2.3.16 การตั้งค่าการอนุญาตไฟล์ 12
2.3.17 ตรวจสอบชื่อเวิร์กกรุ๊ปที่คุณอยู่13
2.3.18 การเปลี่ยนความเป็นเจ้าของไฟล์หรือไดเร็กทอรีเวิร์กกรุ๊ป 13
2.3.19 เปลี่ยนเวลาแก้ไขล่าสุดของไฟล์หรือไดเร็กทอรี 13
2.3.20 ลิงค์ไปยังไฟล์ 13
2.3.21 การค้นหาสตริงในไฟล์ 14
2.3.22 ค้นหาเส้นทางของไฟล์หรือคำสั่ง 14
2.3.23 การเปรียบเทียบเนื้อหาของไฟล์หรือไดเร็กทอรี14
2.3.24 ไฟล์พิมพ์ 14
2.3.25 การพิมพ์เอกสารทั่วไป 14
2.3.26 การพิมพ์ไฟล์ troff 14
2.3.27 คำสั่งควบคุมเครื่องพิมพ์ 14
2.3.28 การควบคุมกระบวนการ 15
2.3.29 ตัวแปรเชลล์ 16
2.3.30 ตัวแปรสภาพแวดล้อม 16
2.3.31 นามแฝง 16
2.3.32 คำสั่งทางประวัติศาสตร์ 17
2.3.33 การบีบอัดไฟล์ 17
2.3.34 การใช้คำสั่งไปป์ไลน์ 17
2.3.35 การควบคุมอินพุต/เอาต์พุต 18
2.3.36 ดูผู้ใช้ในระบบ 18
2.3.37 เปลี่ยนชื่อผู้ใช้18
2.3.38 ดูชื่อผู้ใช้ 18
2.3.39 ดูผู้ใช้เวิร์กสเตชันทั้งหมดบนระบบปัจจุบัน 19
2.3.40 การสนทนากับผู้ใช้บนเวิร์กสเตชัน 19
2.3.41 ตรวจเช็คระบบรีโมทว่าปกติหรือไม่ 19
2.3.42 ความรู้เบื้องต้นเกี่ยวกับการใช้อีเมล 19
บทที่ 3 ฟังก์ชั่นเครือข่ายของระบบ Linux 21
3.1 โปรโตคอลเครือข่ายที่รองรับโดย Linux 21
3.1.1 ทีพีซี/ไอพี 21
3.1.2 TCP/IP เวอร์ชัน 6 21
3.1.3 ไอพีเอ็กซ์/เอสพีเอ็กซ์ 21
3.1.4 ชุดโปรโตคอล AppleTalk 21
3.1.5 เครือข่ายบริเวณกว้าง 22
3.1.6 ISDN22
3.1.7 PPP, SLIP และ PLIP 22
3.1.8 วิทยุสมัครเล่น 22
3.1.9 เอทีเอ็ม 22
3.2 การแชร์ไฟล์และการแชร์การพิมพ์ภายใต้ระบบ Linux 22
3.2.1 สภาพแวดล้อมของแมคอินทอช 22
3.2.2 สภาพแวดล้อม Windows 22
3.2.3 สภาพแวดล้อมโนเวลล์ 23
3.2.4 สภาพแวดล้อม UNIX 23
3.3 ฟังก์ชั่นอินเทอร์เน็ต/อินทราเน็ตในระบบ Linux 23
3.3.1 อีเมล 23
3.3.2 เว็บเซิร์ฟเวอร์ 24
3.3.3 เว็บเบราว์เซอร์ 24
3.3.4 เซิร์ฟเวอร์ FTP และไคลเอนต์ 24
3.3.5 บริการข่าว 24
3.3.6 ระบบชื่อโดเมน 24
3.3.7 DHCP และบูต 24
3.3.8 มสธ. 24
3.4 การดำเนินการระยะไกลของแอปพลิเคชันภายใต้ระบบ Linux 24
3.4.1 เทลเน็ต 25
3.4.2 คำสั่งระยะไกล 25
3.4.3 X หน้าต่าง 25
3.5 ฟังก์ชั่นการเชื่อมต่อเครือข่ายของระบบ Linux 25
3.5.1 เราเตอร์ 25
3.5.2 สะพาน 25
3.5.3 การปลอมแปลง IP 25
3.5.4 สถิติ IP 26
3.5.5 นามแฝง IP 26
3.5.6 ตัวจำกัดการไหล 26
3.5.7 ไฟร์วอลล์ 26
3.5.8 ดาวน์โหลดพอร์ต 26
3.5.9 การปรับสมดุลโหลด 26
3.5.10 อีคิวแอล 27
3.5.11 พร็อกซีเซิร์ฟเวอร์ 27
3.5.12 โทรออกตามต้องการ 27
3.5.13 ไปป์ IP มือถือ และเครือข่ายส่วนบุคคลเสมือน 27
3.6 การจัดการเครือข่ายในระบบ Linux 27
3.6.1 แอปพลิเคชันการจัดการเครือข่ายภายใต้ระบบ Linux 27
3.6.2 SNMP28
3.7 เครือข่าย Linux ระดับองค์กร 28
3.7.1 ความพร้อมใช้งานสูง 28
3.7.2 การโจมตี 28
3.7.3 เครือข่ายซ้ำซ้อน 28
บทที่ 4 ความรู้เบื้องต้นเกี่ยวกับการจัดการระบบ Linux 29
4.1 บัญชีรูท 29
4.2 การสตาร์ทและการปิดระบบ 29
4.2.1 การบูตจากฟล็อปปี้ดิสก์ 29
4.2.2 เริ่มด้วย LILO 29
4.2.3 ปิดระบบ Linux 30
4.3 การติดตั้งระบบไฟล์ 30
4.3.1 เมานต์ฟล็อปปี้ดิสก์ 30
4.3.2 การสร้างระบบไฟล์ใหม่ 30
4.3.3 การถอนการติดตั้งระบบไฟล์ 31
4.4 การตรวจสอบระบบไฟล์ 31
4.5 การใช้ไฟล์เป็นพื้นที่สลับ 31
4.6 การสำรองระบบและไฟล์ 32
4.7 การตั้งค่าระบบ 33
4.7.1 ตั้งชื่อระบบ 33
4.7.2 การใช้ดิสก์บำรุงรักษา 33
4.7.3 รีเซ็ตรหัสผ่านบัญชีรูท 33
4.7.4 ตั้งค่าข้อมูลการเข้าสู่ระบบ 33
ส่วนที่ 2 การเขียนโปรแกรมภาษาและการจัดการ Linux ระดับสูง บทที่ 5 การเขียนโปรแกรมเชลล์ 35
5.1 การสร้างและการรันเชลล์ 35
5.1.1 การสร้างเชลล์ 35
5.1.2 การรันเชลล์ 35
5.2 การใช้ตัวแปรเชลล์36
5.2.1 การกำหนดค่าให้กับตัวแปร 36
5.2.2 การอ่านค่าของตัวแปร 37
5.2.3 ตัวแปรตำแหน่งและตัวแปรระบบอื่นๆ 37
5.2.4 บทบาทของเครื่องหมายคำพูด 37
5.3 คำสั่งการดำเนินการเชิงตัวเลข 38
5.4 การแสดงออกตามเงื่อนไข 40
5.4.1 ถ้านิพจน์ 40
5.4.2 นิพจน์กรณี 41
5.5 คำสั่งลูป 42
5.5.1 สำหรับคำสั่ง 43
5.5.2 ในขณะที่คำสั่ง 43
5.5.3 จนถึงข้อความที่ 44
5.6 คำสั่งกะ 44
5.7 เลือกคำสั่ง 45
5.8 คำสั่งซ้ำ 46
5.9 ฟังก์ชั่นย่อย 46
บทที่ 6 การเขียนโปรแกรมภาษาเพ่งพิศ 48
6.1 หน้าที่หลักของเพ่งพิศ 48
6.2 วิธีรันโปรแกรม gawk 48
6.3 ไฟล์ บันทึก และฟิลด์ 48
6.4 รูปแบบและการดำเนินการ 49
6.5 การดำเนินการเปรียบเทียบและการดำเนินการเชิงตัวเลข 50
6.6 ฟังก์ชั่นภายใน 50
6.6.1 ตัวเลขสุ่มและฟังก์ชันทางคณิตศาสตร์ 51
6.6.2 ฟังก์ชันภายในสตริง 51
6.6.3 ฟังก์ชั่นภายในของอินพุตและเอาต์พุต 52
6.7 สตริงและตัวเลข52
6.8 เอาต์พุตที่จัดรูปแบบแล้ว 52
6.9 การเปลี่ยนตัวคั่นฟิลด์ 54
6.10 เมตาอักขระ 54
6.11 การเรียกโปรแกรมเพ่งพิศ 55
6.12 เริ่มต้นและสิ้นสุด 55
6.13 ตัวแปร 56
6.14 ตัวแปรบิวท์อิน 56
6.15 โครงสร้างการควบคุม 57
6.15.1 ถ้านิพจน์ 57
6.15.2 ในขณะที่ลูป 57
6.15.3 สำหรับลูป 58
6.15.4 ถัดไปและทางออก 58
6.16 อาร์เรย์ 58
6.17 ฟังก์ชั่นที่ผู้ใช้กำหนด 58
6.18 หลายตัวอย่าง 59
บทที่ 7 การเขียนโปรแกรมภาษา Perl 60
7.1 เพิร์ล 60 คืออะไร
7.2 สถานะปัจจุบันของ Perl 60
7.3 ลองใช้ Perl 60 เป็นครั้งแรก
7.4 ตัวแปร Perl 60
7.4.1 สเกลาร์ 60
7.4.2 อาร์เรย์ 63
7.4.3 อาร์เรย์ที่เกี่ยวข้อง 65
7.5 การจัดการไฟล์และการทำงานของไฟล์ 65
7.6 โครงสร้างวง 66
7.6.1 foreach วง 66
7.6.2 การดำเนินการพิพากษา 66
7.6.3 สำหรับลูป 67
7.6.4 ในขณะที่และจนถึงลูป 67
7.7 โครงสร้างเงื่อนไข 67
7.8 การจับคู่อักขระ 68
7.9 การเปลี่ยนและการแปล 69
7.9.1 การทดแทน 69
7.9.2 การแปล 70
7.10 กระบวนการย่อย 70
7.10.1 คำจำกัดความของกระบวนการย่อย 70
7.10.2 พารามิเตอร์ 70
7.10.3 ค่าส่งคืน 70
7.11 ตัวอย่างโปรแกรม Perl ที่สมบูรณ์ 71
ส่วนที่ 3 การวิเคราะห์เคอร์เนลระบบ Linux บทที่ 8 บทนำเกี่ยวกับ Linux Kernel 73
8.1 การเริ่มต้นระบบ 73
8.2 การทำงานของระบบ 73
8.3 การเรียกระบบต่างๆ ที่เคอร์เนล 74 มีให้
8.3.1 แนวคิดพื้นฐานของกระบวนการและโครงสร้างข้อมูลพื้นฐานของระบบ 74
8.3.2 การสร้างและทำลายกระบวนการ 74
8.3.3 การรันโปรแกรม 74
8.4 การเข้าถึงระบบไฟล์ 75
บทที่ 9 กระบวนการของระบบ 76
9.1 กระบวนการคืออะไร 76
9.2 โครงสร้างของกระบวนการ 76
9.3 การจัดตารางกระบวนการ 78
9.4 ไฟล์ที่ใช้โดยกระบวนการ 79
9.5 หน่วยความจำเสมือนที่ใช้โดยกระบวนการ 80
9.6 การสร้างกระบวนการ 81
9.7 เวลาดำเนินการและตัวจับเวลา 81
9.7.1 นาฬิกาเรียลไทม์ 81
9.7.2 นาฬิกาเสมือน 81
9.7.3 นาฬิการูปภาพ 81
9.8 การรันโปรแกรม 82
9.8.1 ไฟล์ ELF 82
9.8.2 ไฟล์สคริปต์ 82
บทที่ 10 การจัดการหน่วยความจำ 83
10.1 บทบาทของการจัดการหน่วยความจำ 83
10.2 แบบจำลองนามธรรมของหน่วยความจำเสมือน 83
10.3 การโหลดหน้าตามความต้องการ 84
10.4 แลกเปลี่ยน 85
10.5 หน่วยความจำเสมือนที่ใช้ร่วมกัน 85
10.6 การควบคุมการเข้าถึง 85
10.7 การแคช 86
10.7.1 แคชบัฟเฟอร์ 86
10.7.2 แคชหน้า 86
10.7.3 สลับแคช 86
10.7.4 แคชฮาร์ดแวร์ 86
10.8 ตารางหน้าระบบ 86
10.9 การจัดสรรหน้าและการจัดสรรคืน 87
10.9.1 การจัดสรรหน้า 88
10.9.2 การเปิดเผยหน้า 88
10.10 การทำแผนที่หน่วยความจำ 88
10.11 คำขอเพจ 89
10.12 การแคชหน้า 89
10.13 Kernel Swap Daemon 90
บทที่ 11 การสื่อสารระหว่างกระบวนการ 91
11.1 กลไกการส่งสัญญาณ 91
11.2 กลไกท่อ 92
11.3 กลไก System V IPC 93
11.3.1 คิวข้อความ 93
11.3.2 เซมาฟอร์ 94
11.3.3 หน่วยความจำที่ใช้ร่วมกัน 96
บทที่ 12 PCI 98
12.1 ระบบ PCI 98
12.2 พื้นที่ที่อยู่ PCI 98
12.3 ส่วนหัวการตั้งค่า PCI 99
12.4 PCI I/O และที่อยู่หน่วยความจำ PCI 100
12.5 บริดจ์ PCI-ISA 100
12.6 บริดจ์ PCI-PCI 100
12.7 การเริ่มต้น PCI 101
12.7.1 โครงสร้างข้อมูลเคอร์เนลของระบบ Linux ที่เกี่ยวข้องกับ PCI 101
12.7.2 ไดรเวอร์อุปกรณ์ PCI 102
12.7.3 ฟังก์ชัน PCI BIOS 105
12.7.4 การซ่อมแซม PCI 105
บทที่ 13 การขัดจังหวะและการขัดจังหวะการจัดการ 106
13.1 การขัดจังหวะ 106
13.2 ตัวควบคุมอินเทอร์รัปต์ที่ตั้งโปรแกรมได้ 106
13.3 การเริ่มต้นโครงสร้างข้อมูลสำหรับการประมวลผลขัดจังหวะ 107
13.4 การจัดการขัดจังหวะ 108
บทที่ 14 ไดรเวอร์อุปกรณ์ 109
14.1 การจัดการอุปกรณ์ฮาร์ดแวร์ 109
14.2 การโพลและการขัดจังหวะ 110
14.3 การเข้าถึงหน่วยความจำโดยตรง 110
14.4 หน่วยความจำ 111
14.5 การเชื่อมต่อระหว่างไดรเวอร์อุปกรณ์และเคอร์เนล 111
14.5.1 อุปกรณ์อักขระ 112
14.5.2 บล็อกอุปกรณ์ 113
14.6 ฮาร์ดดิสก์ 113
14.6.1 ฮาร์ดดิสก์ IDE 115
14.6.2 การเริ่มต้นระบบย่อยฮาร์ดดิสก์ IDE 115
14.6.3 ฮาร์ดดิสก์ SCSI 115
14.6.4 การเริ่มต้นระบบย่อยดิสก์ SCSI 116
14.6.5 การส่งคำขออุปกรณ์บล็อก 118
14.7 อุปกรณ์เครือข่าย 118
14.7.1 ชื่อไฟล์อุปกรณ์เครือข่าย 118
14.7.2 ข้อมูลรถโดยสาร 118
14.7.3 แท็กอินเทอร์เฟซเครือข่าย 119
14.7.4 ข้อมูลโปรโตคอล 119
14.7.5 การเริ่มต้นอุปกรณ์เครือข่าย 119
บทที่ 15 ระบบไฟล์ 121
15.1 ภาพรวมระบบไฟล์ Linux 121
15.2 ระบบไฟล์ ext2 122
15.2.1 โหนดดัชนีของ ext2 122
15.2.2 ต่อ 2 ซุปเปอร์บล็อก 124
15.2.3 ตัวอธิบายกลุ่มบล็อกข้อมูล ext2 124
15.2.4 ไดเรกทอรีใน ext2 125
15.2.5 การค้นหาไฟล์ในระบบไฟล์ ext2 125
15.2.6 การเปลี่ยนขนาดไฟล์ในระบบไฟล์ ext2 126
15.3 วีเอฟเอส 127
15.3.1 วีเอฟเอส ซูเปอร์บล็อก 128
15.3.2 VFS ไอโหนด 129
15.3.3 การลงทะเบียนระบบไฟล์ 129
15.3.4 การติดตั้งระบบไฟล์ 130
15.3.5 การค้นหาไฟล์ใน VFS 131
15.3.6 การเลิกทำระบบไฟล์ 131
15.3.7 แคชไอโหนด VFS 132
15.3.8 การแคชไดเรกทอรี VFS 132
15.4 แคชบัฟเฟอร์ 133
15.5 /proc ระบบไฟล์ 135
บทที่ 16 ระบบเครือข่าย 136
16.1 ความรู้เบื้องต้นเกี่ยวกับเครือข่าย TCP/IP 136
16.2 การแบ่งชั้นของเครือข่าย TCP/IP 137
16.3 ซ็อกเก็ต BSD 138
16.4 INET ซ็อกเก็ตเลเยอร์ 140
16.4.1 การสร้างซ็อกเก็ต BSD 141
16.4.2 การระบุที่อยู่สำหรับซ็อกเก็ต INET BSD 141
16.4.3 การสร้างการเชื่อมต่อบนซ็อกเก็ต INET BSD 142
16.4.4 การฟังบนซ็อกเก็ต INET BSD 142
16.4.5 การรับคำขอการเชื่อมต่อ 143
16.5 เลเยอร์ IP 143
16.5.1 บัฟเฟอร์ซ็อกเก็ต 143
16.5.2 การรับแพ็กเก็ต IP 144
16.5.3 การส่งแพ็กเก็ต IP 144
16.5.4 การกระจายตัวของข้อมูล 144
16.6 โปรโตคอลการแก้ไขที่อยู่ 145
บทที่ 17 กลไกเคอร์เนลของระบบ 147
17.1 การประมวลผลครึ่งล่าง 147
17.2 คิวงาน 148
17.3 ตัวจับเวลา 149
17.4 รอคิว 149
17.5 เซมาฟอร์ 150
ส่วนที่ 4 การเขียนโปรแกรมขั้นสูงของระบบ Linux บทที่ 18 การเขียนโปรแกรมโมดูลเคอร์เนล Linux 151
18.1 โปรแกรมง่ายๆ Hello World 151
18.2 ไฟล์อุปกรณ์ 152
18.3 /proc ระบบไฟล์ 156
18.4 ใช้ /proc เพื่อเข้าสู่ 158
18.5 การสื่อสารกับไฟล์อุปกรณ์ 162
18.6 พารามิเตอร์การเริ่มต้น 169
18.7 ระบบเรียก 170
18.8 กระบวนการปิดกั้น 172
18.9 การเปลี่ยนงานพิมพ์ 177
18.10 การจัดตารางเวลางาน 178
บทที่ 19 การเขียนโปรแกรมสำหรับการสื่อสารกระบวนการ 181
19.1 ความรู้เบื้องต้นเกี่ยวกับการสื่อสารระหว่างกระบวนการ 181
19.2 ไปป์ UNIX ฮาล์ฟดูเพล็กซ์ 181
19.2.1 แนวคิดพื้นฐาน 181
19.2.2 การสร้างไปป์ไลน์โดยใช้ภาษา C 182
19.2.3 วิธีง่ายๆ ในการสร้างไปป์ไลน์ 185
19.2.4 ระบบอัตโนมัติโดยใช้ไปป์ 187
19.2.5 สิ่งที่ควรทราบเมื่อใช้ท่อฮาล์ฟดูเพล็กซ์ 188
19.3 เนมไปป์ 188
19.3.1 แนวคิดพื้นฐาน 188
19.3.2 การสร้าง FIFO 188
19.3.3 การดำเนินการ FIFO 189
19.3.4 การปิดกั้น FIFO 190
19.3.5 สัญญาณ SIGPIPE 190
19.4 ระบบ V IPC 190
19.4.1 แนวคิดพื้นฐาน 190
19.4.2 แนวคิดพื้นฐานของคิวข้อความ 191
19.4.3 การเรียกของระบบ msgget() 194
19.4.4 การเรียกระบบ msgsnd() 195
19.4.5 การเรียกของระบบ msgctl() 197
19.4.6 ตัวอย่างของ msgtool 199
19.5 การเขียนโปรแกรมด้วย Semaphores 201
19.5.1 แนวคิดพื้นฐาน 201
19.5.2 การเรียกระบบ semget() 202
19.5.3 ระบบเรียก semop() 203
19.5.4 การเรียกระบบ semctl() 204
19.5.5 ตัวอย่างการใช้ชุดเซมาฟอร์: semtool 205
19.6 หน่วยความจำที่ใช้ร่วมกัน 209
19.6.1 แนวคิดพื้นฐาน 209
19.6.2 โครงสร้างข้อมูลผู้ใช้ภายในระบบ
shmid_ds 209
19.6.3 การเรียกของระบบ shmget() 210
19.6.4 การเรียกระบบ shmat() 211
19.6.5 การเรียกของระบบ shmctl() 211
19.6.6 การเรียกของระบบ shmdt() 212
19.6.7 ตัวอย่างการใช้หน่วยความจำที่ใช้ร่วมกัน: shmtool 212
บทที่ 20 การเขียนโปรแกรมเธรดขั้นสูง 215
20.1 แนวคิดและการใช้เธรด 215
20.2 ตัวอย่างง่ายๆ 215
20.3 การซิงโครไนซ์เธรด 217
20.4 การใช้ผู้ประสานงานเซมาฟอร์ 218
20.5 การดำเนินการเซมาฟอร์ 220
20.5.1 สัญญาณ 220
20.5.2 เซมาฟอร์.c 221
บทที่ 21 การเขียนโปรแกรมเครือข่ายระบบ Linux 225
21.1 ซ็อกเก็ต 225 คืออะไร
21.2 ซ็อกเก็ตอินเทอร์เน็ตสองประเภท 225
21.3 เลเยอร์โปรโตคอลเครือข่าย 225
21.4 โครงสร้างข้อมูล 225
21.5 ที่อยู่ IP และวิธีการใช้งาน 226
21.5.1 ซ็อกเก็ต () 226
21.5.2 ผูก() 226
21.5.3 เชื่อมต่อ() 227
21.5.4 ฟัง() 228
21.5.5 ยอมรับ() 228
21.5.6 ส่ง() และ recv() 229
21.5.7 sendto() และ recvfrom() 230
21.5.8 ปิด () และปิดระบบ () 230
21.5.9 รับชื่อเพื่อน() 231
21.5.10 รับชื่อโฮสต์() 231
21.6 ดีเอ็นเอส 231
21.7 ไคลเอนต์/เซิร์ฟเวอร์รุ่น 232
21.8 โปรแกรมเซิร์ฟเวอร์สตรีมข้อมูลอย่างง่าย 232
21.9 โปรแกรมไคลเอนต์สตรีมมิ่งอย่างง่าย 234
21.10 ดาต้าแกรมซ็อกเก็ต 235
21.11 การปิดกั้น 237
บทที่ 22 การเขียนโปรแกรมพอร์ต Linux I/O 240
22.1 วิธีการใช้งานพอร์ต I/O 240 ในภาษา C
22.1.1 วิธีการทั่วไป 240
22.1.2 ทางเลือกอื่น: /dev/port 241
22.2 การขัดจังหวะด้วยฮาร์ดแวร์และการเข้าถึง DMA 241
22.3 เวลาที่แม่นยำสูง 241
22.3.1 เวลาหน่วง 241
22.3.2 การวัดเวลา 243
22.4 การใช้ภาษาโปรแกรมอื่น 243
22.5 พอร์ต I/O ที่มีประโยชน์บางพอร์ต 243
22.5.1 พอร์ตขนาน 243
22.5.2 พอร์ตเกม 244
22.5.3 พอร์ตอนุกรม 245
ส่วนที่ 5 การวิเคราะห์ความปลอดภัยของระบบ Linux บทที่ 23 ความปลอดภัยของผู้ดูแลระบบ 247
23.1 การจัดการความปลอดภัย 247
23.2 ผู้ใช้ขั้นสูง 247
23.3 ความปลอดภัยของระบบไฟล์ 247
23.3.1 ภาพรวมระบบไฟล์ Linux 247
23.3.2 ไฟล์อุปกรณ์ 248
23.3.3 /etc/mknod คำสั่ง 249
23.3.4 ข้อควรพิจารณาด้านความปลอดภัย 249
23.3.5 ค้นหาคำสั่ง 250
23.3.6 โปรแกรมรักษาความปลอดภัย 250
23.3.7 ตรวจสอบคำสั่ง 250
23.3.8 การติดตั้งและการถอดระบบไฟล์ 250
23.3.9 ไดเร็กทอรีระบบและไฟล์ 251
23.4 โปรแกรมที่ทำงานเป็น root 251
23.4.1 การเริ่มต้นระบบ 251
23.4.2 เริ่มต้นกระบวนการ 251
23.4.3 เข้าสู่ผู้ใช้หลายคน 252
23.4.4 คำสั่งปิดเครื่อง 252
23.4.5 โปรแกรม System V cron 252
23.4.6 โปรแกรม cron หลังจาก System V เวอร์ชัน 252
23.4.7 /etc/profile 253
23.5 /etc/passwd ไฟล์ 253
23.5.1 รหัสผ่านอายุ 253
23.5.2 UID และ GID 254
23.6 /etc/group ไฟล์ 254
23.7 การเพิ่ม ลบ และย้ายผู้ใช้ 254
23.7.1 การเพิ่มผู้ใช้ 254
23.7.2 ลบผู้ใช้ 255
23.7.3 การย้ายผู้ใช้ไปยังระบบอื่น 255
23.8 การตรวจสอบความปลอดภัย 255
23.8.1 การบัญชี 255
23.8.2 คำสั่งตรวจสอบอื่นๆ 256
23.8.3 ปัญหาเกี่ยวกับขั้นตอนการตรวจสอบความปลอดภัย 256
23.8.4 จะทำอย่างไรหลังจากระบบรั่ว 257
23.9 สภาพแวดล้อมที่ถูกจำกัด 258
23.9.1 เปลือกที่ถูกจำกัด 258
23.9.2 การใช้ chroot() เพื่อจำกัดผู้ใช้ 258
23.10 ความปลอดภัยของระบบขนาดเล็ก 259
23.11 ความปลอดภัยทางกายภาพ 259
23.12 การรับรู้ของผู้ใช้ 260
23.13 ความตระหนักรู้ของผู้ดูแลระบบ 261
23.13.1 การรักษาการเข้าสู่ระบบส่วนบุคคลของผู้ดูแลระบบให้ปลอดภัย 261
23.13.2 การรักษาระบบให้ปลอดภัย 261
บทที่ 24 ความปลอดภัยของโปรแกรมเมอร์ระบบ 263
24.1 รูทีนย่อยของระบบ 263
24.1.1 รูทีนย่อย I/O 263
24.1.2 การควบคุมกระบวนการ 263
24.1.3 คุณสมบัติไฟล์ 264
24.1.4 การประมวลผล UID และ GID 265
24.2 ไลบรารี C มาตรฐาน 265
24.2.1 I/O มาตรฐาน 265
24.2.2 กำลังประมวลผล /etc/passwd 266
24.2.3 /etc/group การประมวลผล 267
24.2.4 รูทีนย่อยการเข้ารหัส 268
24.2.5 การรันเชลล์ 268
24.3 การเขียนโปรแกรม C ที่ปลอดภัย 268
24.3.1 ประเด็นด้านความปลอดภัยที่ต้องพิจารณา268
24.3.2 แนวทางโปรแกรม SUID/SGID 269
24.3.3 วิธีการคอมไพล์และติดตั้งโปรแกรม SUID/SGID 269
24.4 การออกแบบโปรแกรมผู้ใช้รูท 270
บทที่ 25 ความปลอดภัยเครือข่ายของระบบ Linux 272
25.1 ภาพรวมระบบ UUCP 272
25.1.1 คำสั่ง UUCP 272
25.1.2 คำสั่ง uux 272
25.1.3 โปรแกรมยูซิโก 273
25.1.4 โปรแกรม uuxqt 273
25.2 ปัญหาด้านความปลอดภัยของ UUCP 273
25.2.1 ไฟล์ USERFILE 273
25.2.2 ไฟล์ L.cmds 274
25.2.3 เข้าสู่ระบบ uucp 274
25.2.4 ไฟล์และไดเร็กทอรีที่ใช้โดย uucp 274
25.3 ฮันนี่แดนเบอร์ UUCP 275
25.3.1 ความแตกต่างระหว่าง HONEYDANBER UUCP และ UUCP 275 แบบเก่า
25.3.2 กฎชื่อเข้าสู่ระบบ 276
25.3.3 กฎของเครื่องจักร 277
25.3.4 การรวมเครื่องจักรและ LOGNAME
กฎข้อ 278
25.3.5 คำสั่ง uucheck 278
25.3.6 เกตเวย์ 278
25.3.7 ตรวจสอบไฟล์เข้าสู่ระบบ 279
25.4 เครือข่ายอื่นๆ 279
25.4.1 เข้าสู่ระบบงานระยะไกล 279
25.4.2 ระบบเครือข่าย กสทช. 280
25.5 ความปลอดภัยการสื่อสาร 280
25.5.1 ความปลอดภัยทางกายภาพ 280
25.5.2 การเข้ารหัส 281
25.5.3 การตรวจสอบตัวตนผู้ใช้ 282
25.6 ความปลอดภัยเครือข่ายของระบบ SUN OS 283
25.6.1 การรักษาความปลอดภัย NFS 283
25.6.2 ข้อบกพร่องด้านความปลอดภัย NFS 284
25.6.3 การรับรองความถูกต้องการเรียกขั้นตอนระยะไกล 284
25.6.4 กลไกการรับรองความถูกต้องของ Linux 284
25.6.5 ระบบการรับรองความถูกต้อง DES 285
25.6.6 การเข้ารหัสคำสำคัญสาธารณะ 286
25.6.7 การตั้งชื่อเอนทิตีเครือข่าย 286
25.6.8 การใช้ระบบระบุตัวตน DES 287
25.6.9 ปัญหาด้านความปลอดภัยที่เหลืออยู่ 287
25.6.10 ประสิทธิภาพ 288
25.6.11 ปัญหาที่เกิดจากการเริ่มต้นและโปรแกรม setuid 288
25.6.12 สรุป 289
บทที่ 26 ความปลอดภัยผู้ใช้ของระบบ Linux 290
26.1 ความปลอดภัยของรหัสผ่าน 290
26.2 การอนุญาตไฟล์ 290
26.3 ลิขสิทธิ์ไดเรกทอรี 291
26.4 คำสั่ง umask 291
26.5 ตั้งค่าสิทธิ์ ID ผู้ใช้และ ID ผู้ใช้กลุ่ม 291
26.6 cp mv ln และ cpio คำสั่ง 291
26.7 su และคำสั่ง newgrp 292
26.7.1 คำสั่ง su 292
26.7.2 คำสั่ง newgrp 292
26.8 การเข้ารหัสไฟล์ 292
26.9 ปัญหาด้านความปลอดภัยอื่น ๆ 293
26.9.1 ไฟล์ .profile ของผู้ใช้ 293
26.9.2 ลิตร -a 293
26.9.3 ไฟล์ .exrc 293
26.9.4 ไฟล์และไดเร็กทอรีชั่วคราว 293
26.9.5 UUCP และเครือข่ายอื่นๆ 293
26.9.6 ม้าโทรจัน 294
26.9.7 ล่อ 294
26.9.8 ไวรัสคอมพิวเตอร์ 294
26.9.9 หากต้องการออกจากเทอร์มินัล คุณเข้าสู่ระบบ 294
26.9.10 เทอร์มินัลอัจฉริยะ 294
26.9.11 การตัดการเชื่อมต่อจากระบบ 294
26.9.12 คำสั่งลูกบาศ์ก 295
26.10 เคล็ดลับในการรักษาบัญชีของคุณให้ปลอดภัย 295
ส่วนที่หก: โครงสร้างภายในและการใช้งานระบบ X Window บทที่ 27 ความรู้พื้นฐานของระบบ X Window 297
27.1 ข้อมูลเบื้องต้นเกี่ยวกับระบบ X Window 297
27.1.1 ลักษณะของ X 297
27.1.2 ระบบหน้าต่างคืออะไร 298
27.1.3 ประวัติความเป็นมาของการพัฒนา X 299
27.1.4 ผลคูณของ X 299
27.1.5 X 299 เผยแพร่โดย MIT
27.2 โครงสร้างพื้นฐานของ X 302
27.2.1 องค์ประกอบพื้นฐานของ X 303
27.2.2 เซอร์วิสโปรแกรมและโปรแกรมไคลเอนต์โต้ตอบและสื่อสารอย่างไร 304
27.2.3 ภาพรวมเครือข่ายของ X 306
27.3 ภาพรวมของ X 307 จากมุมมองของอินเทอร์เฟซผู้ใช้
27.3.1 อินเทอร์เฟซการจัดการ: Window Manager 307
27.3.2 ส่วนต่อประสานแอปพลิเคชันและกล่องเครื่องมือ 309
27.3.3 มุมมองของระบบอื่น ๆ 309
27.4 คำศัพท์และสัญกรณ์ 310
27.4.1 คำศัพท์เฉพาะ 310
27.4.2 สัญลักษณ์ 311
27.5 การสตาร์ทและการปิดเครื่อง X 312
27.5.1 เริ่ม X 312
27.5.2 วิธีดำเนินการโปรแกรม X 313
27.5.3 ปิด X 314
27.6 พื้นฐานของตัวจัดการหน้าต่าง — umm 315
27.6.1 ตัวจัดการหน้าต่าง 315 คืออะไร
27.6.2 เริ่มต้น uwm 315
27.6.3 การทำงานของหน้าต่างพื้นฐาน—umm
เมนู 315
27.6.4 การย้าย windows 316
27.6.5 การปรับขนาด windows 316
27.6.6 การสร้างหน้าต่างใหม่ 316
27.6.7 การจัดการพื้นที่หน้าจอ 318
27.6.8 การยกเลิกแอปพลิเคชัน windows 320
27.6.9 วิธีอื่นในการเปิดใช้งานเมนู uwm 320
27.7 อุปกรณ์เครือข่ายที่ใช้ x 320
27.7.1 ระบุเทอร์มินัลระยะไกล—จอแสดงผล
ตัวเลือก 321
27.7.2 การใช้งานจอแสดงผลระยะไกลในทางปฏิบัติ 322
27.7.3 การควบคุมการตรวจสอบการเข้าถึง — xhost 322
27.8 Terminal emulator—รายละเอียดเบื้องต้นเกี่ยวกับ xterm 323
27.8.1 การเลือกฟังก์ชัน xterm—เมนูและตัวเลือกบรรทัดคำสั่ง 323
27.8.2 เลื่อนหน้าจอ xterm 324
27.8.3 การบันทึกกระบวนการโต้ตอบกับเทอร์มินัล - การเขียนบันทึก 325
27.8.4 ข้อความตัด 325
27.8.5 การใช้ฟังก์ชันการจำลอง Tektronix 326
27.8.6 การใช้แบบอักษรที่แตกต่างกัน 327
27.8.7 การใช้สี 327
27.8.8 ตัวเลือก xterm อื่น ๆ 327
27.8.9 การกำหนดค่าแป้นพิมพ์เทอร์มินัล 328
บทที่ 28 ยูทิลิตี้และเครื่องมือ 329
28.1 ยูทิลิตี้ 329
28.2 การบันทึก การแสดง และการพิมพ์ภาพหน้าจอ 330
28.3 แอปพลิเคชันที่ใช้ X 332
28.3.1 โปรแกรมแก้ไขข้อความ—Xedit 333
28.3.2 ระบบเมล/ข้อความ—xmh 336
28.4 ตัวอย่างและโปรแกรมเกม 336
28.4.1 ค้นหาเส้นทางผ่านเขาวงกตสุ่ม—เขาวงกต 336
28.4.2 ตาโตที่ทำหน้าที่เป็นตัวชี้เมาส์—
ไชโย 336
28.4.3 เกมกระดานแห่งปัญญา - ปริศนา 337
28.4.4 พิมพ์โลโก้ X ขนาดใหญ่ — xlogo 337
28.4.5 การกระโดดรูปทรงหลายเหลี่ยม—ico 337
28.4.6 รูปแบบเรขาคณิตแบบไดนามิก—มุนเชอร์ และ
ลายสก๊อต 337
28.7 โปรแกรมสำหรับแสดงข้อมูลและสถานะ 337
28.7.1 แสดงรายการคุณลักษณะของเซอร์วิสโปรแกรม X—
xdpyinfo 338
28.7.2 การรับข้อมูลเกี่ยวกับหน้าต่าง 338
28.7.3 สังเกตการณ์เหตุการณ์ X—xev 340
บทที่ 29 การปรับแต่งระบบ X Window 341
29.1 การใช้แบบอักษร X และสี 341
29.1.1 แบบอักษรเบื้องต้น 341
29.1.2 การตั้งชื่อแบบอักษร 342
29.1.3 การสังเกตเนื้อหาของแบบอักษรเฉพาะ — xfd 343
29.1.4 การบันทึกแบบอักษรและตำแหน่ง 343
29.1.5 ตัวอย่าง: การเพิ่มแบบอักษรใหม่ให้กับเซอร์วิสโปรแกรม 345 ของคุณ
29.1.6 ใช้สี X 346
29.2 การกำหนดและการใช้กราฟิก 347
29.2.1 ไลบรารีกราฟิกระบบ 347
29.2.2 การแก้ไขกราฟิกเชิงโต้ตอบ—บิตแมป 347
29.2.3 วิธีอื่นในการแก้ไขกราฟิก 349
29.2.4 การปรับแต่งหน้าต่างรูท—xsetroot 349
29.3 การกำหนดตัวเลือกเริ่มต้นของแอปพลิเคชัน—
ทรัพยากร 350
29.3.1 ทรัพยากรคืออะไร350
29.3.2 XToolkit 351
29.3.3 การจัดการทรัพยากร—ตัวจัดการทรัพยากร 353
29.3.4 ประเภทของทรัพยากร—วิธีระบุค่า 358
29.4 การใช้ทรัพยากรจริง 359
29.4.1 ตำแหน่งที่จะบันทึกค่าเริ่มต้นสำหรับทรัพยากร 359
29.4.2 การบันทึกค่าเริ่มต้นในเซอร์วิสโปรแกรม—
xrdb363
29.4.3 ข้อบกพร่องทั่วไปและการแก้ไข 366
29.5 การปรับแต่งคีย์บอร์ดและเมาส์ 367
29.5.1 การใช้การแปลงจริง 368
29.5.2 การแปลง—รูปแบบและกฎ 374
29.5.3 ปัญหาทั่วไปในข้อกำหนดการแปลง 377
29.6 แป้นพิมพ์และเมาส์ - ความสอดคล้องและพารามิเตอร์ 379
29.6.1 การแมปแป้นพิมพ์และเมาส์—xmodmap 379
29.6.2 การตั้งค่าพารามิเตอร์แป้นพิมพ์และเมาส์ — xset 382
29.7 การแนะนำเพิ่มเติมและการปรับแต่ง uwm 384
29.7.1 คุณสมบัติใหม่ของ uwm 384
29.7.2 การปรับแต่ง uwm 386
29.8 ตัวจัดการการแสดงผล—xdm 390
29.8.1 สิ่งที่ต้องทำ 390
29.8.2 xdm 391
29.8.3 ข้อมูลเพิ่มเติมเกี่ยวกับ xdm 392
29.8.4 การกำหนดค่า uwm 395
ภาคผนวก A บทนำการใช้งาน Gcc 396
ภาคผนวก B การติดตั้ง X Window Window System 410
ขยาย
ข้อมูลเพิ่มเติม
เวอร์ชัน
ประเภท
บทช่วยสอนเซิร์ฟเวอร์
เวลาอัปเดต
2009-06-15
ขนาด
5475328
ภาษา
ภาษาจีนตัวย่อ
แอปที่เกี่ยวข้อง
ไบนารีลินุกซ์
2024-11-10
เคอร์เนลระบบปฏิบัติการ Linux
2009-06-29
เซิร์ฟเวอร์ Apache การกำหนดค่า Linux
2009-06-15
คู่มือผู้ดูแลระบบเครือข่าย Linux
2009-06-15
บทช่วยสอนการฝึกปฏิบัติจริงของ Linux
2009-06-15
ชุดคำสั่ง Linux ที่สมบูรณ์
2009-06-14
แนะนำสำหรับคุณ
กูเกิลโครม
การเรียกดูหน้าแรก
3.0.190.0 build 18892 绿色多语版_Google Chrome浏览器
กูเกิลโครม
การเรียกดูหน้าแรก
3.0.182.3 Dev 多国语言官方安装版
กูเกิลโครม
การเรียกดูหน้าแรก
3.0.182.3 Dev 多国语言绿色便携版
คู่มือภาษาจีน Apache2.0 (รูปแบบ chm)
บทช่วยสอนเซิร์ฟเวอร์
รูปแบบไฟล์ SWF/FLV และเอกสารมาตรฐาน AMF
ภาพเคลื่อนไหว
ข้อมูลเบื้องต้นโดยละเอียดเกี่ยวกับรูปแบบไฟล์ KML
บทช่วยสอน XML
เอกสารวิธีใช้เวอร์ชันภาษาจีน JDK 6.0 (พร้อมฟังก์ชันการค้นหา รูปแบบ chm)
การสอน JSP
โปรแกรมดักจับวิดีโอและส่งออนไลน์ในรูปแบบ MPEG4
วีซี/วีซี++
คู่มือ PHP เวอร์ชันภาษาจีน (รูปแบบ CHM แบบขยาย)
กวดวิชา PHP
ข้อมูลที่เกี่ยวข้อง
ทั้งหมด
คู่มือการวิเคราะห์ระบบตัวเลขอาวุธท้องฟ้าเต็มไปด้วยดวงดาว
2023-09-08
Godaddy Deluxe Plan 150G Linux โฮสต์เวอร์ชัน PHP ประสบการณ์การอัพเกรดที่ประสบความสำเร็จ
2011-04-09
Godaddy Deluxe Plan 150G Linux โฮสต์เวอร์ชัน PHP ประสบการณ์การอัพเกรดที่ประสบความสำเร็จ
2011-04-08
คำแนะนำขั้นสูงสุดสำหรับตัวอย่างการดาวน์โหลด Linux Wget 15 ตัว
2011-03-31
การคืนค่าระบบนั้นเรียบง่ายและแนะนำให้ใช้เครื่องมือการคืนค่าระบบ Linux ที่ใช้กันทั่วไป
2011-01-28
โมดูลระบบไฟล์ ZFS ดั้งเดิมของ Linux จะเปิดตัวในเดือนหน้า
2010-08-31
เคล็ดลับสี่ประการในการกำหนดค่าการเข้าถึงเซิร์ฟเวอร์ Linux อย่างปลอดภัยของ SSH
2010-04-29
คำอธิบายโดยละเอียดเกี่ยวกับอุปสรรคสำคัญ 7 ประการในการเปลี่ยนจาก Windows เป็น Linux
2010-03-05
Linux kernel 2.6.32.9 เปิดตัวเพื่อแก้ไขข้อบกพร่องมากกว่า 90 รายการ
2010-02-25
แอปพลิเคชัน Linux รวมทักษะการเข้าถึงฐานข้อมูล MySQL
2010-01-12
คำอธิบายโดยละเอียดเกี่ยวกับการใช้พาร์ติชัน Windows ในระบบปฏิบัติการ Linux
2009-12-24
คู่มือการติดตั้งและกำหนดค่า Oracle Grid Control 10.2.0.5 สำหรับ Linux
2009-12-02
ความคิดเห็นจากผู้ใช้