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

ทุกอย่างเกี่ยวกับเมล็ด UNIX: การพัฒนา, การกำหนดค่า, การรวบรวม, การออกแบบและอื่น ๆ

2
การรันซอฟต์แวร์ userland แบบ 64 บิตบนเคอร์เนลแบบ 32 บิตคืออะไร
บน Linux และ Windows ฉันคุ้นเคยกับสถานการณ์ที่ฉันต้องการเคอร์เนล 64 บิตเพื่อให้ระบบมี multiarch / WoW ที่ฉันสามารถเรียกใช้ซอฟต์แวร์แบบ 32 บิตและ 64 บิตแบบเคียงข้างกัน และเมื่อหลายปีก่อนมันทำให้ฉันรู้สึกเครียดเมื่อมีคนบอกฉันว่า MacOS 10.6 Snow Leopard สามารถเรียกใช้แอปพลิเคชัน 64 บิตด้วยเคอร์เนลในโหมด 32 บิต สิ่งนี้อาจถูกลืมไปแล้วในตอนนี้เพราะเป็นการเปลี่ยนแปลงเทคโนโลยีครั้งเดียว ด้วยฮาร์ดแวร์ที่ก้าวล้ำในพื้นที่มือถือเท่าที่ฉันรู้ว่าสิ่งนี้ไม่จำเป็นในการย้ายไป 64- บิตสำหรับ iOS และ Android คำถามของฉัน: อะไรจะได้รับความสามารถเดียวกันในเคอร์เนล 32 บิต (i386 หรือ armhf) ฉันเข้าใจว่านี่อาจไม่สำคัญ ถ้าเป็นเช่นนั้น Microsoft อาจนำคุณลักษณะนี้ไปใช้ใน Windows XP 32 บิต ข้อกำหนดทั่วไปมีอะไรบ้าง เคยมีการเสนอแพทช์หรือพิสูจน์แนวคิดหรือไม่? ในโลกที่ฝังตัวฉันคิดว่าสิ่งนี้จะเป็นประโยชน์อย่างยิ่งเนื่องจากการสนับสนุน …

2
ไม่สามารถเริ่ม archlinux หลังจากอัปเดต: ไม่พบ uuid
ฉันอัปเดต archlinux ด้วย "pacman -Syu" แล้วเมื่อฉันรีสตาร์ทระบบจะเริ่มไม่ได้ นี่คือรายงาน: Warning: /lib/modules/4.11.9-1-ARCH/modules.devname not found - ignoring version 232 Error: device 'UUID=b5a9a977-e9a7-4d3d-96a9-dcf9c3a9010d' not found. Skipping fsck. Error: can't find UUID=b5a9a977-e9a7-4d3d-96a9-dcf9c3a9010d You are now being dropped into a emergency shell. Can't access tty: job control turned off ในเปลือกนั้นแป้นพิมพ์ของฉันไม่ทำงาน ฉันกำลังลองด้วย livecd ของ archlinux: การติดตั้งพาร์ติชั่นและการใช้ chroot ฉันจะตรวจสอบ …

2
หน่วยความจำที่เหลืออยู่ของ vm.overcommit_ratio จะไปไหน
ถ้าฉัน overcommit หน่วยความจำปิดการใช้งานโดยการตั้งค่าvm.overcommit_memoryที่จะ2ตามค่าเริ่มต้นระบบจะอนุญาตให้มีการจัดสรรหน่วยความจำได้ถึงมิติของการแลกเปลี่ยน + 50% ของหน่วยความจำกายภาพตามที่อธิบายไว้ที่นี่ ฉันสามารถเปลี่ยนอัตราส่วนโดยการแก้ไขvm.overcommit_ratioพารามิเตอร์ สมมติว่าฉันตั้งไว้ที่ 80% ดังนั้นอาจใช้หน่วยความจำกายภาพ 80% คำถามของฉันคือ: ระบบจะทำอะไรกับส่วนที่เหลืออีก 20% ทำไมพารามิเตอร์นี้จำเป็นต้องมีในตอนแรก ทำไมฉันไม่ควรตั้งไว้ที่ 100% เสมอ

3
วิธีทำให้เคอร์เนลส่วนที่ 9 จัดการ manage ซึ่งทำหน้าที่เอกสารโครงสร้างข้อมูลและส่วนหัว?
เคอร์เนลซอร์สประกอบด้วยฟังก์ชันและโครงสร้างข้อมูลซึ่งมีการจัดทำเป็นเอกสารตัวอย่างเช่นในpanic.c: /** * panic - halt the system * @fmt: The text string to print * * Display a message, then perform cleanups. * * This function never returns. */ void panic(const char *fmt, ...) แทนที่จะไปตามแหล่งข้อมูลทุกครั้งมันจะมีประโยชน์ในการดู API เหล่านั้นเป็นmanpagesและใช้ประโยชน์จากเฟรมเวิร์กเอกสารที่มีอยู่นี้ คุณติดตั้ง / จัดทำเคอร์เนลส่วนที่ 9 manpages ( /usr/share/man/man9) ซึ่งทำหน้าที่ของฟังก์ชั่นและโครงสร้างข้อมูลดังกล่าวได้อย่างไร?

2
ประโยชน์ของ sched_autogroup_enabled บนเดสก์ท็อป
ฉันใช้เคอร์เนล 2.6.37 sched_autogroup_enabledตั้งค่าเป็น 1 ฉันไม่แน่ใจว่าฉันเห็นประโยชน์ของแพตช์นี้ตั้งแต่: ฉันเปิดตัวแอปพลิเคชันของฉันจากเดสก์ท็อป แอปพลิเคชั่นที่เปิดตัวจากเดสก์ท็อปแบ่งปัน tty เดียวกัน แอ็พพลิเคชันที่มี tty เดียวกันไม่ได้รับประโยชน์จากคุณลักษณะเคอร์เนลที่กล่าวถึง ฉันจะเลือกแอปพลิเคชั่นบางตัวที่ควรใช้กับ tty อื่นจากที่เหลือได้อย่างไร?
10 linux  kernel  desktop 

2
drm / i915: การรีเซ็ตชิปหลังจาก gpu hang
ฉันใช้การทดสอบเดเบียน (อัปเดตล่าสุด 31/10/2560) และเมื่อฉันเล่นวิดีโอแบบเต็มหน้าจอผ่านเบราว์เซอร์จาก Twitch หรือ iView มันหยุดแฮงค์ GPU ดังนั้น GUI จึงหยุดนิ่ง คอมพิวเตอร์ที่ฉันมีคือ ' Up Squared ' พร้อมด้วย Intel 505HD เคอร์เนลยังคงทำงานแม้ว่าฉันยังคงสามารถเข้าถึงได้ผ่านทาง ssh ฉันใช้เคอร์เนล 4.12 Linux BB-8 4.12.0-0.bpo.2-amd64 #1 SMP Debian 4.12.13-1~bpo9+1 (2017-09-28) x86_64 GNU/Linux ฉันยังใช้วิธีการแก้ปัญหาวิดีโอที่ฉีกขาดใน /etc/X11/xorg.conf ด้วย Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" End ข้อความแสดงข้อผิดพลาด (เอาต์พุต …

3
ลดระดับการบันทึกล็อกเคอร์เนลของเคอร์เนล
เมื่อเคอร์เนลของฉันบูทนอกเหนือจากข้อมูลสำคัญที่มีประโยชน์มันจะพิมพ์ข้อมูลการดีบักจำนวนมากเช่น .... kernel: [0.00000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable kernel: [0.00000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved kernel: [0.00000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved ... kernel: [0.00000] MTRR variable ranges enabled: kernel: [0.00000] 0 base 0000000000 mask 7E00000000 write-back ... kernel: [0.00000] init_memory_mapping: [mem 0x00100000-0xcf414fff] kernel: [0.00000] [mem 0x00100000-0x001fffff] page 4k kernel: [0.00000] [mem …
9 kernel  boot  logs  rsyslog  dmesg 

1
“ kernel: NMI watchdog: BUG: soft lockup” ตามด้วยข้อผิดพลาดอื่นหมายถึงอะไร
ฉันเปิดเทอร์มินัลเสมอ (Fedora 22) เพราะงานของฉันทั้งหมดที่ฉันทำอยู่ที่นั่น บางครั้งฉันค้นหาข้อมูลในเบราว์เซอร์หรือเพียงแค่สนุก หลังจากเรียกดู 20-30 นาที (เบราว์เซอร์ไม่เริ่มจากบรรทัดคำสั่ง) ฉันกลับไปที่เทอร์มินัลและเห็นสิ่งแปลก ๆ - มันอยู่ในแท็บทั้งหมดของเทอร์มินัล: Message from syslogd@localhost at Jul 17 23:17:19 ... kernel:NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s! [migration/2:21] Message from syslogd@localhost at Jul 17 23:17:38 ... kernel:CPU: 2 PID: 21 Comm: migration/2 Not tainted 4.0.7-300.fc22.i686 #1 …

2
การจดจำตารางพาร์ติชัน GPT ที่สร้างขึ้นด้วยขนาดเซกเตอร์ตรรกะที่แตกต่างกัน
ฉันมีไดรฟ์ 3TB ซึ่งฉันได้แบ่งพาร์ติชันโดยใช้ GPT: $ sudo sgdisk -p /dev/sdg Disk /dev/sdg: 5860533168 sectors, 2.7 TiB Logical sector size: 512 bytes Disk identifier (GUID): 2BC92531-AFE3-407F-AC81-ACB0CDF41295 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 5860533134 Partitions will be aligned on 2048-sector boundaries Total free …
9 kernel  partition  disk  gpt 

2
แยก initramfs ในตัว
ฉันมีเคอร์เนลที่ฝังหนึ่ง initramfs ฉันต้องการแยกมัน ฉันได้ผลลัพธ์x86 boot sectorเมื่อฉันทำfile bzImage ฉันมีไฟล์ System.map สำหรับเคอร์เนลอิมเมจนี้ มีวิธีใดที่จะดึงอิมเมจ initramfs ที่ฝังอยู่ในเคอร์เนลนี้โดยใช้หรือไม่ใช้ไฟล์System.map ? สตริงที่น่าสนใจที่พบในไฟล์System mapคือ: (ในกรณีที่มันช่วย) 57312:c17fd8cc T __initramfs_start 57316:c19d7b90 T __initramfs_size

3
การทำให้กระบวนการอ่านไฟล์อื่นสำหรับชื่อไฟล์เดียวกัน
ฉันมีแอปพลิเคชั่นที่อ่านไฟล์ โทร Let 's มันProcessNameและแฟ้ม~ / .configuration เมื่อprocessnameรันมันจะอ่าน~ / .configurationเสมอและไม่สามารถกำหนดค่าต่างกันได้ นอกจากนี้ยังมีแอปพลิเคชันอื่น ๆ ที่ใช้ "~ / .configuration" ก่อนและหลัง แต่ไม่ใช่ในขณะที่ชื่อกระบวนการกำลังทำงาน การตัดชื่อกระบวนการในสคริปต์ที่แทนที่เนื้อหาของ~ / .configurationเป็นตัวเลือก แต่เมื่อเร็ว ๆ นี้ฉันมีไฟดับ (ในขณะที่เนื้อหาถูกสับเปลี่ยนออก) ซึ่งฉันได้สูญเสียเนื้อหาก่อนหน้าของไฟล์ดังกล่าวดังนั้นจึงไม่เป็นที่ต้องการ มีวิธี (อาจใช้บางสิ่งที่เกี่ยวข้องกับการห่างไกลLD_DEBUG=files processname?) เพื่อหลอกให้กระบวนการอ่านเนื้อหาต่าง ๆ เมื่อพยายามอ่านไฟล์ใดไฟล์หนึ่ง? การค้นหาและแทนที่ชื่อไฟล์ในไฟล์เรียกทำงานนั้นเป็นบิตที่รุกรานเกินไป แต่ก็ควรใช้งานได้เช่นกัน ฉันรู้ว่าเป็นไปได้ที่จะเขียนโมดูลเคอร์เนลที่รับopen()สาย ( https://news.ycombinator.com/item?id=2972958 ) แต่มีวิธีที่ง่ายขึ้นหรือสะอาดขึ้นหรือไม่ แก้ไข: เมื่อค้นหา~ / .configurationในProcessNameปฏิบัติการที่ผมค้นพบว่ามันพยายามที่จะอ่านชื่อไฟล์อื่นขวาก่อนอ่าน~ / .configuration แก้ไขปัญหา.

1
dd: กำลังเขียน '/ dev / null': ไม่มีพื้นที่เหลือบนอุปกรณ์
ฉันกำลังอ่านไฟล์ 550MB เป็น / dev / null และฉันได้รับ dd: writing '/dev/null': No space left on device ฉันรู้สึกประหลาดใจ. ฉันคิดว่า / dev / null เป็นหลุมดำที่คุณสามารถส่งได้มากเท่าที่คุณต้องการ (เพราะมันเป็น fs เสมือนจริง) ใช่ดิสก์ของฉันเกือบเต็มเมื่อฉันได้รับข้อผิดพลาดนี้ ฉันจะทำอะไรได้นอกจากการลบเนื้อหาออกจากดิสก์ ls -l /dev/null -rw-r--r-- 1 root root 0 July 7 21:58 /dev/null แทน crw-rw-rw- 1 root root 1, 3 July 7 02:58 …

1
ฉันจะแปลงไฟล์เคอร์เนล. config จาก 32 บิตเป็น 64 บิตได้อย่างไร
ในหน้านี้คุณสามารถดาวน์โหลดไฟล์กำหนดค่าที่ให้คุณกำหนดเป้าหมายสถาปัตยกรรมโน้ตบุ๊กเฉพาะในระหว่างการรวบรวมเคอร์เนลลินุกซ์ 32 บิตใหม่ ฉันต้องการเวอร์ชัน 64 บิต ฉันต้องทำอะไร? ฉันรวบรวมเคอร์เนล 2-3 ครั้งในชีวิต แต่ฉันไม่เคยแตะไฟล์ปรับแต่งฉันมักจะใช้เมนูแบบโต้ตอบ

1
สาเหตุการแยกการใช้งาน CPU สูงขึ้นใน RHEL 6 กับ RHEL 5
ขณะนี้ฉันต้องการย้ายระบบของเราจาก RHEL 5 ไปยัง RHEL 6 แต่ฉันได้พบกับอุปสรรคที่มีการใช้งาน CPU สูงอย่างไม่คาดคิดในเครื่อง RHEL 6 ดูเหมือนว่านี่อาจเป็นเพราะอย่างน้อยในบางส่วนของการใช้งานselectเพื่อให้การนอนหลับขัดจังหวะ นี่คือตัวอย่างง่ายๆที่แสดงพฤติกรรม: #include <sys/select.h> int main() { timeval ts; for (unsigned int ii=0; ii<10000; ++ii) { ts.tv_sec = 0; ts.tv_usec = 1000; select(0, 0, 0, 0, &ts); } return 0; } บนเครื่อง RHEL 5 จะอยู่ที่การใช้งาน CPU 0% แต่บนฮาร์ดแวร์เดียวกันกับ RHEL …

3
ฉันจะเริ่มต้นด้วยการสร้างระบบ Linux ตั้งแต่เริ่มต้นได้อย่างไร
ฉันพยายามสร้างระบบปฏิบัติการด้วยเคอร์เนลบิวด์ที่กำหนดเอง มันไม่ได้ผลดีเกินไป ฉันใช้ Ubuntu และดาวน์โหลด Linux 3.2.7 จาก kernel.org ฉันไม่พยายามเปลี่ยนเคอร์เนลในระบบ Ubuntu ของฉัน ฉันต้องการสร้างระบบปฏิบัติการของตัวเองด้วย Grub เคอร์เนล Linux และฉันต้องการให้ระบบปฏิบัติการ homebrew นี้เป็นไฟล์ประเภท (เช่น iso) ที่ฉันสามารถวางบนซีดีและบูตบนคอมพิวเตอร์เครื่องอื่น คำถามของฉันคือสิ่งที่ฉันต้องทำเพื่อให้ระบบปฏิบัติการนี้ ความคิดเห็นหรือแบบฝึกหัดใด ๆ จะเป็นประโยชน์
9 grub2  kernel  iso 

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