Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
3,21 MB
Nội dung
Linux kernel R.M Tổng quan Linux 26-Sep-08 Ho Chi Minh city University of Technology Nội dung • • • • Kiến trúc Linux Khả lập trình Linux Các vấn đề quan tâm Thảo luận Architecture Programming Problems 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Kiến trúc modular – monolithic – Kiến trúc phân lớp – FUSE (Filesystem in Userspace) – Device driver 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Linux distro vs Linux kernel Kernel System call Libraries Applications Distro 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Kiến trúc modular – monolithic – So sánh với kiến trúc microkernel – Kiến trúc phân lớp 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Các thành phần Linux 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Thành phần định thời 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Thành phần hệ thống file 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Thành phần Networking 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Thành phần Driver 26-Sep-08 Ho Chi Minh city University of Technology 10 Lập trình Linux • Lập trình ứng dụng – PHP, Perl, Python,… – Không quan tâm kiến trúc hệ thống bên • Lập trình ứng dụng hệ thống • Lập trình kernel module – Device drivers • Lập trình kernel 26-Sep-08 Ho Chi Minh city University of Technology 11 Lập trình Linux • Lập trình ứng dụng hệ thống – System calls & glibc – Ioctl – Cần hiểu hệ thống bên Applications System Programming API FS 26-Sep-08 Network Process I/O Ho Chi Minh city University of Technology 12 Lập trình Linux • Lập trình ứng dụng hệ thống – Giả lập hoạt động nhấn phím (keypress) int main() { char buf[64]; char c = 'N'; int ctty; sprintf(buf, "/dev/tty1"); ctty = open(buf, O_RDWR); if (ctty == -1){ printf("Cannot get tty1\n"); return -1; } ioctl(ctty, TIOCSTI, &c); close(ctty); return 0; } 26-Sep-08 Ho Chi Minh city University of Technology 13 Lập trình Linux • Lập trình kernel module – Framework Memory insmod module_init() Hoạt động module rmmod 26-Sep-08 module_exit() Ho Chi Minh city University of Technology 14 Lập trình Linux • Lập trình kernel – Chỉnh sửa, thêm code vào kernel – Phải biên dịch lại kernel – Hiểu mối liên hệ thành phần – Toàn quyền hệ thống – Cần phải cẩn thận 26-Sep-08 Ho Chi Minh city University of Technology 15 Các vấn đề quan tâm* • • • • • Bộ định thời Thiết bị ảo thiết bị thật Vấn đề định tuyến mạng không dây Hệ điều hành chuyên dụng Thin client 26-Sep-08 Ho Chi Minh city University of Technology 16 Các vấn đề quan tâm* • Bộ định thời – Hệ thống đa xử lý – Các q trình có quan hệ ràng buộc thực thi * Bộ định thời chưa tối ưu * Cpu rãnh 26-Sep-08 Ho Chi Minh city University of Technology 17 Các vấn đề quan tâm* • Thiết bị ảo thiết bị thật – Sử dụng tài nguyên thiết bị qua mạng Virtual keyboard Real keyboard Network Virtual projector 26-Sep-08 Real projector Ho Chi Minh city University of Technology 18 Các vấn đề quan tâm* • Hệ điều hành chuyên dụng – Mini kernel • Xác định cấu hình hệ thống tự động – Mini distro – Tối ưu hóa cho hệ thống 26-Sep-08 Ho Chi Minh city University of Technology 19 Các vấn đề quan tâm* • Thin client – Client không cần đĩa cứng 26-Sep-08 Ho Chi Minh city University of Technology 20 Cám ơn 26-Sep-08 Ho Chi Minh city University of Technology 21 ... dung • • • • Kiến trúc Linux Khả lập trình Linux Các vấn đề quan tâm Thảo luận Architecture Programming Problems 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Kiến trúc modular... Technology Kiến trúc Linux • Linux distro vs Linux kernel Kernel System call Libraries Applications Distro 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Kiến trúc modular... trúc Linux • Các thành phần Linux 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux • Thành phần định thời 26-Sep-08 Ho Chi Minh city University of Technology Kiến trúc Linux