ประโยชน์ของการรวบรวมเคอร์เนล linux ของคุณเองคืออะไร?


101

ฉันจะได้ประโยชน์อะไรจากการรวบรวมเคอร์เนล Linux ด้วยตัวเอง? มีประสิทธิภาพที่คุณสามารถสร้างโดยการปรับแต่งฮาร์ดแวร์ของคุณหรือไม่?


คำถามที่เรียบง่ายของสิ่งที่เป็นประโยชน์คือจะกลายเป็นคลุมเครือหรือนำออกไปจากบริบทอย่างรวดเร็ว มันจะเป็นการดีกว่าถ้าจะถามWhat are the pros and cons of compiling your own kernel? Cons = ไม่ใช่เรื่องง่ายหลาย ๆ สถานการณ์ไม่มีการเพิ่มมูลค่า ข้อดี = ความปลอดภัยประสิทธิภาพถ้าคุณรู้ว่าคุณกำลังทำอะไรอุปกรณ์ NAS เช่นใช้ linux เพื่อทำให้ชิ้นส่วนของฮาร์ดแวร์ทำงานได้และมีความสามารถด้านเครือข่ายและกราฟิก
ron

คำตอบ:


73

ในใจของฉันประโยชน์เดียวที่คุณได้รับจากการคอมไพล์เคอร์เนล linux ของคุณคือ:

คุณเรียนรู้วิธีการรวบรวมเคอร์เนล linux ของคุณเอง

ไม่ใช่สิ่งที่คุณต้องทำเพื่อความเร็ว / หน่วยความจำ / xxx มากกว่านี้ มันเป็นสิ่งที่มีค่าที่ต้องทำถ้านั่นคือช่วงที่คุณรู้สึกว่าคุณกำลังอยู่ในช่วงพัฒนา หากคุณต้องการมีความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับสิ่งที่ "โอเพ่นซอร์ส" ทั้งหมดเกี่ยวกับสิ่งที่และส่วนต่าง ๆ ของเคอร์เนลคุณควรจะทำ หากคุณเพียงแค่ต้องการเพิ่มความเร็วในการบู๊ตของคุณภายใน 3 วินาทีถ้างั้น ... อะไรคือประเด็น ... ไปซื้อ ssd หากคุณอยากรู้ถ้าคุณต้องการเรียนรู้การรวบรวมเคอร์เนลของคุณเองเป็นความคิดที่ดีและคุณอาจจะได้รับประโยชน์มากมาย

ด้วยเหตุผลดังกล่าวมีเหตุผลบางประการที่เหมาะสมที่จะคอมไพล์เคอร์เนลของคุณเอง (อย่างที่หลายคนได้ชี้ให้เห็นในคำตอบอื่น ๆ ) โดยทั่วไปสิ่งเหล่านี้เกิดขึ้นจากความต้องการเฉพาะที่คุณมีสำหรับผลลัพธ์เฉพาะเช่น:

  • ฉันต้องการให้ระบบบู๊ต / รันบนฮาร์ดแวร์ที่มีทรัพยากร จำกัด
  • ฉันต้องทดสอบแพตช์และให้ข้อเสนอแนะกับนักพัฒนา
  • ฉันต้องปิดการใช้งานบางอย่างที่ทำให้เกิดข้อขัดแย้ง
  • ฉันต้องการพัฒนาเคอร์เนล linux
  • ฉันต้องเปิดใช้งานการสนับสนุนสำหรับฮาร์ดแวร์ที่ไม่รองรับ
  • ฉันต้องการปรับปรุงประสิทธิภาพของ x เพราะฉันไปถึงขีด จำกัด ปัจจุบันของระบบ (และฉันรู้ว่าฉันกำลังทำอะไรอยู่)

ปัญหาอยู่ที่การคิดว่ามีประโยชน์ที่แท้จริงในการรวบรวมเคอร์เนลของคุณเองเมื่อทุกอย่างทำงานได้อย่างที่ควรจะเป็นและฉันไม่คิดว่าจะมี แม้ว่าคุณจะสามารถใช้เวลาหลายชั่วโมงในการปิดการใช้งานสิ่งที่คุณไม่ต้องการและปรับแต่งสิ่งต่าง ๆ ที่ปรับเปลี่ยนได้ แต่ความจริงก็คือเคอร์เนล linux ได้รับการปรับจูนอย่างดีแล้วสำหรับสถานการณ์ผู้ใช้ส่วนใหญ่


25
ฉันขอยืนยันว่าถ้าคุณต้องการสร้างเคอร์เนลของคุณเองเพียงเพื่อประสบการณ์การเรียนรู้คุณจะทำมันด้วยการกระจาย Linux บนพื้นฐานของแหล่งที่มาเช่น Gentoo หรือ Linux From Scratch เอกสารประกอบการติดตั้ง Gentoo stage 2 เป็นคู่มือที่ยอดเยี่ยมในการทำความเข้าใจว่าการสร้าง Linux จากเคอร์เนลหมายถึงอะไร
Sandy

ตกลง ... ทั้งสองโครงการนี้สร้างขึ้นสำหรับสิ่งประเภทนี้
เกบ

แน่นอนคุณรู้ว่าคุณขัดแย้งกับคำตอบของคุณ หากประโยชน์เพียงอย่างเดียวของการคอมไพล์เคอร์เนลคือการเรียนรู้วิธีการทำมันก็จะไร้ประโยชน์ - ไม่มีค่า แต่แล้วคำไม่กี่คำต่อมาคุณบอกว่ามันเป็นสิ่งที่มีค่า ...
rozcietrzewiacz

@rozcietrzewiacz ความรู้เป็นสิ่งที่มีค่าสูงสุด การคอมไพล์เคอร์เนลช่วยให้คุณขยายความรู้ของคุณ ถ้าคุณไม่ซื้อนั่นก็คือสิ่งนี้ - ความรู้คือพลังและผู้คนจ่ายเงินอย่างดีเพื่อให้ได้มาซึ่งอำนาจและเงินมีค่าในโลกทุกวันนี้ดังนั้นโดยทรัพย์สินที่
ถ่ายทอดทางพันธุกรรม

ฉันเห็นด้วยมันมีค่าสำหรับความรู้ที่ได้รับเท่านั้น
1100110

35

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

เมื่อคุณรวบรวมเคอร์เนลของคุณเองคุณมีตัวเลือกสองทางคุณสามารถรวบรวมเคอร์เนล Linus Torvalds อย่างเป็นทางการซึ่งจะไม่รวมแพตช์หรือการปรับแต่งใด ๆ ที่เพิ่มโดยการกระจายของคุณ (ซึ่งอาจดีหรือไม่ดี) หรือ ใช้เครื่องมือสร้างแจกจ่ายของคุณเพื่อสร้างเคอร์เนลของคุณเอง

เหตุผลที่คุณอาจต้องการสร้างเคอร์เนลของคุณรวมถึง:

  • การแก้ไขข้อบกพร่องหรือเพิ่มคุณสมบัติเฉพาะให้กับระบบการผลิตซึ่งคุณไม่สามารถเสี่ยงกับการอัพเกรดเคอร์เนลทั้งหมดสำหรับการแก้ไขครั้งเดียวหรือสองครั้ง
  • หากต้องการลองใช้ไดรเวอร์อุปกรณ์เฉพาะหรือคุณสมบัติใหม่
  • เพื่อขยายเคอร์เนลทำงานกับมัน
  • ทดสอบโมดูลหรือฟีเจอร์ "Alpha" บางอย่าง

นักพัฒนาหลายคนใช้เพื่อสร้างเคอร์เนลเวอร์ชันที่กำหนดเองสำหรับระบบฝังตัวหรือกล่องเซ็ตท็อปที่พวกเขาต้องการไดรเวอร์อุปกรณ์พิเศษหรือพวกเขาต้องการที่จะลบการทำงานที่พวกเขาไม่ต้องการ


8
+1 เด็ก ๆ ทุกวันนี้พวกเขาไม่รู้ด้วยซ้ำว่าหมายถึง 'menuconfig' หมายถึงอะไรและไม่ต้องแก้ไขรหัสเครือข่ายเคอร์เนลเพื่อป้องกันไม่ให้ถูก pwned โดยสคริปต์ kiddies โชคดีที่วันนั้นส่วนใหญ่หายไป
axel_c

2
คุณควรเพิ่มbisectไอเอ็นจีเพื่อค้นหาว่ามีการนำข้อผิดพลาดออกไปยัง
ไง

1
น่าทึ่งว่าความคิดเห็นนี้ได้รับการโหวตเมื่อไม่มีอะไรเกี่ยวข้องกับคำถามของ OP "ผู้ใช้ส่วนใหญ่ไม่ได้ .... " ตอนนี้ คำถามของ OP ชัดเจนมากเกี่ยวกับการอยากรู้ผลประโยชน์ ไม่ใช่ความคิดเห็นของคุณเกี่ยวกับสิ่งที่ "ผู้ใช้ส่วนใหญ่" ทำที่นี่และที่นั่น
Eric

30

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


15
ฉันเห็นด้วยกับคำตอบส่วนใหญ่ของคุณ แต่ฉันอยากรู้อยากเห็นข้อเท็จจริงบางอย่างเกี่ยวกับ ฉันไม่ต้องการให้ผู้ใช้ใหม่รู้สึกว่าเดสก์ท็อปของพวกเขาจะทำงานได้เร็วขึ้นด้วยเคอร์เนลที่สร้างขึ้นเอง (จากประสบการณ์ของฉันกับ Gentoo สิ่งนี้ไม่เป็นความจริง) คุณสามารถหาปริมาณการเพิ่มความเร็วบูตได้หรือไม่?
Sandy

2
คำตอบนี้เป็นจริงเมื่อ 15 ปีที่แล้ว แต่วันนี้ไม่เกี่ยวข้องกันจริงๆ ไดรเวอร์ส่วนใหญ่จะมีโมดูลอยู่แล้วดังนั้นพวกเขาจึงมีที่ว่างบนดิสก์เท่านั้นไม่ใช่ในหน่วยความจำ (หรือบางดิสทริบิวชั่นยังมาโดยไม่มี initrd โดยไม่ต้องมี initrd เคอร์เนลจะต้องรวมไดรเวอร์ทั้งหมดที่อาจต้องบูตด้วย) สำหรับเวลาการบู๊ตไดรเวอร์บางตัวที่ใช้เวลามากกว่ามิลลิวินาทีพยายามตรวจสอบฮาร์ดแวร์ที่ไม่มีอยู่นั้น ด้วยตัวเลือกการบูตเคอร์เนล
Gilles

1
@Michael ถ้ามันเป็นสมมติฐานที่ไม่ได้ตรวจสอบฉันคิดว่าการแทนที่ "เร็วกว่ามาก" กับ "อาจเร็วกว่า" ในคำตอบของคุณอาจเป็นความคิดที่ดี ... เพียงเพื่อให้แน่ใจว่าไม่มี n00bs ผิด :-)
Sandy

3
@Sandy Ag เห็นด้วยเนื่องจากดูเหมือนว่าฉันเป็นหนึ่งใน n00bs เหล่านั้น :) คงที่
Michael Mrozek

2
ฉันคิดว่าเร็วขึ้น "มาก" เป็นธรรมกับข้อแม้ที่เรากำลังพูดถึงเวลาบูต เมล็ด distro ของสต็อกใช้เวลานานในการบูทขึ้นมา 5 ถึง 10 วินาทีอย่างที่ฉันได้ถอดลงมาเพื่อไม่หาฮาร์ดแวร์ใด ๆ ที่ฉันไม่ได้วางแผนจะใช้ ความเร็วของรันไทม์อาจน้อยมากฉันไม่สามารถวัดได้อย่างน่าเชื่อถือ
Caleb

24

ฉันไม่อยากเชื่อเลยว่าคำตอบที่ยอมรับได้เริ่มต้นขึ้นแล้วโดยบอกว่า "ไม่ใช่สิ่งที่คุณต้องทำเพื่อความเร็ว / หน่วยความจำ / xxx มากกว่านี้"

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

อีกตัวอย่างหนึ่งคือ BIG SMP ภายใต้ Slackware คือค่าเริ่มต้นและใน Dell 2800 จะใช้การพิมพ์แบบเท้าขนาดใหญ่เพื่อเรียกใช้สิ่งต่าง ๆ เช่น GFSD (ไม่ใช่โมดูลเคอร์เนล) ที่ยังใช้ CPU ticks สำหรับสิ่งที่ฉัน ไม่ต้องการ เช่นเดียวกันสำหรับ NFSD และ catch-all อื่น ๆ ที่ทำให้ทุกคนพอใจซึ่งเป็นเรื่องที่ดีถ้าคุณแค่พยายามเอาลีนุกซ์มาใส่ในกล่องและวิ่ง แต่ถ้าคุณสนใจ "ความเร็ว / หน่วยความจำ / xxx อะไรก็ตาม" สิ่งเหล่านี้สำคัญ .

กล่องผลิตของฉันทั้งหมดเป็นเมล็ดที่กำหนดเอง ถ้าฉันใช้ฮาร์ดแวร์ทั่วไปเช่นฮาร์ดแวร์ Dell series (2800, 2850, 2900, ฯลฯ ... ) มันเป็นเรื่องง่ายที่จะคัดลอกไฟล์. config ของเคอร์เนลไปยังแต่ละกล่องและรวบรวมเคอร์เนลและติดตั้ง


3
ฉันคิดว่าประเด็นหลักของคำตอบที่ยอมรับคือสำหรับฮาร์ดแวร์ส่วนใหญ่ประสิทธิภาพที่ได้จากการรวบรวมเคอร์เนลของคุณเองนั้นไม่คุ้มค่ากับเวลาที่ต้องเรียนรู้วิธีการทำ (และเรียนรู้ว่าตัวเลือกมีความหมายอย่างไร) นั่นอาจจะเป็นประสบการณ์: มันจะเป็นการดีถ้าคุณหาตัวเลขบางอย่างในเรื่องนี้
Andres Riofrio

ถ้าอย่างนั้นก็มีเลศนัยที่จะไม่กล่าวสิ่งนี้ในคำถามเดิมแล้วยอมรับคำตอบที่อยู่ในบริเวณที่คุณกล่าวหา
Eric

2
ไม่ใช่ความผิดของฉันที่คำตอบของฉันได้รับการยอมรับ และในขณะที่ใช่มีหลายกรณีที่การรวบรวมเคอร์เนลของคุณจะช่วยให้คุณ "แสดงประสิทธิภาพออกมา" หรือลุกขึ้นและวิ่งบนเครื่องที่มีพลังงานต่ำ ต้องการล่วงหน้าและเป็นเพียงอยากรู้ในแง่ทั่วไปประโยชน์ของการรวบรวมเคอร์เนลคืออะไร ฉันจะยืนยันว่าเฉพาะคนที่มีข้อกำหนดเฉพาะในใจได้รับประโยชน์จากการปรับแต่งเคอร์เนล เนื่องจากคำตอบของฉันได้รับการยอมรับฉันจะปรับปรุงให้ดีขึ้นเพื่อจัดการกับเหตุผลที่ทำให้ผู้ใช้มีพลังมากขึ้นสำหรับเมล็ดที่กำหนดเอง
gabe

14

นี่คือบางสถานการณ์ที่การรวบรวมเคอร์เนลของคุณจะเป็นประโยชน์กับคุณ:

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

  • การปิดใช้งานการสนับสนุน / dev / kmem หรือทำให้พิการด้วยตัวเลือกคอมไพเลอร์ที่เหมาะสมเป็นสิ่งที่ดีสำหรับความปลอดภัย ฉันคิดว่า distros ส่วนใหญ่ทำสิ่งนี้โดยปริยาย

  • ฉันไม่ต้องการใช้ initrd เมื่อเป็นไปได้ การปรับแต่งเคอร์เนลของคุณให้เป็นฮาร์ดแวร์ที่บู๊ตจากการกำจัด initrd

  • บางครั้งรุ่นเคอร์เนลในภายหลังจะมีคุณสมบัติที่คุณต้องการ ฉันจำได้เมื่อฉันเริ่มใช้ Debian ครั้งแรกมันใช้ 2.4 เมล็ด แต่ฉันต้องการ 2.6 เคอร์เนลสำหรับการสนับสนุน udev

  • การปิดใช้งานโปรโตคอลเครือข่าย / ตัวเลือกที่คุณไม่ต้องการสามารถเพิ่มความเร็ว TCP / IP ได้

  • การปิดใช้งานตัวเลือกที่คุณไม่จำเป็นต้องลดขนาดหน่วยความจำของเคอร์เนลซึ่งมีความสำคัญในสภาพแวดล้อม RAM ต่ำ เมื่อคุณใช้ระบบ RAM 256MB เป็นเราเตอร์สิ่งนี้จะช่วย

  • ฉันค้นหาอุปกรณ์ "tty" ทั้งหมดใน / dev สร้างความรำคาญให้กับระบบที่ฉันมักจะเข้าสู่ระบบผ่านทางอนุกรมหรือ ssh เท่านั้น


จริงทั้งหมด อย่างไรก็ตามการลบการโหลดโมดูลอาจทำให้เกิดปัญหาในการบูต: ส่วนใหญ่ถ้าไม่ใช่ทั้งหมดการแจกแจงในวันนี้เพียงแค่สมมติว่าโมดูลจะต้องโหลด ครั้งสุดท้ายที่ฉันปิดโมดูลมันทำให้เกิดข้อความแจ้งข้อผิดพลาดปรากฏขึ้นในระหว่างกระบวนการบูต Red Hat
เหม่ย

7

การคอมไพล์เคอร์เนลของคุณเองช่วยให้คุณมีส่วนร่วมในกระบวนการพัฒนาเคอร์เนลไม่ว่าจะเป็นเรื่องง่าย ๆ เช่นการจัดหา ID อุปกรณ์ PCI / USB สำหรับไดรเวอร์ที่มีอยู่ซึ่งอาจทำให้อุปกรณ์รุ่นใหม่ทำงานเพื่อคุณ การพัฒนาเคอร์เนล

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

ฉันเองก็ชอบที่จะรวบรวมเมล็ดของตัวเองเพื่อรวมการสนับสนุนสำหรับฮาร์ดแวร์เท่านั้นที่ฉันมี เมื่อคุณเรียกใช้ distro kernels และดูผลลัพธ์ของlsmod(8)คุณจะเห็นโมดูลที่โหลดมากมายสำหรับฮาร์ดแวร์ที่คุณไม่มี การทำเช่นนี้อาจทำให้รายการโมดูล / proc / sys และบันทึกของคุณสกปรกเช่นเมื่อคุณกำลังค้นหาบางอย่างมันอาจถูกซ่อนอยู่ท่ามกลางเสียงรบกวน คุณไม่สามารถมั่นใจได้ 100% ว่าโมดูลเหล่านั้นไม่ได้มีส่วนทำให้เกิดปัญหาที่คุณพยายามวินิจฉัย


6

ฉันคำตอบของ gabe. วินาที (ความคิดเห็นของฉันยาวเกินไปดังนั้นฉันโพสต์เป็นคำตอบ)

เว้นแต่คุณจะมีจุดประสงค์พิเศษสูง (เช่นเครื่องฝังตัวการทำโปรไฟล์ความปลอดภัยที่เข้มงวด) ฉันไม่เห็นประโยชน์ในทางปฏิบัติในการรวบรวมเคอร์เนลของคุณเองนอกเหนือจากเพื่อดูว่ามันเสร็จสิ้นแล้ว โดยการตรวจสอบตัวเลือกอย่างเป็นระบบดูว่าพวกเขามีปฏิสัมพันธ์กันอย่างไรเพื่อสร้างระบบเป็นวิธีที่ดีในการทำความเข้าใจว่าระบบของคุณทำงานอย่างไร เป็นสิ่งที่น่าอัศจรรย์ที่คุณค้นพบเมื่อคุณพยายามลบส่วนประกอบที่ไม่ปรากฏว่ามีจุดประสงค์สำหรับงานที่คุณพยายามทำให้สำเร็จ

ได้รับการเตือนอย่างไร - ทำไมการกระโดดลงหลุมกระต่ายนั้นทำให้ดีอกดีใจไม่ต้องสงสัยมันจะดูดคืนและวันหยุดสุดสัปดาห์มากกว่าที่คุณคิดว่าเป็นไปได้!


3

ที่ทำงานเราใช้เมล็ดที่รีดด้วยมือเพื่อใช้แพทช์ที่ไม่ได้อยู่ในต้นไม้เช่น vserver และ unionfs

ที่บ้านฉันกำลังรวบรวมเมล็ดที่รีดด้วยมือเพื่อหาข้อตกลงที่แนะนำข้อผิดพลาดที่ฉันพบ เมื่อฉันทำเสร็จแล้วฉันอาจจะติดเคอร์เนลที่รีดด้วยมือจนกว่าข้อผิดพลาดจะได้รับการแก้ไขในการแจกแจงของฉัน (Debian) ที่จุดนี้ฉันจะกลับไปใช้เมล็ดของพวกเขาอีกครั้ง


2

กระทู้นี้มีอายุเก่าและยังคงใช้ได้วันนี้เหมือนเดิมเมื่อมีคำถามถาม!

คำตอบคือ: คุณรวบรวมเคอร์เนล linux ที่คุณเลือกตามความต้องการและความต้องการของคุณ

หลายสถานการณ์ถูกต้อง:

  1. คุณเป็นวิศวกรและต้องการโครงสร้างของคุณเพื่อให้ได้ประสิทธิภาพและข้อกำหนดด้านความปลอดภัย / ความต้องการสำหรับระบบของคุณคุณต้องคอมไพล์ใหม่เพื่อตอบสนองและ / หรือเกินเกณฑ์ที่ระบุ

  2. คุณเป็นผู้ใช้ปกติและมีระบบเก่าที่คุณต้องการจะดำเนินต่อไปตราบเท่าที่คุณสามารถคุณคอมไพล์ใหม่เพื่อเพิ่ม / ลบส่วนประกอบเพื่อให้ระบบเก่าของคุณได้รับการปรับให้เหมาะสม

  3. คุณเป็นผู้ใช้ปกติที่มีฮาร์ดแวร์ที่เร็วที่สุดและมีหน่วยความจำ / RAM เพียงพอ ไม่จำเป็นต้องคอมไพล์ซ้ำ แต่คุณยังสามารถทำได้หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับระบบของคุณอีกเล็กน้อย

  4. คุณเพียงแค่ต้องการเป็นผู้ใช้ Microsoft และ / หรือ Mac ทุกวันอย่าคอมไพล์ใหม่และไปกับการอัปเดตจาก upstream distro ของคุณ

  5. ให้สถานการณ์ต่อไป :-)

สิ่งที่แตกต่างจากผู้ใช้ Mac / Windows คือทางเลือกของ Linux ทางเลือกที่จะใช้ง่ายหรือปรับแต่งระบบให้เหมาะกับความต้องการของคุณ


1

สำหรับการใช้งานทั่วไปของเมล็ดข้าวทั่วไปนั้นดีสำหรับฮาร์ดแวร์ทุกชนิด นอกจากนี้พวกเขามักจะมีแพทช์เฉพาะการกระจาย (ed) เพื่อรวบรวมเคอร์เนลของคุณเองอาจ (อาจ) ทำให้เกิดปัญหา

reson เพื่อคอมไพล์เคอร์เนลของคุณเองคือ:

  • คุณกำลังใช้ distro ตามแหล่งที่มาจึงไม่มีเคอร์เนล 'ทั่วไป'
  • คุณเป็นผู้พัฒนาเคอร์เนลและคุณพัฒนาเคอร์เนล
  • คุณต้องปรับแต่งเคอร์เนลเช่นอุปกรณ์ฝังตัวที่มีฮาร์ดไดรฟ์ จำกัด มาก
  • ไดรเวอร์บางตัวไม่ได้รับการคอมไพล์ (กรณีที่หายากมาก)
  • คุณต้องการแพทช์เคอร์เนลและคุณรู้ว่าคุณกำลังทำอะไรอยู่
  • คุณต้องการเรียนรู้วิธีการรวบรวมเคอร์เนล

หากฉันไม่ได้ใช้ distro ที่อ้างอิงกับแหล่งข้อมูลฉันจะไม่รวบรวมเคอร์เนลเลย


1

อีกกรณีหนึ่งนอกเหนือจากที่กล่าวถึงในที่นี้สำหรับการรวบรวมเมล็ดแบบกำหนดเองคือการตั้งค่าสภาพแวดล้อมการบูตเครือข่ายพิเศษที่การโหลดโมดูลไม่เป็นไปได้และคุณต้องส่งเมล็ดที่ทำงานได้อย่างสมบูรณ์ไปยังเครื่องเฉพาะสำหรับงานเฉพาะ


1

ฉันประหลาดใจที่ไม่มีใครพูดถึงเหตุผลนี้ในการรวบรวมเคอร์เนลที่กำหนดเอง:

เพราะคุณต้องการใช้คอมไพเลอร์ C / c ++ ที่แตกต่างกัน GCC ค่อนข้างดีสำหรับการรวบรวมเคอร์เนล linux แต่มีคอมไพเลอร์ที่เหนือกว่าอย่างมากมาย! การเพิ่มประสิทธิภาพของ GCC นั้นค่อนข้างอยู่เบื้องหลังคอมไพเลอร์ C / C ++ ของ Intel และ Intel เป็นผู้จัดหาไลบรารี่พื้นฐานด้านประสิทธิภาพและเครื่องมือ vtune ซึ่งทั้งคู่ขาดไม่ได้ในการผลิตเคอร์เนลลินุกซ์ประสิทธิภาพสูง คุณสามารถเข้าถึงได้ด้วย GCC และ G ++ เท่านั้น ในทางปฏิบัติไม่ว่าคุณจะทำอะไรผลลัพธ์จะถูก จำกัด โดยคอมไพเลอร์ ดังนั้นฉันจึงใช้คอมไพเลอร์และห้องสมุดประสิทธิภาพของ Intel มันเป็นการดาวน์โหลดที่ใหญ่มาก - 1.5GB แต่นั่นก็ให้ความคิดเล็กน้อยเกี่ยวกับสิ่งที่อยู่ในคอมไพเลอร์ที่ดี

คอมไพเลอร์ C / C ++ ของ Intel มีให้บริการฟรีสำหรับการใช้ที่ไม่ใช่เชิงพาณิชย์ แต่มันง่ายกว่าที่จะ google หน้าดาวน์โหลดคอมไพเลอร์ Intel c ++ ใบอนุญาตที่ไม่ใช่เชิงพาณิชย์เพื่อค้นหาเว็บไซต์ของ Intel ฉันมักจะไม่ใช้ GCC / G ++ เพื่ออะไร และคุณไม่จำเป็นต้องเป็นโปรแกรมเมอร์ คุณเพียงแค่ตั้งค่าสภาพแวดล้อมของคุณและเปลี่ยนสองบรรทัดในไฟล์ make เพื่อชี้ไปที่คอมไพเลอร์ของ Intel

จากนั้นคุณจะได้รับความเร็วที่ร้ายแรง!


-1

ถ้าคุณต้องการติดตั้งลีนุกซ์บนฮาร์ดแวร์ที่เฉพาะเจาะจงพูดแปลก ๆ มากกว่าDSคุณจะต้องคอมไพล์เคอร์เนลของคุณเอง

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