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

คำถามเกี่ยวกับ Linux kernel และ Linux kernel หัวข้อที่เกี่ยวข้องเช่น รายละเอียดการนำไปใช้เช่นการเรียกใช้ระบบการปรับแต่งเคอร์เนล ฯลฯ สำหรับหัวข้อพื้นที่ผู้ใช้ Linux ซึ่งไม่เกี่ยวข้องกับรายละเอียดเคอร์เนล [linux] หรือแท็กการกระจายจะเหมาะสมกว่า

4
ตัวเลือกการสร้างเคอร์เนลปัจจุบันเก็บอยู่ที่ไหน
มีวิธีทราบหรือไม่ว่าเคอร์เนลถูกคอมไพล์ด้วยตัวเลือกบางตัวที่เปิดใช้งาน (เช่นCONFIG_PROC_EVENTS=y) โดยไม่ต้องดึงแพ็กเกจซอร์สเคอร์เนลออกและค้นหาในไฟล์ปรับแต่งหรือไม่?

2
PID ของกระบวนการลูกนั้นใหญ่กว่า PID ของพาเรนต์บน Linux เสมอหรือไม่?
สมมุติว่าจากเคอร์เนล 2.6 เป็นต้นไป ฉันดูกระบวนการทำงานทั้งหมดในระบบ PID ของเด็ก ๆ นั้นดีกว่า PID ของผู้ปกครองหรือไม่? เป็นไปได้หรือไม่ที่จะมีกรณีพิเศษของ "การผกผัน"?


3
จะเกิดอะไรขึ้นถ้าคุณลบไฟล์อุปกรณ์
ฉันรู้เกี่ยวกับไฟล์ที่อยู่ใต้ / dev คร่าวๆ ฉันรู้ว่ามีสองประเภท (ตัวอักษร / บล็อก) การเข้าถึงไฟล์เหล่านี้สื่อสารกับไดรเวอร์ในเคอร์เนล ฉันต้องการทราบว่าจะเกิดอะไรขึ้นหากฉันลบไฟล์หนึ่ง - โดยเฉพาะสำหรับไฟล์ทั้งสองประเภท ถ้าฉันลบไฟล์อุปกรณ์บล็อกให้พูดว่า/dev/sdaมันจะมีผลกระทบอะไร - ถ้ามี - มีอะไรบ้าง ฉันเพิ่ง unmount ดิสก์หรือไม่ ในทำนองเดียวกัน/dev/mouse/mouse0จะเกิดอะไรขึ้นถ้าฉันลบ- จะเกิดอะไรขึ้น เมาส์หยุดทำงานหรือไม่ มันจะแทนที่ตัวเองโดยอัตโนมัติหรือไม่ ฉันสามารถลบไฟล์เหล่านี้ได้หรือไม่? ถ้าฉันตั้งค่า VM ฉันจะลอง

2
จุดประสงค์ของแพตช์ของเคอร์เนล linux คืออะไร?
สำหรับ Linux kernel แต่ละรุ่นจะมีไฟล์แพตช์ให้ดาวน์โหลด ตัวอย่างเช่นlinux-3.12.22มีpatch-3.12.22 ที่สอดคล้องกัน จุดประสงค์ของการแก้ไขคืออะไร? หากต้องการแก้ไขเคอร์เนลที่สอดคล้องกันเสมอก่อนที่จะรวบรวมหรือนำเวอร์ชันเคอร์เนลรุ่นเก่ามาอัพเดทกับเคอร์เนลที่แพทช์ตรงกัน (3.12.22 ในกรณีนี้)

2
เคอร์เนล BSD เคอร์เนล Linux [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันอยากรู้ในแง่เทคนิค; ความแตกต่างระหว่างBSD KernelและLinux Kernelคืออะไร ใน Linux เราสามารถดาวน์โหลดเคอร์เนลแหล่งที่มาแล้วpatchมันและmakeและmake modulesมัน แม้จะมีเครื่องมือในการแก้ไขเคอร์เนลconfigเช่นmenuconfig, xconfigและ ... แต่ฉันไม่สามารถหาทุ่งกว้างใหญ่ขนาดนั้นบน BSD ได้ ก่อนอื่นฉันสามารถดาวน์โหลดได้BSD kernelหรือไม่ ฉันจะกำหนดค่าได้อย่างไร และ ... ดังนั้นสิ่งที่ฉันขอคือ: (โดยไม่อ้างอิงถึงบรรพบุรุษและนิรุกติศาสตร์) คือKernelในแต่ละกรณี (ใน) ขึ้นอยู่กับการจัดจำหน่ายหรือไม่? วิธีกำหนดค่าแต่ละรายการKernelและเครื่องมือสำหรับงาน แต่ละงานสามารถแก้ไขได้หรือไม่ ความพร้อมใช้งานของkernelขอบเขตการกระจายภายนอก ( Kernel Sources) รสชาติที่Kernelsมีในแต่ละกรณี ( X??BSD/ Linux) ถูกใจXEN/Vmware/GEN?

1
จะเริ่มเขียนไดร์เวอร์ได้อย่างไร?
ฉันมีแลปท็อปราคาถูกทิ้งฉันอยากจะลองเล่นไปรอบ ๆ Thinkpad SL 500 สิ่งที่ทำให้ฉันรำคาญใจคือไฟ LED สองดวงอันที่หนึ่งสำหรับการเชื่อมต่อแบบไร้สายและอีกอันสำหรับการจำศีลซึ่งไม่สว่างขึ้นเลยถึงแม้ว่ามันจะใช้งานได้ แต่ฉันก็ลองใช้มันบน windows ดังนั้นฉันต้องการเขียนโปรแกรมควบคุมเคอร์เนลสำหรับพวกเขาไม่มีอะไรใหญ่มันก็เป็นความคิดที่ดีที่จะเล่นกับเคอร์เนล คำถามของฉันคือวิธีการที่ฉันควรปฏิบัติตามอย่างเป็นระบบเพื่อค้นหาว่าอุปกรณ์ใดบ้างที่รับผิดชอบไฟ LED เหล่านั้น (โดยทั่วไปไม่จำเป็นต้องใช้เฉพาะกับฮาร์ดแวร์ของฉัน) และไดรเวอร์ใดบ้างที่รับผิดชอบไฟ LED สองดวงที่ทำงานบลูทู ธ และไฟแสดงแบตเตอรี่ และเมื่อฉันพูดถึงวิธีการฉันหมายถึงระเบียบวิธีทีละขั้นตอนด้วยเหตุผลสำหรับแต่ละขั้นตอนเช่นในคำตอบที่ฉันให้กับคนอื่นที่นี่: & & หมายถึงเป็นโมฆะ * p = && abc; ฉันมีความเชี่ยวชาญในการรวบรวมข้อมูลผ่านคลังเก็บข้อมูลขนาดใหญ่โดยใช้การวิเคราะห์โค้ดแบบคงที่ & co แต่ฉันคิดว่าการขาดความรู้ด้านฮาร์ดแวร์ของฉันเป็นอุปสรรคต่อฉันในปัญหานี้ PS: ฉันใช้ ArchLinux ดังนั้นเกือบเคอร์เนลรุ่นล่าสุด

4
จะบูตเคอร์เนล EFI โดยใช้ QEMU (kvm) ได้อย่างไร?
ฉันพยายามจำลองสภาพแวดล้อม EFI โดยใช้ QEMU (kmv); virtualbox ใช้เวลา 15 นาทีในการบูตในโหมด EFI โดยใช้ archboot การใช้โหมด BIOS ดั้งเดิมฉันสามารถบูตโดยใช้คำสั่งนี้: root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -kernel ../bzImage -initrd ../rootfs.gz -append "rw root=/dev/ram0 ramdisk_size=40960" และใช้งานได้กับเคอร์เนลและระบบไฟล์ที่กำหนดเองของฉัน file ../bzImage ../bzImage: Linux kernel x86 boot executable bzImage, version 3.6.1 (root@citsnmaiko-deb) #4 , RO-rootFS, swap_dev 0x3, Normal VGA มันก็รองรับ EFI ด้วย ฉันพยายามทำสิ่งเดียวกันกับไฟล์ EFI …

2
พารามิเตอร์เคอร์เนล acpi_osi = linux และ acpi_backlight = ผู้ขายทำอะไรได้บ้าง
ผมมีปัญหากับการควบคุมความสว่างหน้าจอแล็ปท็อปของฉันและฉันคงได้โดยการเพิ่มacpi_osi=linuxและพารามิเตอร์ไปยังแฟ้มacpi_backlight=vendor grub.cfgฉันต้องการทราบว่าพารามิเตอร์เหล่านี้มีความหมายอย่างไรและทำไมจึงทำงาน

1
การทำงานเป็นอย่างไร
sched_setschedulerพูดว่า: การกำหนดตารางเวลาทั้งหมดถูกจองไว้ล่วงหน้า: หากกระบวนการที่มีลำดับความสำคัญคงที่สูงกว่าพร้อมที่จะเรียกใช้กระบวนการที่กำลังทำงานอยู่ในปัจจุบันจะถูกจองล่วงหน้าและกลับสู่รายการรอสำหรับระดับความสำคัญคงที่ ในขณะที่setpriorityพูดว่า สิ่งนี้ทำให้ค่า nice ที่ต่ำมาก (+19) เพื่อให้ CPU เล็ก ๆ น้อย ๆ กับกระบวนการอย่างแท้จริงเมื่อใดก็ตามที่มีการโหลดลำดับความสำคัญสูงกว่าอื่น ๆ บนระบบและทำให้ค่า nice ที่สูง (-20) ส่งมอบ CPU ส่วนใหญ่ให้กับแอปพลิเคชันที่ต้องการ ดังนั้นการเปลี่ยนแปลงค่าที่ดีจะมีผลต่อการดำเนินการของโปรแกรมอย่างไร มันคล้ายกับการจัดตารางเวลา RT (ที่โปรแกรมที่มีค่า nice ที่ดีกว่ากำลังจะไปขัดจังหวะโปรแกรมที่มีค่า nice ต่ำกว่า) หรือไม่ ข้อมูลทั้งหมดบนอินเทอร์เน็ตเป็นวิธีการใช้niceและวิธีการเปลี่ยนลำดับความสำคัญของกระบวนการ ไม่มีลิงก์อธิบายว่ากระบวนการที่มีลำดับความสำคัญต่างกันอย่างไร ฉันไม่สามารถหารหัสต้นฉบับได้

3
ข้อความ Out of Memory คืออะไร: เสียสละเด็ก?
เมื่อเร็ว ๆ นี้คอมพิวเตอร์ของฉันมีหน่วยความจำไม่เพียงพอ (เป็นผลมาจากการรวบรวมซอฟต์แวร์ในขณะที่ทำงานกับชุดข้อมูล GIS ขนาดใหญ่) ในบันทึกระบบรายละเอียดวิธีจัดการกับเงื่อนไข OOM เป็นบรรทัดต่อไปนี้: Out of memory: Kill process 7429 (java) score 259 or sacrifice child นั่นคือสิ่งที่or sacrifice childเกี่ยวกับ? แน่นอนมันไม่ได้ไตร่ตรองพิธีกรรมที่มืดเพื่อให้สิ่งต่าง ๆ ดำเนินต่อไป?

2
เป็นไปได้ไหมที่จะรับข้อมูลทรีของอุปกรณ์โดยใช้ / sys ของเคอร์เนลที่กำลังรันอยู่?
โดยทั่วไปสำหรับระบบแขนอุปกรณ์ต้นไม้จะจัดหาข้อมูลฮาร์ดแวร์ให้กับเคอร์เนล (Linux) แผนผังอุปกรณ์เหล่านี้มีอยู่ในรูปแบบไฟล์ dts (แหล่งอุปกรณ์ต้นไม้) ที่รวบรวมและโหลดลงในเคอร์เนล ปัญหาคือฉันไม่สามารถเข้าถึงdtsไฟล์ดังกล่าวไม่ได้แม้แต่dtbไฟล์ ฉันสามารถเข้าถึง/sysและ/procบนเครื่องและฉันต้องการถามว่าจะอนุญาตให้ "เดาค่าที่ถูกต้อง" ที่จะใช้ใน dts หรือไม่? คำตอบที่เป็นไปได้ยังสามารถเน้นเพิ่มเติมได้หากคำตอบสำหรับคำถามนี้ยังขึ้นอยู่กับว่าส่วนต่อประสานอุปกรณ์ถูกใช้ในสถานที่แรก (เช่น a dtbถูกสร้างขึ้นและมอบให้เคอร์เนล) แทนการแฮ็คเพิ่มเติม " และแก้ไขเคอร์เนลเพื่อแก้ปัญหาข้อมูลอุปกรณ์สำหรับเคอร์เนลของเราเท่านั้น "-solution?

3
การค้นหาค่าของตัวเลือกเคอร์เนลที่เกี่ยวข้องกับ sysctl.conf และ sysctl.d
ในเครื่อง Ubuntu ของฉันใน/etc/sysctl.confไฟล์ฉันมีตัวเลือกการกรองเส้นทางย้อนกลับแสดงความคิดเห็นโดยค่าเริ่มต้นเช่นนี้: #net.ipv4.conf.default.rp_filter=1 #net.ipv4.conf.all.rp_filter=1 แต่ใน/etc/sysctl.d/10-network-security.confพวกเขา (อีกครั้งโดยค่าเริ่มต้น) ไม่ได้แสดงความคิดเห็น: net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1 ดังนั้นจะเปิดใช้งานการกรองเส้นทางย้อนกลับหรือไม่? ตำแหน่งการกำหนดค่าใดที่มีลำดับความสำคัญสูงสุด ฉันจะตรวจสอบค่าปัจจุบันของตัวเลือกเคอร์เนลเหล่านี้และอื่น ๆ ได้อย่างไร?

1
NetworkManager, networkd, netplan, ifupdown2 และ iproute2 โต้ตอบกันอย่างไร
ฉันกำลังเรียนรู้เกี่ยวกับเครือข่าย Linux บนเวิร์กสเตชัน Kubuntu 18.04 ของฉันและฉันเห็นว่ามีทั้งสองอย่างNetworkManagerและnetworkd-dispatcherกำลังทำงานอยู่: oleg@eclectic:~$ sudo ps -ef | grep -i net root 56 2 0 Oct11 ? 00:00:00 [netns] root 1097 1 0 Oct11 ? 00:00:02 /usr/sbin/NetworkManager --no-daemon root 1098 1 0 Oct11 ? 00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers root 1250 1 0 Oct11 ? 00:00:02 /usr/sbin/inetd root …

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

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