Friday, June 5, 2015

1. Boot sequence
1.1 For Embedded CPU
Quá trình bootup của hệ thống nhúng được lần lượt thực hiện qua các bước sau:
+ Khi bật nguồn, CPU sẽ chạy đoạn code (First State Bootloader) ở một địa chỉ cố định (trong NOR flash chip) có tác dụng load Bootloader lên và chạy trước tiên

+ Bootloader khởi chạy một số hardware cơ bản và load Kernel lên
+ Kernel chạy các tác vụ hệ thống, sau đó nó mount Root File System
+ Kernel tiếp tục khởi chạy tiến trình đầu tiên - init process, tiến trình này sẽ chạy các script có trên Root FileSystem để tạo ra rất nhiều các tiến trình con.


Vậy có thể tóm tắt quá trình boot sequence: CPU => Bootloader => Kernel => RootFS


1.2 Booting on X86

Quá trình booting trên máy tính x86 CPU phức tap hơn nhiều so với Embedded CPU, dưới đây là mô tả quá trình booting, điểm khác biệt có thể thấy là BIOS là chương trình được khởi chạy đầu tiên chứ không phải là Bootloader như đối với Embedded CPU.





2. Các kiểu Booting

Để có được các kiểu boot khác nhau chính là nhờ Bootloader thường cung cấp sẵn những tùy chọn bootup cho người dùng, những tùy chọn này nằm ở phân cùng Boot parameter (cũng thuộc bootloader). Ví dụ như u-boot có một giao diện terminal gọi là shell cho phép developer cài đặt tùy chọn boot bằng những command line.

2.1 Boot từ ROM


Kiểu boot này thường được dùng cho các sản phẩm thương mại, trong đó các thành phần Bootloader + Kernel + RootFS đã được ghi sẵn cố định vào ROM của board mạch, thường thấy là NAND hoặc NOR Flash

2.2 Boot từ Removable Storage
Removable Storage thường thấy như là Compact Flash, MMC, eMMC, SD card, HDD, ...


hoặc


Kiểu boot này dùng cho các development board.

2.3 Boot qua mạng
Trong trường hợp này, chỉ có Bootloader là nằm trên ROM của TARGET, còn Kernel và/hoặc RootFS nằm trên một máy khác, và chúng được load qua mạng nhờ các giao thức TFTP(Kernel) và NFS (Root FS)



Kiểu boot này cũng dùng cho các development board.



Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Lập trình hệ thống nhúng Linux . Powered by Luong Duy Ninh -