Ngày này, sự phát triển của công nghệ thông tin (CNTT) ngày càng chiếm một vị trí quan trọng trong mọi lĩnh vực của cuộc sống. Sự bùng nổ của khoa học công nghệ nói chung và công nghệ thông tin nói riêng đã đem lại rất nhiều lợi ích cho con người, rút ngắn khoảng cách về địa lý, tăng hiệu suất, tiết kiệm thời gian và chi phí cho công việc… Có thể khẳng định công nghệ thông tin đang giữ một vai trò quan trọng trong sự phát triển của loài người nói chung và sự phát triển kinh tế, chính trị, xã hội của một đất nước nói riêng, Việt Nam cũng không là một ngoại lệ. Việc nắm bắt được vai trò, thực trạng của CNTT nước ta sẽ giúp ta có cái nhìn tổng thể về CNTT Việt Nam đồng thời đưa ra giải pháp và các xu thế phát triển của nó đối với sự phát triển xã hội, nhằm hoàn thiện, nâng cao hiệu quả và chất lượng mạng lưới CNTT nước ta.
Trang 1để thực hiện khóa luận này.
Đặc biệt, em xin bày tỏ lòng biết ơn sâu xắc đến TS Hồ Văn Hương,người đã tận tình chỉ bảo, giúp đỡ và tạo điều kiện về nhiều mặt để em có thểhoàn thành khóa luận này
Em xin chân thành gửi lời cảm ơn đến tập thể lớp AT3C, trường Học Viện
Kỹ Thuật Mật Mã đã giúp đỡ, nhiệt tình chia sẻ đóng góp những kinh nghiệmquý báu cho em
Cuối cùng xin cảm ơn gia đình, anh chị em, bạn bè đã giúp đỡ, tạo điềukiện và đóng góp cho em nhiều ý kiến quý báu trong cuộc sống, công việc vàhọc tập nói chung cũng như trong quá trình thực hiện khóa luận này
Mặc dù, đã có nhiều cố gắng nhưng do hạn hẹp về thời gian, điều kiện vềtrình độ nên không tránh khỏi khuyết điểm Em chân thành mong nhận được sựgóp ý của thầy cô, bạn bè
Hà Nội, tháng 6 năm 2011
Người thực hiệnNguyễn Vân Thành
Trang 2MỤC LỤC LỜI CẢM ƠN I
BẢNG CÁC TỪ VIẾT TẮT VI DANH SÁCH CÁC HÌNH VẼ………VII
LỜI NÓI ĐẦU 1
CHƯƠNG 1: 3
HỆ THỐNG NHÚNG 3
1.1 TỔNG QUAN 3
1.1.1 Khái niệm 3
1.1.2 Kiến trúc hệ thống nhúng……… 4
1.1.3 Lĩnh vực ứng dụng của hệ nhúng 5
1.1.4 Thiết kế hệ thống nhúng …… .6
1.1.5 Đặc điểm công nghệ và xu thế phát triển của hệ thống nhúng 6
1.1.5.1 Đặc điểm công nghệ 6
1.1.5.2 Xu thế phát triển của hệ thống nhúng 8
1.2 HỆ ĐIỀU HÀNH NHÚNG 9
1.2.1 Tổng quan 9
1.2.2 Bộ nạp khởi tạo 10
1.2.3 Các yêu cầu chung 12
1.2.4 Hệ điều hành thời gian thực 14
1.2.5 Ưu điểm của hệ điều hành nhúng với hệ điều hành thông thường 17
1.3 Tìm hiểu một số hệ điều hành nhúng cơ bản 18
1.3.1 Trên hệ điều hành Windows 18
1.3.1.1 Windows CE 18
1.3.1.2 Windows XP Embedded 20
1.3.2 Trên hệ điều hành Linux 22
Trang 31.3.2.1 Embedded Linux 22
1.3.2.2 RTLinux 25
1.3.2.2 RTLinux 25
1.3.2.4 Android 26
1.3.3 Khả năng ứng dụng và triển khai lập trình trên hệ điều hành nhúng 27
1.3.3.1 Khả năng ứng dụng 27
1.3.3.2 Triển khai lập trình trên hệ điều hành nhúng 28
1.4 KẾT CHƯƠNG 29
CHƯƠNG 2: 30
HỆ ĐIỀU HÀNH ANDROID 30
2.1 GIỚI THIỆU CHUNG 30
2.2 TÍNH NĂNG ƯU VIỆT CỦA ANDROID 32
2.3 KIẾN TRÚC HỆ ĐIỀU HÀNH ANDROID 34
2.4 ỨNG DỤNG TRÊN HỆ ĐIỀU HÀNH ANDROID 39
2.5 KHẢ NĂNG PHÁT TRIỂN CỦA HỆ ĐIỀU HÀNH ANDROID 42
2.6 MỘT SỐ RỦI RO GÂY MẤT AN TOÀN CHO HỆ ĐIỀU HÀNH ANDROID .42
2.7 MỘT SỐ GIẢI PHÁP AN TOÀN CHO HỆ ĐIỀU HÀNH ANDROID 43
2.8 KẾT CHƯƠNG 45
CHƯƠNG 3: 46
LÝ THUYẾT VỀ AN TOÀN BẢO MẬT THÔNG TIN 46
3.1 GIỚI THIỆU 46
3.2 TÌM HIỀU VỀ MÃ HÓA THÔNG TIN 47
3.3 TIÊU CHUẨN ĐÁNH GIÁ HỆ MẬT MÃ 48
3.4 PHÂN LOẠI HỆ MẬT MÃ 48
3.5 HỆ MẬT MÃ ĐỐI XỨNG 48
3.5.1 Khái niệm 48
Trang 43.5.2 Các thuật toán trong hệ mật mã đối xứng 49
3.5.3 Tìm hiểu về thuật toán mã hoá AES 49
3.6 HỆ MẬT MÃ BẤT ĐỐI XỨNG 52
3.6.1 Khái niệm 53
3.6.2 Các thuật toán trong hệ mật mã bất đối xứng 53
3.6.3 Thuật toán RSA 54
3.6.3.1 Mô tả thuật toán RSA 55
3.6.4 Trao đổi khóa Diffie Hellman 57
3.7 HÀM BĂM 59
3.8 CHỮ KÝ SỐ 60
3.8.1 Khái niệm chữ ký số 60
3.8.2 Sơ đồ chữ ký số 62
3.9 CHỨNG NHẬN KHÓA CÔNG KHAI 63
3.10 KẾT CHƯƠNG 65
CHƯƠNG 4: 66
MỘT SỐ GIẢI PHÁP TĂNG CƯỜNG BẢO MẬT CHO HỆ ĐIỀU HÀNH ANDROID 66
4.1 MỘT SỐ GIẢI PHÁP ĐÃ ĐƯỢC TRIỂN KHAI 66
4.1.1 Bảo vệ truy cập 66
4.1.2 Bảo vệ truy cập ứng dụng cụ thể 67
4.1.3 Ẩn các ứng dụng 69
4.1.4 Phòng chống virus 71
4.2 ĐỀ XUẤT GIẢI PHÁP AN TOÀN BẢO MẬT CHO HỆ ĐIỀU HÀNH ANDROID 72
4.2.1 Giải pháp bảo mật dữ liệu 72
4.2.2 Giải pháp bảo vệ Email trong hệ điều hành Android 75
4.2.3 Giải pháp bảo vệ phần mềm ứng dụng trên hệ điều hành Android 77
Trang 54.2.4 Giải pháp bảo vệ truy cập thông qua mật khẩu và xác thực 78
KẾT LUẬN 80 TÀI LIỆU THAM KHẢO 81
Trang 6BẢNG CÁC TỪ VIẾT TẮT
Real-time operating system RTOS Hệ thống thời gian thực
API Giao diện lập trình ứng dụng
Android-Development Tools ADT Các công cụ phát triển AndroidCertificate Authority CA Chứng nhận khóa công khaiDomain Name Service DNS Dịch vụ phân giải tên miền
Avandted-Encryption
Standard
AES Chuẩn mã hóa tiên tiến
Trang 7DANH SÁCH CÁC HÌNH VẼ
Hình 1.1.1 Một vài hình ảnh về hệ nhúng 3
Hình 1.1.2 Kiến trúc tổng thể của một hệ thống nhúng 5
Hình 1.2.1 Kiến trúc hệ điều hành 10
Hình 1.2.2 Nguyên lý hoạt động của bộ nạp khởi tạo boot-loader 11
Hình 1.2.4a Cấu trúc hệ điều hành thời gian thực 15
Hình 1.2.4b Mô hình trạng thái của quá trình 16
Hình 1.3.2.1b Embedded Linux 24
Hình 1.3.2.6 Android 26
Hình 2.3 Kiến trúc hệ điều hành Android 34
Hình 3.5.1 Mã hóa khóa bí mật 49
Hình 3.5.3 Sơ đồ thuật toán AES 50
Hình 3.6.1 Mã hoá và giải mã với khóa công khai 53
Hình 3.6.3 Thuật toán RSA 55
Hình 3.6.4 Thuật toán Diffie- Hellman 59
Hình 3.8 Chữ ký số 63
Hình 4.2.1a Giải pháp mã hóa dữ liệu 73
Hình 4.2.1b Tấn công xen giữa 74
Trang 8LỜI NÓI ĐẦU
Ngày này, sự phát triển của công nghệ thông tin (CNTT) ngày càng chiếmmột vị trí quan trọng trong mọi lĩnh vực của cuộc sống Sự bùng nổ của khoa họccông nghệ nói chung và công nghệ thông tin nói riêng đã đem lại rất nhiều lợiích cho con người, rút ngắn khoảng cách về địa lý, tăng hiệu suất, tiết kiệm thờigian và chi phí cho công việc…
Có thể khẳng định công nghệ thông tin đang giữ một vai trò quan trọngtrong sự phát triển của loài người nói chung và sự phát triển kinh tế, chính trị, xãhội của một đất nước nói riêng, Việt Nam cũng không là một ngoại lệ Việc nắmbắt được vai trò, thực trạng của CNTT nước ta sẽ giúp ta có cái nhìn tổng thể vềCNTT Việt Nam đồng thời đưa ra giải pháp và các xu thế phát triển của nó đốivới sự phát triển xã hội, nhằm hoàn thiện, nâng cao hiệu quả và chất lượng mạnglưới CNTT nước ta
Công nghệ thông tin tác động đến mọi mặt của đời sống xã hội, ảnh hưởngsâu sắc đến xã hội loài người, tạo nên những thay đổi mang tính chất đột phá.Phát triển các hệ nhúng và phần mềm nhúng là quốc sách của nhiều quốcgia trên thế giới, nhất là vào giai đoạn hậu PC hiện nay Các hệ nhúng là sự kếthợp phần cứng và phần mềm một cách tối ưu, ngày càng có độ mềm dẻo cao đápứng các yêu cầu nhanh chóng đưa sản phẩm ra thương trường, có khả năng bảotrì từ xa, có tính cá nhân cao Các phần mềm nhúng trong các chip vi hệ thốngnày rất phong phú và có độ mềm dẻo, tái sử dụng cao
Sức kéo của thị trường đòi hỏi các thiết bị phải có nhiều chức năng thânthiện với người dùng, có mức độ thông minh ngày càng cải thiện đưa đến vai trò
và tầm quan trọng của các hệ thống nhúng ngày càng cao trong nền kinh tế quốcdân
Do chức năng của hệ thống nhúng là hết sức quan trọng nên việc an toànbảo mật cho nó phải được đặt lên hàng đầu trước khi đi vào công việc triển khaixây dựng hệ thống
Trang 9Xuất phát từ những lí do trên, em đã chọn làm đề tài “ Nghiên cứu hệ điềuhành nhúng và giải pháp an toàn cho thiết bị chuyên dụng ” nhằm đem lại nhữngkiến thức cơ bản về hệ điều hành nhúng, khai thác các ứng dụng, các công cụ vàđưa ra một số giải pháp an toàn bảo mật cho hệ điều hành nhúng.
Nội dung của đề tài được chia làm 4 chương với nội dung cơ bản sau:
Chương 1: HỆ THỐNG NHÚNG
Chương này trình bày về hệ thống nhúng, các khái niệm về hệ nhúng, vàcác vấn đề liên quan Đặc biệt trình bày về một số hệ điều hành nhúng cơ bảntrên Windows, Linux…đưa ra những khái niệm, ưu nhược điểm của nó so với hệđiều hành thông thường chạy trên PC
Chương 2: HỆ ĐIỀU HÀNH NHÚNG ANDROID
Chương này trình bày một số vấn đề về hệ điều hành Android như nguồngốc ra đời, quá trình phát triển và tầm quan trọng của nó trong cuộc sống số ngàynay Từ đó đi sâu vào nghiên cứu chức năng các tầng của kiến trúc ANDROID,ứng dụng của hệ điều hành Android trên máy tính bảng và trên điện thoại Nêunên một số rủi ro gây mất an ninh, và giải pháp an toàn trên hệ điều hànhAndroid
Chương 3: LÝ THUYẾT AN TOÀN BẢO MẬT THÔNG TIN
Chương này trình bày một số vấn đề liên quan về an toàn thông tin trênmạng, nội dung của an toàn và bảo mật thông tin Tìm hiểu hai hệ mật mã kinhđiển là Mật mã khóa bí mật và mật mã khóa công khai…
Chương 4: MỘT SỐ GIẢI PHÁP TĂNG CƯỜNG BẢO MẬT CHO
HỆ ĐIỀU HÀNH ANDROID TRÊN ĐIỆN THOẠI
Chương này trình bày một số giải pháp bảo mật cho hệ điều hành Android,các ứng dụng chạy trên hệ điều hành này đảm bảo an toàn và tránh rủi ro xảy ratrong quá trình sử dụng
Trang 10Chương 1:
HỆ THỐNG NHÚNG
1.1 TỔNG QUAN
1.1.1 Khái niệm
Trong thế giới thực của chúng ta bất kỳ một thiết bị hay hệ thống điện/điện
tử có khả năng xử lý thông tin và điều khiển đều có thể tiềm ẩn trong đó mộtthiết bị hay hệ thống nhúng, ví dụ như các thiết bị truyền thông, thiết bị đo lườngđiều khiển, các thiết bị phục vụ sinh hoạt hàng ngày như lò vi sóng, máy giặt,camera…Rất dễ dàng để có thể kể ra hàng loạt các thiết bị hay hệ thống như vậyđang tồn tại quanh ta Vậy hệ thống nhúng là gì và nên hiểu thế nào về hệ thốngnhúng? Hiện nay cũng chưa có một định nghĩa nào thực sự thoả đáng để đượcchuẩn hoá và thừa nhận rộng rãi cho hệ thống nhúng mà vẫn chỉ là những kháiniệm để diễn tả về chúng thông qua những đặc thù chung Tuy nhiên ở đâychúng ta có thể hiểu hệ thống nhúng là một phần hệ thống xử lý thông tin nhúngtrong các hệ thống lớn, phức tạp và độc lập ví dụ như trong ôtô, các thiết bị đolường, điều khiển, truyền thông và thiết bị thông minh nói chung
Hình 1.1.1 Một vài hình ảnh về hệ nhúng
Trang 11Hệ thống nhúng là một hệ thống máy tính, đó là một hệ thống được tíchhợp cả phần cứng và phần mềm phục vụ cho các bài toán chuyên dụng trongnhiều lĩnh vực công nghiệp, tự động hóa điều khiển, quan trắc và truyền thông
Các hệ thống nhúng bị giới hạn nhiều hơn về phần cứng và phần mềm sovới máy tính cá nhân Giới hạn phần cứng có thể bao gồm giới hạn về khả năng
xử lý, tiêu thụ điện năng, bộ nhớ, chức năng phần cứng,… Còn giới hạn phầnmềm thường liên quan đến việc hỗ trợ ít ứng dụng, ứng dụng bị thu gọn tínhnăng, hệ điều hành có nhiều hạn chế Tuy nhiên, ngày nay, những giới hạn này
đã được khắc phục đáng kể bằng các hệ thống nhúng được thiết kế phức tạp vàđầy đủ tính năng hơn
Hệ thống nhúng được thiết kế để thực hiện một chức năng chuyên biệt nào
đó Đây là điểm khác biệt so với các hệ thống máy tính khác như máy tính cánhân hoặc các siêu máy tính có thể thực hiện nhiều chức năng khác nhau vớinhững phép tính phức tạp Chuyên dụng giúp nâng cao tính dễ sử dụng và tiếtkiệm tài nguyên
Vài dòng thiết bị nhúng có những yêu cầu rất cao về chất lượng và độ tincậy Lỗi của hệ thống nhúng có thể gây ra tai nạn khủng khiếp: Hệ thống điềukhiển máy bay, tên lửa, hệ thống điều khiển động cơ ô tô…Lỗi trên hệ thốngnhúng có thể không sửa được (vd: vệ tinh nhân tạo), nếu sửa được thì chi phícũng rất cao
1.1.2 Kiến trúc hệ thống nhúng
Mỗi hệ thống nhúng đều có một kiến trúc tổng thể gồm 3 phần như sau:
Hardware: đây là thành phần bắt buột phải có cho tất cả các hệ thốngnhúng, nó gồm có:
+ Vi xử lý, bộ nhớ, tụ điện, điện trở, mạch tích hợp, bảng mạch in,connector …
Phần mềm hệ thống: Quản lý bộ nhớ, quản lý tiến trình, quản lý chia sẽtài nguyên, có thể tái sử dụng trên một hệ thống nhúng khác, nó gồm có:
Trang 12+ Device driver: UART, Ethernet, ADC…
+ Hệ điều hành nhúng: eCos, ucLinux, Monta Vista Linux, BIOS…
Phần mềm ứng dụng: Quyết định hành vi (chức năng) của một hệ thốngnhúng, khó tái sử dụng trên một hệ thống nhúng khác
Hình 1.1.2 Kiến trúc tổng thể của một hệ thống nhúng
1.1.3 Lĩnh vực ứng dụng của hệ nhúng
Chúng ta có thể kể ra được rất nhiều ứng dụng của hệ thống nhúng đangđược sử dụng hiện nay, và xu thế sẽ còn tiếp tục tăng nhanh Một số các lĩnh vực
và sản phẩm thị trường rộng lớn của các hệ nhúng có thể được nhóm như sau:
Các thiết bị điều khiển
Ô tô, tàu điện
Trang 131.1.5 Đặc điểm công nghệ và xu thế phát triển của hệ thống nhúng
1.1.5.1 Đặc điểm công nghệ
Các hệ thống nhúng đều có chung một số đặc điểm như yêu cầu về khảnăng thời gian thực, độ tin cậy, tính độc lập và hiệu quả Một câu hỏi đặt ra là tạisao hệ thống nhúng lại phát triển và được phổ cập một cách nhanh chóng nhưhiện nay Câu trả lời thực ra nằm ở các yêu cầu tăng lên không ngừng trong cácứng dụng công nghệ hiện nay Một trong những yêu cầu cơ bản đó là:
Trang 14Khả năng độc lập và thông minh hoá: Điều này được chỉ rõ hơn thông quamột số các thuộc tính yêu cầu, cụ thể như:
+ Hiệu quả về thời gian thực hiện
+ Kích thước và khối lượng
+ Giá thành
Phân hoạch tác vụ và chức năng hoá:
Các bộ vi xử lý trong các hệ nhúng thường được sử dụng để đảm nhiệm
và thực hiện một hoặc một nhóm chức năng rất độc lập và cũng đặc thù cho từngphần chức năng của hệ thống lớn mà nó được nhúng vào Ví dụ như một vi xử lýthực hiện một phần điều khiển cho một chức năng thu thập, xử lý và hiển thị củaôtô hay hệ thống điều khiển quá trính Khả năng này làm tăng thêm sự chuyênbiệt hoá về chức năng của một hệ thống lớn và dễ dàng hơn cho quá trính xâydựng, vận hành và bảo trì
Khả năng thời gian thực:
Các hệ thống đều gắn liền với việc đảm nhiệm một chức năng chính vàphải được thực hiện đúng theo một khung thời gian qui định Thông thường một
Trang 15chức năng của hệ thống phải được thực hiện và hoàn thành theo một yêu cầu thờigian định trước để đảm bảo thông tin cập nhật kịp thời cho phần xử lý của cácchức năng khác và có thể ảnh hưởng trực tiếp tới sự hoạt động đúng và chính xáccủa toàn hệ thống Tuỳ thuộc vào từng bài toán và yêu cầu của hệ thống mà yêucầu về khả năng thời gian thực cũng rất khác nhau.
Tuy nhiên, trong thực tế không phải hệ nhúng nào cũng đều có thể thoả mãntất cả những yêu cầu nêu trên, vì chúng là kết quả của sự thoả hiệp của nhiều yêucầu và điều kiện nhằm ưu tiên cho chức năng cụ thể mà chúng được thiết kế.Chính điều này lại càng làm tăng thêm tính chuyên biệt hoá của các hệ/thiết bịnhúng mà các thiết bị đa năng không thể cạnh tranh được
1.1.5.2 Xu thế phát triển của hệ thống nhúng
Vì sự phát triển hệ nhúng là sự kết hợp nhuần nhuyễn giữa phần cứng vàphần mềm nên công nghệ gắn liền với nó cũng chính là công nghệ kết hợp giữacác giải pháp cho phần cứng và mềm Vì tính chuyên biệt của các thiết bị/hệnhúng như đã giới thiệu nên các nền phần cứng cũng được chế tạo để ưu tiên đápứng cho chức năng hay nhiệm vụ cụ thể của yêu cầu thiết kế đặt ra
Lớp hệ nhúng ưu tiên phát triển theo tiêu chí về kích thước nhỏ gọn, tiêuthụ năng lượng ít, giá thành thấp
Lớp hệ nhúng ưu tiên thực thi khả năng xử lý tính toán với tốc độ thực hiệnnhanh
Lớp hệ thống ưu tiên cả hai tiêu chí phát triển của hai lớp trên, tức là kíchthước nhỏ gọn, mức tiêu thụ năng lượng thấp, tốc độ tính toán nhanh Đó cũng
là sự kết hợp đa dạng và sự ra đời của các hệ nhúng nói chung nhằm thoả mãncác ứng dụng phát triển không ngừng
Trong xu thế phát triển không ngừng và nhằm thoả mãn được nhu cầu pháttriển nhanh và hiệu quả có rất nhiều các công nghệ cho phép thực thi các giảipháp hệ nhúng Hiện nay cũng đã có nhiều nhà phát triển công nghệ phần mềmlớn đang hướng vào thị trường hệ nhúng bao gồm cả Microsoft Ngoài một số
Trang 16các hệ điều hành Windows quen thuộc dùng cho PC, Microsoft cũng đã tung ra các phiên bản mini như WindowsCE, WindowsXP Embedded và các công cụ
phát triển ứng dụng kèm theo để phục vụ cho các thiết bị nhúng, điển hình nhưcác thiết bị PDA, một số thiết bị điều khiển công nghiệp như các máy tínhnhúng, IPC của Siemens
Có thể nói hệ nhúng đã trở thành một giải pháp công nghệ và phát triển mộtcách nhanh chóng, hứa hẹn nhiều thiết bị nhúng sẽ chiếm lĩnh được thị trườngrộng lớn trong tương lai nhằm đáp ứng nhu cầu ứng dụng không ngừng trongcuộc sống của chúng ta Đối với lĩnh vực công nghiệp về điều khiển và tự độnghoá, hệ nhúng cũng là một giải pháp đầy tiềm năng đã và đang được ứng dụngrộng rãi Nó rất phù hợp để thực thi các chức năng thông minh hoá, chuyên biệttrong các hệ thống và thiết bị công nghiệp, từ các hệ thống tập trung đến các hệthống phân tán
1.2 HỆ ĐIỀU HÀNH NHÚNG
1.2.1 Tổng quan
Nguồn gốc ra đời của hệ điều hành là để đảm nhiệm vai trò trung gian đểtương tác trực tiếp với phần cứng của máy tính, phục vụ cho nhiều ứng dụng đadạng Các hệ điều hành cung cấp một tập các chức năng cần thiết để cho phépcác gói phần mềm điều khiển phần cứng máy tính mà không cần phải can thiệptrực tiếp sâu Điều này tạo ra một giao diện rất thuận lợi cho các ứng dụng vàngười sử dụng phát triển phần mềm trên các nền phần cứng đã có Đồng thờitránh được yêu cầu và hiểu biết sâu sắc về phần cứng và có thể phát triển dựatrên các ngôn ngữ bậc cao
Hệ điều hành bản chất cũng là một loại phần mềm nhưng nó khác với cácloại phần mềm thông thường Sự khác biệt điển hình là hệ điều hành được nạp vàthực thi đầu tiên khi hệ thống bắt đầu khởi động và được thực hiện trực tiếp bởi
bộ xử lý của hệ thống Hệ điều hành được viết để phục vụ điều khiển bộ xử lýcũng như các tài nguyên khác trong hệ thống bởi vì nó sẽ đảm nhiệm chức năngquản lý và lập lịch các quá trình sử dụng CPU và cùng chia sẻ tài nguyên
Trang 17Hình 1.2.1 Kiến trúc hệ điều hành
Tóm lại, hệ điều hành thực chất chính là một giao diện quan trọng, giao tiếptrực tiếp với tầng phần cứng cấp thấp phục vụ cho cả người sử dụng cũng nhưcác chương trình ứng dụng thực thi trên nền phần cứng hệ thống Hơn nữa hệđiều hành còn có vai trò quan trọng trong việc đảm nhiệm 3 tác vụ nguyên lýchính:
(1) Quản lý quá trình
(2) Quản lý tài nguyên
(3) Bảo vệ tài nguyên khỏi sự xâm phạm của các quá trình thực thi sai
1.2.2 Bộ nạp khởi tạo
Bộ nạp khởi tạo thực chất là một chương trình nhỏ thực hiện trong hệ thống
và đảm nhiệm chức năng cần thiết để đưa hệ điều hành vào hoạt động Chươngtrình này thường rất nhỏ gọn và đảm nhiệm chức năng tiền hoạt động của hệ điềuhành Trong các hệ nhúng, các lệnh được thực hiện đầu tiên thường nằm trongcác vùng nhớ ROM và thường thuộc loại chậm Dó đó, một trong những tác vụphổ biến của bộ nạp khởi tạo là sao chép chương trình ứng dụng chính (mainprogram) vào trong vùng bộ nhớ nhanh trước khi chúng được thực hiện
Bộ nạp khởi tạo cũng có nhiệm vụ khởi tạo vùng nhớ dữ liệu và các thanhghi hệ thống trước khi nhảy tới chương trình ứng dụng chính Cũng có rất nhiều
Trang 18dạng khác nhau của bộ nạp khởi tạo, từ dạng đơn giản đến phức tạp Dạng đơngiản nhất có thể chỉ là một lệnh nhảy tới chương trình ứng dụng chính ngay sau
khi reset mà không thực hiện bất kỳ một tác vụ khởi tạo hay nạp chương trình gì.
Chương trình ứng dụng chính sẽ phải tự thiết lập để thực thi tác vụ của mình.Các bộ nạp khởi tạo phức tạp hơn có thể thực hiện nhiệm vụ chuẩn đoán bộ nhớ
và khởi tạo hệ thống, kiểm tra chương trình và nạp chúng trước khi cho bộ xử lýnhảy tới thực hiện chương trình ứng dụng chính
Hình 1.2.2 Nguyên lý hoạt động của bộ nạp khởi tạo boot-loader Boot-loader cũng có nhiều dạng khác nhau Trong các trường hợp hệ thống
phức tạp hơn, bộ nạp khởi tạo có thể bao hàm cả tác vụ sao chép chương trình
chính vào trong vùng nhớ fast volatile trước khi nó được gọi và thực thi Bộ nạp
khởi tạo cũng có thể đảm nhiệm cả chức năng chuẩn đoán, gỡ rối và nâng cấp hệthống nếu có
Chức năng chuẩn đoán có thể chỉ là kiểm tra bộ nhớ, ngoại vi và độ tươngthích tích hợp trong hệ thống Chức năng gỡ rối cũng có thể là một giao diệngiám sát cung cấp thông tin và trạng thái thời gian thực về hệ thống mà người tavẫn thường biết tới với tên gọi là chương trình monitoring Việc nâng cấp hoặcthay đổi chương trình bộ nạp khởi tạo cũng có thể được thực thi nhờ khả năng
lập trình FLASH in-circuit và nạp từ bộ nhớ ngoài thông qua giao diện với trạm
chủ hoặc chức năng tương tự
Trang 191.2.3 Các yêu cầu chung
Như chúng ta đã được biết đối với các hệ thống thời gian thực, yêu cầu thiết
kế một hệ điều hành khá đặc biệt Hệ nhúng thời gian thực lại yêu cầu hệ điềuhành phải thực hiện với một nguồn tài nguyên thường rất hạn hẹp Mặc dù kích
thước bộ nhớ tích hợp on-chip sẽ có thể tăng lên trong tương lai nhưng với sự
phát triển hiện nay hệ điều hành cho các hệ nhúng chỉ nên cỡ khoảng nhỏ hơn 32Kbytes
Hệ điều hành đảm nhiệm việc điều khiển các chức năng cơ bản của hệthống bao gồm chủ yếu là quản lý bộ nhớ, ngoại vi và vào ra giao tiếp với hệthống phần cứng Một điểm khác biệt cơ bản như chúng ta đã biết về hệ điềuhành với các phần mềm khác là nó thực hiện chức năng điều khiển sự kiện thựcthi trong hệ thống Có nghĩa là nó thực hiện các tác vụ theo mệnh lệnh yêu cầu từcác chương trình ứng dụng, thiết bị vào ra và các sự kiện ngắt
Bốn nhân tố chính tác động trực tiếp tới quá trình thiết kế hệ điều hành là: (1) Khả năng thực hiện
(2) Năng lượng tiêu thụ
(3) Giá thành
(4) Khả năng tương thích
Hiện nay chúng ta cũng có thể bắt gặp rất nhiều hệ điều hành khác nhauđặc biệt cho các hệ nhúng cũng vì sự tác động của 4 nhân tố nêu trên Hầu hếtchúng đều có kiểu dạng và giao diện khá giống nhau nhưng cơ chế quản lý vàthực thi các tác vụ bên trong rất khác nhau Mỗi hệ điều hành được thiết kế phục
vụ trực tiếp các chức năng đặc thù phần cứng của hệ nhúng và không dễ dàng sosánh được giữa chúng với nhau
Hai thành phần chính trong thiết kế hệ điều hành là: phần hạt nhân (kernel)
và các chương trình hệ thống
Trang 20Hạt nhân chính là phần lõi của hệ điều hành Nó được sử dụng để phục vụcho các bộ quản lý quá trình, bộ lập lịch bộ quản lý tài nguyên và bộ quản lý vào
ra Phần hạt nhân đảm nhiệm chức năng lập lịch, đồng bộ và bảo vệ hệ thống bởiviệc sử dụng sai, xử lý ngắt…
Chức năng điều khiển chính của nó là phục vụ điều khiển phần cứng baogồm ngắt, các thanh ghi điều khiển, các từ trạng thái và các bộ định thời gian Nónạp các phần mềm điều khiển thiết bị để cung cấp các tiện ích chung và phối hợpvới các hoạt động vào ra với hệ thống Phần hạt nhân có vai trò điều khiển rấtquan trọng để đảm bảo tất cả các phần của hệ thống có thể làm việc ổn định vàthống nhất
Hai kiến trúc thiết kế phần hạt nhân kinh điển nhất là kiến trúc vi hạt nhân
và đơn hạt nhân (monolithic)
Các vi hạt nhân cung cấp các chức năng điều hành cơ bản cốt lõi (thô) theo
cơ chế các module tương đối độc lập đảm nhiệm các tác vụ cụ thể và chuyển rời
rất nhiều các dịch vụ điển hình điều hành hệ thống thực thi trong không gianngười sử dụng Nhờ cơ chế này mà các dịch vụ có thể được khởi tạo hoặc cấuhình lại mà không nhất thiết phải khởi tạo lại toàn bộ hệ thống
Kiến trúc vi hạt nhân cung cấp độ an toàn cao bởi vì dịch vụ hệ thống chạy
ở tầng người sử dụng với hạn chế về truy nhập vào tài nguyên của hệ thống và cóthể được giám sát Kiến trúc vi hạt nhân có thể được xây dựng một cách mềmdẻo để phù hợp với cấu hình phần cứng khác nhau một cách linh hoạt hơn so vớikiểu kiến trúc hạt nhân monolithic
Tuy nhiên do tính độc lập tương đối giữa các modul trong vi hạt nhân nên
cần thiết phải có một cơ chế trao đổi thông tin hay truyền thông giữa các modul
đó vì vậy có thể là lý do làm chậm tốc độ và giảm tính hiệu quả hoạt động của hệthống Đặc điểm nổi bật và cốt lõi của kiến trúc vi hạt nhân là kích thước nhỏ và
dễ dàng sửa đổi cũng như xây dựng linh hoạt hơn Các dịch vụ thực thi ở tầngtrên của hạt nhân vì vậy đạt được độ an toàn cao
Trang 21Kiến trúc vi hạt nhân được phát triển mạnh mẽ trong các hệ thống đa xử lý
ví dụ như Windows 2000, Mach và QNX
Kiểu kiến trúc monolithic cung cấp tất cả chức năng/dịch vụ chính yếu
thông qua một qua trình xử lý đơn lẻ Chính vì vậy kích thước của chúng thườnglớn hơn kiểu kiến trúc vi hạt nhân Loại hình kiến trúc này thường được áp dụng
chủ yếu cho các phần cứng cụ thể mà hạt nhân monolithic có sự tương tác trực
tiếp với phần cứng nhờ vậy mà khả năng tối ưu cũng dễ dàng hơn so với áp dụngkiểu kiến trúc vi hạt nhân Chính vì vậy cũng là lý do tại sao kiến trúc monolithickhông thể thay đổi mềm dẻo linh hoạt như kiểu vi hạt nhân
Ví dụ điển hình về loại hình kiến trúc hạt nhân monolithic bao gồm Linux,MacOS, và DOS
1.2.4 Hệ điều hành thời gian thực
Hệ điều hành thời gian thực là hệ điều hành hỗ trợ khả năng xây dựng các
hệ thống thời gian thực Hệ điều hành với phần lõi là hạt nhân phải đảm nhiệmcác tác vụ chính như sau:
Điều khiển ngoại vi
+ Xử lý ngắt+ Khởi tạo giao tiếp vào ra
Trang 22Hình 1.2.4a Cấu trúc hệ điều hành thời gian thực.
Tuỳ theo cơ chế thực hiện và xây dựng hoạt động của hạt nhân người taphân ra một số loại hình sau:
(1) Hệ thống thời gian thực nhỏ: Với loại này các phần mềm được pháttriển mà không cần có hệ điều hành, người lập trình phải tự quản lý và xử lý cácvấn đề về điều khiển hệ thống bao gồm:
+ Xử lý ngắt+ Điều khiển quá trình/ tác vụ+ Quản lý bộ nhớ
(2) Công nghệ đa nhiệm:
+ Mỗi quá trình có một không gian bộ nhớ riêng
+ Các quá trình phải được chia nhỏ thành các Thread cùng chia sẻ
không gian bộ nhớ
(3) Các dịch vụ cung cấp bởi hạt nhân:
+ Tạo và kết thúc quá trình/ tác vụ+ Các dịch vụ về định thời gian+ Một số các dịch vụ cung cấp hỗ trợ việc thực thi liên quan đếnđiều khiển hệ thống
Đặc điểm cơ bản của hạt nhân thời gian thực điển hình:
Kích thước nhỏ (lưu trữ toàn bộ trong ROM)
Hệ thống ngắt
Trang 23Không nhất thiết phải có các cơ chế bảo vệ:
+ Chỉ hỗ trợ phần kiểm tra chương trình ứng dụng+ Tăng tốc độ chuyển ngữ cảnh và truyền thông giữa các quá trình+ Khi các quá trình ứng dụng đang thực hiện thì các yêu cầu hệthống điều hành có thể được thực hiện thông qua các lời gọi hàm thay vì sử dụng
cơ chế ngắt mềm
Vi hạt nhân (Micro-kernel): Bao gồm một tập nhỏ các dịch vụ hỗ trợ
Quản lý quá trình
Các dịch vụ truyền thông giữa các quá trình nếu cần
Các phần mềm điều khiển thiết bị là các quá trình ứng dụng
Các kiểu loại hạt nhân cơ bản:
Hạt nhân thực hiện vòng lặp thăm dò
Hạt nhân thực hiện theo cơ chế ngắt
Hạt nhân quá trình vận hành quá trình
Việc lựa chọn loại hạt nhân nào hoàn toàn tùy thuộc vào các bộ xử lý vàkích thước phần mềm, tuy nhiên riêng loại hạt nhân vận hành theo quá trìnhkhông phù hợp với các bộ xử lý nhỏ
Hạt nhân quá trình:
Các hạt nhân quá trình rõ ràng là phức tạp hơn các hạt nhân thực hiệntheo cơ chế thăm dò và điều khiển ngắt Các đường truyền tín hiệu logic bêntrong các quá trình và các dịch vụ ngắt được tích hợp và thực hiện thông quaviệc truyền dữ liệu
Hình 1.2.4b Mô hình trạng thái của quá trình.
Trang 24Hạt nhân sẽ phải đảm nhiệm chức năng lập lịch cho các quá trình theo đúng
mô hình trạng thái
+ RUN: quá trình được thực hiện
+ WAIT: các quá trình chờ một sự kiện hoặc tín hiệu vào ra kích hoạt quátrình
+ READY: các quá trình sẵn sàng được thực hiện
Các phần tử thuộc tính của một quá trình: Các phần tử này cần thiết đểphục vụ cho việc lập lịch Ví dụ đối với cơ chế lập lịch theo mức độ ưu tiên sẽyêu cầu thông tin sau với mỗi quá trình:
+ Tên (địa chỉ bộ nhớ của phần tử quá trình)+ Trạng thái: RUN, WAIT, READY
+ Mức độ ưu tiên+ Ngữ cảnh
1.2.5 Ưu điểm của hệ điều hành nhúng với hệ điều hành thông thường
Đặc điểm của các hệ điều hành nhúng là hoạt động ổn định và có tínhnăng tự động hoá cao Hệ điều hành nhúng thường được thiết kế để thực hiệnmột chức năng chuyên biệt nào đó
Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một
hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đikèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứngchuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung
Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất
Xét về độ phức tạp, hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết bị ngoại vi và mạng lưới đượcnằm gọn trong một lớp vỏ máy lớn
Trang 25 Một số tính năng của hệ thống nhúng so với hệ thống trên PC
Hệ điều hành nhúng Hệ điều hành thông thường
1.3 Tìm hiểu một số hệ điều hành nhúng cơ bản
Khác với PC thường chạy trên nền hệ điều hành Windows hoặc Unix, các
hệ thống nhúng có các hệ điều hành nhúng riêng của mình Các hệ điều hànhdùng trong các hệ nhúng nổi trội hiện nay bao gồm Windows CE, Windows XPEmbedded, Embedded linux, Lynyos, BSD, Green Hills, QNX và DOS…
1.3.1 Trên hệ điều hành Windows
1.3.1.1 Windows CE
Đặc điểm: Windows CE, là tên của một hệ điều hành thuộc Microsoft.Đây là một hệ điều hành mã nguồn mở 32 bit, được sử dụng cho các hệ thốngnhúng Nó nhỏ gọn, có hiệu suất cao trong các cấu hình bộ nhớ hạn chế, hỗ trợmột loạt các nhúng, điện thoại di động hay dòng sản phẩm đa phương tiện Nóđược sử dụng cho các thiết bị thông minh như các vi điều khiển dùng trong côngnghiệp, các thiết bị đầu cuối trong tiêu dùng như camera, điện thoại di động, cácthiết bị giải trí gia đình
- Ưu điểm:
+ Chi phí thấp, công cụ phát triển quen thuộc: Các công cụ phát triển đầu
tiên dành cho hệ điều hành chính: Platform Builder, Platform Builder chứa tất cảcác trình biên dịch chéo, lắp ráp, công cụ gỡ lỗi từ xa, bộ tải khởi động, điều
Trang 26khiển thiết bị mẫu (bàn phím, màn hình LCD, nối tiếp, hồng ngoại, màn hìnhcảm ứng…), các nền tảng mẫu, và các thành phần hệ điều hành
+ Khả năng mở rộng, đầy đủ tính năng hệ điều hành: Windows CE có thểđược tùy chỉnh cho một sản phẩm bằng cách chọn từ một tập các module phầnmềm có sẵn Ngoài ra, một số các mô-đun componentizable, có nghĩa là bạn cóthể tuỳ chỉnh các mô-đun bằng cách chọn từ một tập hợp các thành phần có sẵncho module đó Bởi vì hệ điều hành Windows CE là từng phần, bạn có thể thiết
kế hệ thống nhúng vào các nền tảng sử dụng các thiết lập tối thiểu của cácmodule phần mềm và các thành phần cần thiết để hỗ trợ các yêu cầu hệ thốngcủa nền tảng Điều này giảm thiểu bộ nhớ và tối đa hóa hiệu suất của hệ điềuhành Windows CE quy mô từ một hạt nhân với một hệ điều hành đầy đủ tínhnăng với mạng lưới và GUI
+ Hỗ trợ thiết bị mở rộng: Windows CE trực tiếp hỗ trợ nhiều loại thiết bịngoại vi và các thiết bị phần cứng, chẳng hạn như bàn phím, thiết bị chuột, mànhình cảm ứng, cổng nối tiếp, Ethernet, modem, thiết bị USB, các thiết bị âmthanh, cổng song song, các thiết bị máy in, và thiết bị lưu trữ (ATA hoặc phươngtiện truyền thông flash)
+ Hỗ trợ nhiều bộ vi xử lý: Hiện nay các kiến trúc vi xử lý hỗ trợ bao gồm:NEC, Philips, Toshiba MIPS 39xx và 4xxx, Motorola PowerPC 821, 823, 850,
860, Hitachi SH3 và SH4, Intel 486 và Pentium (và tương đương: AMD, Cyrix,SGS Thomson) , ARM, và Intel X-Scale Nhiều sự lựa chọn cho phép các OEMchọn kiến trúc có giá tốt nhất / hiệu quả cho ứng dụng cụ thể của họ
- Nhược điểm :
+ Mã nguồn: Microsoft cung cấp cho các nhà phát triển một phần của mã
nguồn Windows CE, cũng như các công cụ phát triển để sửa đổi hệ điều hànhvới mục đích cụ thể Windows CE vẫn được coi là một hệ thống hoàn toàn đóngcửa, tuy nhiên điều này có thể là một bất lợi lớn nếu mức độ tuỳ biến vượt xanhững gì được cung cấp trong gói phần mềm phát triển Linux là một lựa chọnphổ biến cho một sự thay thế nếu tình hình này xảy ra
Trang 27+ Giá thành cao: Windows CE tốn kém so với tùy chọn hệ thống nhúngkhác Phát triển gói công cụ của nó là $ 995, và thời gian chạy giấy phép là 3 $mỗi lõi và 16 $ cho mỗi chuyên nghiệp Phát triển một nhà điều hành trong hệthống nhúng có thể được ít tốn kém hơn so với Windows CE, tùy thuộc vào mức
độ sản xuất của các thiết bị có hệ điều hành sẽ được sử dụng trên
+ Hệ thống hạn chế: Các nền tảng Windows CE cung cấp hạn chế đáng kểkhi nói đến giới hạn quy trình và bộ nhớ Có giới hạn là 32 quá trình đồng thời
Ngoài ra còn có một giới hạn 32 MB không gian ảo cho mỗi ứng dụng Điều này
chỉ áp dụng đối với Windows CE 5.0 và trước đó, Windows CE 6.0 không còn
có những hạn chế này
1.3.1.2 Windows XP Embedded
Đặc điểm: Windows XP Embedded là một phiên bản từng phần của
Windows XP Professional có chứa tất cả các tính năng, chức năng, và sự quenthuộc của Windows XP Professional Windows XP Embedded cho phép bạnnhanh chóng phát triển đáng tin cậy và đầy đủ tính năng thiết bị kết nối Bằngcách hỗ trợ phần cứng và phần mềm tiêu chuẩn, Windows XP Embedded làmcho nó dễ dàng hơn và ít tốn kém cho bạn để xây dựng một hình ảnh thời gianchạy
Hình 1.3.1.2 Mối quan hệ của Windows XP Professional và Windows XP
Embedded
XPe được dựa trên những chương trình tương tự như XP Pro, nhưng XPeđược tiếp thị theo hướng phát triển cho các OEM (nhà sản xuất thiết bị gốc), cácISV (nhà cung cấp phần mềm độc lập) và IHVs (nhà cung cấp phần cứng độc
Trang 28lập) mà muốn đầy đủ Win32 API hỗ trợ của Windows nhưng không có chi phícủa các chuyên nghiệp Nó chạy các ứng dụng Windows hiện tại và điều khiểnthiết bị ngoài sẵn có trên các thiết bị với kỹ thuật thấp hơn so với những gìchuyên nghiệp đòi hỏi
Các thiết bị nhắm mục tiêu cho XPe đã bao gồm các máy ATM, máy khe,tính tiền, máy arcade, robot công nghiệp, máy trạm mỏng, đồng hồ thời gian…tùy phiên bản của hệ điều hành có thể được triển khai vào bất cứ điều gì, nhưngmột máy tính hoàn chỉnh, thậm chí mặc dù XPe hỗ trợ các phần cứng tương tựnhư XP Pro hỗ trợ (kiến trúc x86), cấp giấy phép hạn chế ngăn cản bạn từ việctriển khai nó vào máy tính để bàn tiêu chuẩn / máy tính xách tay
- Ưu điểm:
+ Windows XP Embedded được xây dựng trên cơ sở mã khi đã được chứngminh của Windows XP, có tính năng một kiến trúc tính toán 32-bit và bộ nhớmột mô hình bảo vệ đầy đủ Windows XP Embedded cho phép các nhà phát triển
sử dụng công nghệ mới nhất trên nền Windows cung cấp
+ Phát triển nhúng có thể tận dụng lợi thế của tất cả các tính năng tuyệt vời
có sẵn trong Windows XP chẳng hạn như khả năng đa phương tiện Tính năngbao gồm Universal Serial Bus (USB) và Internet Explorer 6.0
+ Windows XP Embedded cũng bao gồm các tính năng cho phép nhúng,chẳng hạn như khởi động linh hoạt và lưu trữ Options, và Enhanced Write Filter
Hỗ trợ giao thức mạng toàn diện bao gồm Hiệp hội dữ liệu hồng ngoại (IrDA).+ Windows XP Embedded bao gồm một bộ công cụ hoàn toàn được thiết kếlại cho phép các thiết bị dựa trên Windows XP Embedded được đưa ra thị trườngnhanh hơn Các Windows mới nhúng Studio streamlines quá trình phát triển đầucuối đến đầu cuối cho phép phát triển nhanh chóng cấu hình, xây dựng và triểnkhai thiết kế thông minh với các ứng dụng phong phú
- Nhược điểm
+ Sử dụng bản cập nhật bảo mật chỉ được cung cấp bởi Microsoft
Trang 29+ Không cung cấp bản vá lỗi quét.
+ Hệ thống nặng: Mặc dù yêu cầu hệ thống của XPe không cao (128 MBRAM, 20GB ổ cứng không gian, bộ xử lý 500MHz), Microsoft khuyến cáo hailần những con số này để chạy hệ thống Trong thực tế, hệ thống này là vụng về
và dễ bị xâm nhập Những yêu cầu này là cao đối với một hệ thống mà dành cho
một hoạt động cá nhân
+ Windows API là dễ bị tổn thương: Không giống như hệ điều hànhMacintosh và các bản phân phối Linux khác nhau, Windows là rất dễ bị virus và
phần mềm độc hại Các API Windows (chương trình ứng dụng) đã được phát
triển trên một khung xây dựng và vá lỗi Hệ thống này dựa vào phần mềm chốngvirus để bắt các phần mềm tấn công lỗ hổng của nó trong khi các lỗ hổng không
cố định Từ năm 2001 Microsoft đã tiếp tục phát hành các gói dịch vụ mà cố
gắng để cắm lỗ hổng bảo mật, nhưng trách nhiệm sâu sắc hơn về các API vẫncòn
1.3.2 Trên hệ điều hành Linux
1.3.2.1 Embedded Linux
Do thị trường của các sản phẩm nhúng tăng mạnh nên các nhà sản xuấtngày càng sử dụng các hệ điều hành nhúng để bảo đảm sản phẩm có sức cạnhtranh và Embedded Linux đang là sản phẩm hệ điều hành nhúng có uy tín chiếm
vị trí hàng đầu
Trang 30Hình 1.3.2.1a Một số sản phẩm ứng dụng công nghệ Embedded Linux
Cách đây 10 năm, Embedded Linux là một ý tưởng gây ngạc nhiên đối vớimọi người Những năm sau đó, Embedded Linux được phát triển bởi nhiều phiên
bản khác nhau như bản DIY (do-it-yourself), MontaVista, WindRiver…
Số lượng công ty sử dụng các phiên bản của embedded Linux vẫn tiếp tụctăng nhanh Các hãng lớn như Motorola, NEC, Panasonic áp dụng thành côngphiên bản MontaVista Linux trên hàng triệu sản phẩm điện thoại di động
Theo thống kê của hãng Embedded System Design, trong năm vừa qua, thì
có 21% trong tổng số các nhà phát triển sử dụng embeddedLinux.Trong năm naythì con số là 36,7% (theo Embedded Market Forecasters)
Hiện nay, Embedded Linux đang phát triển mạnh và chiếm vị trí số 1.Hiện nay 40% các nhà thiết kế các hệ nhúng cân nhắc đầu tiên sử dụngEmbedded Linux cho các ứng dụng mới của mình và sau đó mới đến các hệ điềuhành nhúng truyền thống như Win CE
Trang 31+ Giao diện Hệ Điều Hành gọn nhẹ (Portable Operation System Interface)+ Khả năng xử lí mạnh: Hiệu suất thực thi cao, nhanh, tần suất thất bạithấp, chạy ổn định, hỗ trợ nhiều tập công cụ và tiện ích, khả năng làm việc vớimạng cao.
+ Hỗ trợ đa dạng phần cứng: từ 1 đến nhiều vi xử lí, từ các hệ thống đơngiản đến phức tạp, hỗ trợ đầy đủ khả năng tùy biến người dùng trong tất cả cácthành phần của nó
+ Embedded Linux thiếu một chuẩn thống nhất và không phải là sản phẩmcủa một nhà cung cấp duy nhất nên khả năng hỗ trợ kỹ thuật ít
Hình 1.3.2.1b Embedded Linux
Trang 33RT-Linux dựa trên Linux để khởi động, điều khiển thiết bị mạng, file hệthống, kiểm soát quá trình Linux, và cho các mô-đun hạt nhân thể nạp được sửdụng để làm cho mở rộng hệ thống thời gian thực và dễ dàng chỉnh sửa
Thực tế là RTLinux là một sản phẩm tốt, tuy nhiên, sử dụng rộng rãi chocác sản phẩm nhạy cảm trong lĩnh vực viễn thông và các ứng dụng quân sự Giaodiện chương trình khá đơn giản và có thể phát triển các nhiệm vụ thời gian thựcchính xác RTLinux cung cấp hệ thống truyền thông FIFO hoặc bộ nhớ chia sẻgiữa các nhiệm vụ thời gian thực và không gian người sử dụng trong các ứngdụng đang chạy bình thường
+ Tính di động cao hơn, và phát triển nhanh hơn
+ Cải thiện hiệu suất lịch trình,
+ Điều khiển Kit, một hệ thống dựa trên XML cho đơn giản, hội nhập, lọc
kỹ thuật số
+ Mở rộng POSIX hỗ trợ, bao gồm cả chia sẻ bộ nhớ với phát triển kiếnthức
Trang 34+ Hỗ trợ đặt tên tùy tiện thời gian thực.
1.3.2.4 Android
Android là hệ điều hành trên điện thoại di động phát triển bởi Google vàdựa trên nền tảng Linux Trước đây, Android được phát triển bởi công ty liênhợp Android ( sau đó được Google mua lại vào năm 2005)
Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụngcho hệ điều hành của mình Hiện tại có khoảng 70,000 ứng dụng cho Android os
và vào khoảng 100,000 ứng dụng đã được đệ trình, điều này khiến Android trởthành hệ điều hành di động có môi trường phát triển lớn thứ 2 Các nhà phát triểnviết ứng dụng cho Android dựa trên ngôn ngữ Java
Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thànhlập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng,phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại diđộng trong tương lai
Google công bố hầu hết các mã nguồn của Android theo bản cấp phépApache Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML,2.8 triệu dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C++
Hình 1.3.2.4 Android
Trang 351.3.3 Khả năng ứng dụng và triển khai lập trình trên hệ điều hành nhúng 1.3.3.1 Khả năng ứng dụng
Các hệ điều hành nhúng rất đa dạng và có nhiều kích cỡ, khả năng tínhtoán khác nhau Ví dụ đối với một bộ điều khiển từ xa chỉ cần tới độ tính toán
100 KIPS và bộ nhớ vài KB, đối với thiết bị điều khiển cần tốc độ 1MIPS, 1MB
bộ nhớ và đối với các hệ nhúng quân sự tốc độ xử lý có thể lên đến 1GIPS, tốc
độ truyền 1GB/sec và 32 MB bộ nhớ
Ngoài ra các hệ điều hành nhúng thường phải hoạt động trong môi trườngkhắc nghiệt có độ nóng ẩm, rung xóc cao Ví dụ các hệ điều khiển các máydiesel cho tàu biển, các thiết bị cảnh báo cháy nổ trong hầm lò
Xu hướng phát triển của các hệ thống nhúng hiện nay là:
- Phần mềm ngày càng chiếm tỷ trọng cao và đã trở thành một thành phầncấu tạo nên thiết bị bình đẳng như các phần cơ khí, linh kiện điện tử, linh kiệnquang học…
- Các hệ nhúng ngày càng phức tạp hơn đáp ứng các yêu cầu khắt khe vềthời gian thực, tiêu ít năng lượng và hoạt động tin cậy ổn định hơn
- Các hệ nhúng ngày càng có độ mềm dẻo cao đáp ứng các yêu cầu nhanhchóng đưa sản phẩm ra thương trường, có khả năng bảo trì từ xa, có tính cá nhâncao
- Các hệ nhúng ngày càng có khả năng hội thoại cao, có khả năng kết nốimạng và hội thoại được với các đầu đo cơ cấu chấp hành và với người sử dụng,
- Các hệ nhúng ngày càng có tính thích nghi, tự tổ chức cao có khả năng táicấu hình như một thực thể, một tác nhân
- Các hệ nhúng ngày càng có khả năng tiếp nhận năng lượng từ nhiều nguồnkhác nhau (ánh sáng, rung động, điện từ trường, sinh học….) để tạo nên các hệthống tự tiếp nhận năng lượng trong quá trình hoạt động
Trang 361.3.3.2 Triển khai lập trình trên hệ điều hành nhúng
Tương tự như các sản phẩm phần mềm khác, phần mềm hệ thống nhúngcũng được phát triển nhờ việc sử dụng các trình biên dịch (compilers), chươngtrình dịch hợp ngữ (assembler) hoặc các công cụ gỡ rối (debuggers) Tuy nhiên,các nhà thiết kế hệ thống nhúng có thể sử dụng một số công cụ chuyên dụngnhư:
• Bộ gỡ rối mạch hoặc các chương trình mô phỏng (emulator)
• Tiện ích để thêm các giá trị checksum hoặc CRC vào chương trình, giúp
hệ thống nhúng có thể kiểm tra tính hợp lệ của chương trình đó
• Đối với các hệ thống xử lý tín hiệu số, người phát triển hệ thống có thể sửdụng phần mềm workbench như MathCad hoặc Mathematica để mô phỏng cácphép toán
• Các trình biên dịch và trình liên kết (linker) chuyên dụng được sử dụng đểtối ưu hóa một thiết bị phần cứng
• Một hệ thống nhúng có thể có ngôn ngữ lập trình và công cụ thiết kế riêngcủa nó hoặc sử dụng và cải tiến từ một ngôn ngữ đã có sẵn
Các công cụ phần mềm có thể được tạo ra bởi các công ty phần mềmchuyên dụng về hệ thống nhúng hoặc chuyển đổi từ các công cụ phát triển phầnmềm GNU Đôi khi, các công cụ phát triển dành cho máy tính cá nhân cũngđược sử dụng nếu bộ xử lý của hệ thống nhúng đó gần giống với bộ xử lý củamột máy PC thông dụng
Các ngôn ngữ được dùng trong lập trình cho hệ điều hành nhúng gồm cóJava,C+ +, ASM, Fortran, Cobol, Lisp
Các hệ điều hành nhúng hoạt động ổn định, tự động hoá cao, độc lập vàbảo mật
Trang 371.4 KẾT CHƯƠNG
Nội dung chương này trình bày một số khái niệm về hệ nhúng, và vấn đềliên quan Giúp ta hiểu được đặc điểm công nghệ và các ứng dụng của nó trongthực tế Đồng thời tìm hiểu một số hệ điều hành nhúng trên Windows, Linux…đưa ra những khái niệm, ưu nhược điểm của mỗi hệ điều hành, xu hướng pháttriển Từ cái nhìn tổng quan về hệ điều hành nhúng đó sẽ chọn một hệ điều hànhđặc biệt để nghiên cứu sâu hơn trong chương tiếp, cụ thể là hệ điều hànhAndroid
Trang 38Chương 2:
HỆ ĐIỀU HÀNH ANDROID
2.1 GIỚI THIỆU CHUNG
Android Application Framework là một gói phần mềm dạng ngănxếp dành cho các thiết bị di động, gồm một hệ điều hành(Linux), phần tiện ích và các ứng dụng chính Các ứng dụngđược viết bằng ngôn ngữ lập trình Java và chạy trên Dalvik, mộtmáy ảo thông thường được thiết kế dành cho thiết bị nhúng thựcthi trên nhân Linux
Android là một hệ điều hành di động dựa trên nền tảnglinux phiên bản 2.6 dành cho các dòng điện thoại SmartPhone.Đầu tiên được ra đời bởi công ty liên hợp Android, sau đó đượcGoogle mua lại và phát triển từ năm 2005 và trở thành một hệđiều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưachuộng cao trên thế giới
Trang 39Năm 2008, hệ điều hành android đã chính thức mở toàn bộ
mã nguồn, điều đó cho phép các hãng điện thoại có thể đem mãnguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu
mã điện thoại của họ và điều quan trọng nữa là hệ điều hành
mở này hoàn toàn miễn phí, không phải trả tiền nên giúp họ tiếtkiệm khá lớn chi phí phát triển hệ điều hành Những điều đó làcực kỳ tốt không chỉ đối với các hãng sản xuất điện thoại nhỏ
mà ngay cả với những hãng lớn như Samsung, HTC
Android liên tục được phát triển, mỗi bản cập nhật từgoogle là mỗi lần android được tối ưu hóa để hoạt động tốt hơn,nhanh và ổn định hơn, hỗ trợ thêm công nghệ mới Chẳng hạnnhư theo một đánh giá thì android phiên bản 2.2 hoạt độngnhanh hơn bản 2.1 tới 450% Hiện nay, phiên bản mới nhất 2.3phát hành ngày 6/12/2010 và đang tiếp tục được cập nhật
Với Google, vì android hoàn toàn miễn phí, Google khôngthu tiền từ những hãng sản xuất điện thoại, tuy không trực tiếphưởng lợi từ android nhưng bù lại, những dịch vụ của hãng nhưGoogle Search, Google Maps, nhờ có android mà có thể dễdàng xâm nhập nhanh vào thị trường di động vì mỗi chiếc điệnthoại được sản xuất ra đều được tích hợp hàng loạt dịch vụ củaGoogle Từ đó hãng có thể kiếm bội, chủ yếu là từ các nguồnquảng cáo trên các dịch vụ đó
Với các nhà phát triển ứng dụng (developers), việc hệ điềuhành android được sử dụng phổ biến đồng nghĩa với việc họ cóthể thoải mái phát triển ứng dụng trên nền android với sự tintưởng là ứng dụng đó sẽ có thể chạy được ngay trên nhiều dòngđiện thoại của các hãng khác nhau Họ ít phải quan tâm là đangphát triển cho điện thoại nào, phiên bản bao nhiêu vì nền tảngandroid là chung cho nhiều dòng máy, máy ảo Java đã chịutrách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện
Trang 40thoại mà nó đang chạy Tất cả các chương trình ứng dụng đượcviết bằng ngôn ngữ Java kết hợp với XML nên có khả năng khảchuyển cao
Hệ điều hành android là một hệ điều hành rất mạnh, cóbảo mật cao, hỗ trợ được nhiều công nghệ tiên tiến như 3G,GPS, Wifi tương thích với nhiều phần cứng, hỗ trợ nhiều loại bộnhập dữ liệu như keyboard, touch
Android là hệ điều hành di động nên có khả năng kết nốicao với các mạng không dây Hỗ trợ công nghệ OpenGL nên cókhả năng chơi các phương tiện media, hoạt hình cũng như trìnhdiễn các khả năng đồ họa khác cực tốt, là tiền đề để phát triểncác ứng dụng có giao diện phức tạp chẳng hạn như là các tròchơi
Một số hãng sản xuất điện thoại có sử dụng hệ điều hànhandroid tiêu biểu:
HTC , LG, MOTOROLA, SAMSUNG, ACER…
2.2 TÍNH NĂNG ƯU VIỆT CỦA ANDROID
Cùng với sự phong phú về chủng loại, cấu hình và giá thành, điện thoạiAndroid đã trở nên phổ biến và xâm nhập ngày càng sâu rộng tới người sử dụngtrên thế giới Sau đây là một vài tính năng ưu việt giúp cho hệ điều hành Androidđược sử dụng phổ biến vậy
Mã nguồn mở: Khi mới bắt đầu sử dụng hệ điều hành này mọi ngườithường thấy rất khó khăn nhưng chỉ cần bỏ chút thời gian mày mò là họ có thểquen và thấy thích hệ điều hành này Sở dĩ Android được người dùng ưa chuộngnhất có lẽ vì chúng được tạo nên từ nền tảng nguồn mở nên cho phép người dùng
có thể tùy biến nhiều trên đó Mặt khác, với Android thiết bị người dùng khôngđòi hỏi phải có một cầu hình tối thiểu nào cả Chúng có thể hoạt động trên mọi