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

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

4
วิธีรวบรวมคอมไพเลอร์ C ตั้งแต่เริ่มต้นจากนั้นคอมไพล์ Unix / Linux จากศูนย์
สมมติว่าฉันทำงานให้กับองค์กรบริการขนาดใหญ่นอกสหรัฐอเมริกา / สหราชอาณาจักร เราใช้เซิร์ฟเวอร์ UNIX และ Linux อย่างกว้างขวาง การอ่านบทความนี้ระบุว่าเป็นการง่ายที่จะแทรกแบ็คดอร์ในคอมไพเลอร์ C จากนั้นโค้ดใด ๆ ที่คอมไพล์ด้วยคอมไพเลอร์นั้นจะมีแบ็คดอร์ จากการรั่วไหลเมื่อเร็ว ๆ นี้เกี่ยวกับคำสั่งของ NSA / GCHQ ที่จะทำให้แบ็คดอร์ / จุดอ่อนในวิธีการเข้ารหัสฮาร์ดแวร์และซอฟต์แวร์ทั้งหมดคอมไพเลอร์กลายเป็นจุดสำคัญของความล้มเหลว ศักยภาพการกระจาย UNIX / Linix มาตรฐานทั้งหมดอาจถูกบุกรุก เราไม่สามารถที่จะมีระบบข้อมูลและข้อมูลลูกค้าของเราที่ถูกโจมตีโดยรัฐบาลโกง รับข้อมูลนี้ฉันต้องการสร้างคอมไพเลอร์ที่เชื่อถือได้ตั้งแต่เริ่มต้นแล้วฉันมีฐานที่ปลอดภัยในการสร้างดังนั้นฉันจึงสามารถสร้างระบบปฏิบัติการและแอปพลิเคชันจากซอร์สโค้ดโดยใช้คอมไพเลอร์นั้น คำถาม อะไรคือวิธีที่ถูกต้อง (และปลอดภัย) ในการรวบรวมคอมไพเลอร์จากซอร์สโค้ด (สถานการณ์ไก่ไข่ที่ดูเหมือน) แล้วรวบรวมการแจกจ่าย Unix / Linux ที่เชื่อถือได้ตั้งแต่เริ่มต้น? คุณสามารถสันนิษฐานได้ว่าฉันหรือผู้อื่นมีความสามารถในการอ่านและทำความเข้าใจซอร์สโค้ดสำหรับข้อบกพร่องด้านความปลอดภัยดังนั้นซอร์สโค้ดจะถูกตรวจสอบก่อนรวบรวม สิ่งที่ฉันเป็นจริงหลังจากนั้นเป็นแนวทางในการทำงานเพื่อสร้างคอมไพเลอร์นี้จากศูนย์อย่างปลอดภัยและสามารถใช้ในการรวบรวมเคอร์เนลส่วนอื่น ๆ ของระบบปฏิบัติการและแอปพลิเคชัน สแต็กการรักษาความปลอดภัยจะต้องเริ่มต้นที่ระดับฐานหากเรามั่นใจในระบบปฏิบัติการหรือแอพพลิเคชั่นที่ทำงานบนสแต็กนั้น ใช่ฉันเข้าใจว่าอาจมีฮาร์ดแวร์ด้านหลังซึ่งอาจแทรกไมโครโค้ดบางส่วนลงในคอมไพเลอร์เมื่อสร้างขึ้น ไม่มากที่เราสามารถทำได้เกี่ยวกับเรื่องนี้ในขณะนั้นยกเว้นอาจใช้ชิปที่ไม่ได้ออกแบบในสหรัฐอเมริกา มาจัดเรียงเลเยอร์นี้เพื่อเริ่มต้นและสมมติว่าฉันสามารถสร้างมันบนคอมพิวเตอร์เครื่องเก่าก่อนที่จะแทรกแบ็คดอร์ใดก็ได้ ดังที่บรูชชไนเออร์พูดว่า: "สำหรับวิศวกรฉันพูดแบบนี้: เราสร้างอินเทอร์เน็ตและพวกเราบางคนช่วยในการล้มล้างตอนนี้พวกเราที่รักเสรีภาพต้องแก้ไขมัน" …

11
ปิดใช้งาน hugepages แบบโปร่งใส
เรากำลังติดตั้ง SAP HANA ในเครื่องRAID เป็นส่วนหนึ่งของขั้นตอนการติดตั้งจะกล่าวถึงว่า To disable the usage of transparent hugepages set the kernel settings at runtime with echo never > /sys/kernel/mm/transparent_hugepage/enabled ดังนั้นแทนที่จะรันไทม์ถ้าฉันต้องการให้เป็นการเปลี่ยนแปลงแบบถาวรฉันควรเพิ่มบรรทัดด้านบนใน/proc/vmstatไฟล์หรือไม่
63 linux  kernel  sysctl 

5
ทำไมเคอร์เนล Linux จึงเรียกว่า“ รูปภาพ”
ฉันมักจะได้ยินคนพูดถึงเคอร์เนล Linux ว่าเป็นอิมเมจเคอร์เนล Linux และฉันไม่สามารถหาคำตอบในเครื่องมือค้นหาใด ๆ ว่าทำไมถึงเรียกว่ารูปภาพ เมื่อฉันนึกถึงภาพฉันสามารถนึกถึงสองสิ่งเท่านั้นไม่ว่าจะเป็นสำเนาของดิสก์หรือภาพถ่าย แน่นอนว่านรกไม่ใช่ภาพที่ถ่ายดังนั้นทำไมถึงเรียกว่าภาพ?

7
จะทำให้ kernel ตกใจด้วยคำสั่งเดียวได้อย่างไร
เป็นไปได้หรือไม่ที่จะทำให้เคอร์เนลตกใจด้วยคำสั่งบรรทัดเดียว? อะไรจะเป็นคำสั่งที่ตรงไปตรงมาที่สุดสำหรับผู้ใช้ sudoing และสิ่งที่จะเป็นสำหรับผู้ใช้ปกติถ้ามี? สถานการณ์ที่แนะนำให้ดาวน์โหลดบางสิ่งบางอย่างเป็นส่วนหนึ่งของคำสั่งจะไม่ถูกนับ

4
อะไรคือความรับผิดชอบของแต่ละองค์ประกอบ Pseudo-Terminal (PTY) (ซอฟต์แวร์ด้านหลักด้านทาส)
ฉันพยายามคิดว่า tty ทำงานอย่างไร1 (กระบวนการทำงานและความรับผิดชอบของแต่ละองค์ประกอบ) ฉันได้อ่านบทความที่น่าสนใจหลายเรื่องเกี่ยวกับเรื่องนี้ แต่ยังมีบางพื้นที่ที่พร่ามัว นี่คือสิ่งที่ฉันเข้าใจ: เทอร์มินัลที่จำลองทำให้การเรียกใช้ระบบแตกต่างกันไป/dev/ptmxส่วนหลักของเทอร์มินัลหลอก ส่วนหลักของเทอร์มินัลหลอกหลอกจัดสรรไฟล์/dev/pts/[0-N]ให้สอดคล้องกับพอร์ตอนุกรมที่ล้าสมัยและ "แนบ" เทอร์มินัลหลอกหลอกไปที่มัน เทอร์มินัลหลอกหลอกเก็บข้อมูลเช่นรหัสเซสชันงานพื้นหน้าจอขนาด นี่คือคำถามของฉัน: ptmxมีจุดประสงค์อื่นนอกเหนือจากการจัดสรรส่วนทาสหรือไม่? มันจัดให้มี "ปัญญา" บางชนิดหรือเทอร์มินัลจำลอง (เช่น xterm) มีสติปัญญาทั้งหมดของการทำงานเหมือนเทอร์มินัลหรือไม่? ทำไม xtermจึงต้องโต้ตอบกับชิ้นส่วนหลักเพราะมันจะส่งต่อ stdout และ stdin ของส่วนทาสเท่านั้น ทำไมถึงไม่สามารถมัน โดยตรงเขียนและอ่านจากแฟ้มจุด ? ID เซสชันจะแนบกับไฟล์ pts หนึ่งไฟล์และในทางกลับกันหรือไม่ ฉันสามารถพิมพ์คำสั่ง ps และพบ2 sessionId สำหรับ / dev / pts / X เดียวกันได้หรือไม่ ข้อมูลอื่น ๆ ของptsร้านค้า? Xterm อัปเดตทุกฟิลด์ด้วยตัวเองหรือไม่หรือจะptmเพิ่ม …

4
อะไรคือความแตกต่างของเอาต์พุต dmesg และ / var / log / messages?
AFAIK dmesgแสดงข้อมูลเกี่ยวกับเคอร์เนลและโมดูลเคอร์เนลและ/var/log/messagesยังแสดงข้อมูลที่ผลิตโดยเคอร์เนลและโมดูล ดังนั้นความแตกต่างคืออะไร? ไม่/var/log/messages ⊂การส่งออกของdmesg? ข้อมูลเพิ่มเติมที่อาจเป็นประโยชน์: - มีบัฟเฟอร์วงแหวนเคอร์เนลซึ่งฉันคิดว่าเป็นที่เดียวที่จะเก็บข้อมูลล็อกเคอร์เนล - บทความ " การบันทึกเคอร์เนล: APIs และการนำไปใช้งาน " บน IBM DeveloperWorks ที่อธิบาย APIs และรูปภาพมุมมองนก
55 kernel  logs  dmesg 

7
เคอร์เนล Linux: การสอนที่ดีสำหรับผู้เริ่มต้น [ปิด]
ฉันสนใจที่จะแก้ไขเคอร์เนลภายในใช้แพตช์จัดการไดรเวอร์อุปกรณ์และโมดูลเพื่อความสนุกส่วนตัวของฉันเอง มีทรัพยากรที่ครอบคลุมสำหรับการแฮ็กเคอร์เนลสำหรับโปรแกรมเมอร์ที่มีประสบการณ์หรือไม่?

2
เคอร์เนลโอปส์กับความตื่นตระหนกของเคอร์เนลแตกต่างกันอย่างไร
ฉันรู้ว่า kernel kernel คืออะไร แต่ฉันก็เห็นคำว่า "kernel oops" ด้วย ฉันมักจะคิดว่าพวกเขาเหมือนกัน แต่อาจจะไม่ ดังนั้น: เคอร์เนล oops คืออะไรและแตกต่างจาก kernel panic อย่างไร

5
ข้อแตกต่างระหว่างเคอร์เนล Makefile ต่อไปนี้คืออะไร: vmLinux, vmlinuz, vmlinux.bin, zimage & bzimage?
ในขณะที่สืบค้น Kernel Makefiles ฉันพบคำศัพท์เหล่านี้ ดังนั้นผมจึงอยากจะรู้ว่าอะไรคือความแตกต่างระหว่างvmlinux, vmlinuz, vmlinux.bin, zimageและbzimage?

5
เหตุใดเคอร์เนลจึงปล่อยแพ็กเก็ต
ฉันถูกขัดจังหวะtcpdumpด้วยCtrl+ Cและได้รับบทสรุปทั้งหมดนี้: 579204 packets captured 579346 packets received by filter 142 packets dropped by kernel "แพ็คเก็ตที่ถูกลดลงโดยเคอร์เนล" คืออะไร? ทำไมถึงเกิดขึ้น?
49 kernel  tcpdump 

7
ใครเป็นผู้ใช้ทรัพยากรที่ไม่รู้ค่าของฉัน
หลังจากอัปเกรดเป็น Fedora 15 เมื่อเร็ว ๆ นี้ฉันพบว่ามีเครื่องมือจำนวนหนึ่งที่ล้มเหลวพร้อมข้อผิดพลาดตามบรรทัดของ: tail: inotify resources exhausted tail: inotify cannot be used, reverting to polling ไม่ใช่แค่tailการรายงานปัญหาเกี่ยวกับ inotify เช่นกัน มีวิธีใดที่จะซักถามเคอร์เนลเพื่อค้นหาว่ากระบวนการหรือกระบวนการใดที่ใช้ทรัพยากรที่ไม่มีการระบุ? การsysctlตั้งค่าที่ไม่เกี่ยวข้องกับ inotify ปัจจุบันมีลักษณะดังนี้: fs.inotify.max_user_instances = 128 fs.inotify.max_user_watches = 8192 fs.inotify.max_queued_events = 16384
49 fedora  kernel  inotify 

7
ตั้งค่าเคอร์เนลเริ่มต้นใน GRUB
ฉันจะเลือกเคอร์เนล GRUB2 ที่ควรโหลดเป็นค่าเริ่มต้นได้อย่างไร ฉันเพิ่งติดตั้งเคอร์เนล linux เรียลไทม์และตอนนี้มันโหลดตามค่าเริ่มต้น ฉันต้องการโหลดไฟล์ปกติตามค่าเริ่มต้น จนถึงตอนนี้ฉันก็แค่เลือก OS เริ่มต้น .. และด้วยเหตุผลบางอย่าง/boot/grub.cfgแล้วฉันคิดว่าฉันต้องการโหลด rt-kernel และใส่ลงในรายการเมนู linux ทั่วไป (ในกรณีของฉัน Linux Linux)
49 linux  kernel  boot  grub 

3
กำหนดขนาดสูงสุดสำหรับอาร์กิวเมนต์คำสั่งเดียวคืออะไร
ARG_MAXฉันถูกภายใต้การแสดงผลที่ความยาวสูงสุดของอาร์กิวเมนต์เดียวไม่ได้เป็นปัญหาที่นี่ให้มากที่สุดเท่าขนาดรวมของอาร์กิวเมนต์อาร์เรย์โดยรวมขนาดบวกของสภาพแวดล้อมซึ่งจะถูก จำกัด ดังนั้นฉันคิดว่าบางสิ่งเช่นนี้จะประสบความสำเร็จ: env_size=$(cat /proc/$$/environ | wc -c) (( arg_size = $(getconf ARG_MAX) - $env_size - 100 )) /bin/echo $(tr -dc [:alnum:] </dev/urandom | head -c $arg_size) >/dev/null ด้วยความ- 100ที่เกินพอที่จะอธิบายความแตกต่างระหว่างขนาดของสภาพแวดล้อมในเชลล์และechoกระบวนการ แต่ฉันได้รับข้อผิดพลาด: bash: /bin/echo: Argument list too long หลังจากเล่นไปซักพักผมก็พบว่าค่าสูงสุดนั้นเป็นลำดับเลขฐานสิบหกที่เล็กกว่า: /bin/echo \ $(tr -dc [:alnum:] </dev/urandom | head -c $(($(getconf ARG_MAX)/16-1))) \ …
47 kernel  echo  arguments 

3
เคอร์เนลใช้ RAM เท่าใด
คำถามนี้เป็นแรงบันดาลใจโดยช็อตของฉันเมื่อฉันค้นพบว่า Mac OS X เคอร์เนลใช้750MB of RAM ฉันใช้ลินุกซ์มา 20 ปีแล้วและฉันก็ "รู้" อยู่เสมอว่าการใช้ RAM ในเคอร์เนลนั้นถูกแคระโดย X (มันเป็นความจริงหรือเปล่า? ดังนั้นหลังจาก googling ฉันพยายามslabtopที่บอกฉัน: Active / Total Size (% used) : 68112.73K / 72009.73K (94.6%) นี่หมายความว่าเคอร์เนลของฉันใช้ RAM ~ 72MB หรือไม่ (เนื่องจากว่าRSS ของtopรายงานXorgเป็น 17 ล้านเคอร์เนลตอนนี้ก็แคระ X ซึ่งไม่ใช่วิธีอื่น ๆ ) การใช้ RAM เคอร์เนล "ปกติ" (ช่วง) สำหรับแล็ปท็อปคืออะไร เหตุใด …
46 linux  kernel  ram 

4
ขนาดหน้าถูกกำหนดในพื้นที่ที่อยู่เสมือนอย่างไร
Linux ใช้ระบบหน่วยความจำเสมือนที่อยู่ทั้งหมดเป็นที่อยู่เสมือนไม่ใช่ที่อยู่จริง ที่อยู่เสมือนเหล่านี้จะถูกแปลงเป็นที่อยู่จริงโดยโปรเซสเซอร์ เพื่อให้การแปลนี้ง่ายขึ้นหน่วยความจำเสมือนและกายภาพจะถูกแบ่งออกเป็นหน้า ๆ แต่ละหน้าเหล่านี้จะได้รับหมายเลขที่ไม่ซ้ำกัน; หมายเลขเฟรมหน้า ขนาดหน้าบางขนาดอาจเป็น 2 KB, 4 KB เป็นต้น แต่จะมีการกำหนดหมายเลขขนาดหน้านี้อย่างไร มันได้รับอิทธิพลจากขนาดของสถาปัตยกรรมหรือไม่? ตัวอย่างเช่นบัส 32 บิตจะมีพื้นที่ที่อยู่ 4 GB

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