2011-10-15 56 views
5

tôi nhận được một văn bản kỳ lạ của 'catting'/proc/ioports tập tin của Linux máy tính của tôi,ý nghĩa của nội dung của/proc là gì/ioports

0000-001f : dma1 
0020-003f : pic1 
0040-005f : timer 
0060-006f : keyboard 
0070-007f : rtc0 
... 

Những gì tôi không hiểu là phần trước của mỗi mục, hãy xem mục nhập đầu tiên, ví dụ, có nghĩa là các cổng 31 (0x1f trong hex) bị dma1 chiếm đóng không? Nếu đúng, tôi không thể tưởng tượng có bao nhiêu cổng trên bộ vi xử lý x86, vì tôi biết chỉ có một số cổng 8 bit trên 8bit-MCU.

Mọi người có thể nêu chi tiết ý nghĩa của số và cổng io của bộ xử lý x86 không?

Trả lời

0

/proc/ioports liệt kê phạm vi và tên của ioport được cung cấp bởi trình điều khiển thiết bị trong hạt nhân Linux của các cổng của các dải cổng được xác nhận và xử lý bởi trình điều khiển đã nói.

Ví dụ: cổng io 0070 - 007f được trình điều khiển hạt nhân Linux RTC xác nhận quyền sở hữu. Bạn có thể giả định rằng các dải cổng được xác nhận bởi trình điều khiển tương ứng với các dải cổng thích hợp được cung cấp bởi phần cứng tương ứng nhưng bạn nên lưu ý rằng thực sự không có cơ chế nào đảm bảo rằng thực sự chúng là.

5

Đó là danh sách các vùng cổng I/O đã được trình điều khiển hạt nhân xác nhận quyền sở hữu bằng chức năng hạt nhân request_region. Vì vậy, nó không phải là danh sách đầy đủ các cổng I/O hoặc các thiết bị có sẵn, chỉ có các cổng đã được yêu cầu bởi các trình điều khiển hạt nhân khác nhau. Cơ chế request_region cho phép hạt nhân ngăn không cho nhiều trình điều khiển nói chuyện với cùng một thiết bị.