แนะนำให้อ่านเพื่อทำความเข้าใจกับ Unix / Linux internals [ดีกว่า]


54

ฉันทำงานกับสภาพแวดล้อม * nix ในช่วงสี่ปีที่ผ่านมาในฐานะนักพัฒนาแอปพลิเคชัน (ส่วนใหญ่ใน C)

กรุณาแนะนำหนังสือ / บล๊อกเป็นต้นเพื่อปรับปรุงความรู้ * nix internals ของฉัน


1
ด้วยประสบการณ์ของคุณการอ่านเฉพาะแหล่งเคอร์เนลจะช่วยได้)
Eimantas

3
RTFS ดีที่สุดอยู่เสมอ แต่บางครั้งการอ่านไลต์เล็กน้อยทำให้เข้าใจได้ง่ายขึ้น
Stephen Jazdzewski

คนที่มีสิทธิ์แก้ไขควรจะแก้ไขชื่อนั้นจริงๆ
jjclarkson

1
ฉันกำลังต่อไปนี้อาจแมตต์คำแนะนำในบทความของเขาอะไรทุกสาขาวิชาวิทยาการคอมพิวเตอร์ควรรู้ เขาแนะนำ The Unix Programming Environment โดย Kernighan และ Pike, Linux Server Hacks, คู่มือการดูแลระบบ UNIX และ Linux โดย Nemeth, Synder, Hein และ Whaley, การพัฒนาเคอร์เนล Linux โดย Love และการเขียนโปรแกรมเครือข่าย Unix โดย Stevens, Fenner และ Rudoff
แอนโธนี

1
@Anony เหล่านี้เป็นทรัพยากรที่ยอดเยี่ยม แต่มุ่งเน้นไปที่ userland / บรรทัดคำสั่ง นอกจากนี้โดยเฉพาะลีนุกซ์กำลังเปลี่ยนแปลงอย่างรวดเร็วในตอนนี้คุณต้องติดตามให้ทันสมัย ทรัพยากรที่ดีมีLWNและkernelnewbies
vonbrand

คำตอบ:


36

ต่อไปนี้เป็นคำแนะนำเกี่ยวกับวิธีทำความเข้าใจ "วิญญาณ" ของ Unix นอกเหนือจากคำแนะนำที่ดีที่ได้ทำไว้ในโพสต์ก่อนหน้า:

  • "The Unix Programming Environment" โดย Kernighan และ Pike: หนังสือเก่า แต่มันแสดงให้เห็นถึงสาระสำคัญของสภาพแวดล้อม Unix มันจะช่วยให้คุณกลายเป็นผู้ใช้เชลล์ที่มีประสิทธิภาพ

  • "Unix for the Impatient" เป็นทรัพยากรที่มีประโยชน์ในการเรียนรู้การสำรวจสภาพแวดล้อม Unix หนึ่งในรายการโปรดของฉัน.

หากคุณต้องการเป็นผู้ใช้ที่ทรงพลังไม่มีอะไรจะดีไปกว่า "Unix Power Tools" ของโอเรลลีซึ่งประกอบด้วยคำแนะนำและเคล็ดลับโดยรวมจากผู้เชี่ยวชาญของยูนิกซ์

หนังสืออีกเล่มที่ฉันไม่ได้กล่าวถึงคือความสนุกและการอ่านด้านการศึกษาคือ "ระบบปฏิบัติการการออกแบบและการนำไปใช้" หนังสือจาก Andy Tanenbaum ที่รวมซอร์สโค้ดสำหรับระบบปฏิบัติการ Unix ที่สมบูรณ์ในโค้ด 12k บรรทัด


9
เหตุใดหนังสือที่มีหน้า 864 หน้าจึงเรียกว่า "เพื่อความอดทน"
สัตว์สะเทินน้ำสะเทินบก

12
@amphibient ฉันคิดว่าคุณไม่ได้เห็นรุ่น "สำหรับผู้ป่วย"
Christopher Poile

3
นี่ไม่ใช่ "internals" ....
user997112

21

แน่นอนคุณต้องการที่จะอ่านการเขียนโปรแกรมขั้นสูงในสิ่งแวดล้อม Unix โดยสตีเว่น อย่าปล่อยให้ชื่อขั้นสูงทำให้คุณกลัวมันอ่านง่ายมาก


1
ฉันมี2 edซึ่งเป็น IMO ที่ดีมาก
xenoterracide

14

2
+1 สำหรับหนังสือสิงโต xv6ของ MIT เป็นเวอร์ชันใหม่ของ Lions v6 ที่ทำงานบนเครื่อง x86 และใช้ ANSI C สามารถดาวน์โหลดซอร์สโค้ดและตำราที่เกี่ยวข้องได้
Daniel Näslund

8

หนังสือ / ไซต์ / คู่มือที่ฉันใช้บ่อย:

  • เคอร์เนล Linux : หนังสือเล่มนี้ได้รับการเผยแพร่ออนไลน์เป็นส่วนหนึ่งของ TLDP (โครงการเอกสารลินุกซ์) ไม่ใช่ข้อมูลล่าสุดและไม่ใช่คู่มือภายใน แต่ให้ข้อมูลที่เป็นประโยชน์และข้อมูลเบื้องต้นเกี่ยวกับหลักการและกลไกของเคอร์เนล

  • ทำความเข้าใจกับ Linux Kernel: IMHO มันเป็นหนังสือที่ดีที่สุดสำหรับผู้เริ่มต้นที่มีพื้นฐานเกี่ยวกับการออกแบบและแนวคิดของระบบปฏิบัติการ ได้รับการยอมรับเป็นรุ่นล่าสุดครอบคลุมเวอร์ชันเคอร์เนล 2.6 มีหนังสือในรูปแบบ HTMLบนเว็บ แต่ฉันคิดว่ามันน่าจะเป็น warez มากที่สุด

  • หนังสือบางเล่มเกี่ยวกับการจัดการหน่วยความจำเสมือน

ในขณะที่เรียนรู้เกี่ยวกับเคอร์เนล linux คุณมักจะต้องเรียนรู้วิธีการทำงานของฮาร์ดแวร์และฮาร์ดแวร์ที่ให้มาในลักษณะนามธรรม Intel มีคู่มือที่ยอดเยี่ยมสำหรับสิ่งนี้

หากคุณต้องการที่จะศึกษาเกี่ยวกับการออกแบบระบบปฏิบัติการและแนวคิดที่ผมขอแนะนำหนังสือเล่มต่อไปนี้: แนวคิดระบบปฏิบัติการ


1
มีหนังสืออีกเล่มเกี่ยวกับตัวจัดการหน่วยความจำเสมือนของ linux มันมีคำอธิบายซอร์สโค้ด URL: ptgmedia.pearsoncmg.com/images/0131453483/downloads/ … (ดาวน์โหลดทางกฎหมาย)
dirtybit

+1 หนังสือเกี่ยวกับ "ผู้จัดการหน่วยความจำเสมือน" ?? ดูเหมือนว่าน่าสนใจมาก ขอบคุณ :-)
Hemant

6

1
เคอร์เนลลินุกซ์โดยย่อเป็นเรื่องเกี่ยวกับวิธีการสร้างและติดตั้งเคอร์เนลไม่ใช่เกี่ยวกับ internals ของ Linux / Unix ไม่ใช่ว่าจะเป็นหนังสือที่ดี แต่ฉันค่อนข้างเอนเอียง โอ้หนังสือทั้งสองเล่มนี้ออนไลน์ฟรีหากคุณต้องการดูที่นั่น
เกร็ก KH




2

ไดรเวอร์อุปกรณ์ Linuxเป็นอีกแหล่งข้อมูลที่ดี มันจะทำให้คุณมีวิธีอื่นในการทำงานด้านใน จากคำนำ:

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


1

เพื่อให้เข้าใจถึงสาเหตุและสิ่งที่เคอร์เนลมีไว้เพื่อสนับสนุนให้ดูที่The Art of Unix Programmingโดย Eric Raymond มันใช้สิ่งต่าง ๆ ในระดับที่ค่อนข้างสูงในเชิงปรัชญา แต่มันจะไปได้ดีกับรายละเอียดของหนังสืออื่น ๆ


1

ฉันขอแนะนำหนังสือสองเล่มต่อไปนี้ด้วย (นอกเหนือจากหนังสือเล่มอื่น ๆ ):

ฉันได้อ้างอิงคนแรกอย่างกว้างขวาง (ถ้าฉันมีความทรงจำที่ดีขึ้นและมีเวลามากขึ้นฉันจะรู้ได้มากกว่าที่ฉันทำตอนนี้ แต่นั่นเป็นอีกเรื่องหนึ่ง) ฉันกำลังอ่านอันที่สอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.