Khái niệm về device driver

Một phần của tài liệu Thiết kế hệ thống hiển thị video trên bảng LED đa sắc – hỗ trợ Flash USB, thẻ nhớ SD và giao tiếp Ethernet (Trang 54 - 55)

1. Nội dung thiết kế tốt nghiệp:

3.4.2 Khái niệm về device driver

Không gian ngƣời dùng và không gian kernel

Kernel là một phần của hệ điều hành, cung cấp chức năng truy xuất tới những tài nguyên phần cứng như card màn hình, ổ cứng. Phần mềm người dùng thường cạnh tranh với nhau về tài nguyên và nó cần kernel để truy xuất tới những thiết bị mong muốn. Ví dụ: hai phần mềm cùng truy xuất tới một tài nguyên như ổ cứng thì kernel sẽ sắp xếp thứ tự truy xuất chứ không phải cung cấp khả năng truy xuất bất cứ lúc nào phần mềm cần. Một điểm nữa là CPU chạy ở nhiều mode khác nhau tùy theo yêu cầu của người sử dụng về hệ thống.

CPU có MMU:

Khi một process được tạo ra, kernel sẽ thiết lập một phần của bộ nhớ vật lý và đưa cho process dùng cho việc thực thi. Bởi vì không gian bộ nhớ của hai process không được trùng nhau nên mọi process truy cập vào VM sẽ truy xuất tới những địa chỉ vật lý khác nhau. Việc dịch giữa địa chỉ vật lý và địa chỉ ảo được thực hiện bởi MMU.

CPU không có MMU:

Các CPU có MMU thì không có sự phân biệt giữa không gian kernel và không gian người dùng. Vì vậy truy cập trực tiếp đi đến địa chỉ bộ nhớ vật lý thông qua con trỏ. Các module được nạp và giải phóng động, nó chia sẻ không gian bộ nhớ của kernel. Nếu chương trình bị lỗi truy cập bộ nhớ segfault (segmentation fault) thì kernel cũng bị segfault.

Device file

Bởi vì Linux theo những khái niệm của Unix nên mọi thứ đều được giới thiệu như là một file. Vì vậy thiết bị phần cứng cũng được đánh địa chỉ như một file gọi là device file. Có 2 loại device file:

Block device file: đại diện cho những thiết bị phần cứng truy xuất theo

block. Block device có một bộ đệm cho những yêu cầu, vì vậy chúng có thể chọn trật tự tốt nhất để đáp ứng yêu cầu. Điều này đặc biệt quan trọng đối với

55

thiết bị lưu trữ, việc đọc và ghi những sector gần nhau nhanh hơn nhiều. Các thiết bị device chỉ trả lại một khối dữ liệu khi được yêu cầu.

Character device file: đại diện cho những thiết bị truy xuất theo ký tự

không có bộ đệm cho những yêu cầu. Character device cho phép nhiều hay ít byte tùy theo người dùng, chúng không hoạt động với một khối có kích thước cố định.

Chúng ta có thể kiểm tra một device file là một block device hay character device bằng việc nhìn ký tự đầu tiên trong lệnh ls –a. Nếu nó là chữ “b” thì đó là block device còn nếu đó là chữ “c” thì đó là character device.

Đăng ký device file (major number and minor numbers)

Như đã đề cập ở trên, device được truy cập thông qua device file thường nằm trong /dev. Major number cho chúng ta biết driver nào xử lý device nào. Minor number chỉ được dùng bởi driver để phân biệt những driver đang hoạt động , trong trường hợp quản lý nhiều hơn một device. Khi hệ điều hành được cài đặt, những device file được tạo ra bởi lệnh mknod. Ví dụ để tạo ra một character device tên là button với major/minor number là 120/0 là:

mknod /dev/button c 120 0

Chúng ta không bắt buộc phải đặt device file trong /dev, nhưng theo truyền thống thì chúng được đặt trong đó. Khi một device file được truy cập thì kernel sẽ dùng major number để xác định driver nào sẽ được dùng để quản lý. Điều này có nghĩa là hệ điều hành thật sự không cần biết minor number. Chỉ có driver dùng minor number để phân biệt những phần khác nhau của phần cứng.

Một phần của tài liệu Thiết kế hệ thống hiển thị video trên bảng LED đa sắc – hỗ trợ Flash USB, thẻ nhớ SD và giao tiếp Ethernet (Trang 54 - 55)

Tải bản đầy đủ (PDF)

(118 trang)