BÀ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
1
4.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
Sơ đồ phân cấp hệ thống
3
Kiến trúc hệ điều hành Unix
4
Kiến trúc hệ điều hành Windows
5
Kiế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
Kiế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)
7
Hệ đ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
Hệ điều hành nhúng thời gian thực
9
Cấu trúc nhân hệ điều hành
10
Các hệ điều hành nhúng điển hình
• Embedded Linux
• Windows CE
• Android
11
Embedded 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
•
•
•
•
•
•
•
12
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)
Embedded 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
13
Windows 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
Windows CE
OEM
OEM
Microsoft
Microsoft
ISV,
ISV, OEM
OEM
Applications
Applications
Embedded
Embedded Shell
Shell
Remote
Remote
Connectivity
Connectivity
Windows
Windows CE
CE Shell
Shell Services
Services
WIN32
WIN32 APIs
APIs
COREDLL,
COREDLL, WINSOCK,
WINSOCK, OLE,
OLE, COMMCTRL,
COMMCTRL, COMMDLG,
COMMDLG, WININET,
WININET, TAPI
TAPI
Kernel
Kernel
Library
Library
GWES
GWES
OAL
OAL
Bootloader
Bootloader
Drivers
Drivers
Device
Device
Manager
Manager
File
File
Manager
Manager
Device
Device
drivers
drivers
File
File drivers
drivers
OEM
OEM Hardware
Hardware
15
IrDA
IrDA
TCP/IP
TCP/IP
Android
• 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
Android stack
17
Android
• Các thành phần chính
•
•
•
•
•
18
Linux kernel
Android runtime
Android Native Libraries
Application frameworks
Application
Android
19