Process Monitor สำหรับ Linux เผชิญปัญหาการติดตั้งและชุมชนถกเถียงความจำเป็นของเครื่องมือ

ทีมชุมชน BigGo
Process Monitor สำหรับ Linux เผชิญปัญหาการติดตั้งและชุมชนถกเถียงความจำเป็นของเครื่องมือ

Process Monitor สำหรับ Linux ของ Microsoft ซึ่งเป็นการพอร์ตเครื่องมือยอดนิยม Windows Sysinternals มาใช้งานได้ ได้จุดประกายการอภิปรายที่น่าสนใจในชุมชนนักพัฒนา แม้ว่าเครื่องมือนี้จะสัญญาว่าจะนำความสามารถในการดีบักที่คุ้นเคยจาก Windows มาสู่ระบบ Linux แต่ผู้ใช้กำลังเผชิญกับความท้าทายในทางปฏิบัติและตั้งคำถามเกี่ยวกับตำแหน่งของมันในระบบนิเวศ Linux

ปัญหาการติดตั้งยังคงมีอยู่แม้จะอยู่ในสถานะ Preview

ความกังวลที่เร่งด่วนที่สุดที่ผู้ใช้เผชิญคือเอกสารการติดตั้งที่เสียหาย สมาชิกชุมชนรายงานว่าคำแนะนำการติดตั้งไม่ได้รับการอัปเดตอย่างเหมาะสม โดยบางคนสังเกตว่าไฟล์ INSTALL.md ได้รับการแก้ไขครั้งสุดท้ายเมื่อสองเดือนที่แล้วแต่ยังคงมีขั้นตอนที่ใช้งานไม่ได้ สิ่งนี้ทำให้ผู้ใช้รุ่นแรกไม่สามารถทดสอบเครื่องมือได้อย่างมีประสิทธิภาพ ซึ่งเน้นย้ำถึงความท้าทายในการรักษาเครื่องมือพัฒนาข้ามแพลตฟอร์ม

ความต้องการของระบบ:

  • OS: Ubuntu 18.04 LTS
  • cmake >= 3.14 (ใช้เฉพาะเวลาการ build เท่านั้น)
  • libsqlite3-dev >= 3.22 (ใช้เฉพาะเวลาการ build เท่านั้น)
  • ต้องการทั้ง GCC และ Clang compilers สำหรับการ build

ชุมชนแบ่งแยกเรื่องข้อเสนอคุณค่าของเครื่องมือ

ชุมชน Linux ดูเหมือนจะแบ่งแยกเกี่ยวกับว่า Process Monitor ตอบสนองความต้องการที่แท้จริงหรือไม่ นักพัฒนาบางคนต้อนรับอินเทอร์เฟซที่คุ้นเคย โดยเฉพาะผู้ที่ทำงานข้าม Windows และ Linux บ่อยๆ อย่างไรก็ตาม ผู้ใช้ Linux ที่มีประสบการณ์โต้แย้งว่าเครื่องมือดั้งเดิมอย่าง strace, lsof และ sysdig ให้ฟังก์ชันการทำงานที่เหนือกว่าสำหรับการติดตาม system call และการตรวจสอบกระบวนการแล้ว

ฉันทำงานกับเครื่องมือเก่าแก่และไม่โปร่งใสที่ไม่มีสิ่งอำนวยความสะดวกในการดีบัก/รายงานที่ดี บ่อยครั้งเราต้องกระโดดเข้าไปใน procmon หรืออะไรก็ตามเพื่อดูว่าทำไมสิ่งนั้นถึงติดขัด สิ่งอย่าง strace เป็นของดั้งเดิมและมีอยู่ทุกที่และคุณสามารถหาเหตุผลได้อย่างง่ายดาย

การถกเถียงสะท้อนความตึงเครียดที่กว้างขึ้นระหว่างการนำเครื่องมือสไตล์ Windows มาสู่ Linux กับการยอมรับปรัชญา Unix ดั้งเดิมและยูทิลิตี้ที่มีอยู่

เครื่องมือ Linux ทางเลือกที่กล่าวถึง:

  • strace: เครื่องมือติดตาม syscall แบบพื้นเมือง (เน้นที่ process เดียว)
  • sysdig: การตรวจสอบและวิเคราะห์ระบบทั้งหมด
  • lsof: แสดงรายการไฟล์และ process ที่เปิดอยู่
  • auditd: daemon สำหรับตรวจสอบ syscall ทั้งระบบ
  • dtrace: เฟรมเวิร์กการติดตามขั้นสูง (รองรับ Linux อย่างจำกัด)

ข้อได้เปรียบทางเทคนิคเหนือเครื่องมือแบบดั้งเดิม

แม้จะมีความสงสัย Process Monitor ก็ยังมีประโยชน์ทางเทคนิคบางอย่างเหนือเครื่องมือตรวจสอบ Linux แบบดั้งเดิม ไม่เหมือน strace ที่สามารถติดตามเฉพาะกระบวนการแต่ละตัวและลูกหลานของมันเท่านั้น Process Monitor สามารถตรวจสอบกระบวนการระบบทั้งหมดพร้อมกันโดยใช้เทคโนโลยี eBPF วิธีการนี้ยังหลีกเลี่ยงค่าใช้จ่ายด้านประสิทธิภาพที่มักเกี่ยวข้องกับการติดตาม syscall เนื่องจากไม่หยุดกระบวนการที่ system call แต่ละตัว

ตัวเลือกคำสั่งหลัก:

  • -p/--pids: ติดตามหมายเลขประจำตัวกระบวนการเฉพาะ (คั่นด้วยเครื่องหมายจุลภาค)
  • -e/--events: ติดตามการเรียกใช้ระบบเฉพาะ (คั่นด้วยเครื่องหมายจุลภาค)
  • -c/--collect: ทำงานในโหมดไร้หัวพร้อมการส่งออกไฟล์
  • -f/--file: เปิดไฟล์ติดตามที่มีอยู่
  • -l/--log: เปิดใช้งานการบันทึกการดีบักลงในไฟล์

การปรากฏตัวของ Microsoft ใน Linux ที่เพิ่มขึ้น

เครื่องมือนี้เป็นส่วนหนึ่งของกลยุทธ์ที่กว้างขึ้นของ Microsoft ในการสนับสนุนการพัฒนา Linux โดยเฉพาะอย่างยิ่งเมื่อพิจารณาจากฐานผู้ใช้ Linux จำนวนมากบนบริการคลาวด์ Azure บริษัทได้เปิดตัวเครื่องมืออื่นๆ ที่เน้น Linux แล้ว รวมถึง AVML สำหรับการตรวจสอบทางนิติวิทยาศาสตร์หน่วยความจำและ Sysmon สำหรับ Linux ซึ่งบ่งบอกถึงความมุ่งมั่นระยะยาวต่อเครื่องมือพัฒนาข้ามแพลตฟอร์ม

อย่างไรก็ตาม นักพัฒนาผู้เชี่ยวชาญบางคนยังคงระมัดระวังเกี่ยวกับเจตนาของ Microsoft โดยจำกลยุทธ์ขององค์กรในอดีตและตั้งคำถามว่าเครื่องมือเหล่านี้เป็นประโยชน์ต่อระบบนิเวศ Linux อย่างแท้จริงหรือเป็นการให้บริการธุรกิจคลาวด์ของ Microsoft เป็นหลัก

สถานะปัจจุบันของ Process Monitor สำหรับ Linux สะท้อนถึงความท้าทายในการปรับเครื่องมือที่เน้น Windows ให้เข้ากับระบบคล้าย Unix ที่มีทางเลือกที่มีอยู่แล้วและความคาดหวังของผู้ใช้แตกต่างกันอย่างมีนัยสำคัญ

อ้างอิง: Process Monitor for Linux (Preview)