ข้อแรกคือการชี้แจงเล็กน้อยเพราะฉันรู้สึกว่าคุณไม่เข้าใจว่าระบบ GNU / Linux มีอยู่จริงอย่างไร อดทนกับฉันถ้าไม่มีอะไรใหม่สำหรับคุณ:
"เคอร์เนล" ไม่ได้เป็นเพียงแค่โปรแกรมอื่นที่ทำงาน แต่เป็นส่วนหนึ่งของระบบปฏิบัติการที่มีฟังก์ชั่นพื้นฐาน: หากคุณต้องการเริ่มโปรแกรม (เช่นคุณพิมพ์ "ls" ที่บรรทัดคำสั่ง) ไบนารีจะต้องโหลด จากดิสก์ (ที่มีการดำเนินการระบบไฟล์บางส่วนเพื่อค้นหาและจัดการไฟล์บางส่วนเพื่ออ่าน) จากนั้นสร้าง "สภาพแวดล้อมของกระบวนการ" ถูกสร้างขึ้น: หน่วยความจำได้รับมอบหมายจำนวนกระบวนการจะออกเป็นต้น ฯลฯ กิจกรรมในอดีตทั้งหมด (FS, การอ่านจากไฟล์, ... ) ได้รับการจัดการโดยไลบรารีระบบ แต่อันหลังคือฟังก์ชันเคอร์เนล ในบางแง่เคอร์เนล "คือระบบปฏิบัติการ" และทุกอย่างก็แค่ตกแต่งรอบ ๆ
"Linux" เป็นจริง (เท่านั้น!) เคอร์เนลที่ไม่มีส่วนอื่น ๆ ของระบบปฏิบัติการอยู่ Linus Torvalds เริ่มเขียนโดยใช้แอนดรู Tananbaums เทมเพลต MINIX เคอร์เนลระบบปฏิบัติการและทำให้มันสมบูรณ์แบบ จนถึงทุกวันนี้ก็มี Linus (และคนอื่น ๆ อีกมากมายที่มีส่วนร่วม / สนับสนุน) ที่พัฒนาเคอร์เนลนี้ เคอร์เนลนี้ยังคงคล้ายกับ UNIX แต่ไม่ใช่เคอร์เนล UNIX
"GNU" เริ่มต้นเป็นความคิดริเริ่มเพื่อ "ทำให้ดีขึ้น" คำสั่ง UNIX ทั่วไปจำนวนมาก ฉันจะไม่พูดคุยหากพวกเขาประสบความสำเร็จหรือไม่ แต่พวกเขาเขียนซอฟต์แวร์จำนวนมากอย่างแน่นอนและ ณ จุดหนึ่งมีคอลเลกชันของโปรแกรมยูทิลิตี้ พวกเขาเริ่มพัฒนาเคอร์เนลระบบปฏิบัติการของตัวเอง (HURD) ซึ่งมีพื้นฐานมาจาก UNIX แต่แตกต่างกันอย่างแน่นอน แต่จนถึงทุกวันนี้ HURD ยังอยู่ในช่วงเริ่มต้นของการพัฒนาและแทบจะไม่มีทางแก้ปัญหาในการทำงาน "GNU" btw สั้นสำหรับ "GNU (คือ) ไม่ใช่ UNIX" - พวกเขาพยายามที่จะเอาชนะข้อ จำกัด บางประการ (ที่รับรู้หรือจริง) ของ UNIX ด้วยความตั้งใจที่จะสร้างผู้สืบทอดให้กับ UNIX (อีกครั้ง: ฉันไม่ต้องการเข้าร่วมการสนทนาหากพวกเขาทำสำเร็จหรือ ไม่ - ฉันไม่สนใจว่ามันจะ "ดีกว่า" หรือ "แย่กว่า" แต่มันแตกต่างกันอย่างแน่นอน!)
ดังนั้นด้วยชุดเครื่องมือที่ขาดเคอร์เนลและเคอร์เนลที่ขาดชุดเครื่องมือมันเป็นการพัฒนาตามธรรมชาติที่จะรวมสองสิ่งนี้เข้าด้วยกัน: GNU / Linux ถูกสร้างขึ้น
ยังมีระบบปฏิบัติการ (และใช้งานได้) คุณต้องการมากกว่าเคอร์เนลและชุดเครื่องมือ: คุณต้องการระบบการจัดการแพ็คเกจคุณต้องมีขั้นตอนการติดตั้งคุณต้องมีการกำหนดค่าแม่แบบคุณต้อง ....
คนหลายคน (หรือกลุ่มของมัน) มาถึงข้อสรุปนี้และใช้การรวมกันของ GNU / Linux เพื่อสร้างระบบ GNU / Linux- ตามความชอบของพวกเขาโดยการเพิ่มสิ่งที่ฉันพูดถึงข้างต้น: พวกเขาสร้างผู้จัดการบรรจุภัณฑ์ระบบบรรจุภัณฑ์ ขั้นตอนการติดตั้งและอะไรอีกมากมาย กลุ่มต่าง ๆ เหล่านี้ (ตามลำดับผลลัพธ์ของความพยายามของพวกเขา) คือความแตกต่างที่ต่างกัน วันนี้มีตัวจัดการแพ็กเกจที่แตกต่างกันสามตัว (เหมาะสำหรับ Debian และระบบที่ได้รับเช่น * ubuntu, rpm สำหรับ RedHat และระบบที่ได้มาเช่น Fedora, CentOS และอื่น ๆ , pacman สำหรับ ArchLinux) แต่สิ่งเหล่านี้เพียงจัดการแพ็กเกจซอฟต์แวร์ เหมือนกัน: สิ่งที่เรียกว่าเมื่อคุณออก "ls" หรือ "df" ฯลฯ
ดังนั้น "ในหลักการ" คุณสามารถอัปเดตเคอร์เนลเพียงอย่างเดียวเช่นคนที่สร้างการแจกจ่ายจากซอฟต์แวร์ทุกเวอร์ชันที่ฉันพูดไว้ข้างต้น
แต่นี่เป็นเรื่องใหญ่จริง ๆ เพราะไม่เพียง แต่เคอร์เนลและซอฟต์แวร์เพิ่มเติมบางอย่างเท่านั้น แต่ยังมีสิ่งอื่น ๆ อีกมากมายที่ต้องจำไว้เช่นเครื่องมือกำหนดค่าระบบ (systemd ซึ่งการกระจายบางอย่างใช้และบางอย่างไม่ได้) เครือข่าย เครื่องมือการจัดการเช่น NetworkManager ซึ่งจะขึ้นอยู่กับไลบรารีของ GNOME รุ่นอื่น ๆ เป็นต้น - "การแจกจ่าย" เป็นสิ่งที่ค่อนข้างซับซ้อนและมีโอกาสถ้าคุณพยายามอัปเดตเคอร์เนลคุณจะได้รับการอัปเดตจำนวนมาก สิ่งอื่น ๆ เนื่องจากการพึ่งพาซึ่งกันและกัน
ยังและ "ในหลักการ" เหมือนด้านบน: คุณยังสามารถสร้างการกระจายของคุณเองโดยการดาวน์โหลดแหล่งข้อมูลทั้งหมดรวบรวมพวกมันค้นหาชุดการทำงานของชุดค่าผสมรุ่นที่ใช้งานได้วางระบบบรรจุภัณฑ์บางส่วนเข้าที่ (หรือใช้อย่างใดอย่างหนึ่ง ) - และต่อ ๆ ไปจนกว่าคุณจะมีระบบที่สามารถแจกจ่ายต่อได้ติดตั้งและกำหนดค่าได้ นี่คือสิ่งที่ผู้สร้างการแจกจ่ายอย่างอูบุนตูทำและไม่ใช่ปาฏิหาริย์ - เป็นงานที่ซับซ้อนจำนวนมากดังนั้นในความเป็นจริงผู้ใช้ส่วนใหญ่จะเขินอายจากสิ่งนั้นและใช้สิ่งที่พวกเขาสามารถทำได้โดยพร้อมใช้งาน
ฉันหวังว่านี้ตอบคำถามของคุณ.