คำถามติดแท็ก kernel

ส่วนประกอบหลักของระบบปฏิบัติการส่วนใหญ่เคอร์เนลจัดการการสื่อสารส่วนใหญ่ของคอมพิวเตอร์ระหว่างฮาร์ดแวร์และซอฟต์แวร์ โดยทั่วไปเคอร์เนลเป็นระดับต่ำสุดของการเขียนโปรแกรมที่สามารถมีทรัพยากร

6
รับการกำหนดค่าเคอร์เนลจากระบบ Linux ที่ใช้อยู่ในปัจจุบัน?
ฉันตั้งใจลบ. config สำหรับการกำหนดค่าเคอร์เนลของฉันบน Linux และดูเหมือนว่าจะมีวิธีดึงการกำหนดค่าเคอร์เนลผ่านระบบไฟล์ proc อย่างใด มันยังคงเป็นไปได้และถ้าเป็นเช่นนั้นฉันจะทำอย่างไร
107 linux  kernel 

5
อนุญาตให้กระบวนการที่ไม่ใช่รูทเชื่อมโยงกับพอร์ต 80 และ 443 หรือไม่
เป็นไปได้ไหมที่จะปรับพารามิเตอร์เคอร์เนลเพื่อให้โปรแกรม userland เชื่อมกับพอร์ต 80 และ 443 ได้? เหตุผลที่ฉันถามคือฉันคิดว่ามันโง่ที่จะอนุญาตให้กระบวนการพิเศษเปิดซ็อกเก็ตและฟัง สิ่งใดก็ตามที่เปิดซ็อกเก็ตและฟังมีความเสี่ยงสูงและแอปพลิเคชันที่มีความเสี่ยงสูงไม่ควรทำงานในฐานะรูท ฉันอยากลองคิดดูว่ากระบวนการที่ไม่มีสิทธิพิเศษกำลังฟังอยู่ที่พอร์ต 80 แทนที่จะพยายามลบมัลแวร์ที่ฝังอยู่ด้วยสิทธิ์พิเศษของรูท

5
เคอร์เนล linux มีขนาดเล็กได้อย่างไร?
เคอร์เนล 3 * แบบเสถียรธรรมดาตอนนี้ประมาณ 70 mb แต่มีการแจกแจงลินุกซ์เล็กน้อยที่ 30-10 mb พร้อมซอฟต์แวร์และสิ่งอื่น ๆ ที่เหลืออยู่ในกล่อง เคอร์เนล linux มีขนาดเล็กใน distros เหล่านี้ได้อย่างไร การถอดโมดูลและไดรเวอร์ที่ไม่จำเป็นออกจะช่วยลดขนาดได้หรือไม่? จะทำอะไรเพื่อลดขนาดเคอร์เนล?
56 linux  kernel 

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

7
เหตุใดคำสั่ง BIOS แรกจึงอยู่ที่ 0xFFFFFFF0 (“ top” ของ RAM)
ฉันรู้ว่า BIOS โหลดคำสั่งแรกจาก 0xFFFFFFF0 แต่ทำไมที่อยู่นี้โดยเฉพาะ ฉันมีคำถามมากมายและหวังว่าคุณจะสามารถช่วยฉันได้บ้างอย่างน้อย คำถามของฉัน: เหตุใดคำสั่ง BIOS แรกจึงอยู่ที่ "ด้านบน" ของ RAM 4 GB จะเกิดอะไรขึ้นหากคอมพิวเตอร์ของฉันมี RAM เพียง 1 GB เท่านั้น ระบบที่มี RAM มากกว่า 4 GB (เช่น 8 GB, 16 GB เป็นต้น) เป็นอย่างไร ทำไมสแต็กเริ่มต้นด้วยบางค่า (ในกรณีนี้ค่าอยู่ที่ 0xFFFFFFF0) ฉันอ่านเกี่ยวกับบ่ายวันนี้และฉันยังไม่เข้าใจ
51 boot  memory  bios  kernel 

2
มีอะไรในระบบปฏิบัติการอื่นนอกเหนือจากเคอร์เนล
ตามที่ฉันเข้าใจเคอร์เนลจะโต้ตอบกับฮาร์ดแวร์และจัดการหน่วยความจำอุปกรณ์ I / O ฯลฯ ดังนั้นเคอร์เนลจึงทำทุกอย่าง แต่มันเป็นเพียงส่วนหนึ่งของระบบปฏิบัติการ แล้วมีอะไรอีกบ้างใน OS? มีเพียงแอปพลิเคชันที่มาพร้อมกับมันหรือไม่? ตัวอย่างเช่น Ubuntu มีอะไรนอกเหนือจากเคอร์เนล เดสก์ท็อป Gnome และแอปพลิเคชั่นอื่น ๆ

2
เป็นไปได้ไหมที่จะรวบรวม Darwin Distro จากแหล่งข้อมูลเช่นคุณสามารถสร้าง Linux Distro ได้หรือไม่?
ฉันได้อ่านและดำเนินการLinux ตั้งแต่เริ่มต้น (และ BLFS) แล้วและฉันสงสัยว่าฉันสามารถทำตามคำแนะนำนี้เพื่อสร้าง Darwin Distro โดยการแทนที่xnuเคอร์เนลหรือไม่ กระบวนการจะแตกต่างอย่างมากกับที่ระบุไว้ใน LFS หรือไม่ ความเข้าใจปัจจุบันของฉันคือสิ่งที่จะต้องทำให้ระบบ "ดาร์วิน" มากกว่า "Linux" จะเป็นการทดแทนเคอร์เนล ถูกต้องหรือไม่ แก้ไข: ในการตอบสนองต่อความคิดเห็นของนักฆ่าฉันจะปรับแต่งคำถามนี้ ในขณะที่ฉันกำลังมองหาข้อมูลเกี่ยวกับหัวข้อนี้โดยทั่วไปสิ่งที่ฉันกำลังมองหาโดยเฉพาะคือสิ่งที่ " คู่มือการสร้างดาร์วิน Distro " เหมือน LFS เป็น " คู่มือการสร้าง Linux Distro " ฉันขอขอบคุณที่ข้อมูลดังกล่าวอาจมาจากคนที่มาจากPuredarwin , OpenDarwinหรือGNU / Darwinเท่านั้นดังนั้นนี่คือสิ่งที่พวกเขาขอความช่วยเหลือ คู่มือ " How-We-Made-PureDarwin-Nano-Start-To-Finish " เช่น LFS จะสมบูรณ์แบบ แต่ฉันรู้ว่ามันขอมาก
42 linux  kernel  darwin 

6
เคอร์เนลเป็นกระบวนการหรือไม่?
ใน Linux เรามักพูดเสมอว่ากระบวนการแรกคือinit(pid == 1) แต่ทำไมไม่ใช่เคอร์เนล (เริ่มต้น) ซึ่งติดตั้งระบบและสร้าง initกระบวนการ เคอร์เนลเป็นกระบวนการหรือไม่? เรารู้ว่าเธรดพื้นที่ผู้ใช้ทั้งหมดถูกรูทที่กระบวนการเริ่มต้น ถ้าอย่างนั้นการจัดตารางเวลาและสิ่งเคอร์เนลอื่น ๆ เช่นการจัดการหน่วยความจำ โดยพื้นฐานแล้วสิ่งที่ทำให้ฉันสับสนคือโครงสร้างของเคอร์เนล ถ้ามันเป็นกระบวนการมันเป็นกระบวนการเดียวหรือประกอบด้วยหลายกระบวนการ?
30 linux  kernel 


6
วิธีเพิ่มเคอร์เนลใหม่ให้กับ grub2
เราจะเพิ่มเคอร์เนลลงใน grub2 ได้อย่างไร? ฉันรู้ว่าสิ่งที่เราสามารถทำได้กับรุ่นเก่า แต่ดูเหมือนว่าจะมีการเปลี่ยนแปลง เราควรแก้ไขไฟล์อะไร
23 linux  ubuntu  kernel  grub 

3
เคอร์เนลไดรเวอร์ NTFS เทียบกับ NTFS-3G
คำถามที่ครอบคลุมมากขึ้นตั้งแต่ฉันไม่สามารถเข้าถึงคำถามอื่นได้ ฉันจะขอให้คนอื่นถูกลบไม่ใช่คนนี้เพราะมันไม่ควรย้ายในตอนแรก ขณะนี้มีไดรเวอร์ NTFS สองตัวสำหรับ Linux ไดรเวอร์ NTFS ที่รวมอยู่ในเคอร์เนลและไดรเวอร์ NTFS-3G ของ userspace ที่ใช้งาน FUSE โดยทุกบัญชี NTFS-3G ทำงานได้อย่างสมบูรณ์ คำถามของฉันคือถ้าระบบไฟล์ NTFS ได้รับการออกแบบวิศวกรรมย้อนกลับได้สำเร็จทำไมเคอร์เนลทีม NTFS จึงไม่นำการเปลี่ยนแปลงในไดรเวอร์มาใช้ ในขณะนี้มันยังถูกทำเครื่องหมายว่าเป็นการทดลองและมีโอกาสที่ดีที่มันจะทำลายข้อมูลของคุณ หมายเหตุ: สิ่งนี้ไม่เกี่ยวข้องกับการแจกแจง ...

2
วิธีวินิจฉัยการใช้ OS X kernel_task และการใช้หน่วยความจำแบบมีสายบอลลูน
ฉันมีปัญหาที่แปลกมากซึ่งฉันมีปัญหาในการวินิจฉัยสาเหตุที่แท้จริง ฉันมีMac Pro (2008, 8-core 2.8 GHz, 8800GT) พร้อม RAM ขนาด 14 GB (อัปเกรดเมื่อเร็ว ๆ นี้เนื่องจากปัญหานี้!) เมื่อฉันบูตระบบและล็อกอิน vm_stat / top / Activity Monitor จะแสดงว่า kernel_task มีการจัดสรรประมาณ 150 MB และเครื่องมีหน่วยความจำแบบใช้สายประมาณ 800 MB แม้ในตอนแรก 800 MB ดูเหมือนว่าจะมีการจัดสรรหน่วยความจำแบบใช้สายจำนวนมากโดยไม่มีแอปพลิเคชั่นทำงาน แต่มันก็แย่ลง (หมายเหตุ: สายถูกล็อคหน่วยความจำที่ไม่สามารถใช้งานได้) หลังจากช่วงเวลาสั้น ๆ บางครั้งถูกทริกเกอร์โดยบางสิ่งที่ง่ายพอ ๆ กับการเปิดตัวเทอร์มินัล kernel_task จะส่งไปยังหน่วยความจำจริง (RSIZE) 8-900 MB และหน่วยความจำแบบใช้สายจะเร่งความเร็วไปที่ 1.6 …

3
จะรู้ได้อย่างไรว่า noatime หรือ relatime เป็นตัวเลือก mount เริ่มต้นในเคอร์เนล?
ฉันพยายามที่จะรู้ว่ามีการตั้งค่า relatime หรือ noatime บนระบบไฟล์ แต่ฉันไม่พบข้อมูลทั้งใน / etc / fstab หรือในตัวเลือกการบูตเคอร์เนล ก่อนอื่นดูเหมือนชัดเจนว่าฉันไม่มีพฤติกรรม "ปกติ" ในเวลา: root@antec:/tmp# rm -f test.txt; echo a>test.txt root@antec:/tmp# stat test.txt | \grep -i 2011 Access: 2011-08-01 21:54:30.000000000 +0200 Modify: 2011-08-01 21:54:30.000000000 +0200 Change: 2011-08-01 21:54:30.000000000 +0200 root@antec:/tmp# cat test.txt > /dev/null root@antec:/tmp# stat test.txt | \grep -i …

9
vmlinux อยู่ที่ไหนในการติดตั้ง Ubuntu ของฉัน
ฉันกำลังพยายามทำงานกับการเริ่มต้นใช้งานoprofileและฉันพบปัญหาในขั้นตอนนี้: opcontrol --vmlinux=/path/to/vmlinux Ubuntu ไม่มีแพ็คเกจที่เรียกว่า vmlinux และเมื่อฉันทำlocate vmlinuxฉันจะได้รับไฟล์จำนวนมาก: /usr/src/linux-headers-2.6.28-14/arch/h8300/boot/compressed/vmlinux.lds /usr/src/linux-headers-2.6.28-14/arch/m68k/kernel/vmlinux-std.lds /usr/src/linux-headers-2.6.28-14/arch/m68k/kernel/vmlinux-sun3.lds /usr/src/linux-headers-2.6.28-14/arch/mn10300/boot/compressed/vmlinux.lds /usr/src/linux-headers-2.6.28-14/arch/sh/boot/compressed/vmlinux_64.lds /usr/src/linux-headers-2.6.28-14/arch/x86/boot/compressed/vmlinux_32.lds /usr/src/linux-headers-2.6.28-14/arch/x86/boot/compressed/vmlinux_64.lds /usr/src/linux-headers-2.6.28-14/include/asm-generic/vmlinux.lds.h /usr/src/linux-headers-2.6.28-15/arch/h8300/boot/compressed/vmlinux.lds /usr/src/linux-headers-2.6.28-15/arch/m68k/kernel/vmlinux-std.lds /usr/src/linux-headers-2.6.28-15/arch/m68k/kernel/vmlinux-sun3.lds /usr/src/linux-headers-2.6.28-15/arch/mn10300/boot/compressed/vmlinux.lds /usr/src/linux-headers-2.6.28-15/arch/sh/boot/compressed/vmlinux_64.lds /usr/src/linux-headers-2.6.28-15/arch/x86/boot/compressed/vmlinux_32.lds /usr/src/linux-headers-2.6.28-15/arch/x86/boot/compressed/vmlinux_64.lds /usr/src/linux-headers-2.6.28-15/include/asm-generic/vmlinux.lds.h /usr/src/linux-headers-2.6.28-16/arch/h8300/boot/compressed/vmlinux.lds /usr/src/linux-headers-2.6.28-16/arch/m68k/kernel/vmlinux-std.lds /usr/src/linux-headers-2.6.28-16/arch/m68k/kernel/vmlinux-sun3.lds /usr/src/linux-headers-2.6.28-16/arch/mn10300/boot/compressed/vmlinux.lds /usr/src/linux-headers-2.6.28-16/arch/sh/boot/compressed/vmlinux_64.lds /usr/src/linux-headers-2.6.28-16/arch/x86/boot/compressed/vmlinux_32.lds /usr/src/linux-headers-2.6.28-16/arch/x86/boot/compressed/vmlinux_64.lds /usr/src/linux-headers-2.6.28-16/include/asm-generic/vmlinux.lds.h อันไหนที่ฉันกำลังมองหา
16 linux  ubuntu  kernel 

4
เหตุใด Centos ยังไม่ใช้เคอร์เนลล่าสุด
อย่างที่ฉันได้เห็นการเปลี่ยนแปลงมากมายและการปรับปรุงในเคอร์เนล 3.xx การปรับปรุงที่ฉันชอบคือ dmcache ซึ่งเปิดตัวในเคอร์เนล 3.9 ฉันมี 3 เซิร์ฟเวอร์ที่ติดตั้ง centos ไว้ในเครื่องทั้งหมด Centos ยังคงใช้เคอร์เนลเก่าซึ่งเป็น 2.6.xx ฉันสงสัยว่าทำไมพวกเขาถึงไม่อัพเกรดเคอร์เนล? ทรัพยากร บล็อกของ Kyle Manna เกี่ยวกับ dm-cache ของ linux dm-cache (Wikipedia) Centos (Wikipedia)
15 linux  ssd  centos  kernel  centos-6 

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