26-Sep-08 1
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Linux kernel
R.M.
Tổng quan về Linux
26-Sep-08 2
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Nội dung
•
Kiến trúc của Linux
•
Khả năng lập trình trên Linux
•
Các vấn đề đang quan tâm
•
Thảo luận
Architecture
Problems
Programming
26-Sep-08 3
Ho Chi Minh city University of Technology
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 4
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Kiến trúc Linux
•
Linux distro vs Linux kernel
Applications
Libraries
System call
Kernel
Distro
26-Sep-08 5
Ho Chi Minh city University of Technology
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 6
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Kiến trúc Linux
•
Các thành phần của Linux
26-Sep-08 7
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Kiến trúc Linux
•
Thành phần định thời
26-Sep-08 8
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Kiến trúc Linux
•
Thành phần hệ thống file
26-Sep-08 9
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Kiến trúc Linux
•
Thành phần Networking
26-Sep-08 10
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Kiến trúc Linux
•
Thành phần Driver
26-Sep-08 11
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
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 dưới
•
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 12
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
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 dưới
FS
System Programming API
Network Process I/O
Applications
26-Sep-08 13
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
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 14
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Lập trình Linux
•
Lập trình kernel module
–
Framework
module_init()
module_exit()
Hoạt động
của module
Memory
insmod
rmmod
26-Sep-08 15
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
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 các mối liên hệ giữa các thành phần
–
Toàn quyền trong hệ thống
–
Cần phải cẩn thận
26-Sep-08 16
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Các vấn đề đang quan tâm*
•
Bộ định thời
•
Thiết bị ảo của thiết bị thật
•
Vấn đề định tuyến trên mạng không dây
•
Hệ điều hành chuyên dụng
•
Thin client
26-Sep-08 17
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
•
Bộ định thời
–
Hệ thống đa bộ xử lý
–
Các quá trình có quan hệ ràng buộc thực thi
Các vấn đề đang quan tâm*
*
*
Bộ định thời hiện tại chưa tối ưu
Cpu rãnh
26-Sep-08 18
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
•
Thiết bị ảo của thiết bị thật
–
Sử dụng các tài nguyên thiết bị qua mạng
Các vấn đề đang quan tâm*
Network
Network
Real keyboard
Real projector
Virtual keyboard
Virtual projector
26-Sep-08 19
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Các vấn đề đang 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 một hệ thống
26-Sep-08 20
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Các vấn đề đang quan tâm*
•
Thin client
–
Client không cần đĩa cứng
26-Sep-08 21
Ho Chi Minh city University of Technology
Ho Chi Minh city University of Technology
Cám ơn