Tôi đang sử dụng bàn phím usb chung, Linux 2.6.27 với máy tính để bàn gnome, gnome-terminal và bash shell. Tôi muốn biết điều gì xảy ra trong phần mềm. Các ký tự đặc biệt từ bàn phím của tôi được diễn giải như thế nào với một số mã hóa thành ký tự và hình ảnh nhân vật đến từ đâu?Đường dẫn hành động thực sự xảy ra khi tôi nhấn một phím trên bàn phím và nó hiển thị trên vỏ là gì?
Đường dẫn hành động thực sự xảy ra khi tôi nhấn một phím trên bàn phím và nó hiển thị trên vỏ là gì?
Trả lời
Lớp đầu vào Linux với trình điều khiển USB bị thu nhỏ (về cơ bản là "KEY 1 DOWN" "KEY 1 UP") từ bàn phím.
X sử dụng sơ đồ bàn phím của nó để chuyển đổi scancode thành mã phím và các sự kiện nhập X.
Phương thức nhập GTK chuyển đổi chuỗi sự kiện đầu vào thành các ký tự unicode được tạo thành.
Thiết bị đầu cuối Gnome mã hóa các mã này trong UTF-8 cho vỏ.
Shell không quan tâm. nó chỉ biết rằng nó đang xử lý mã hóa nhiều byte.
Vỏ lặp lại văn bản được mã hóa nhiều byte trở lại qua TTY.
Gnome-terminal giải mã văn bản đến và xác định các điểm mã unicode.
Thiết bị đầu cuối Gnome thu hút các ký tự sử dụng cơ sở GTK +.
GTK + sử dụng Pango để hiển thị văn bản và gọi thư viện X để vẽ pixel tới màn hình.
Máy chủ X vẽ các ký tự vào bộ đệm màn hình và thẻ video hiển thị chúng.
Đây là nỗ lực của tôi tại một sơ đồ:
Hình ảnh không hoạt động và không có bản sao trên internet. :( –
Nhìn vào nó trong các lớp. Đầu tiên là phần cứng và trình điều khiển thiết bị trong hạt nhân Linux sẽ có các phương pháp cụ thể để kiểm soát và trả lời bàn phím thông qua thanh ghi trạng thái trong thiết bị và trình xử lý ngắt, ví dụ.
Tiếp theo là hạt nhân Linux, sẽ có một số phương pháp tải trình điều khiển thích hợp cho từng phần cứng được phát hiện tại thời điểm khởi động. Sau khi nạp, trình điều khiển thiết bị tuân theo một số giao diện trình điều khiển hạt nhân, cung cấp dữ liệu từ thiết bị đến hạt nhân và ngược lại.
Ngoài hạt nhân, ở một mức độ nào đó, trình điều khiển thiết bị và phần cứng hiển thị, thường là danh sách trong thư mục/dev. Phần mềm, giống như trình giả lập thiết bị đầu cuối, cần sử dụng thiết bị sẽ có quyền truy cập vào thiết bị thông qua mục nhập trong/dev.
Giao tiếp giữa ứng dụng cấp người dùng và thiết bị hiện đang xảy ra thông qua một loạt các hoạt động đọc/ghi và ioctl. Những bẫy này vào hạt nhân (xem các trang hướng dẫn sử dụng cho những chi tiết này), tại thời điểm đó hạt nhân giao tiếp với trình điều khiển thiết bị được nạp ở trên.
Trình giả lập thiết bị đầu cuối sẽ hiển thị các ký tự khi bạn nhập chúng (trong hầu hết các trường hợp) và khi chúng được nhận từ thiết bị (trong hầu hết các trường hợp) bằng cách sử dụng phông chữ mà nó có thể truy cập, ở nhiều nơi khác nhau tùy thuộc vào ứng dụng. (Tôi đang nói chung ở đây bởi vì tôi không biết Gnome cụ thể).
Điều này có hữu ích không?
- 1. Mở bàn phím mềm khi nhấn phím
- 2. Buộc trên bàn phím màn hình hiển thị khi bàn phím bluetooth được kết nối
- 3. Cách lấy nét và hiển thị bàn phím mềm khi EditText được hiển thị trên thanh hành động?
- 4. Giữ bàn phím luôn ở trên cùng và hiển thị
- 5. Kích hoạt sự kiện nhấn phím bàn phím mà không cần nhấn phím từ bàn phím
- 6. Bàn phím xử lý Đã nhấn sự kiện trên Iphone
- 7. Android - Nhận bấm phím trên bàn phím
- 8. bàn phím trong hiển thị UIWebView và sau đó ẩn chính nó trên tiêu điểm nhập
- 9. Ẩn bản xem trước phím trên bàn phím Android
- 10. Nút để hiển thị bàn phím ảo?
- 11. Có thể bật cả Bàn phím thực và Bàn phím mềm cùng một lúc không?
- 12. TextField trở thànhPhát hành FirstResponder cho hành động bàn phím (Bàn phím)
- 13. Sự kiện iOS khi bàn phím giấu
- 14. Sự cố khi quay trở thànhFirstResponder không hiển thị bàn phím cho một số người dùng
- 15. Chụp một phím nhấn trên nền
- 16. jQuery: cách lọc ra các phím không phải ký tự trên sự kiện nhấn phím?
- 17. PopupWindow phía trên Bàn phím ảo
- 18. Cách hiển thị bàn phím iPhone/iPad trên toàn màn hình Ứng dụng OpenGL ES
- 19. iOS: Tắt hoạt ảnh UITableView khi bàn phím hiển thị
- 20. Cách hiển thị bàn phím cho UIView
- 21. Các biểu tượng phím trên bàn phím
- 22. Hiển thị UIMenuController mất bàn phím
- 23. Hiển thị bàn phím ảo cho hộp thoại
- 24. Nhận thông báo khi người dùng nhấn "Tìm kiếm" trên bàn phím trong UISearchDisplayController
- 25. cách hiển thị bàn phím số
- 26. CGEventPost - lỗi có thể xảy ra khi mô phỏng sự kiện bàn phím?
- 27. Sự kiện "nhấn phím xóa" cho DataGrid WPF là gì?
- 28. UIPopoverView bị méo khi bàn phím được hiển thị + iPad
- 29. Tại sao móc khóa bàn phím của tôi nhận được các sự kiện liên tục và nhấn phím nhiều lần?
- 30. Vô hiệu hóa các phím trên bàn phím
Whoa.Câu trả lời cho điều này có thể điền vào một cách dễ dàng điền vào sách hoặc thậm chí là kệ sách, tùy thuộc vào mức độ chi tiết được sử dụng. – unwind
@unwind Đồng ý. Điều này nhắc tôi về câu hỏi phỏng vấn yêu thích của tôi, một khi đã đặt ra cho tôi tại một công ty mạng. Điều gì sẽ xảy ra khi bạn mở trình duyệt và điều hướng đến URL? –