พอร์ตอนุกรม
พอร์ตอนุกรมเป็นกลไกการสื่อสารระดับต่ำอย่างง่ายระหว่างคอมพิวเตอร์
ข้อดี:
- ติดตั้งง่ายเพียงครั้งเดียว (ถ้าคุณมีฮาร์ดแวร์)
- เชื่อถือได้เนื่องจากการส่งข้อมูลจะขึ้นอยู่กับการวางสายอย่างง่ายและเคอร์เนล API ซึ่งมีโอกาสน้อยที่จะได้รับผลกระทบจากความตื่นตระหนกยิ่งกว่าระบบย่อย TCP / IP
ข้อเสีย:
- แล็ปท็อปที่ทันสมัยส่วนใหญ่ไม่มีพอร์ตอนุกรมอีกต่อไป (เปิดเผยหรือไม่) เพื่อประหยัดพื้นที่ แต่เดสก์ท็อปและเครื่องเสมือนยังคงทำอยู่
- คุณต้องใช้คอมพิวเตอร์เครื่องที่สองที่มีพอร์ตอนุกรมเช่นกันเพื่อรับข้อมูล แต่นี่เป็นกรณีสำหรับบอร์ดพัฒนาแบบฝังทั้งหมดเช่น Raspberry Pi
- ถูก จำกัด โดยความยาวของสายเคเบิลอนุกรมเลเยอร์ทางกายภาพซึ่งแตกต่างจากเครือข่าย TCP / IP ที่ไม่ จำกัด อย่างไรก็ตามสิ่งนี้สามารถแก้ไขได้ด้วยอุปกรณ์ที่เชื่อมต่อระหว่างอนุกรมและ TCP / IP แต่มีอุปกรณ์ที่แปลงระหว่างสอง
พอร์ตอนุกรมมีลักษณะดังนี้:
และใน RPI นั้นมีให้บริการผ่าน GPIO
จากนั้นหากคุณมีฮาร์ดแวร์ที่ต้องการเชื่อมต่อจากคอมพิวเตอร์เครื่องที่สองไปยังคอมพิวเตอร์หลักด้วย:
screen /dev/ttyS0 115200
สิ่งนี้ให้เปลือกคุณจริงๆ
จากนั้นบนเครื่องหลักเริ่มการทำงานที่น่าตกใจ
เมื่อความตื่นตระหนกเกิดขึ้นการถ่ายโอนข้อมูลความตื่นตระหนกจะถูกสตรีมไปยังเครื่องที่สองและคุณสามารถดูได้ทั้งหมดโดยการเลื่อนขึ้นบนเครื่อง
วิธีอื่น ๆ
นอกจากนี้ยังมีวิธีการอื่น ๆ ที่เอาชนะข้อ จำกัด ของฮาร์ดแวร์ดังกล่าวข้างต้นในราคาที่ซับซ้อนและเชื่อถือได้น้อยกว่า วิธีการที่โดดเด่น:
- netdump: สตรีมความตื่นตระหนกผ่าน TCP / IP อาศัยระบบย่อย TCP / IP ที่ไม่ได้รับความเสียหาย
- kdump: ดูเหมือนจะเป็นกลไกพื้นฐานของ linux-crashdump ที่กล่าวถึงที่: https://askubuntu.com/a/104793/52975บูทเคอร์เนล Linux ตัวที่สองเพื่อตรวจสอบเคอร์เนลที่ล้มเหลว สิ่งที่อาจจะผิดไป?! :-)
ดูคำตอบที่ยอดเยี่ยมเช่นนี้: https://unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
การดีบักขั้นตอน
ในท้ายที่สุดการเอาท์พุทความตื่นตระหนกต้องการให้ฟังก์ชั่นเคอร์เนลบางตัวทำงานได้
แต่ใครต้องการความหวาดกลัวถ้าคุณสามารถใช้ GDB บนเคอร์เนลได้ หากคุณเป็นฮาร์ดคอร์นั้นลองดูที่:
ปัญหาทุกอย่างเกิดขึ้นเมื่อคุณมีทัศนวิสัยที่ชัดเจน (และมีเวลาพอ!)