230 likes | 479 Views
R.M. Tổng quan về Linux. Linux kernel. 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. 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. Kiến trúc Linux.
E N D
R.M. Tổng quan về Linux Linux kernel
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
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
Kiến trúc Linux • Linux distro vs Linux kernel
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
Kiến trúc Linux • Các thành phần của Linux
Kiến trúc Linux • Thành phần định thời
Kiến trúc Linux • Thành phần hệ thống file
Kiến trúc Linux • Thành phần Networking
Kiến trúc Linux • Thành phần Driver
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
Lập trình Linux Applications System Programming API FS Network Process I/O • 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
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; }
Lập trình Linux Memory module_init() insmod Hoạt động của module module_exit() rmmod • Lập trình kernel module • Framework
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
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
Các vấn đề đang quan tâm* • 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 * Bộ định thời hiện tại chưa tối ưu * Cpu rãnh
Các vấn đề đang quan tâm* • 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 Virtual keyboard Real keyboard Network Virtual projector Real projector
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
Các vấn đề đang quan tâm* • Thin client • Client không cần đĩa cứng