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

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

28
ทรัพยากรบางอย่างสำหรับการเริ่มต้นใช้งานในการพัฒนาระบบปฏิบัติการมีอะไรบ้าง [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา สิ่งหนึ่งที่ฉันอยากทำอยู่เสมอคือการพัฒนาระบบปฏิบัติการของตัวเอง (ไม่จำเป็นต้องแฟนซีเช่น Linux หรือ Windows แต่ดีกว่าบูตโหลดเดอร์ธรรมดาที่ฉันได้ทำไปแล้ว) ฉันมีปัญหาในการค้นหาแหล่งข้อมูล / คำแนะนำที่ทำให้คุณผ่านการเขียนระบบปฏิบัติการ "Hello World" ที่เรียบง่าย ฉันรู้ว่าผู้คนจำนวนมากอาจจะแนะนำให้ฉันดูที่ Linux หรือ BSD; แต่ฐานของรหัสสำหรับระบบเช่นนี้นั้นใหญ่มากจนฉันไม่รู้ว่าจะเริ่มจากตรงไหน ข้อเสนอแนะใด ๆ อัปเดต: เพื่อให้ง่ายขึ้นสำหรับผู้ที่ลงจอดบนโพสต์นี้ผ่าน Google นี่คือแหล่งข้อมูลสำหรับการพัฒนาระบบปฏิบัติการ: การเขียนระบบปฏิบัติการของคุณเอง (ขอบคุณอดัม) Linux ตั้งแต่เริ่มต้น (ขอขอบคุณ John) SharpOS (ระบบปฏิบัติการ C #) (ขอบคุณ lomaxx) Minix3และMinix2 (ขอบคุณไมค์) OS Dev Wikiและฟอรัม (ขอบคุณ …

9
ความแตกต่างระหว่างกับดักและขัดจังหวะคืออะไร?
ความแตกต่างระหว่างกับดักและขัดจังหวะคืออะไร? หากคำศัพท์นั้นแตกต่างกันสำหรับระบบที่แตกต่างกันพวกมันหมายถึงอะไรใน x86?

11
เคอร์เนลระบบปฏิบัติการคืออะไร มันแตกต่างจากระบบปฏิบัติการอย่างไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันไม่สามารถเข้าใจความแตกต่างระหว่างเคอร์เนลและระบบปฏิบัติการ ฉันไม่เห็นความแตกต่างระหว่างพวกเขา เคอร์เนลเป็นระบบปฏิบัติการหรือไม่?

16
ความแตกต่างระหว่างพื้นที่เคอร์เนลและพื้นที่ผู้ใช้คืออะไร?
ความแตกต่างระหว่างพื้นที่เคอร์เนลและพื้นที่ผู้ใช้คืออะไร? เคอร์เนลพื้นที่เคอร์เนลเธรดกระบวนการเคอร์เนลและเคอร์เนลสแต็คหมายถึงสิ่งเดียวกันหรือไม่ นอกจากนี้ทำไมเราจึงต้องการความแตกต่างนี้

4
cscope หรือ ctags ทำไมถึงเลือกอันอื่น [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่? อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการในวันที่ 11 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ฉันใช้ vim / gvim เป็นตัวแก้ไขเป็นหลักและฉันกำลังมองหาการใช้lxr (Linux Cross Reference)และcscopeหรือctagsสำหรับการสำรวจแหล่งเคอร์เนล อย่างไรก็ตามฉันไม่เคยใช้cscopeหรือctags มาก่อนและอยากทราบว่าเหตุใดจึงอาจเลือกหนึ่งรายการมากกว่าอีกรายการหนึ่งโดยคำนึงถึงการใช้กลุ่มเป็นเครื่องมือแก้ไขหลัก
131 vim  kernel  ctags  cscope 


8
แปลงเวลาประทับของ dmesg เป็นรูปแบบวันที่ที่กำหนดเอง
ฉันกำลังพยายามทำความเข้าใจการประทับเวลา dmesg และพบว่าเป็นการยากที่จะแปลงสิ่งนั้นเพื่อเปลี่ยนเป็นวันที่จาวา / รูปแบบวันที่ที่กำหนดเอง ความช่วยเหลือใด ๆ ที่ชื่นชมมาก บันทึก dmesg ตัวอย่าง: [14614.647880] airo(eth1): link lost (missed beacons) ขอบคุณ!

3
อะไรคือความแตกต่างระหว่างระบบปฏิบัติการและเคอร์เนล? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันไม่เข้าใจความแตกต่างระหว่างระบบปฏิบัติการและเคอร์เนล ใครช่วยอธิบายหน่อยได้ไหม

6
__gxx_personality_v0 คืออะไร?
นี่เป็นคำถามมือสองจากไซต์การพัฒนาระบบปฏิบัติการ แต่มันทำให้ฉันสงสัยเพราะฉันไม่สามารถหาคำอธิบายที่ดีได้จากที่ใด เมื่อรวบรวมและเชื่อมโยงโปรแกรม C ++ แบบอิสระโดยใช้ gcc บางครั้งข้อผิดพลาดของตัวเชื่อมโยงเช่นนี้จะเกิดขึ้น: out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' เห็นได้ชัดว่าเป็นเพราะสัญลักษณ์นี้ถูกกำหนดใน libstdc ++ ซึ่งขาดหายไปในสภาพแวดล้อมอิสระ การแก้ไขปัญหาเพียงแค่กำหนดสัญลักษณ์นี้ไว้ที่ใดที่หนึ่ง: void *__gxx_personality_v0; ซึ่งดี แต่ฉันไม่ชอบสิ่งที่ใช้งานได้อย่างมหัศจรรย์ ... คำถามคือจุดประสงค์ของสัญลักษณ์นี้คืออะไร?
103 c++  gcc  linker  kernel 

1
[N … M] หมายถึงอะไรใน C aggregate initializers?
จากsys.cบรรทัด 123: void *sys_call_table[__NR_syscalls] = { [0 ... __NR_syscalls-1] = sys_ni_syscall, #include <asm/unistd.h> }; sys_call_tableเป็นตัวชี้ทั่วไปไปยังอาร์เรย์ฉันเห็นว่า อย่างไรก็ตามสัญกรณ์คืออะไร: [0 ... __NR_syscalls-1] คืออะไร...? แก้ไข: ผมได้เรียนรู้เคล็ดลับ C อีกที่นี่: #include <asm/unistd.h>จะได้รับการประมวลผลล่วงหน้า[0 ... _NR_syscalls-1]และแทนที่ด้วยเนื้อหาและมอบหมายให้
101 c  linux  kernel 

3
บริบทจะเปลี่ยนช้าลงมากในเมล็ดลินุกซ์ใหม่
เรากำลังต้องการอัพเกรดระบบปฏิบัติการบนเซิร์ฟเวอร์ของเราจาก Ubuntu 10.04 LTS เป็น Ubuntu 12.04 LTS น่าเสียดายที่ดูเหมือนว่าเวลาในการตอบสนองในการรันเธรดที่รันได้นั้นเพิ่มขึ้นอย่างมีนัยสำคัญจาก 2.6 เคอร์เนลเป็น 3.2 เคอร์เนล ในความเป็นจริงตัวเลขเวลาแฝงที่เราได้รับนั้นยากที่จะเชื่อ ให้ฉันเจาะจงมากขึ้นเกี่ยวกับการทดสอบ เรามีโปรแกรมที่ทำงานสองเธรด เธรดแรกได้รับเวลาปัจจุบัน (ในเห็บโดยใช้ RDTSC) แล้วส่งสัญญาณตัวแปรเงื่อนไขวินาทีละครั้ง เธรดที่สองรอตัวแปรเงื่อนไขและตื่นขึ้นมาเมื่อมีการส่งสัญญาณ จากนั้นจะได้รับเวลาปัจจุบัน (ในเห็บโดยใช้ RDTSC) ความแตกต่างระหว่างเวลาในเธรดที่สองและเวลาในเธรดแรกจะถูกคำนวณและแสดงบนคอนโซล หลังจากนี้เธรดที่สองจะรอตัวแปรเงื่อนไขอีกครั้ง เธรดแรกจะส่งสัญญาณอีกครั้งหลังจากผ่านไปประมาณหนึ่งวินาที ดังนั้นโดยสรุปเราจะได้รับการสื่อสารแบบเธรดต่อเธรดผ่านการวัดเวลาแฝงตัวแปรเงื่อนไขหนึ่งวินาทีเป็นผล ในเคอร์เนล 2.6.32 เวลาแฝงนี้อยู่ที่ใดที่หนึ่งตามลำดับของ 2.8-3.5 us ซึ่งสมเหตุสมผล ในเคอร์เนล 3.2.0 เวลาแฝงนี้เพิ่มขึ้นเป็นที่ใดที่หนึ่งตามลำดับ 40-100 เรา ฉันได้ยกเว้นความแตกต่างใด ๆ ในฮาร์ดแวร์ระหว่างโฮสต์ทั้งสอง พวกเขาทำงานบนฮาร์ดแวร์ที่เหมือนกัน (โปรเซสเซอร์ซ็อกเก็ตคู่ X5687 {Westmere-EP} ที่ทำงานที่ 3.6 GHz พร้อมกับไฮเปอร์เธรดความเร็วขั้นตอนและสถานะ …

8
สถานะกระบวนการของ Linux
ใน Linux จะเกิดอะไรขึ้นกับสถานะของกระบวนการเมื่อต้องอ่านบล็อกจากดิสก์ ถูกบล็อกหรือไม่? ถ้าเป็นเช่นนั้นกระบวนการอื่นถูกเลือกให้ดำเนินการอย่างไร
90 linux  process  kernel  cpu  states 

2
vdso และ vsyscall คืออะไร?
ฉันทำ sudo cat /proc/1/maps -vv ฉันพยายามทำความเข้าใจกับผลลัพธ์ฉันเห็นไลบรารีที่แชร์จำนวนมากถูกแมปกับเซ็กเมนต์การแมปหน่วยความจำตามที่คาดไว้ 7f3c00137000-7f3c00179000 r-xp 00000000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00179000-7f3c00379000 ---p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00379000-7f3c0037a000 r--p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037a000-7f3c0037b000 rw-p 00043000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037b000-7f3c00383000 r-xp 00000000 08:01 21237216 /lib/x86_64-linux-gnu/libnih-dbus.so.1.0.0 7f3c00383000-7f3c00583000 ---p 00008000 08:01 21237216 /lib/x86_64-linux-gnu/libnih-dbus.so.1.0.0 7f3c00583000-7f3c00584000 r--p 00008000 08:01 21237216 /lib/x86_64-linux-gnu/libnih-dbus.so.1.0.0 7f3c00584000-7f3c00585000 rw-p …
89 c  linux  linux-kernel  kernel  vdso 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.