Kiến trúc hệ điều hành nhúng 4.2.. Kiến trúc hệ điều hành nhúng• Hệ điều hành là gì?. • Hệ điều hành bản chất là phần mềm hệ thống • Quản lý tài nguyên phần cứng máy tính • Cung cấp các
Trang 1BÀI GIẢNG MÔN HỌC HỆ NHÚNG
Chương 4: Hệ điều hành nhúng
4.1 Kiến trúc hệ điều hành nhúng
4.2 Các hệ điều hành nhúng điển hình
Trang 24.1 Kiến trúc hệ điều hành nhúng
• Hệ điều hành là gì?
• Hệ điều hành bản chất là phần mềm hệ thống
• Quản lý tài nguyên phần cứng máy tính
• Cung cấp các hàm dịch vụ cho phép các ứng dụng tương tác với tài nguyên hệ thống
• Lợi ích của hệ điều hành
• Tăng tính khả chuyển (portable)
• Tăng tính ổn định, tin cậy của hệ thống
2
Trang 3Sơ đồ phân cấp hệ thống
Trang 4Kiến trúc hệ điều hành Unix
4
Trang 5Kiến trúc hệ điều hành Windows
Trang 6Kiến trúc hệ điều hành nhúng
• Khái niệm hệ điều hành nhúng
• Mang đặc trưng cơ bản của hệ điều hành
• Quản lý tài nguyên phần cứng và phần mềm của hệ thống
• Trung gian giữa phần cứng và phần mềm, giúp phần cứng làm việc trong suốt với phần mềm ứng dụng
• Cung cấp giao diện hàm chuẩn cho phần mềm ứng dụng
6
Trang 7Kiến trúc hệ điều hành nhúng
• Đặc trưng riêng của hệ điều hành nhúng
• Tăng tính tin cậy
• Khả năng tương thích mềm: dễ dàng nâng cấp hay thu gọn để tương thích với nền tảng hệ thống
• Đòi hỏi ít bộ nhớ hơn
• Cung cấp các cơ chế lập lịch hỗ trợ hệ điều hành thời gian thực (Realtime OS – RTOS)
• Hỗ trợ các hệ thống không có ổ cứng thông qua cơ chế khởi động và thực thi
từ ROM và RAM
• Tăng tính khả chuyển (portability)
Trang 8Hệ điều hành nhúng thời gian thực
• Hệ thống thời gian thực (Realtime): các phần mềm, phần cứng hoạt động thỏa mãn các ràng buộc về thời gian
• Phân loại:
• Hard Realtime: không đáp ứng deadline -> lỗi hệ thống
• Firm Realtime: không đáp ứng deadline-> giảm chất lượng dịch vị (QoS)
• Soft Realtime: không đáp ứng deadline -> giảm chất lượng dịch vụ (QoS)
8
Trang 9Hệ điều hành nhúng thời gian thực
Trang 10Cấu trúc nhân hệ điều hành
10
Trang 11Các hệ điều hành nhúng điển hình
• Embedded Linux
• Windows CE
• Android
Trang 12Embedded Linux
• Hỗ trợ rất nhiều nền tảng kiến trúc
• Linux kernel bao gồm các thành phần chính
• Hardware abstract layer (HAL)
• Memory Management: quản lý bộ nhớ
• Scheduler: lập lịch
• File system
• IO subsystem
• Networking subsystem
• Inter Process Communication (IPC)
12
Trang 13Embedded Linux
• Hỗ trợ rất nhiều kiến trúc (cả 32 bit và 64 bit)
• X86, ARM, PowerPC, MIPS, SuperH, AVR32, …
• Không hỗ trợ các vi điều khiển hiệu năng thấp
• Hỗ trợ cả kiến trúc có và không có khối quản lý bộ nhớ (MMU)
• Các hệ thống có thể dùng chung toolchains, bootloader và kernel, các thành phần khác phải riêng biệt và tương thích với từng hệ thống
Trang 14Windows CE
• Hệ điều hành nhúng của Microsoft
Hỗ trợ 5 kiến trúc phổ biến: ARM/StrongARM, MIPS, PPC, SuperH, X86
• Môi trường phát triển ứng dụng
• Visual Studio + Platform Builder + Emulator
• Embedded Visual C++
14
Trang 15Windows CE
Embedded Shell
Applications
WIN32 APIs COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
WIN32 APIs COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
Windows CE Shell Services
Remote Connectivity
Remote Connectivity
Kernel Library
Kernel Library
IrDA
GWES Device
Manager
Device Manager
File Manager
File Manager
TCP/IP OAL
OAL
Drivers DeviceDevice File drivers
Trang 16• Hệ điều hành phát triển bởi Google trên nền Linux, bước đầu tập trung phát triển cho điện thoại
• Android chỉ sử dụng lại Linux kernel -> cần kiến thức chuyên sâu về Android để làm việc với Android
• Android là một stack hoàn chỉnh cho phát triển ứng dụng
16
Trang 17Android stack
Trang 18• Các thành phần chính
• Linux kernel
• Android runtime
• Android Native Libraries
• Application frameworks
• Application
18
Trang 19Android