การวินิจฉัยและ "การรักษา" ข้อผิดพลาดของระบบที่สำคัญ (เคอร์เนลแพนิค) กระบวนการ kernel_task บน MacOS คืออะไร บนแล็ปท็อป Mac ที่มีแบตเตอรี่แบบถอดได้
Project Zero ทีมรักษาความปลอดภัยของ Google ค้นพบข้อบกพร่องในเคอร์เนล macOS c “ ระดับสูงความปลอดภัย "(ผ่าน AppleInsider).
เคอร์เนลผิดพลาด
แกนกลางคือแกนกลาง ระบบปฏิบัติการ... มันควบคุมทุกอย่างได้อย่างสมบูรณ์และจัดการสิ่งต่าง ๆ เช่น I / O จาก ซอฟต์แวร์, หน่วยความจำ, อุปกรณ์เสริมคอมพิวเตอร์ และอื่นๆ XNU เป็นชื่อเคอร์เนลที่ใช้ในระบบปฏิบัติการ Apple ทั้งหมด
ข้อบกพร่องนี้ทำให้แฮ็กเกอร์สามารถเปลี่ยนแปลงไฟล์ได้โดยไม่ต้องแจ้งให้ระบบปฏิบัติการทราบ สิ่งนี้ทำให้บางสิ่งที่เรียกว่า copy-on-write (COW) ยุ่งเหยิง ซึ่งช่วยให้กระบวนการเขียนข้อมูลกันเองได้ แต่ต้องได้รับการปกป้องจากสิ่งอื่น ๆ ที่มีการปรับเปลี่ยนข้อมูล ข้อบกพร่องนี้ทำให้สิ่งนี้เกิดขึ้นได้
ลักษณะการทำงานการคัดลอกเมื่อเขียนนี้ไม่ได้ทำงานเฉพาะกับหน่วยความจำที่ไม่ระบุชื่อเท่านั้น แต่ยังรวมถึงการแมปไฟล์ด้วย ซึ่งหมายความว่าหลังจากกระบวนการกำหนดได้เริ่มอ่านจากพื้นที่หน่วยความจำที่ย้ายแล้ว การใช้หน่วยความจำที่เพิ่มขึ้นอาจทำให้เพจที่มีหน่วยความจำที่ย้ายข้อมูลถูกลบออกจากแคชของเพจ ภายหลัง เมื่อจำเป็นต้องใช้หน้าที่จองไว้อีกครั้ง จะสามารถโหลดซ้ำได้จากระบบไฟล์สำรอง
บางครั้งคุณสังเกตเห็นว่า Mac ไม่ได้เร็วอย่างที่เคยเป็น โปรแกรมทำงานช้าลง โปรเซสเซอร์ร้อนขึ้น และพัดลมทำงานที่ความจุสูงสุด วันนี้เราจะบอกคุณถึงสาเหตุหนึ่งที่ทำให้คอมพิวเตอร์เครื่องนี้ทำงาน
« คอนฟิก"เป็นภูตกำหนดค่าระบบที่ทำงานบนระบบ Mac OS X ผู้ใช้ส่วนใหญ่จะไม่เห็นเพราะ" configd "ทำงาน พื้นหลังแม็ค. นอกจากนี้ ปีศาจตัวนี้บางครั้งอาจเริ่ม "ไม่แน่นอน" ซึ่งทำให้ CPU กระโดดอย่างผิดปกติ และเสียงพัดลม Mac ของคุณจะกลายเป็นเหมือนเสียงฮัมเหมือนในอุโมงค์ลม ทั้งหมดนี้สามารถวินิจฉัยได้ด้วยการเรียกใช้ตัวตรวจสอบกิจกรรม จากนั้นจึงจัดเรียงกระบวนการตาม% CPU เมื่อไหร่ งานผิด"Configd" จะใช้ทรัพยากร CPU ประมาณ 20-95% หากพฤติกรรมนี้ดำเนินไปเป็นเวลาประมาณหนึ่งนาที แสดงว่าเป็นเรื่องปกติ ซึ่งสามารถละเลยได้ ปล่อยให้มันเป็นไปโดยสัตย์จริง แต่มีบางครั้งที่ "configd" สามารถโหลดโปรเซสเซอร์ได้เป็นเวลาหลายชั่วโมงโดยไม่ต้องมี เหตุผลที่ชัดเจนเกี่ยวกับเรื่องนี้
แก้ปัญหาการทำงาน "configd" ผ่านเทอร์มินัล
ในการบังคับให้ configd ทำงานต่อ ขั้นแรกเราจะฆ่ากระบวนการด้วยคำสั่ง killall เนื่องจากเป็นกระบวนการของระบบ กระบวนการนี้จะเริ่มต้นใหม่ทันที ทุกครั้งที่ "configd" เปลืองทรัพยากร CPU เคล็ดลับนี้จะแก้ปัญหาได้
เปิด Terminal (อยู่ใน / Applications / Utilities /) และป้อนคำสั่งต่อไปนี้:
sudo killall configd
คุณจะต้องป้อนรหัสผ่านผู้ดูแลระบบเพื่อดำเนินการคำสั่งในฐานะผู้ใช้ขั้นสูง การรันคำสั่งโดยไม่ใช้ sudo จะไม่ทำงาน
หากคุณเปิดตัวตรวจสอบกิจกรรมทิ้งไว้และจัดเรียงตาม CPU คุณจะสังเกตเห็นว่า "configd" จะหายไปและปรากฏขึ้นอีกครั้งในทันที ในขณะที่ไม่อยู่ในผู้นำของรายการอีกต่อไป และไม่มีการใช้โปรเซสเซอร์อีกต่อไป ตอนนี้ตัวเลขปกติสำหรับ daemon จะอยู่ระหว่าง 0% ถึง 1% CPU
หากคุณมีปัญหากับ configd หลังจากใช้คำสั่ง "killall" ให้ข้ามไปที่ด้านล่างของบทความนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการแก้ไขปัญหา daemon นี้
การทำงานกับ "configd" โดยไม่มีเทอร์มินัล
หากคุณไม่คุ้นเคย บรรทัดคำสั่งมีอีกสองตัวเลือก:
- ปิดแอปพลิเคชัน Mac ที่ทำงานอยู่ทั้งหมด
- รีบูตเครื่องคอมพิวเตอร์ของคุณ
การรีสตาร์ท Mac มีผลเหมือนกับการฆ่ากระบวนการ configd ในเทอร์มินัล วิธีนี้สามารถช่วยได้หากการดำเนินการที่ไม่เพียงพอของ daemon เกิดจากการทำงานที่ไม่ถูกต้องของหนึ่งในโปรแกรมที่กำลังทำงานอยู่
Configd Diagnostics และ Daemon Help
Apple อธิบาย configd อย่างเป็นทางการดังนี้:
« Configd "daemon รับผิดชอบหลายแง่มุมของการกำหนดค่าระบบโลคัล "Configd" จัดเก็บข้อมูลที่ใช้โดยสถานะปัจจุบันของระบบ แจ้งเตือนแอปพลิเคชันเมื่อข้อมูลนี้เปลี่ยนแปลง และจัดการการกำหนดค่าต่างๆ สำหรับเอเจนต์อื่นๆ»
หากคุณต้องการลองวิเคราะห์สาเหตุของพฤติกรรมที่ไม่ถูกต้องของ "configd" ก่อนอื่น คุณสามารถดูความคลาดเคลื่อนในไฟล์ PLIST ซึ่งอยู่ในไดเร็กทอรีต่อไปนี้:
/ ระบบ / ไลบรารี / SystemConfiguration /
/ Library / Preferences / SystemConfiguration /
อีกทางเลือกหนึ่งคือการเรียกใช้ "configd" อีกครั้ง แต่ในโหมดขั้นสูง โดยใช้คำสั่งต่อไปนี้:
sudo / usr / libexec / configd -v
คำสั่งนี้จะส่งออก รายละเอียดข้อมูลเกี่ยวกับสิ่งที่เกิดขึ้นในระบบไปยังคอนโซล การเปรียบเทียบข้อมูลนี้กับสิ่งที่อยู่ในไดเร็กทอรีระบบดังกล่าวจะมีประโยชน์มากในการค้นหาสาเหตุที่แท้จริงของ daemon ทำงานผิดปกติ
ประสบการณ์ทั่วไปแสดงให้เห็นว่าบางแอปพลิเคชันและกระบวนการเรียก "configd" daemon บ่อยกว่าโปรแกรมอื่นๆ กรณีนี้เกิดขึ้นกับเครื่องพิมพ์บางเครื่อง แอปพลิเคชันที่ใช้ Java และการพยายามเชื่อมต่อกับเครือข่ายไม่สำเร็จหลายครั้ง นี่คือเหตุผลที่บางครั้งการรีเซ็ตแอปพลิเคชันทั้งหมดบนระบบอาจมีประสิทธิภาพมากในการแก้ไขปัญหานี้
เจ้าของแล็ปท็อปเครื่องใหม่ MacBook Proและเดสก์ท็อป iMac Pro จะต้องเผชิญกับข้อผิดพลาดเคอร์เนลแพนิคอย่างกะทันหัน (คล้ายกับ BSOD จาก Windows สำหรับ MacOS)
การปรากฏตัวของข้อผิดพลาดมีหลักฐานจากการร้องเรียนจำนวนมากจากฟอรัมทางเทคนิค ฝ่ายสนับสนุนของ Appleและทรัพยากรบุคคลภายนอก หน้าต่างที่มีข้อผิดพลาดและการรีบูตระบบในภายหลังจะเกิดขึ้นวันละ 1-2 ครั้ง บ่อยขึ้นหลังจากปลดล็อกอุปกรณ์
สาเหตุของปัญหา
จากข้อมูลที่มีอยู่ในปัจจุบัน ปัญหาเกิดจาก Bridge OS ในตัวและชิป T2 พิเศษ ซึ่งรับผิดชอบฟังก์ชันคอมพิวเตอร์ที่ไม่ใช้พลังงานมาก - ควบคุมความเร็วในการหมุนของตัวทำความเย็น การประมวลผลเสียง และอื่นๆ ปัญหาเกิดขึ้นเฉพาะกับคอมพิวเตอร์ที่มีชิป T2 เท่านั้น อย่างไรก็ตาม ขณะนี้ยังไม่มีหลักฐานโดยตรงของสาเหตุโดยตรงใน T2 และไม่มีข้อมูลเกี่ยวกับความชุกของปัญหา
ความพยายามที่จะแก้ไขปัญหาโดยผู้ใช้โดยการทำความสะอาดไดรฟ์และติดตั้ง OS ใหม่ การกู้คืนสำเนาของ OS ผ่าน Time Machine การตัดการเชื่อมต่ออุปกรณ์ต่อพ่วง และแม้แต่การเปลี่ยนคอมพิวเตอร์ไม่ได้ให้ประสิทธิภาพเต็มที่ จากข้อมูลนี้ สามารถสันนิษฐานได้ว่าปัญหาอยู่ที่ส่วนลึกของระบบ
ฉันได้โน้ตบุ๊กเครื่องเก่ามา MacBook Pro 2010ซึ่งชะลอตัวลงอย่างมาก มีข้อสงสัยเกี่ยวกับดิสก์เนื่องจากติดตั้ง HDD ในรุ่นเหล่านั้นจึงตัดสินใจแทนที่ด้วย SSD ที่ติดตั้งไว้แล้ว Mac OSถ่ายจากรถอีกคัน
ปัญหาไม่ได้หายไปและไม่มีการปรับปรุงภาพ หลังจากตรวจสอบหลายครั้งแล้ว ให้รีเซ็ต NVRAMและ SMCเนื่องจากตัวทำความเย็นหมุนด้วยความเร็ว 100% เมื่อฉันเกือบจะแน่ใจว่าปัญหาอยู่ที่ฮาร์ดแวร์ ฉันจึงบังเอิญมองเข้าไปที่ " การตรวจสอบระบบ”และเห็นว่าโปรเซสเซอร์โหลดที่นั่น 140-250%
ปัญหาอยู่ที่กระบวนการ Kernel_task
ใช้ทรัพยากร CPU และป้องกันไม่ให้ระบบปฏิบัติการทั้งหมดทำงาน
นี่คือสิ่งที่ Apple เขียนเกี่ยวกับกระบวนการนี้:
กระบวนการ kernel_task ช่วยจัดการอุณหภูมิของ CPU โดยลดความพร้อมใช้งานของทรัพยากร CPU สำหรับโปรแกรมที่มีการประมวลผลสูง กล่าวอีกนัยหนึ่ง กระบวนการ kernel_task เริ่มต้นเมื่อมีความเสี่ยงที่ CPU จะร้อนเกินไป โดยตัวมันเองไม่ก่อให้เกิดสถานการณ์ดังกล่าว เมื่ออุณหภูมิของ CPU ลดลง กิจกรรมของกระบวนการนี้จะลดลงโดยอัตโนมัติ
พบวิธีแก้ไขปัญหา:
1) ขั้นแรกให้เปิดจอแสดงผล โฟลเดอร์ที่ซ่อนอยู่:
- เราไปที่ "เทอร์มินัล"
- เราขับใน 2 คำสั่ง:
ค่าเริ่มต้นเขียน com.apple.finder AppleShowAllFiles TRUE
ตัวค้นหา killall
2) จากนั้นเรากำหนดรุ่นคอมพิวเตอร์:
- คลิก "เกี่ยวกับ Mac เครื่องนี้"
- จากนั้นกดปุ่ม "รายละเอียด"
- คลิกที่ "รายงานระบบ"
ฮาร์ดแวร์อยู่ที่ไหน ค้นหาและจดจำ "รหัสรุ่น" ในกรณีของฉัน นี่คือ MacBookPro7,1
3) ทำตามเส้นทางนี้:
/ ระบบ / ห้องสมุด / ส่วนขยาย
เลือกไฟล์ IOPlatformPluginFamily.kextให้คลิกขวาและเลือก "แสดงเนื้อหาแพ็คเกจ"
4) ไปที่ สารบัญ / PlugIns จากนั้นในไฟล์ ACPI_SMC_PlatformPlugin.kextเลือก "แสดงเนื้อหาแพ็คเกจ" ด้วย
5) เพิ่มเติมใน สารบัญ / แหล่งข้อมูล ค้นหาไฟล์ที่มีรุ่นแล็ปท็อป โปรดจำไว้ว่า: ฉันมี MacBookPro 7.1 ลบไฟล์นี้! (ถ้าไม่ ไฟล์ที่ต้องการลบโมเดลที่ใกล้เคียงที่สุด เช่น ไม่มี 8.1 ลบ 7.1 และ 9.1)
6) รีสตาร์ทเครื่องคอมพิวเตอร์ของคุณ อาจต้องทำตามขั้นตอนนี้หลังจากอัปเดต Mac OS ทุกครั้ง
หากต้องการคืนค่าการแสดงโฟลเดอร์ดังที่เคยเป็นมา ให้เรียกใช้คำสั่งใน "เทอร์มินัล":
ค่าเริ่มต้นเขียน com.apple.finder AppleShowAllFiles FALSE
ตัวค้นหา killall
หากคุณไม่สามารถลบรหัสรุ่น
ในกรณีที่คุณมี MacOS El Capitan หรือสูงกว่า ระบบจะไม่อนุญาตให้คุณลบไฟล์ตัวระบุ เนื่องจากคุณต้องลบการป้องกันความสมบูรณ์ของระบบออกก่อน (System Integrity Protection หรือ SIP เรียกสั้นๆ ว่า SIP)
SIP สามารถปิดใช้งานได้จากโหมดการกู้คืนเท่านั้น คุณต้องรีบูต เข้าถึง " เทอร์มินัล” และป้อนคำสั่งปิดเครื่อง
- ปิดเครื่อง Mac และกดปุ่ม ⌘R ค้างไว้ (Command + R) เมื่อเปิดเครื่อง
- หลังจากโหลดเราจะไปที่เมนูการกู้คืน เราเปิดส่วน " สาธารณูปโภค“แล้ววิ่ง” เทอร์มินัล»;
- ป้อนคำสั่ง:
csrutil ปิดการใช้งาน - รีบูตเครื่อง Mac ของคุณ
ในการเปิดใช้งานการป้องกัน คุณต้องเข้าสู่โหมดการกู้คืนอีกครั้ง เปิดเทอร์มินัลแล้วป้อนคำสั่ง