Tổng quan về Linux
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
Bạn đang xem trước 20 trang tài liệu Tổng quan về Linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
26-Sep-08 1Ho Chi Minh city University of Technology
Linux kernel
R.M.
Tổng quan về Linux
26-Sep-08 2Ho 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 3Ho 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 4Ho 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 5Ho 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 6Ho Chi Minh city University of Technology
Kiến trúc Linux
• Các thành phần của Linux
26-Sep-08 7Ho Chi Minh city University of Technology
Kiến trúc Linux
• Thành phần định thời
26-Sep-08 8Ho Chi Minh city University of Technology
Kiến trúc Linux
• Thành phần hệ thống file
26-Sep-08 9Ho Chi Minh city University of Technology
Kiến trúc Linux
• Thành phần Networking
26-Sep-08 10Ho Chi Minh city University of Technology
Kiến trúc Linux
• Thành phần Driver
26-Sep-08 11Ho 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 12Ho 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 13Ho 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 14Ho 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 15Ho 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 16Ho 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 17Ho 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 18Ho 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
Real keyboard
Real projector
Virtual keyboard
Virtual projector
26-Sep-08 19Ho 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 20Ho 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 21Ho Chi Minh city University of Technology
Cám ơn
Các file đính kèm theo tài liệu này:
- linux_intro_6508.pdf