ฉันทำงานกับสภาพแวดล้อม * nix ในช่วงสี่ปีที่ผ่านมาในฐานะนักพัฒนาแอปพลิเคชัน (ส่วนใหญ่ใน C)
กรุณาแนะนำหนังสือ / บล๊อกเป็นต้นเพื่อปรับปรุงความรู้ * nix internals ของฉัน
ฉันทำงานกับสภาพแวดล้อม * nix ในช่วงสี่ปีที่ผ่านมาในฐานะนักพัฒนาแอปพลิเคชัน (ส่วนใหญ่ใน C)
กรุณาแนะนำหนังสือ / บล๊อกเป็นต้นเพื่อปรับปรุงความรู้ * nix internals ของฉัน
คำตอบ:
ต่อไปนี้เป็นคำแนะนำเกี่ยวกับวิธีทำความเข้าใจ "วิญญาณ" ของ Unix นอกเหนือจากคำแนะนำที่ดีที่ได้ทำไว้ในโพสต์ก่อนหน้า:
"The Unix Programming Environment" โดย Kernighan และ Pike: หนังสือเก่า แต่มันแสดงให้เห็นถึงสาระสำคัญของสภาพแวดล้อม Unix มันจะช่วยให้คุณกลายเป็นผู้ใช้เชลล์ที่มีประสิทธิภาพ
"Unix for the Impatient" เป็นทรัพยากรที่มีประโยชน์ในการเรียนรู้การสำรวจสภาพแวดล้อม Unix หนึ่งในรายการโปรดของฉัน.
หากคุณต้องการเป็นผู้ใช้ที่ทรงพลังไม่มีอะไรจะดีไปกว่า "Unix Power Tools" ของโอเรลลีซึ่งประกอบด้วยคำแนะนำและเคล็ดลับโดยรวมจากผู้เชี่ยวชาญของยูนิกซ์
หนังสืออีกเล่มที่ฉันไม่ได้กล่าวถึงคือความสนุกและการอ่านด้านการศึกษาคือ "ระบบปฏิบัติการการออกแบบและการนำไปใช้" หนังสือจาก Andy Tanenbaum ที่รวมซอร์สโค้ดสำหรับระบบปฏิบัติการ Unix ที่สมบูรณ์ในโค้ด 12k บรรทัด
แน่นอนคุณต้องการที่จะอ่านการเขียนโปรแกรมขั้นสูงในสิ่งแวดล้อม Unix โดยสตีเว่น อย่าปล่อยให้ชื่อขั้นสูงทำให้คุณกลัวมันอ่านง่ายมาก
หนังสือ / ไซต์ / คู่มือที่ฉันใช้บ่อย:
เคอร์เนล Linux : หนังสือเล่มนี้ได้รับการเผยแพร่ออนไลน์เป็นส่วนหนึ่งของ TLDP (โครงการเอกสารลินุกซ์) ไม่ใช่ข้อมูลล่าสุดและไม่ใช่คู่มือภายใน แต่ให้ข้อมูลที่เป็นประโยชน์และข้อมูลเบื้องต้นเกี่ยวกับหลักการและกลไกของเคอร์เนล
ทำความเข้าใจกับ Linux Kernel: IMHO มันเป็นหนังสือที่ดีที่สุดสำหรับผู้เริ่มต้นที่มีพื้นฐานเกี่ยวกับการออกแบบและแนวคิดของระบบปฏิบัติการ ได้รับการยอมรับเป็นรุ่นล่าสุดครอบคลุมเวอร์ชันเคอร์เนล 2.6 มีหนังสือในรูปแบบ HTMLบนเว็บ แต่ฉันคิดว่ามันน่าจะเป็น warez มากที่สุด
ในขณะที่เรียนรู้เกี่ยวกับเคอร์เนล linux คุณมักจะต้องเรียนรู้วิธีการทำงานของฮาร์ดแวร์และฮาร์ดแวร์ที่ให้มาในลักษณะนามธรรม Intel มีคู่มือที่ยอดเยี่ยมสำหรับสิ่งนี้
คู่มือนักพัฒนาซอฟท์แวร์สถาปัตยกรรม Intel 64 และ IA-32 : ข้อมูลล่าสุดโดยละเอียด
คู่มืออ้างอิงโปรแกรมเมอร์ Intel 80386 : ฉันรู้ว่ามันเก่าไปหน่อย แต่ฉันได้เรียนรู้หลายสิ่งหลายอย่างจากคู่มือนี้
หากคุณต้องการที่จะศึกษาเกี่ยวกับการออกแบบระบบปฏิบัติการและแนวคิดที่ผมขอแนะนำหนังสือเล่มต่อไปนี้: แนวคิดระบบปฏิบัติการ
เคอร์เนล O'REILLY Linux แบบสั้น
และไดรเวอร์อุปกรณ์ Linux O'REILLY
การเขียนโปรแกรมระบบ Linux หรือหนังสืออื่น ๆ โดย Robert Love (นี่คือหนังสือ O'Reilly ทั้งหมด):
ฉันเห็นด้วยกับคนอื่น ๆ ทั้งหมดและฉันต้องบอกว่าAPUE ของ Stevens (ฉันมีรุ่นที่สอง) เป็นแบบคลาสสิก ฉันต้องการเพิ่มว่าThe Art of UNIX Programming ของ Eric Raymond ติดอันดับกับ Stevens ในรายการของฉัน
สำหรับ Unices BSD มีการออกแบบและการใช้งานระบบปฏิบัติการ 4.4BSD ซึ่งตอนนี้บางส่วนมีให้บริการฟรีที่http://www.freebsd.org/doc/en/books/design-44bsd/
ไดรเวอร์อุปกรณ์ Linuxเป็นอีกแหล่งข้อมูลที่ดี มันจะทำให้คุณมีวิธีอื่นในการทำงานด้านใน จากคำนำ:
นี่คือหนังสือเกี่ยวกับการเขียนไดรเวอร์อุปกรณ์สำหรับระบบ Linux นั่นเป็นเป้าหมายที่คุ้มค่าแน่นอน การไหลของผลิตภัณฑ์ฮาร์ดแวร์ใหม่นั้นไม่น่าจะช้าลงทุกเวลาเร็ว ๆ นี้และใครบางคนกำลังจะต้องทำให้โปรแกรมเบ็ดเตล็ดใหม่ ๆ เหล่านั้นทำงานกับ Linux ได้ แต่หนังสือเล่มนี้ยังเกี่ยวกับวิธีการทำงานของเคอร์เนล Linux และวิธีปรับการทำงานให้สอดคล้องกับความต้องการหรือความสนใจของคุณ Linux เป็นระบบเปิด ด้วยหนังสือเล่มนี้เราหวังว่าจะเปิดกว้างและเข้าถึงชุมชนนักพัฒนาขนาดใหญ่ได้มากขึ้น
เพื่อให้เข้าใจถึงสาเหตุและสิ่งที่เคอร์เนลมีไว้เพื่อสนับสนุนให้ดูที่The Art of Unix Programmingโดย Eric Raymond มันใช้สิ่งต่าง ๆ ในระดับที่ค่อนข้างสูงในเชิงปรัชญา แต่มันจะไปได้ดีกับรายละเอียดของหนังสืออื่น ๆ
ฉันขอแนะนำหนังสือสองเล่มต่อไปนี้ด้วย (นอกเหนือจากหนังสือเล่มอื่น ๆ ):
ฉันได้อ้างอิงคนแรกอย่างกว้างขวาง (ถ้าฉันมีความทรงจำที่ดีขึ้นและมีเวลามากขึ้นฉันจะรู้ได้มากกว่าที่ฉันทำตอนนี้ แต่นั่นเป็นอีกเรื่องหนึ่ง) ฉันกำลังอ่านอันที่สอง