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

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

2
วิธีตรวจสอบ rx ring, max_backlog และขนาด max_syn_backlog
บ่อยครั้งในการแก้ไขปัญหาและปรับแต่งสิ่งที่ฉันคิดว่าตัวเองคิดเกี่ยวกับการตั้งค่าเคอร์เนล Linux ต่อไปนี้: net.core.netdev_max_backlog net.ipv4.tcp_max_syn_backlog net.core.somaxconn อื่น ๆ กว่าfs.file-max, net.ipv4.ip_local_port_range, net.core.rmem_max, net.core.wmem_max, net.ipv4.tcp_rmemและnet.ipv4.tcp_wmemพวกเขาน่าจะเป็นลูกบิดสิ่งสำคัญที่จะยุ่งกับเมื่อคุณได้รับการปรับจูนกล่องสำหรับระดับสูงของการเห็นพ้อง คำถามของฉัน: ฉันจะตรวจสอบเพื่อดูว่ามีรายการกี่รายการในแต่ละคิวเหล่านั้นได้อย่างไร โดยทั่วไปแล้วคนมักจะตั้งค่าให้พวกเขาสูง แต่ฉันต้องการที่จะเข้าสู่ระบบขนาดคิวเหล่านั้นเพื่อช่วยทำนายความล้มเหลวในอนาคตและจับปัญหาก่อนที่พวกเขาจะปรากฏในทางที่ผู้ใช้เห็นได้ชัด
41 linux  kernel  networking  tcp 

8
uname จะรับข้อมูลจากที่ไหน
uname ได้รับข้อมูลจากที่ไหน ฉันคิดว่านี่เป็นสิ่งที่ควรตรงไปตรงมา น่าเสียดายที่ฉันไม่พบส่วนหัวที่มีเพียงข้อมูลนั้น สมมติว่ามีคนต้องการเปลี่ยนผลลัพธ์พื้นฐานของuname/ uname -s จากLinuxเป็นอย่างอื่น (โดยพื้นฐานแล้วคือเปลี่ยนชื่อเคอร์เนล) เขา / เธอจะทำอย่างไรในวิธีที่เหมาะสม (นั่นคือการเปลี่ยนแหล่งที่มา)
40 linux  kernel  source 

8
เคอร์เนล Linux เปรียบเทียบกับสถาปัตยกรรม microkernel อย่างไร
ฉันอ่านครั้งหนึ่งว่าข้อดีของสถาปัตยกรรม microkernel คือคุณสามารถหยุด / เริ่มบริการที่จำเป็นเช่นระบบเครือข่ายและระบบไฟล์โดยไม่จำเป็นต้องรีสตาร์ททั้งระบบ แต่เมื่อพิจารณาว่าเคอร์เนลลินุกซ์ทุกวันนี้มีตัวเลือกในการใช้โมดูลเพื่อให้ได้ผลเหมือนกันข้อดีของ microkernel คืออะไร?
38 linux  kernel 

2
วิธีการกลับจาก“ การทดสอบ” ถึง“ เสถียร” - การลดระดับเคอร์เนล
ตอนนี้ฉันสนุกมากapt-get- และสิ่งที่แย่คือมันเป็นความผิดของฉันเอง ฉันได้เปิดใช้งานtestingแพคเกจใน/etc/apt/sources.listการติดตั้งแพคเกจบางอย่าง apt-get dist-upgradeและผมบอกทำระบบของฉัน ทุกอย่างทำงานได้ดี แต่ตอนนี้ฉันกำลังพยายามกลับไปstableปรับปรุง - และฉันล้มเหลว ... เมื่อพยายามที่จะทำapt-get dist-upgradeฉันได้รับข้อมูลต่อไปนี้: The following packages will be REMOVED: linux-image-3.10-3-amd64 The following NEW packages will be installed: libcgi-fast-perl libfcgi-perl libyaml-syck-perl The following packages will be DOWNGRADED: initramfs-tools libdate-manip-perl munin munin-common ก็ไม่เป็นไร แต่เมื่อฉันพยายามทำสิ่งนี้ฉันได้รับคำเตือนด้วยตัวอักษรสีแดงที่เป็นมิตร: You are running a kernel (version 3.10-3-amd64) and attempting …
37 debian  kernel 

3
วิธีปิดการใช้งาน USB autosuspend บนเคอร์เนล 3.7.10 ขึ้นไป?
ผมได้ปรับปรุง HTPC ของฉันจากเคอร์เนล3.7.10เพื่อ3.10.7และดูเหมือนว่าCONFIG_USB_SUSPENDตอนนี้หายไปจากตัวเลือกเคอร์เนลและรวมอยู่ใน PM ปัญหาหลักที่ฉันพบคือฉันมี HDD ภายนอกและเมื่อหยุดชั่วคราวและตื่นขึ้นมา HTPC ระบบจะไม่พร้อมใช้งาน HDD ตื่นขึ้นมา (คุณสามารถได้ยินเสียงหมุนอีกครั้ง) แต่เมื่อคุณพยายามเข้าถึงจุดเชื่อมต่อคุณจะได้รับข้อผิดพลาดดังต่อไปนี้: ZOTAC ~ # ls /media ls: reading directory /media: Input/output error และใน dmesg: [ 253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading directory block (ino 2, block 0) ในเมล็ดก่อนหน้าการตั้งค่า CONFIG_USB_SUSPEND = N จะแก้ปัญหาได้เนื่องจาก HDD จะจัดการการจำศีลด้วยตัวเองและจุดเชื่อมต่อจะสามารถเข้าถึงได้เสมอ เมื่อ HDD …

3
พารามิเตอร์ vm.swappiness ควบคุมอะไรได้จริง?
ตามเอกสารเคอร์เนล: This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase aggressiveness, lower values decrease the amount of swap. อย่างไรก็ตามนี่เป็นสิ่งที่คลุมเครือ ฉันพยายามคิดให้ชัดเจนว่าพารามิเตอร์ใดควบคุมได้ในที่สุด ฉันรู้ว่ามันปรับวิธีที่เคอร์เนลพยายามสลับหน้าอย่างจริงจัง แต่กระบวนการตัดสินใจในโค้ดเคอร์เนลมีผลกระทบอย่างไร มันปรับระยะเวลาที่ผ่านมาที่หน้าต้องได้รับการเข้าถึงก่อนที่เคอร์เนลจะสลับออกหรือไม่? ถ้าเป็นเช่นนั้นค่าเริ่มต้น 60 แสดงถึงอะไร? และมีการเปลี่ยนแปลงเท่าใดโดยการเพิ่ม / ลดลง 1 (สูตรจะดี) หรือมันสลับหน้าตามความถี่ในการเข้าถึงของพวกเขา? หรืออย่างอื่น?
36 linux  kernel  memory  swap 

2
แนวคิดของ "เคอร์เนลบัฟเฟอร์บัฟเฟอร์", "ระดับผู้ใช้", "ระดับการบันทึก" คืออะไร
ฉันมักจะเห็นคำว่า "kernel ring buffer", "ระดับผู้ใช้", "ระดับการบันทึก" และคำอื่น ๆ ปรากฏขึ้นพร้อมกัน เช่น / var / log / dmesg มีข้อมูลบัฟเฟอร์เคอร์เนลเคอร์เนล /var/log/kern.log มีเฉพาะข้อความของเคอร์เนลของ loglevel ใด ๆ /var/log/user.log มีข้อมูลเกี่ยวกับบันทึกระดับผู้ใช้ทั้งหมด พวกเขาทั้งหมดเกี่ยวกับบันทึกหรือไม่ พวกเขาเกี่ยวข้องกันอย่างไรและแตกต่างกันอย่างไร โดย "ระดับ" ฉันจะจินตนาการถึงลำดับขั้นของหลายระดับหรือไม่ "ระดับผู้ใช้" เกี่ยวข้องกับ "พื้นที่ผู้ใช้" หรือไม่ พวกมันเกี่ยวข้องกับrunlevelหรือวงแหวนป้องกันบ้างไหม?
35 kernel  logs 

4
Interrupt ถูกจัดการใน Linux อย่างไร?
ฉันเพิ่งรู้ว่าInterruptเป็นhardware signal assertionที่เกิดในขาประมวลผล แต่ฉันอยากรู้ว่า Linux OS จัดการกับมันอย่างไร อะไรคือสิ่งที่เกิดขึ้นเมื่อมีการขัดจังหวะ?

3
เหตุใดเซิร์ฟเวอร์ Linux NFS จึงถูกใช้งานในเคอร์เนลเมื่อเทียบกับ userspace
ฉันแค่สงสัยว่าเหตุใดเซิร์ฟเวอร์ Linux NFS จึงถูกนำไปใช้ในเคอร์เนลซึ่งตรงข้ามกับแอปพลิเคชัน userspace? ฉันรู้ว่าdaemon ของ userspace NFSมีอยู่จริง แต่ไม่ใช่วิธีมาตรฐานสำหรับการให้บริการเซิร์ฟเวอร์ NFS ฉันคิดว่าการใช้เซิร์ฟเวอร์ NFS เป็นแอปพลิเคชัน userspace จะเป็นวิธีการที่ต้องการเนื่องจากสามารถเพิ่มความปลอดภัยโดยให้ daemon ทำงานใน userspace แทนเคอร์เนล นอกจากนี้ยังสอดคล้องกับหลักการของ Linux ทั่วไปในการทำสิ่งหนึ่งและทำได้ดี (และ daemons นั้นไม่ควรทำงานกับเคอร์เนล) ในความเป็นจริงประโยชน์เพียงอย่างเดียวที่ฉันสามารถคิดได้ในการทำงานของเคอร์เนลคือการเพิ่มประสิทธิภาพจากการสลับบริบท (และนั่นคือเหตุผลที่ถกเถียงกัน) เหตุใดจึงมีการจัดทำเอกสารว่าทำไมจึงมีการนำไปปฏิบัติในทางที่เป็นอยู่? ฉันลอง googling ไปรอบ ๆ แต่หาอะไรไม่เจอ ดูเหมือนว่าจะมีจำนวนมากสับสนโปรดทราบผมไม่ได้ถามเกี่ยวกับการติดตั้งระบบไฟล์ผมถามเกี่ยวกับการให้บริการด้านเซิร์ฟเวอร์ของระบบแฟ้มเครือข่าย มีความแตกต่างที่ชัดเจนมาก การติดตั้งระบบไฟล์แบบโลคัลต้องการการสนับสนุนสำหรับระบบไฟล์ในเคอร์เนลโดยไม่ได้ใช้ (เช่น samba หรือ unfs3)
33 linux  kernel  nfs 

4
จะเกิดอะไรขึ้นเมื่อฉันเรียกใช้ไฟล์ในเชลล์
ดังนั้นฉันคิดว่าฉันมีความเข้าใจที่ดีในเรื่องนี้ แต่เพียงแค่ทดสอบ (เพื่อตอบสนองต่อการสนทนาที่ฉันไม่เห็นด้วยกับใครบางคน) และพบว่าความเข้าใจของฉันมีข้อบกพร่อง ... ในรายละเอียดมากที่สุดจะเกิดอะไรขึ้นเมื่อฉันเรียกใช้ไฟล์ในเชลล์? สิ่งที่ฉันหมายถึงคือถ้าฉันพิมพ์: ./somefile some argumentsลงในเปลือกของฉันและกดย้อนกลับ (และsomefileมีอยู่ใน cwd และฉันได้อ่าน + ดำเนินการสิทธิ์บนsomefile) แล้วเกิดอะไรขึ้นภายใต้ประทุน? ฉันคิดว่าคำตอบคือ: เปลือกทำ syscall ให้execผ่านเส้นทางไปsomefile เคอร์เนลตรวจสอบsomefileและดูหมายเลขมายากลของไฟล์เพื่อตรวจสอบว่าเป็นรูปแบบที่โปรเซสเซอร์สามารถจัดการได้หรือไม่ หากหมายเลขมายากลระบุว่าไฟล์อยู่ในรูปแบบที่โปรเซสเซอร์สามารถใช้งานได้ กระบวนการใหม่ถูกสร้างขึ้น (โดยมีรายการในตารางกระบวนการ) somefileถูกอ่าน / แมปกับหน่วยความจำ สแต็กถูกสร้างขึ้นและการดำเนินการข้ามไปยังจุดเริ่มต้นของรหัสsomefileโดยARGVเริ่มต้นไปที่อาร์เรย์ของพารามิเตอร์ (a char**, ["some","arguments"]) หากจำนวนมายากลเป็นshebangแล้วexec()spawns กระบวนการใหม่ดังกล่าวข้างต้น แต่ปฏิบัติการที่ใช้เป็นล่ามอ้างอิงโดย shebang (เช่น/bin/bashหรือ/bin/perl) และsomefileถูกส่งไปยังSTDIN หากไฟล์ไม่มีหมายเลขเวทย์มนตร์ที่ถูกต้องแสดงว่ามีข้อผิดพลาดเช่น "ไฟล์ไม่ถูกต้อง (หมายเลขเวทย์มนตร์ที่ไม่ดี): เกิดข้อผิดพลาดในรูปแบบ Exec" อย่างไรก็ตามมีคนบอกฉันว่าถ้าไฟล์เป็นข้อความธรรมดาเชลล์จะพยายามเรียกใช้คำสั่ง (เช่นถ้าฉันพิมพ์bash somefile) ฉันไม่เชื่อเรื่องนี้ แต่ฉันแค่ลองมันและมันก็ถูกต้อง ดังนั้นฉันจึงมีความเข้าใจผิดอย่างชัดเจนเกี่ยวกับสิ่งที่เกิดขึ้นจริงที่นี่และต้องการที่จะเข้าใจกลไก จะเกิดอะไรขึ้นเมื่อฉันเรียกใช้ไฟล์ในเชลล์ (ในรายละเอียดมากพอสมควร …
32 shell  kernel  exec  shebang 

6
yum ติดตั้ง kernel-devel ต่างจากรุ่น kernel ของฉัน
ฉันกำลังพยายามติดตั้งเครื่องเล่น VMWare ใน Fedora 19 ฉันพบปัญหาที่ผู้ใช้หลายคนมีซึ่งผู้เล่น VMware ไม่สามารถค้นหาส่วนหัวของเคอร์เนลได้ ฉันได้ติดตั้งkernel-headersและkernel-develแพ็คเกจผ่านyumแล้วและไฟล์ที่ปรากฏ/usr/src/kernelsคือ: 3.12.8-200.fc19.x86_64 อย่างไรก็ตามเมื่อฉันทำuname -rรุ่นเคอร์เนล Fedora ของฉันคือ: 3.9.5-301.fc19.x86_64 ซึ่งเป็นรุ่นที่แตกต่าง ดูเหมือนว่าจะหมายความว่าเมื่อฉันชี้ผู้เล่น VMware ที่เส้นทางของเมล็ดฉันได้รับข้อผิดพลาดนี้: C header files matching your running kernel were not found. Refer to your distribution's documentation for installation instructions. ฉันจะติดตั้งเคอร์เนลที่ถูกต้องได้อย่างไรและฉันจะชี้ตำแหน่ง VMware ได้ที่/usr/src/kernels/<my-kernel>ใด?
32 fedora  kernel  yum  vmware 

1
วิธีกำหนดไดรเวอร์ USB ให้กับอุปกรณ์
คำถามนี้เป็นสองเท่า: ขั้นแรกให้คุณถอดไดรฟ์เวอร์จากอุปกรณ์ USB ด้วยตนเองและต่อกับไดรฟเวอร์อื่นได้อย่างไร ตัวอย่างเช่นฉันมีอุปกรณ์ที่เมื่อเชื่อมต่อโดยอัตโนมัติจะใช้ไดรเวอร์เก็บข้อมูล usb เอาท์พุท usbview Vendor Id: xxxx Product Id: xxxx ... Number of Interfaces: 2 Interface Number: 0 Name: usb-storage Number of Endpoints: 2 ... Interface Number: 1 Name: (none) Number of Endpoints: 2 ... ฉันไม่ต้องการใช้ไดรเวอร์เก็บข้อมูล usb ดังนั้นในแอปพลิเคชันของฉันฉันใช้libusbห้องสมุดเพื่อถอดไดรเวอร์เก็บข้อมูล usb จากนั้นฉันอ้างสิทธิ์อินเทอร์เฟซ ฉันสามารถส่งข้อมูลไปยังและจากแอปพลิเคชันที่ทำงานบนอุปกรณ์ USB ของฉันและบนระบบโฮสต์ Linux ของฉัน คุณถอดไดรเวอร์ออกด้วยตนเองนอกแอพพลิเคชั่นอย่างไร …

12
ฉันจะปรับแต่งเดสก์ท็อป Linux ให้ตอบสนองได้อย่างไร
ฉันมีประสบการณ์ที่ Linux ทำงานได้ดีจนกว่าหน่วยความจำกายภาพจะหมดลง ทันทีที่ใช้พื้นที่สว็อปประสิทธิภาพการทำงานจะลดลงอย่างรุนแรงและ GUI ไม่ตอบสนอง ปัญหานี้ไม่ได้ จำกัด เฉพาะ distro หรือเดสก์ท็อปที่เฉพาะเจาะจงเพราะฉันได้ลองแล้วสองสามครั้ง (และปัญหายังคงอยู่) ฉันจะทำอะไรเกี่ยวกับเรื่องนี้?
30 linux  kernel  performance  io  swap 

3
โครงการ Linux Kernel ติดตามข้อบกพร่องในช่วงแรกได้อย่างไร
เราทุกคนรู้ว่า Linus Torvalds สร้าง Git เนื่องจากปัญหาเกี่ยวกับ Bitkeeper ไม่มีอะไรที่เป็นที่รู้จัก (อย่างน้อยสำหรับฉัน) คือปัญหา / ตั๋ว / ข้อบกพร่องถูกติดตามอย่างไรจนถึงตอนนี้ ฉันพยายาม แต่ไม่ได้สนใจอะไรเลย การอภิปรายเดียวที่ฉันก็สามารถที่จะได้รับในเรื่องนี้เป็นหนึ่งในที่ไลนัสที่ใช้ร่วมกันกับความกังวลเกี่ยวกับการใช้ Bugzilla การเก็งกำไร: - วิธีที่ง่ายที่สุดสำหรับคนที่จะติดตามบั๊กในระยะแรกนั้นคือการใส่ตั๋วในสาขาของตัวเอง แต่มั่นใจว่าค่อนข้างเร็วที่จะไม่ลดขนาดด้วยเสียงรบกวนมากกว่าการรับบั๊กที่ดี ฉันเคยเห็นและใช้ Bugzilla และถ้าคุณไม่รู้จัก 'คำหลัก' ที่ถูกต้องในบางครั้งคุณก็จะถูกนิ่งงัน หมายเหตุ:ฉันสนใจเป็นพิเศษในช่วงต้นปี (2534-2538) ว่าพวกเขาเคยติดตามปัญหาอย่างไร ฉันดูสองกระทู้ " Kernel SCM saga " และ " Trivia: git self-host เมื่อไหร่? " แต่ไม่มีสิ่งใดที่กล่าวถึงเกี่ยวกับการติดตามบั๊กของเคอร์เนลในวันแรก ๆ ฉันค้นหาไปรอบ ๆ และไม่สามารถรับซอฟต์แวร์ติดตามบั๊กของ FOSS ใด …
29 linux  kernel  git  history 

2
การขัดจังหวะของการโทรของระบบเมื่อจับสัญญาณ
จากการอ่าน man page บนread()และการwrite()โทรปรากฏว่าการโทรเหล่านี้ถูกขัดจังหวะด้วยสัญญาณโดยไม่คำนึงว่าพวกเขาจะต้องปิดกั้นหรือไม่ โดยเฉพาะสมมติว่า กระบวนการสร้างตัวจัดการสำหรับสัญญาณบางอย่าง อุปกรณ์ถูกเปิด (พูดเทอร์มินัล) โดยที่O_NONBLOCK ไม่ได้ตั้งค่า (เช่นทำงานในโหมดบล็อก) กระบวนการนี้ทำให้การread()เรียกระบบอ่านจากอุปกรณ์และผลลัพธ์จะดำเนินการพา ธ ควบคุมเคอร์เนลในเคอร์เนลพื้นที่ ในขณะที่กระบวนการดำเนินการอยู่read()ใน kernel-space สัญญาณที่ติดตั้งตัวจัดการไว้ก่อนหน้านี้จะถูกส่งไปยังกระบวนการนั้นและตัวจัดการสัญญาณถูกเรียกใช้ การอ่าน man man และส่วนที่เหมาะสมในSUSv3 'System Interfaces volume (XSH)' , หนึ่งพบว่า: ผม. หาก a read()ถูกขัดจังหวะโดยสัญญาณก่อนที่จะอ่านข้อมูลใด ๆ (นั่นคือต้องปิดกั้นเพราะไม่มีข้อมูล) จะส่งกลับ -1 ด้วยการerrnoตั้งค่าเป็น [EINTR] ii หาก a read()ถูกขัดจังหวะโดยสัญญาณหลังจากอ่านข้อมูลเรียบร้อยแล้ว (เช่นเป็นไปได้ที่จะเริ่มให้บริการตามคำขอทันที) มันจะส่งคืนจำนวนไบต์ที่อ่าน คำถาม A): ฉันถูกต้องหรือไม่ที่จะสมมติว่าในกรณีใด ๆ (บล็อก / ไม่มีบล็อก) …

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