ฉันต้องการที่จะรู้ว่าคำสั่งใดถูกเขียนขึ้นใหม่สำหรับ Linux และถูกเก็บรักษาไว้จาก Unix?
ฉันต้องการที่จะรู้ว่าคำสั่งใดถูกเขียนขึ้นใหม่สำหรับ Linux และถูกเก็บรักษาไว้จาก Unix?
คำตอบ:
ดูเหมือนว่าคุณสับสนสองส่วนที่ต่างกันของระบบปฏิบัติการ เป็นที่เข้าใจได้เพราะมักถูกเรียกว่า interchangably แต่ก็ไม่ถูกต้องทางเทคนิคดังนั้นคำถามของคุณจะขึ้นอยู่กับหลักฐานที่ผิดพลาด เพื่อที่จะสำรวจอย่างเต็มที่และหวังว่าจะตอบคำถามที่คุณต้องการถามจำเป็นต้องมีบทเรียนประวัติย่อ
อย่างแรกคือ UNIX โดยพื้นฐานแล้วในสมัยนั้น UNIX หมายถึงระบบAT&T UNIXซึ่งมาก่อน แต่ AT & T UNIX กลายเป็นไม่ใช่ฟรีเพื่อให้ริชาร์ดสตอลแมนเริ่มต้นโครงการ GNU จะเขียนระบบ Unix ซึ่งเป็นฟรี ดังนั้นชื่อGnu ไม่ใช่ Unixย่อ GNU แผนสำหรับ GNU ถูกทำให้ประชาชนในปี 1983 และเริ่มพัฒนาในปี 1984
ในช่วงต้นทศวรรษ 1990 GNU ได้นำยูทิลิตี้ UNIX ส่วนใหญ่กลับมาใช้ใหม่ตั้งแต่ต้น Wikipedia แสดงส่วนประกอบบางส่วนของระบบโดยรวมที่ไม่ได้เขียนใหม่ (TeX, X Window System และ Mach microkernel ถูกกล่าวถึงเป็นตัวอย่างของส่วนประกอบที่ไม่ได้เขียนใหม่) แต่ส่วนใหญ่เครื่องมือ userland ถูกเขียนใหม่ตั้งแต่ต้นเพื่อตอบสนอง เป้าหมายของการหลีกเลี่ยงการนำรหัส AT&T ใด ๆ (หรือมากกว่านั้น) มาใช้ซ้ำรวมถึงการขยายขีดความสามารถด้วยการเพิ่มตัวเลือกบรรทัดคำสั่ง ผลที่ได้คืออรรถประโยชน์ของ GNU นั้นมีประสิทธิภาพมากกว่าเครื่องมือที่ใช้ในการสร้างแรงบันดาลใจ
ณ จุดที่ GNU ยังคงหายไปองค์ประกอบสำคัญที่หนึ่ง: เคอร์เนลระบบปฏิบัติการซึ่งจะช่วยให้ทุกอย่างที่จะร่วมกันทำงานบนคอมพิวเตอร์ที่เกิดขึ้นจริงไม่ได้ทำงานบาง OS อื่น ๆ ในปี 1991 Linus Torvalds เริ่มทำงานในโครงการของเล่นซึ่งต่อมาได้กลายเป็นที่รู้จักในนาม Linux โดยพื้นฐานแล้วมันเป็นโครงการของโรงเรียนที่จะเรียนรู้เกี่ยวกับCPU 80386รุ่น 32 บิตใหม่ของIntelและเริ่มต้นง่ายมาก แต่ในที่สุดก็เริ่มแปรเปลี่ยนเป็นเคอร์เนลระบบปฏิบัติการที่ใช้งานได้จริง แต่มันไม่มีซอฟต์แวร์ userland ใด ๆ ลินุกซ์ในตัวของมันเองไม่มีเชลล์, ไม่มีระบบอำนวยความสะดวกในการเริ่มต้นนอกเหนือจากการเริ่มต้นเคอร์เนล, ไม่มีโปรแกรมแก้ไขข้อความ, ไม่มีส่วนต่อประสานกราฟิก, ไม่มีอะไรเลย. เคอร์เนลเปรียบเสมือนเครื่องยนต์ของรถยนต์ จำเป็นต่อการสร้างรถยนต์ที่มีประโยชน์ แต่ไม่มีประโยชน์สำหรับตัวเอง (สำหรับรถยนต์ที่มีประโยชน์คุณต้องมีสิ่งต่าง ๆ เช่นล้อเกียร์พวงมาลัยพวงมาลัยที่ให้คนขับนั่งถังน้ำมันหรือพลังงานอื่น ๆ ) ลินุกซ์เคอร์เนลในที่สุดก็มีการกระจายภายใต้ใบอนุญาตสาธารณะทั่วไปเช่นเดียวกับซอฟแวร์ GNU
ดังนั้นผู้คนจึงเริ่มจับคู่ทั้งสอง คุณจะได้ userland ที่เหมือน Unix รวมถึงเคอร์เนลที่มีแนวคิดจาก Unix (รวมถึง resemblence ที่ใกล้เคียงกับPOSIX ) พร้อมด้วยซอร์สโค้ดที่คุณสามารถแฮ็คได้ตามที่คุณต้องการและไม่เสียค่าใช้จ่ายใด ๆ . โดยเฉพาะอย่างยิ่งก่อนที่การแจกแจงของ Linuxจะกลายเป็นเรื่องปกติมันใช้เวลาเล็กน้อยในการแก้ไขเพื่อให้ได้งาน แต่มันก็เสร็จสิ้นมากพอที่จะใช้งานได้โดยผู้ที่เต็มใจใช้เวลาอยู่กับมัน
ทุกวันนี้ GNU ให้เคอร์เนลของตัวเอง คุณอาจจะไม่เคยได้ยินมัน แต่ก็เรียกว่าGNU Hurd แต่ฮูลด์ไม่ได้อยู่ในช่วงต้นทศวรรษ 1990 เมื่อลีนุกซ์เริ่มได้รับความสนใจในหมู่นักอดิเรกและคนจรจัดดังนั้นมันจึงเป็นการรวมกันของเคอร์เนลลินุกซ์และผู้ใช้ส่วนใหญ่ของ GNU ที่ได้รับความสนใจจากนักพัฒนามากที่สุด
นอกจากนี้ในปัจจุบันมีการติดตั้งระบบ Unix จำนวนมากหรืออนุญาตให้ผู้ดูแลระบบติดตั้งได้อย่างง่ายดายส่วนต่างๆของ GNU userland คุณอาจเห็นสิ่งต่าง ๆ เช่น GNU bash, GNU Compiler Collection, ไลบรารี GNU C (วานิลลาหรือแพทช์) และอื่น ๆ ในระบบที่ไม่ใช่ GNU
เพื่อทำให้เรื่องแย่ลงระบบบางระบบใช้เคอร์เนล Linux แต่ไม่มี userU ของ GNU เลย สำหรับตัวอย่างที่ใช้กันอย่างแพร่หลายให้พิจารณาAndroid OSซึ่งโดยทั่วไปจะเป็นเคอร์เนล Linux ควบคู่กับ userland แบบกำหนดเอง
สิ่งนี้มีความสำคัญเพราะมันพร่าเลือนเส้นแบ่งระหว่าง GNU, Linux และ Unixes ต่าง ๆ ( มีเพียง UNIX เดียวแต่มี Unixes จำนวนมากและยังเหมือน OS Unixมากกว่า) เมื่อคุณถามเกี่ยวกับ Linux คุณมักถามเกี่ยวกับระบบ GNU / Linux บ่อยครั้ง แต่พิจารณาDebian GNU / kFreeBSDซึ่งรันuserU ของ GNU ด้านบนของเคอร์เนล FreeBSD ไม่ใช่ใช้ Linux เลย หรือตัวอย่างเช่นโซลาริสที่คุณสามารถติดตั้งแพคเกจต่าง ๆ รวมทั้ง GNU เช่น coreutils ฉันคิดว่า Mac OS X มาพร้อมกับชิ้นส่วนของ GNU userland ด้วย หรือพิจารณา Android ที่กล่าวถึงข้างต้น
ในที่สุดระบบ GNU ที่ใช้งานได้อาจเรียกใช้โค้ดที่ไม่ใช่ GNU และระบบที่ไม่ใช่ GNU อาจเรียกใช้โค้ด GNU ได้ แต่ยูทิลิตี GNUนั้นไม่มีโค้ดที่ไม่ใช่ GNU