คอมพิวเตอร์ Windows อินเทอร์เน็ต

การวินิจฉัยและ "การรักษา" ข้อผิดพลาดของระบบที่สำคัญ (เคอร์เนลแพนิค) กระบวนการ 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" โดยไม่มีเทอร์มินัล

หากคุณไม่คุ้นเคย บรรทัดคำสั่งมีอีกสองตัวเลือก:

  1. ปิดแอปพลิเคชัน Mac ที่ทำงานอยู่ทั้งหมด
  2. รีบูตเครื่องคอมพิวเตอร์ของคุณ

การรีสตาร์ท 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 ของคุณ

ในการเปิดใช้งานการป้องกัน คุณต้องเข้าสู่โหมดการกู้คืนอีกครั้ง เปิดเทอร์มินัลแล้วป้อนคำสั่ง