Luận văn, khóa luận, chuyên đề, tiểu luận, quản trị, khoa học, tự nhiên, kinh tế
Trang 1KHOA CNTT –
ĐH KHTN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG MÁY TÍNH & VT
Trang 2KHOA CNTT –
ĐH KHTN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG MÁY TÍNH & VT
LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN Thạc sĩ ĐỖ HOÀNG CƯỜNG
NIÊN KHÓA 2000 - 2004
Trang 3em học tập và thực hiện luận văn tốt nghiệp này
Chúng em xin chân thành cảm ơn Thầy Đỗ Hoàng Cường đã tận tình hướng dẫn, chỉ bảo chúng em trong thời gian thực hiện đề tài
Chúng em cũng xin chân thành cảm ơn các anh chị, bạn bè đã động viên, giúp đỡ chúng em vượt qua những khó khăn trong quá trình thực hiện đề tài cũng như trong suốt những năm học vừa qua
Mặc dù chúng em đã cố gắng hoàn thành luận văn với tất cả sự nỗ lực của bản thân, nhưng luận văn chắc chắn không tránh khỏi những thiếu sót nhất định, kính mong sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn
Tháng 7 / 2004 Khắc Hưng&Hồng Duyên
Trang 4KHOA CNTT –
ĐH KHTN
MỤC LỤC
Trang
Danh sách các bảng 7
Danh sách các hình 7
Tóm tắt 10
Chương mở đầu 11
1 Dẫn nhập 11
2 Hướng nghiên cứu và giới hạn đề tài 12
3 Mục tiêu của đề tài 13
Phần 1 Tổng quan về hệ điều hành Symbian Chương 1 Hệ điều hành Symbian 15
1.1 Hệ điều hành cho thiết bị WID 16
1.1.1 Đặc điểm của hệ điều hành cho thiết bị WID 16
1.1.2 Các hệ điều hành cho thiết bị WID 17
1.1.3 Symbian – Hệ điều hành hàng đầu cho thiết bị WID 18
1.2 Lịch sử hệ điều hành Symbian 19
1.3 Các dòng điện thoại Symbian 22
1.4 Các thành phần phần cứng chính trong điện thoại Symbian 24
1.5 Tương lai Symbian 26
Chương 2 Cấu trúc hệ thống hệ điều hành Symbian 28
2.1 Cấu trúc hệ điều hành và phần mềm ứng dụng 29
2.1.1 Nhân và E32 31
2.1.2 Hệ thống con và API 34
2.2 Cấu trúc truyền thông 36
2.3 Tiến trình và tiểu trình trong Symbian 39
2.3.1 Tiến trình 39
2.3.2 Tiểu trình 39
2.3.3 Tiến trình và tiểu trình nhân 39
Trang 5KHOA CNTT –
ĐH KHTN
2.3.4 Quản lý và điều phối tiến trình 40
2.4 Chương trình hoạt động trên Symbian 40
2.4.1 File thực thi 40
2.4.2 Nạp chương trình khi thực thi 42
2.4.3 Thực thi ứng dụng và server 42
2.5 Quản lý bộ nhớ 43
2.6 Quản lý nguồn năng lượng 46
2.7 Quản lý thời gian 46
2.8 An toàn hệ thống 47
Phần 2 Phát triển ứng dụng đồ họa cho hệ điều hành Symbian Chương 3 Công cụ và môi trường phát triển ứng dụng 50
3.1 Chọn thiết bị 51
3.1.1 Ngôn ngữ lập trình 51
3.1.2 Chọn điện thoại 52
3.2 Nền hệ thống và các bộ SDK tương ứng 57
3.2.1 Hệ thống giao diện người dùng 57
3.2.2 Nền hệ thống 58
3.2.3 Bộ công cụ phát triển Symbian SDK 59
3.2.3.1 Symbian SDK 59
3.2.3.2 Các bộ SDK 60
3.3 Công cụ phát triển ứng dụng 62
3.3.1 Công cụ tạo dự án ứng dụng mới 62
3.3.2 Công cụ biên dịch 63
3.4 Môi trường phát triển tích hợp 64
3.4.1 MS Visual C++ 6.0 64
3.4.2 Borland C++ Builder 6.0 Nokia Edition & C++ BuilderX 64
3.4.3 Metrowerks CodeWarrior 65
Trang 6KHOA CNTT –
ĐH KHTN
Chương 4 Xây dựng ứng dụng Symbian mới 67
4.1 Ứng dụng đồ họa 68
4.1.1 Phân loại 68
4.1.2 Cấu trúc ứng dụng đồ họa 69
4.1.3 Định danh ứng dụng 71
4.2 File dự án 73
4.2.1 File định nghĩa dự án mmp 73
4.2.2 File mô tả thành phần bld.inf .76
4.3 Xây dựng dự án ứng dụng mới 77
4.3.1 Công cụ 78
4.3.2 IDE .79
4.4 Dự án mẫu HelloWorld được tạo bằng IDE CodeWarrior 82
4.4.1 Xây dựng dự án ứng dụng HelloWorld 82
4.4.2 Cấu trúc các lớp chương trình ứng dụng HelloWorld 84
4.4.2.1 Mã khởi tạo hoạt động ứng dụng đồ họa 84
4.4.2.2 Lớp ứng dụng 85
4.4.2.3 Lớp tài liệu 86
4.4.2.4 Lớp giao diện ứng dụng 86
4.4.2.5 Lớp khung nhìn ứng dụng 88
Chương 5 Lập trình C++ cho ứng dụng Symbian 90
5.1 Chuỗi và descriptor 91
5.1.1 Các loại descriptor 91
5.1.2 Sử dụng descriptor 94
5.2 Quản lý lỗi và cơ chế cleanup stack 95
5.2.1 Lỗi lập trình 95
5.2.2 Lỗi môi trường 95
5.2.3 Quản lý bộ nhớ và cơ chế cleanup stack 98
5.3 Quản lý sự kiện 104
5.3.1 Quản lý sự kiện trong ứng dụng Symbian 104
Trang 7KHOA CNTT –
ĐH KHTN
5.3.2 Quản lý sự kiện với active object 105
5.4 Stream và store 106
5.4.1 Stream 106
5.4.2 Store 109
5.5 Lập trình đồ họa 112
5.5.1 Kiến trúc đồ họa 112
5.5.2 File tài nguyên 113
5.5.3 Các điều khiển trong ứng dụng đồ họa 114
5.6 Quy ước đặt tên trong Symbian 117
5.6.1 Tên lớp 117
5.6.2 Tên dữ liệu 118
5.6.3 Tên hàm 119
5.6.3 Cấu trúc thư mục dự án 119
5.7 Xây dựng ứng dụng độc lập thiết bị 119
Chương 6 Kiểm lỗi, biên dịch và triển khai ứng dụng Symbian 126
6.1 Giả lập điện thoại Symbian trên PC 127
6.2 Kiểm lỗi 132
6.2.1 Kiểm lỗi trên Emulator 132
6.2.2 Kiểm lỗi trên điện thoại Symbian 133
6.2.3 Một số mã lỗi thông dụng trong Symbian 135
6.3 Biên dịch chương trình 137
6.3.1 Các loại biên dịch 137
6.3.2 Biên dịch ứng dụng đồ họa 139
6.3.2.1 File AIF 139
6.3.2.2 Biên dịch với các công cụ biên dịch 142
6.3.2.3 Biên dịch với IDE 145
6.4 Triển khai ứng dụng 146
6.4.1 Cấu trúc file điều khiển đóng gói pkg 147
6.4.2 Quá trình triển khai ứng dụng 150
Trang 8KHOA CNTT –
ĐH KHTN
Phần 3 Ứng dụng từ điển Anh-Việt, Việt-Anh trên điện thoại SE P900
Chương 7 Giới thiệu điện thoại, môi trường, công cụ phát triển 152
7.1 Điện thoại Sony Ericsson P900 153
7.1.1 Đặc điểm điện thoại Sony Ericsson P900 154
7.1.2 Cấu trúc bộ nhớ điện thoại Sony Ericsson P900 154
7.2 Nền hệ thống UIQ 156
7.2.1 Các đặc tính của UIQ 156
7.2.2 Hệ thống giao diện UIQ 157
7.2.3 Các ứng dụng hệ thống 160
7.2.4 Bộ SDK UIQ 2.1 WINSCW 161
7.3 IDE Metrowerks CodeWarrior for Symbian Personal 2.0 162
Chương 8 Xây dựng và cài đặt ứng dụng từ điển trên SE P900 163
8.1 Ứng dụng từ điển Anh Việt, Việt Anh 164
8.2 Xây dựng chương trình 164
8.2.1 Sơ đồ UML cho chương trình ứng dụng 164
8.2.2 Các lớp cài đặt 165
8.2.2.1 4 Lớp cơ bản 165
8.2.2.2 Lớp xử lý tiếng Việt 168
8.2.2.3 Lớp phát âm 168
8.2.3 File cơ sở dữ liệu từ điển và cách truy xuất 168
8.3 Biên dịch và cài đặt chương trình 169
8.3.1 Biên dịch 169
8.3.2 Cài đặt ứng dụng 169
Tổng kết 174
Tài liệu tham khảo 175
Phụ lục A Các thuật ngữ dùng trong luận văn 176
Phụ lục B Lớp, đối tượng và sơ đồ UML trong lập trình Symbian 179
Phụ lục C Lập trình Java trên Symbian 182
Trang 9KHOA CNTT –
ĐH KHTN
DANH SÁCH CÁC BẢNG
B1.1 Các phiên bản hệ điều hành Symbian 22
B4.1 Các khai báo trong cấu trúc file mmp 74B4.2 Các khai báo trong cấu trúc file bld.inf 77B5.1 Các khai báo trong file tài nguyên 115
DANH SÁCH CÁC HÌNH
H1.1 Các thiết bị sử dụng hệ điều hành EPOC 20
H1.3 Mô hình tham khảo cho Communicator: Quartz và Crystal 24H1.4 Mô hình tham khảo cho Smartphone: Pearl 24H2.1 Mô hình các ranh giới 29
H3.5 Kiến trúc giao diện người dùng trong Symbian 57
Trang 10KHOA CNTT –
ĐH KHTN
H4.1 Sơ đồ các file tài liệu ứng với các ứng dụng file 69H4.2 Sơ đồ cấu trúc ứng dụng đồ họa 70
H4.4 Tạo dự án ứng dụng mới với IDE CodeWarrior 80H4.5 Tạo dự án ứng dụng mới bằng cách import file mmp 80H4.6 Tạo dự án mới với IDE C++ BuilderX 81H4.7 Tạo dự án cho IDE VC++ 6.0 với Nokia Series 60 App Wizard 82
H4.9 Chọn nền hệ thống cho ứng dụng 83H4.10 Chọn xây dựng ứng dụng HelloWorld 83
H5.5 Sơ đồ active object và các lớp liên hệ 105H5.6 Sơ đồ các lớp store và các thành phần liên quan 110H5.7 Cấu trúc store trong file tài liệu độc lập 110H5.8 Cấu trúc file tài liệu độc lập 111H5.9 Cấu trúc file tài liệu độc lập cho phép nhúng 111H5.10 Kiến trúc hệ thống đồ họa 113
H6.6 Sơ đồ biên dịch bằng dòng lệnh 144
Trang 11H7.2 P900 khi bản phím số mở, đóng và được tháo ra 154
H7.4 single-page dialog và multi-page dialog 158H7.5 Nhập liệu chữ “A” với nhận dạng viết tay và bàn phím ảo 159H7.6 Application Launcher dạng list và dạng icon 160
H8.1 Ứng dụng từ điển 164H8.2 Sơ đồ UML chương trình từ điển TNDic 164H8.3 Hộp thoại khởi tạo chương trình cài đặt 171H8.4 Hộp thoại cảnh báo về rủi ro khi cài đặt thiếu chứng thực 172
H8.6 Ngôn ngữ dùng trong cài đặt 172
H8.8 Quá trình cài đặt 173H8.9 Kết thúc cài đặt 174
HB.6 Mô hình quan hệ implement với UML 181 HB.7 Mô hình quan hệ giới hạn một chiều uses-a với UML 181
HC.2 Sự phát triển Java trên Symbian 184
Trang 12vô tuyến Không chỉ phục vụ cho công việc, các thiết bị WID còn là công cụ giải trí tuyệt vời với chức năng xem phim, nghe nhạc và chơi game Đó là lý do tại sao thị trường của các thiết bị này ngày càng mở rộng và phát triển không ngừng
Sự ra đời của WID mang lại một sức sống mới cho thị trường điện thoại di động nói riêng và các thiết bị cầm tay nói chung và mở ra một hướng phát triển ứng dụng mới đầy tiềm năng cho công ty phần mềm và các lập trình viên Với các hệ điều hành mở trên các thiết bị WID, họ đang có cơ hội được thử thách mình trên một môi trường ứng dụng mới Nhưng những hạn chế về tài nguyên thiết bị và những khác biệt về cơ chế hoạt động của WID đã tạo ra những khó khăn cho các lập trình viên vốn quen phát triển ứng dụng trên môi trường máy tính, nhất là khi họ phải phát triển ứng dụng cho môi trường trên thiết bị WID từ môi trường giả lập trên máy tính thay vì trên chính thiết bị đích là WID
Với mong muốn cung cấp những thông tin cần thiết, những cách thức để phát triển ứng dụng cho hệ điều hành Symbian, hệ điều hành phổ biến nhất hiện nay trên WID, chúng tôi đã thực hiện đề tài: "Tìm hiểu và nghiên cứu kỹ thuật phát triển ứng dụng trên môi trường Symbian OS "
Đề tài được thực hiện theo quy trình phát triển ứng dụng trên hệ điều hành Symbian từ chọn thiết bị dùng Symbian, chọn bộ công cụ SDK, môi trường phát triển IDE cho đến biên dịch, kiểm lỗi và cài đặt chương trình ứng dụng trên thiết bị
Và từ đó chúng tôi đã xây dựng một ứng dụng nhỏ để minh họa, từ điển Việt, Việt-Anh trên điện thoại Sony Ericsson P900, một thiết bị WID hàng đầu dùng Symbian
Trang 13các thiết bị WID với nhiều tính năng vượt trội được biết dưới tên gọi điện thoại
thông minh (Smartphone)
Sự phát triển nhanh chóng của thiết bị WID đã mở ra một môi trường lập trình mới đầy tiềm năng cho các lập trình viên nhất là khi các nhà sản xuất đã sử dụng những hệ điều hành mở và cung cấp sẵn phần lớn các gói API và công cụ lập trình cho các lập trình viên Symbian, WindowCE và Palm là 3 hệ điều hành mở phổ biến nhất hiện nay trên WID Trong đó với sự tích hợp mạnh mẽ giữa các tính năng máy tính và liên lạc vô tuyến, lại được xây dựng để phục vụ cho riêng thiết bị WID (các
hệ điều hành khác được sửa từ các hệ điều hành vốn phục vụ cho máy tính để phù hợp với WID), Symbian trở thành hệ điều hành thông dụng nhất trên thiết bị thông tin vô tuyến WID Hơn nữa, với các công cụ hỗ trợ đầy đủ và nhiều bộ SDK sẵn dùng cho các dòng thiết bị WID khác nhau, Symbian trở thành môi trường lý tưởng cho các lập trình viên muốn phát triển ứng dụng trên WID
Việc hiểu rõ cơ chế hoạt động, các công cụ hỗ trợ và cách thức lập trình để phát triển ứng dụng cho các thiết bị WID là rất quan trọng cho các lập trình viên, những người muốn gia nhập vào lĩnh vực phát triển phần mềm đầy mới mẻ này Đó là lý
do chúng tôi chọn thực hiện đề tài: "Tìm hiểu và nghiên cứu kỹ thuật phát triển ứng dụng trên môi trường Symbian OS" Với đề tài nghiên cứu này, chúng tôi mong muốn cung cấp một cái nhìn khái quát và các kỹ thuật cụ thể để phát triển ứng dụng trên hệ điều hành Symbian cho các dòng thiết bị khác nhau, sử dụng các bộ công cụ phát triển SDK khác nhau
Trang 14KHOA CNTT –
ĐH KHTN
2 Hướng nghiên cứu và giới hạn đề tài
2.1 Hướng nghiên cứu Symbian được xây dựng để phục vụ cho hai nhóm thiết bị WID là Communicator (máy PDA có tích hợp chức năng điện thoại di động) và Smartphone (điện thoại di động tích hợp thêm chức năng PDA) Do đó trong đề tài, chúng tôi xem xét trên cả Communicator và Smartphone và gọi chung là điện thoại Symbian Trong đề tài này, chúng tôi trình bày toàn bộ quy trình phát triển ứng dụng từ
sơ khởi nhưng khá thiết yếu là lựa chọn thiết bị, chọn môi trường phát triển, cho đến xây dựng chương trình, biên dịch rồi cài đặt trên thiết bị đích là các thiết bị WID dùng hệ điều hành Symbian
2.2 Giới hạn đề tài 2.2.1 Môi trường lập trình
Đề tài chỉ nghiên cứu việc phát triển ứng dụng Symbian trên máy tính để bàn PC sử dụng hệ điều hành Windows Đề tài không nghiên cứu phát triển với hệ điều hành Linux hay các hệ điều hành khác
2.2.2 Ngôn ngữ
Hệ điều hành Symbian hỗ trợ hai ngôn ngữ phát triển ứng dụng chính là C++ và Java Symbian được viết bằng C++ và phần lớn thư viện hỗ trợ đều phục vụ cho việc phát triển ứng dụng với ngôn ngữ C++ nên C++ là ngôn ngữ chính thống
để phát triển ứng dụng trên Symbian Vì vậy, trong đề tài này, chúng tôi chỉ quan tâm đến việc phát triển ứng dụng bằng ngôn ngữ C++ Với ngôn ngữ Java chúng tôi
sẽ bàn đến những vấn đề cơ bản trong phần phụ lục C
2.2.3 Loại chương trình ứng dụng phát triển
Có nhiều loại chương trình ứng dụng cho điện thoại Symbian: chương trình console, ứng dụng giao diện đồ họa, các server hay các trình điều khiển thiết bị (device driver) Đề tài chỉ nghiên cứu phần ứng dụng đồ họa
Trang 15KHOA CNTT –
ĐH KHTN
3 Mục tiêu của đề tài
Symbian ra đời từ giữa năm 1998 nhưng phát triển ứng dụng chạy trên hệ điều hành Symbian là một lĩnh vực còn khá mới mẻ Các tài liệu cho lập trình phát triển ứng dụng trên Symbian đếm trên đầu ngón tay và chưa có một tài liệu tiếng Việt nào về Symbian ngoại trừ các luận văn nghiên cứu về các lĩnh vực riêng để tạo nên các sản phẩm cụ thể
Với đề tài này, chúng tôi muốn cung cấp một quy trình cụ thể cho việc phát triển ứng dụng trên Symbian cho các lập trình viên, nhất là những người mới bắt đầu làm quen với việc phát triển ứng dụng trên Symbian
Bộ công cụ phát triển SDK Æ Môi trường phát triển tích hợp IDE
Ç È
Điện thoại Symbian Xây dựng chương trình ứng dụng
Ç È Cài đặt ứng dụng Å Kiểm lỗi, biên dịch trên giả lập Emulator
Trang 17KHOA CNTT –
ĐH KHTN
CHƯƠNG 1
HỆ ĐIỀU HÀNH SYMBIAN VÀ CÁC DÒNG THIẾT BỊ SYMBIAN
Hệ điều hành cho thiết bị WID Đặc điểm của hệ điều hành cho thiết bị WID Các hệ điều hành cho thiết bị WID
Symbian – Hệ điều hành hàng đầu cho thiết bị WID
Lịch sử hệ điều hành Symbian Các phiên bản hệ điều hành Symbian Các dòng điện thoại Symbian
Mô hình Crystal
Mô hình Quartz
Mô hình Pearl Các thành phần phần cứng chính trong điện thoại Symbian
Bộ xử lý trung tâm CPU
Bộ nhớ trong ROM
Bộ nhớ RAM Các thiết bị nhập xuất (Input/Output -I/O) Nguồn năng lượng
Tương lai Symbian
Trang 18KHOA CNTT –
ĐH KHTN
1.1 Hệ điều hành cho thiết bị WID
1.1.1 Đặc điểm của hệ điều hành cho thiết bị WID Một hệ điều hành cho các thiết bị vô tuyến nói chung và WID nói riêng có một
số những yêu cầu cơ bản riêng khiến nó khác với các hệ điều hành cho thiết bị khác:
- Hệ điều hành cho các thiết bị WID đòi hỏi phải luôn sẵn dùng, xử lý ngay lập tức và không được treo máy hay phải khởi động lại như hệ điều hành cho máy tính để bàn
- Một đòi hỏi khác là tính module hóa, cho phép giảm thiểu dung lượng phần mềm trên thiết bị bởi lẽ bộ nhớ trên các thiết bị WID rất hạn chế, không phong phú như trên máy tính để bàn
- Hệ thống phải quản lý hiệu quả việc cấp phát và gỡ bỏ các thành phần hệ thống và phần mềm, nạp lại chúng khi cần để tối thiểu hóa việc sử dụng bộ nhớ Hỗ trợ các CPU sử dụng năng lượng thấp cũng là một yêu cầu cơ bản của hệ điều hành trên WID bởi các thiết bị này hoạt động dựa trên nguồn năng lượng hạn chế là pin
- Yêu cầu tiếp theo là hệ điều hành trên WID nên thiết kế để hỗ trợ khả năng tắt-mở Khi không sử dụng, các bộ phận sẽ được đưa vào trạng thái tạm nghỉ để giảm thiếu hao hụt năng lượng pin, kể cả hệ điều hành Do đó tốt nhất, hệ điều hành nên được lưu trữ trên bộ nhớ được bảo vệ, chẳng hạn như ROM
- Cuối cùng là các yêu cầu cho 2 chức năng chính của thiết bị WID: liên lạc và các ứng dụng Liên lạc là một trong những đặc điểm chính của các thiết bị WID, nên hệ điều hành cho các thiết bị này phải hỗ trợ tốt khả năng liên lạc vô tuyến và các kết nối vô tuyến dễ dàng, ổn định với các thiết bị khác qua mạng vô tuyến Các thiết bị WID được sản xuất từ các nhà sản xuất khác nhau sẽ có kiểu dáng và phong cách sử dụng khác nhau nên các hệ điều hành phải độc lập với sự khác biệt này Hơn nữa, các hệ điều hành này phải là mở, hỗ trợ các ứng dụng phát triển từ các nhà phát triển thứ 3 với các ngôn ngữ lập trình chuẩn như C++ hay Java
Một hệ điều hành tồn tại trong một bộ nhớ nhỏ bé với một nguồn tài nguyên giới hạn mà phải đáp ứng đầy đủ những yêu cầu trên quả không dễ dàng Những hệ điều hành phổ biến hiện nay cho các thiết bị WID đáp ứng phần lớn các yêu cầu này
Trang 19KHOA CNTT –
ĐH KHTN
là Symbian, WindowCE, Linux và gần đây là Palm, vốn trước đây phát triển hệ điều hành cho PDA
1.1.2 Các hệ điều hành cho thiết bị WID
- Hệ điều hành Windows Compact Edition (WinCE) được phát triển bởi Microsoft là một phần con được thiết kế cẩn thận từ hệ điều hành Windows NT Nó thoả mãn các yêu cầu của hệ điều hành cho thiết bị WID Microsoft hỗ trợ các công
cụ để chuyển các ứng dụng Windows trên máy tính cá nhân thành các ứng dụng chạy trên WinCE Lợi thế của WinCE là nó tạo sự quen thuộc cho các người dùng thiết bị WID vốn quen dùng ứng dụng Windows trên máy tính cá nhân Sự quen thuộc này cũng rất có ích cho các lập trình viên, những người muốn phát triển ứng dụng trên WID dùng hệ điều hành WinCE WinCE được sử dụng trong các điện thoại Smartphone của các nhà sản xuất như Casio, Siemens, Compaq và gần đây là Motorola
- Hệ điều hành Palm được phát triển bởi 3Com Palm Computing, vốn được thiết kế cho các máy PDA Những tính năng cho máy PDA tạo sự mạnh mẽ cho các thiết bị WID dùng hệ điều hành Palm Sau này Palm được bổ sung các phần thiết kế linh hoạt cho các ứng dụng liên lạc vô tuyến Sự khác biệt lớn nhất giữa Palm và các hệ điều hành khác là nhân hệ điều hành Palm được tối ưu hóa cho các thiết kế phần cứng riêng cho máy Palm Do đó, các nhà sản xuất dùng Palm phải sử dụng CPU, màn hình, các chip điều khiển đặc thù Palm được các nhà sản xuất Qualcomm, Sony, Handspring, IBM, Motorola, Nokia và Symbol sử dụng để xây dựng các thiết bị PDA và WID
- Linux cũng có một số bản phân phối chạy trên PDA và các thiết bị WID như pSOS và VxWorks bởi WindRiver Tynux là một bản Linux khác được cung cấp bởi PalmPalm dùng trong điện thoại thông minh Đặc điểm nổi bật của Linux dùng trong các thiết bị WID là cung cấp một hệ điều hành linh hoạt, hỗ trợ mạnh các ứng dụng nguồn mở nhưng có kích thước rất nhỏ, chỉ khoảng 1MB với phần nhân khoảng 100KB
Trang 20KHOA CNTT –
ĐH KHTN
- Symbian được xây dựng riêng cho các thiết bị WID từ hệ điều hành EPOC vốn của Psion dùng cho các sản phẩm Communicator, Oganizer và Subnotebook Symbian được thiết kế đặc biệt đáp ứng đầy đủ các yêu cầu mà một hệ điều hành cho WID cần với khả năng module hóa tối đa trong các xử lý liên quan đến quản lý năng lượng, bộ nhớ, cơ chế bắt sự kiện và đa nhiệm Hầu hết các nhà sản xuất thiết
bị WID hàng đầu đều sử dụng Symbian là hệ điều hành chính như Nokia, Sony Ericsson, Samsung, Panasonic, Siemens, LG, Symbian không chỉ hỗ trợ mạnh các tính năng vốn có của một điện thoại di động và của PDA, mà thường xuyên cập nhật và hỗ trợ tốt các tính năng và các kỹ thuật mới như J2ME, Bluetooth, MMS, SynML, IPv6 và WCDMA Symbian còn là một hệ điều hành mở hỗ trợ khá đầy đủ việc phát triển ứng dụng bằng C++, Java với những SDK, sách, tài liệu, các nhóm
hỗ trợ phát triển ứng dụng và các khóa huấn luyện Và kết quả những tiện ích, những ứng dụng mới làm phong phú thêm khả năng của WID và ngày càng khẳng định sức mạnh của Symbian trên thiết bị WID
Ngoài ra giải pháp Java như là một hệ điều hành nhúng được Javasoft phát triển cũng được dùng cho một số thiết bị WID Tuy tính năng không phong phú và mạnh mẽ như các hệ điều hành cho WID khác nhưng ưu điểm độc lập nền hệ thống tạo lợi thế cho hệ điều hành nhúng Java Một phiên bản của Java là J2ME đang là một giải pháp trên thiết bị WID và được khá nhiều hệ điều hành khác hỗ trợ
1.1.3 Symbian – Hệ điều hành hàng đầu cho thiết bị WID Được xây dựng để phục vụ riêng cho WID dựa trên giải pháp cho PDA của Psion và các chức năng liên lạc vô tuyến từ các nhà sản xuất di động hàng đầu như Nokia hay Ericsson, với thiết kế hướng đối tượng hoàn chỉnh, Symbian là sự lựa chọn hàng đầu cho hệ điều hành trên WID Một trong những nhược điểm của Symbian là chưa quen thuộc với người phát triển nhưng điều này sẽ nhanh chóng được xóa bỏ với những tài liệu kỹ thuật được cập nhật thường xuyên, các khóa huấn luyện và các bộ công cụ phát triển đầy đủ với thư viện dồi dào Minh chứng cho sự thành công của Symbian là ngày càng có nhiều nhà sản xuất chọn Symbian là hệ điều hành chính cho điện thoại thông minh của họ
Trang 21hành cho chúng Thế hệ thứ 3, hệ điều hành có tên SIBO (SIxteen Bit Organizer)
được công bố năm 1988 đã mang lại những thành công nhất định cho công ty Psion Thiết bị đầu tiên sử dụng SIBO là MC Laptop Năm 1991, Psion sản xuất Series 3, một máy tính bỏ túi Các sản phẩm tiếp theo của Psion sử dụng SIBO là Series 3c (1996) , Sienna (năm 1996)và Series 3mx (năm 1998) Những thành công của các thiết bị này chủ yếu từ 3 lý do: SIBO có một cơ chế quản lý mạnh mẽ, các ứng dụng nhanh nhẹn, ấn tượng, và tương tác dễ dàng với các loại máy tính khác như PC hay các thiết bị cầm tay khác SIBO cũng cung cấp những công cụ cho những người phát triển ứng dụng: lập trình dựa trên C, có hỗ trợ hướng đối tượng, và sử dụng các engine, một phần nòng cốt trong việc phát triển Symbian sau này
Năm 1997, Psion công bố hệ điều hành thế hệ thứ tư, EPOC (Electronic Pocket Communication), với phiên bản EPOC Release 1(ER1) được sử dụng trên thiết bị mới Series 5 Tuy kế thừa từ SIBO, nhưng khi phát triển EPOC, Psion phải viết lại gần như toàn bộ bởi những hạn chế của SIBO: kiến trúc 16 bit, dùng ngôn ngữ C,
và gắn chặt với kiến trúc CPU x86 của Intel SIBO được sử dụng trong gần 10 năm với những thành công nhất định đã nhường chỗ cho thế hệ mới, EPOC, được phát triển cho kỷ nguyên mới EPOC là hệ điều hành 32 bit được viết dựa trên những đặc tính nền tảng của SIBO, nhưng bổ sung rất nhiều tính năng mới như hỗ trợ các thiết
bị sử dụng màn hình cảm ứng, hỗ trợ đa phương tiện, tăng khả năng truyền thông và
dễ dàng tương tích với những kiến trúc hệ thống và thiết kế giao diện của các thiết
bị khác nhau EPOC được phát triển bằng C++ và hướng đối tượng hoàn toàn Nó hoạt động theo hướng sử dụng các engine kế thừa từ SIBO và mở rộng thành một nhóm các server phối hợp truy cập các dịch vụ hệ thống và các thiết bị ngoại vi EPOC đã được phát triển thêm 2 phiên bản là EPOC Release 3 (ER3) và EPOC Release 5 (ER5), chạy trên thiết bị Series 7
Trang 22H1.1 Các thiết bị sử dụng hệ điều hành EPOC
Ngay khi đang phát triển EPOC, Psion đã chú ý đến sự tương thích cho EPOC với các thiết bị phần cứng khác nhau Vì vậy, từ điện thoại di động, cho đến các thiết bị Internet đều có thể chạy tốt với EPOC Và cơ hội phát triển của Psion đã đến khi các nhà sản xuất điện thoại di động đang tìm một hệ điều hành cao cấp, chuẩn và mạnh mẽ cho thế hệ thiết bị di động vô tuyến mới là WID, thường được biết nhiều dưới tên gọi là điện thoại thông minh Tận dụng cơ hội này, Psion đã cùng với các nhà sản xuất điện thoại di động hàng đầu thế giới như Nokia, Ericsson
và Motorola thành lập một công ty mới chuyên phát triển hệ điều hành cho WID, công ty Symbian
Symbian thành lập vào tháng 6 năm 1998 dựa trên nhóm phát triển phần mềm của Psion và các nhóm phát triển ứng dụng của các công ty sản xuất điện thoại di động thành viên, trụ sở chính đặt tại London (Anh) và có các chi nhánh ở Ronneby (Thụy Điển), Tokyo (Nhật) và thung lũng Silicon (Mỹ)
Hệ điều hành Symbian được phát triển dựa trên phần nhân của EPOC và phát triển theo hướng phục vụ tốt nhất cho các thiết bị WID Hệ điều hành Symbian đủ linh hoạt để đáp ứng những yêu cầu công nghiệp trong việc phát triển các thiết bị WID cao cấp trong khi vẫn cho phép các nhà sản xuất xây dựng riêng cho mình những chủng loại khác nhau Thiết bị WID đầu tiên chạy hệ điều hành Symbian là Ericsson R380, ra đời năm 2000 nhưng Nokia 9210 Communicator, ra đời vào giữa năm 2001 mới là thiết bị WID đầu tiên sử dụng hệ điều hành mở Symbian, cung cấp đầy đủ các công cụ để phát triển ứng dụng cho các lập trình viên Sự thành công của
hệ điều hành Symbian đã được khẳng định khi có hàng loạt công ty sản xuất điện
Trang 23KHOA CNTT –
ĐH KHTN
thoại di động mua cổ phần sở hữu Symbian như Matsushita (Panasonic) (1999), Siemens (2002), Samsung (2003) và chọn hệ điều hành Symbian là hệ điều hành chính cho điện thoại thông minh của họ ngoài các công ty sở hữu Symbian như Sanyo (2000), Fujitsu (2001), BenQ (2003), Sendo (2003), Mitsubishi (2003), Amira (2004) và LG Electronics (2004) Symbian ngày càng chứng tỏ là hệ điều hành hàng đầu cho các thiết bị WID
Ericsson R380e Nokia 9210
H1.2 Các điện thoại Symbian đầu tiên
• Các phiên bản của hệ điều hành Symbian
Nếu tính từ phiên bản đầu tiên Symbian OS v3 (ER3) được phát triển từ EPOC đến phiên bản hiện tại Symbian OS v8.0 đã có tất cả 8 phiên bản ra đời Phiên bản 8.0 được công bố tháng 2 năm 2004, chưa có sản phẩm sử dụng, cải tiến
hỗ trợ rất nhiều về phần cứng và Java
Khi phát triển các phiên bản mới, Symbian đã cố gắng để duy trì sự tương tích ngược mã nguồn (các chương trình viết trên các phiên bản trước có thể chạy trên phiên bản mới hơn khi được biên dịch lại) để những người phát triển ứng dụng có thể viết chương trình chạy được trên nhiều phiên bản khác nhau của hệ điều hành Symbian Những thông tin về sự tương thích được cung cấp trong các phần tài liệu của thư viện phát triển ứng dụng
Symbian cũng cố gắng duy trì sự tương thích ngược mã nhị phân ( cho phép
mã nhị phân ở phiên bản hệ điều hành trước chạy được trên hệ điều hành mới mà không cần biên dịch lại), mặc dù điều này không phải lúc nào cũng làm được khi các chức năng mới được giới thiệu Lỗi lớn nhất của sự tương thích ngược mã nhị
Trang 24KHOA CNTT –
ĐH KHTN
phân xảy ra khi phiên bản 5.1 ra đời, sử dụng Unicode gây ra các lỗi đối với chuỗi trong Symbian
Symbian OS v3 Eikon UI, Agenda và các ứng dụng
văn phòng
Psion Series 5
Symbian OS v5 Ứng dụng Contacts, Media Server,
Messaging, Java (JDK 1.1.4), Telephony
Psion Series 5mx, Revo, Netbook/Series
7 Symbian OS v5.1 Tầng Uikon UI, Unicode Ericsson R380 Symbian OS v6.0 Tăng cường GSM telephony,
PersonalJava và JavaPhone, Quartz
và Crystal UIs, WAP
Nokia 9200 Series
Symbian OS v6.1 Bluetooth, GPRS Nokia 7650, 3650,
Siemens SX1 Symbian OS v7.0
và v7.0s IPv6, hỗ trợ Metrowerks CodeWarrior , MIDP Java 1.0 và
2.0, Multimedia Messaging, Multimode Telephony, Opera Browser, SyncML
Nokia 6600, Sony Ericsson P800, P900
Symbian OS v8.0 Tăng cường khả năng tích hợp phần
cứng cho đa phương tiện, Java MIDP 2.0 (JSR118), CLDC1.1 (JSR139), MobileMedia (JSR135),
đồ họa 3D (JSR184), JTWI 1.0 compliance (JSR185) và CLDC HI 1.1 Java VM
Chưa có
B1.1 Các phiên bản hệ điều hành Symbian
1.3 Các dòng điện thoại Symbian
Hệ điều hành Symbian được thiết kế cho 2 loại thiết bị WID chiến lược là Communicator và Smartphone Communicator là các máy PDA với khả năng liên lạc vô tuyến của điện thoại di động Smartphone là điện thoại di động với các tính năng PDA bổ sung Với 2 loại thiết bị chiến lược này, Symbian đã công bố một số
mô hình thiết kế tham khảo cho các dòng thiết bị Symbian (DFRD-Device Family Reference Design) Mô hình tham khảo là mô hình chung cho các sản phẩm về bề mặt bên ngoài như kích thước màn hình, độ phân giải, màu, giao diện đồ họa và đặc biệt là cơ chế nhập xuất dữ liệu hoạt động bên trong Hệ điều hành Symbian sẽ đảm
Trang 25và Smartphone: mô hình Crystal và Quartz cho Communicator và Pearl cho Smartphone Tuy các khái niệm này đã được bỏ từ phiên bản Symbian v7.0 nhưng
để dễ phân loại và hiểu rõ các dòng điện thoại Symbian, chúng tôi vẫn giới thiệu chúng
• Mô hình Crystal
Mô hình tham khảo Crystal định nghĩa một loại Communicator bỏ túi với hình dáng của một máy laptop Crystal sử dụng màn hình màu theo chuẩn 1/2 VGA và một bàn phím QWERTY, có thể hỗ trợ màn hình cảm ứng để nhập liệu với bút stylus
Ngoài ra Crystal còn có 4 phím đặc biệt được đặt dọc theo ở phía phải bên ngoài màn hình Crystal được thiết kế để sử dụng bằng 2 tay hoặc đặt trên bàn Sản phẩm đầu tiên của mô hình Crystal là Nokia 9210 Communicator
• Mô hình Quartz
Mô hình thiết kế tham khảo Quartz định nghĩa một loại Communicator với hình dáng của một máy pocket PC Quartz sử dụng màn hình màu theo chuẩn 1/4 VGA, là một thiết bị WID dùng bút stylus nhập liệu qua tương tác với một màn hình cảm ứng Vì vậy, không hề có một bàn phím vật lý nào trong mô hình Quartz, việc nhập liệu được thực hiện qua nhận dạng viết tay và một bàn phím ảo Quartz
Trang 26Ghi chú: Để tiện dùng cho các chức năng thoại, một số điện thoại thuộc mô
hình Crystal và Quartz có bổ sung thêm một bản phím số
• Mô hình Pearl
Mô hình tham khảo Pearl định nghĩa một loại Smartphone với hình dáng của một điện thoại di động thông thường Pearl hỗ trợ màn hình màu với nhiều kích thước khác nhau, sử dụng bản phím số cho nhập liệu, và có thể hỗ trợ cả màn hình cảm ứng Pearl được thiết kế để sử dụng một tay Sản phẩm đầu tiên của mô hình Pearl là Nokia 7650
H1.4 Mô hình tham khảo cho Smartphone: Pearl
1.4 Các thành phần phần cứng chính trong điện thoại Symbian
Hệ điều hành Symbian được xây dựng để chạy trên các điện thoại Symbian Do
đó các đặc tính phần cứng của điện thoại có tác động sâu sắc đến hệ điều hành Vì vậy để hiểu rõ Symbian, chúng ta cần tìm hiểu các thành phần quan trọng cấu thành điện thoại Symbian đó là CPU, ROM, RAM , các thiết bị nhập xuất (I/O) và nguồn năng lượng
Trang 27KHOA CNTT –
ĐH KHTN
• Bộ xử lý trung tâm (Center Proccessing Unit-CPU): Hệ điều hành Symbian được thiết kế cho kiến trúc CPU 32 bit, chạy ở tốc độ thấp hơn so với CPU trên máy tính để bàn và trên server Các hệ thống chạy Symbian hiện tại sử dụng 190MHz và 206MHz StrongARM CPU, với các loại CPU ARM7 và ARM9 Các điện thoại Symbian tương lai có thể chạy trên các CPU nhanh hơn
• Bộ nhớ trong ROM (Read Only Memory): ROM chứa hệ điều hành và tất cả các ứng dụng và phần mềm trung gian (middleware) có sẵn được nhà sản xuất đưa vào khi tạo thiết bị Điều bày hoàn toàn khác với trên PC, nơi mà ROM chỉ chứa các phần nạp ban đầu và BIOS, còn hệ điều hành và ứng dụng lưu trên đĩa cứng Bộ nhớ ROM trên điện thoại Symbian được gán nhãn là ổ đĩa Z Tất cả mọi thứ trong ROM đều có thể truy cập như là file trên ổ đĩa Z Vì vậy các chương trình được chạy trực tiếp trên ROM thay vì nạp vào RAM như trên PC Bộ nhớ ROM thường rất giới hạn, thường là 8MB hoặc 16MB
• Bộ nhớ RAM (Random Access Memory): bộ nhớ RAM được sử dụng bởi các ứng dụng đang thực thi và nhân hệ thống Một phần RAM được gán là ổ đĩa C dùng
để chứa các chương trình, các file tài liệu ứng dụng, Dung lượng RAM thường khoảng 8MB hoặc 16MB và ổ C thường chiếm 50% dung lượng RAM, nên có thể
sẽ xảy ra lỗi khi bị tràn bộ nhớ Khi khởi động nguội máy, nội dung trên RAM sẽ bị xóa Dữ liệu trên RAM được phục hồi lại nếu khởi động nóng, trừ khi bị lỗi khi đang khôi phục
• Các thiết bị nhập xuất (Input/Output -I/O): bao gồm
- Màn hình: có kích thước khác nhau tùy theo mô hình như đã nêu ở phần trên,
có thể là màn hình cảm ứng với khả năng tương tác bằng viết
- Một bàn phím: có thể chỉ là bản phím số hay qwerty
- Một khe cắm thêm thẻ nhớ (memory card): đây là bộ nhớ ngoài của điện thoại Symbian và được gán nhãn ổ D
- Một cổng tuần tự RS232: để giao tiếp với PC
- Một cổng hồng ngoại và Bluetooth cho các truyền thông vô tuyến giữa điện thoại Symbian và các thiết bị khác như laptop, Palm PDA,
Trang 28KHOA CNTT –
ĐH KHTN
• Nguồn năng lượng: bao gồm các pin đặc thù và các nguồn điện phụ, thông qua một thiết bị phù hợp
Symbian cũng sử dụng những kỹ thuật như hệ điều hành trên máy tính để bàn: nó
sử dụng một kiến trúc trình điều khiển thiết bị và cung cấp các API để lập trình điều khiển các thiết bị ngoại vi này Nhưng Symbian có những đặc điểm rất khác so với
hệ điều hành trên máy tính để bàn do tài nguyên trên điện thoại Symbian là khá giới hạn, không có đĩa cứng nên cách quản trị bộ nhớ dùng bộ nhớ ảo và xử lý theo trang
là không thể thực hiện trên Symbian Ngoài ra với nguồn năng lượng hạn hẹp, Symbian phải được thiết kế đặc biệt, có thể chạy ổn định ngay cả khi đang sạc hay thay pin
1.5 Tương lai Symbian
Tại CTIA Wireless, Atlanta, Georgia – ngày 22 tháng 3 năm 2004 Symbian đã công bố một bản báo cáo về các nhà sản xuất mới sử dụng Symbian, các điện thoại Symbian và các giải pháp cho điện thoại di động với các con số thống kê đáng chú
ý như sau:
- Symbian vừa được Lenovo (nhà sản xuất điện thoại di động hàng đầu TQ) chọn
là hệ điều hành cho điện thoại của mình vào tháng 3 năm 2004 sau LG Electronics
và Arima tăng số nhà sản xuất dùng Symbian lên con số 14 đưa Symbian trở thành
hệ điều hành hàng đầu cho điện thoại thông minh với 85% số điện thoại thông minh bán ra trên toàn thế giới dùng Symbian
- Năm 2003 hơn 6,67 triệu điện thoại Symbian được đưa ra bởi năm nhà sản xuất Tổng số điện thoại Symbian đã bán trên toàn thế giới lên con số 10 triệu
- Các ứng dụng chạy trên Symbian được download và bán ra tăng trung bình 20% một tháng
Các thống kê này đã đưa Symbian trở thành giải pháp hệ điều hành thiết bị WID
có thị trường rộng lớn nhất thế giới
Trang 29KHOA CNTT –
ĐH KHTN
Tập trung vào phục vụ các chức năng như trên máy tính và truyền thông, nâng cao khả năng truy cập Internet, Symbian ngày càng trở nên mạnh mẽ và được ưa chuộng
Hiện nay Symbian được sở hữu bởi Nokia (32,2%), Psion (31,1% - Nokia đã mua cổ phần này của Psion), Ericsson (17,5%), Panasonic (7,9%), Samsung (5%) Siemens (4,8%) và Sony Ericsson(1,5%), những công ty sản xuất điện thoại di động hàng đầu thế giới Nhưng việc ra đi của Motorola (2003), nhà sản xuất điện thoại đứng hàng thứ hai trên thế giới sau Nokia đã khiến Symbian gần như là của Nokia (63,3 %) Nokia có “tiếng nói” quyết định đến sự phát triển Symbian, và có thể xem như Nokia vừa làm phần mềm - HĐH, vừa bán phần cứng - ĐTDĐ Đây có thể là thuận lợi cho Nokia nhưng cũng là nguy cơ ngăn cản sự phát triển của Symbian (Giống như trường Apple trong lĩnh vực PC, vừa bán máy tính Macintosh vừa làm HĐH Mac OS)
Không những thế Motorola sau khi rời Symbian đã bắt tay với Microsoft để phát triển điện thoại di động sử dụng hệ điều hành do Microsoft viết với tên gọi là HĐH
MS Smartphone 2002 dựa trên Window CE, phiên bản mới nhất là Windows Mobile 2003 Đây là đối thủ tiềm tàng của Symbian Mới đây công ty Radixs Private (Singapore) đã tung ra hệ điều hành MXI cho phép các ứng dụng Windows, Linux và Java có thể chạy trên các thiết bị di động, mà cụ thể ở đây là máy tính cầm tay, thiết bị hỗ trợ cá nhân kỹ thuật số (PDA), điện thoại di động Tuy đang còn thử nghiệm nhưng đây thật sự là một bước ngoặt tạo ra một giai đoạn cạnh tranh mới cho Symbian và các hệ điều hành cho thiết bị WID khác
Trang 30Hệ thống con và API Cấu trúc truyền thông trong Symbian Serial comms server
Telephony server Socket server
Comms database server Truyền thông hồng ngoại Truyền thông Bluetooth Tiến trình và tiểu trình trong Symbian Tiến trình
Tiểu trình Tiến trình và tiểu trình trong nhân Quản lý và điều phối tiến trình Chương trình hoạt động trên Symbian File thực thi
Nạp chương trình khi thực thi Thực thi ứng dụng và server Quản lý bộ nhớ
Quản lý nguồn năng lượng Quản lý thời gian
An toàn hệ thống
Trang 31H2.1 Mô hình các ranh giới
Nhân (kernel) quản lý các tài nguyên phần cứng như RAM và các thiết bị phần
cứng khác Nó cung cấp và điều khiển cách thức mà tất cả các thành phần phần mềm khác dùng để truy cập các tài nguyên hệ thống Nhân sử dụng đặc quyền hỗ trợ phần cứng của mình để truy cập đến các tài nguyên, CPU sẽ thực hiện các chỉ thị đặc quyền (privileged instruction) này cho nhân CPU cũng thực thi một loại chương trình khác, gọi là chương trình ở chế độ người dùng hay chương trình người dùng (user-mode program) không có đặc quyền Các chương trình này chỉ có thể truy cập tài nguyên hệ thống thông qua các hàm API do nhân cung cấp Ranh giới giữa nhân và tất cả các thành phần khác là ranh giới đặc quyền
Ứng dụng (application) là một chương trình có giao diện người dùng Mỗi ứng
dụng chạy trong một tiến trình riêng với một vùng địa chỉ được cấp cho riêng nó Ranh giới giữa ứng dụng này với ứng dụng khác là ranh giới tiến trình Một ứng dụng không thể ngẫu nhiên ghi đè lên dữ liệu của một ứng dụng khác vì khoảng địa chỉ của mỗi tiến trình là hoàn toàn độc lập
Server là chương trình không có giao diện người dùng Một server đảm trách
quản lý một hoặc nhiều tài nguyên Nó cung cấp các hàm API để các chương trình khác có thể truy cập đến các dịch vụ do nó cung cấp Đối tượng phục vụ của nó là ứng dụng hay các server khác Mỗi một server thường chạy trong một tiến trình
Trang 32KHOA CNTT –
ĐH KHTN
riêng, ranh giới giữa một server và các server, ứng dụng khác là ranh giới tiến trình Điều này đảm bảo sự toàn vẹn cho hoạt động của server Tuy nhiên, hiện nay để tăng hiệu suất sử dụng, giảm chi phí chuyển đổi ngữ cảnh giữa các tiến trình, các server có quan hệ mật thiết với nhau có thể chạy trên cùng một tiến trình Sự độc lập giữa server và các chương trình mà nó phục vụ cũng giống như sự độc lập giữa nhân và các chương trình ở chế độ người dùng, nhưng server dễ lập trình và sử dụng hơn nhân Hệ điều hành Symbian sử dụng các server để cung cấp các dịch vụ
mà ở trên các hệ điều hành khác chúng được cung cấp từ nhân và các trình điều khiển thiết bị Truy cập các tính năng hệ thống qua các server thay vì sử dụng trực tiếp là một trong những đặc điểm nổi bật của Symbian Nó không những tăng tính module hóa mà còn giúp cho việc sử dụng hiệu quả nhờ sự chia sẻ giữa các client Các server chính trên Symbian:
- File server: phục vụ chia sẻ tài nguyên liên quan file, server quan trọng nhất
- Window server: phục vụ các tài nguyên liên quan giao tiếp người dùng như bàn phím, màn hình (bao gồm cả nhập và xuất)
- Font và bitmap server: quản lý các tài nguyên dùng chung cũng như riêng cho
hệ thống về font chữ và hình ảnh bitmap
- Database server: phục vụ các hoạt động liên quan cơ sở dữ liệu
- Serial communication server: phục vụ tài nguyên và cung cấp giao thức liên quan giao tiếp tuần tự
- Socket server: phục vụ các truyền thông socket
Engine là phần của ứng dụng chỉ chú trọng đến thao tác xử lý dữ liệu bên dưới
mà hầu như không quan tâm đến giao diện người dùng đồ họa (GUI-Graphic User Interface) Thông thường chúng ta có thể chia một ứng dụng thành 2 phần: Engine
và GUI Các engine có thể là một đoạn mã nguồn (source module) độc lập trong một chương trình ứng dụng phụ trách thực hiện một nhiệm vụ nào đó hay là một thư viện liên kết động độc lập (DLL-Dinamic Link Library) hoặc một nhóm DLL riêng Các ứng dụng sẽ dùng chung các engine này để phục vụ cho hoạt động của mình
Trang 33KHOA CNTT –
ĐH KHTN
Ranh giới giữa engine và ứng dụng là ranh giới module hay DLL với mục đích chính là để nâng cao cấu trúc thiết kế phần mềm, tăng tính module hóa, trong khi ranh giới tiến trình và ranh giới đặc quyền nhằm mục đích ngăn chặn những truy cập không cần thiết
Như vậy, chúng ta có 4 loại thành phần chính trong cấu trúc hệ điều hành và ứng dụng của Symbian: nhân, ứng dụng, server và engine, và có 3 loại ranh giới Ranh giới module hoặc ranh giới DLL là rất dễ vượt qua, chúng chỉ nhằm mục đích nâng cao sự toàn vẹn hệ thống với module hóa và đóng gói Ranh giới đặc quyền khó vượt qua hơn, chúng nâng cao tính toàn vẹn hệ thống bằng các che giấu nhân và thiết bị khi ở chế độ người dùng Ranh giới tiến trình là khó vượt qua nhất, nó bảo
vệ sự toàn vẹn bằng cách phân các vùng RAM riêng biệt cho các chương trình
2.1.1 Nhân và E32 Thành phần cơ bản nhất của hệ điều hành Symbian là E32, bao gồm nhân và thư viện người dùng Nhân thì hoàn toàn đặc quyền, trong khi thư viện người dùng, euser.dll thì nằm ở cấp độ thấp nhất phần chế độ người dùng Thư viện euser.dll cung cấp các thư viện chức năng cho các chương trình chế độ người dùng khác và điều khiển việc truy cập nhân
Nhân bao gồm 2 bộ phận:
- Bộ phận điều hành nhân (kernel executive): chạy các mã đặc quyền trong ngữ cảnh một tiểu trình được thực thi ở chế độ người dùng Do đó các mã thực thi này có thể bị chiếm quyền thực thi bởi một tiểu trình ở chế độ người dùng có độ ưu tiên cao hơn hoặc bởi tiểu trình bộ phận phục vụ nhân
- Bộ phận phục vụ nhân (kernel server): tiến trình bộ phận phục vụ nhân có một tiểu trình chính và luôn luôn chạy đặc quyền Đây là tiểu trình có độ ưu tiên cao nhất trong hệ thống Nó cấp phát và giải phóng tài nguyên cho các server và ứng dụng Nó là một tiểu trình đơn giản, quản lý các yêu cầu người dùng thành chuỗi, không ưu tiên
Trang 34KHOA CNTT –
ĐH KHTN
H2.2 Mô hình E32
• Thư viện euser.dll cung cấp 3 loại hàm chức năng khác nhau:
- Các chức năng thực thi toàn bộ ở phía người dùng, như các chức năng về chuỗi và lớp descriptor (là dạng lớp string trong Symbian), danh sách liên kết, mảng, thao tác văn bản, bắt lỗi, v.v
- Các chức năng đòi hỏi đặc quyền, sẽ được kết nối với bộ phận điều hành nhân, như đặt lại cấu hình về thời gian, vị trí, cấp phát heap, tiểu trình, v.v
- Các chức năng đòi hỏi được cung cấp từ bộ phận phục vụ nhân, từ thư viện thông qua bộ phận thi hành đến bộ phận phục vụ nhân
• Trình điều khiển thiết bị
Các thiết bị hệ thống như màn hình, bàn phím, màn hình cảm ứng số hóa (digitizer), thiết bị âm thanh, đèn trạng thái, bộ cảm biến điện, cổng tuần tự, được điều khiển bởi các trình điều khiển thiết bị cấp thấp Có thể gắn thêm thiết bị và viết
Trang 35KHOA CNTT –
ĐH KHTN
trình điều khiển cho chúng Một trình điều khiển thiết bị được cài đặt trong một số phần như hình vẽ:
H2.3 Mô hình các trình điều khiển thiết bị
Bộ phận điều hành nhân chứa các hỗ trợ cho điều khiển thiết bị để một chương trình người dùng có thể yêu cầu mã điều khiển thiết bị chạy dưới phần nhân, ở bộ phận điều hành nhân hay bộ phận phục vụ nhân
Các trình điều khiển xử lý ngắt (interrupt) thiết bị rồi báo cho chương trình người dùng (hay ở phần nhân) yêu cầu đã hoàn thành Quản lý ngắt làm việc ở 2 cấp:
- Cấp thứ nhất được thực hiện bởi vòng dịch vụ ngắt (interrupt service routine- ISR) Các ISR này ngắn và không thực hiện nhiều bởi vì có thể chúng xuất hiện tại bất cứ thời điểm nào, ngay cả ở giữa các hoạt động của bộ phận phục vụ nhân Thường chúng đơn giản chỉ báo xác nhận thiết bị gây ngắt và đặt cờ yêu cầu nhân chạy một cuộc gọi hàm trì hoãn (delayed function call-DFC) cho các xử lý ở cấp thứ hai
- Bộ phận điều hành nhân gọi DFC khi nó ở trạng thái thuận tiện, chẳng hạn thực thi ngay lập tức nếu ngắt xảy ra khi đang thực thi ứng dụng ở chế độ người dùng Ngược lại, xảy ra ngắt khi bộ phận điều hành nhân đang hoạt động thì DFC sẽ được gọi khi có một sự chuyển đổi thực thi từ phần nhân sang phần chế độ người
Trang 36KHOA CNTT –
ĐH KHTN
dùng Các DFC có thể dùng hầu hết các hàm API của nhân Thường các DFC này chỉ thực hiện một xử lý nhỏ rồi gởi đến một tiểu trình người dùng để xác nhận yêu cầu I/O đã hoàn tất
Hầu hết các lập trình viên đều chỉ có thể lập trình ở phần người dùng nhờ các API cung cấp từ các SDK Nếu muốn lập trình sâu xuống phần nhân hay lập trình các trình điều khiển thiết bị chuyên dụng, họ phải là thành viên của Symbian Platinium, phải mua một gói chứa các hàm API riêng của Symbian Nói các khác Symbian chỉ mở 95% chứ không phải hoàn toàn 100% cho các lập trình viên tự do 2.1.2 Hệ thống con và API
Hệ điều hành Sybian là một hệ thống lớn, chứa hàng trăm lớp và hơn ngàn hàm chức năng Giống như các hệ thống phức tạp khác, Symbian được chia thành các phần nhỏ hơn gọi là các hệ thống con Mỗi nhóm chứa các API phục vụ cho một nhóm chức năng có quan hệ với nhau
H2.4 Mô hình các hệ thống con
• Nhóm cơ sở (base): gồm nhân, thư viện người dùng, các trình điều khiển
thiết bị, file server Các API này gồm các lớp như quản lý chuỗi, mảng, danh sách, quản lý lỗi, và ngay cả các kiểu cơ bản dùng cho số nguyên (integer) và số thực (real) Đối với các lập trình viên hệ thống, những người cần thao tác các phần nền
Trang 37KHOA CNTT –
ĐH KHTN
tảng của hệ thống như tiểu trình, tiến trình, bộ nhớ, nhóm cơ sở sẽ cung cấp cho
họ các API cần thiết Nhưng như đã nói ở trên, phần lớn những API này cung cấp rất hạn chế cho các lập trình viên tự do ngoài Symbian Platinium
• Nhóm bảo mật (Security): gồm các thành phần cung cấp các thuật toán mã
hóa, quản lý xác nhận và trình cài đặt ứng dụng có chứa các đặc tính bảo mật
• Nhóm đồ họa (Graphic): gồm các API phục vụ cho vẽ trên các loại thiết bị
như màn hình hay máy in, các đối tượng ảnh nhúng và quản lý font, ảnh bitmap Nhóm này cũng chứa các API của window server ở phía người dùng, cung cấp các chức năng vẽ trên window và nhận các sự kiện trên window và các API phục vụ hoạt họa cho phép chạy chúng trong các tiểu trình có độ ưu tiên cao
• Trình công cụ và tiện ích (Engine và Utility): gồm Contact, Agenda, ứng
dụng văn phòng, SyncML, quản trị dữ liệu, trình duyệt, Các nhóm này kết hợp với nhóm đồ họa tạo thành phần trung gian (Middleware)
- Nhóm khung ứng dụng (application framework): bao gồm các API xác
định cấu trúc và quản lý giao diện người dùng Nó bao gồm các API cho việc quản
lý trình bày văn bản, điều khiển giao tiếp với người dùng, và các cơ chế khác như nhận dạng viết tay
- Nhóm công cụ ứng dụng (application engine): Các nhóm API này cung
cấp cách truy cập dữ liệu của các ứng dụng lõi Việc này giúp cho các ứng dụng mới có thể tích hợp với các ứng dụng lõi, như các ứng dụng truyền thông có thể thao tác và đọc dữ liệu của Contact và Agenda
- Nhóm đa phương tiện (multimedia): cung cấp các API cho thao tác âm
thanh, hình ảnh
- Nhóm dịch vụ ứng dụng (application service): cung cấp một nhóm các
dịch vụ tiện ích cho ứng dụng, từ các thông tin hệ thống đến quản lý vCard và vCalendar
- Nhóm giao thức ứng dụng (application protocol): cung cấp các API cho
phần kết nối chuẩn, SyncML (đồng bộ), giao thức Web HTTP
• Truyền thông (Communication):
Trang 38KHOA CNTT –
ĐH KHTN
- Nhóm cơ sở hạ tầng truyền thông ( Comms Infrastructure): cung cấp các
API liên quan đến các dịch vụ hệ thống tổ chức cho truyền thông và kết nối mạng Các API này phục vụ cho các nhóm trên như giao tiếp hồng ngoại (Infrared), Bluetooth, và truyền thông tuần tự (serial) Liên kết mạng cũng được xây dựng trên nhóm này, cung cấp ngăn giao thức TCP/IP, kết nối theo kiểu dial-up
- Nhóm hệ thống điện thoại (Telephony): cung cấp truy cập ứng dụng đến
các chức năng điện thoại và một cơ cấu tổ chức để xây dựng các trình điều khiển cho phần cứng liên quan chức năng thoại
- Nhóm giao thức băng tần hẹp (Narrow Band Protocol) cung cấp các API
cho việc quản lý tin nhắn (message) SMS
- Ở cấp cao hơn, nhóm Messaging cung cấp một cơ cấu cho nhiều giao
thức nhắn tin (SMS, MMS)
- Ngăn WAP (Wireless Application Protocol) cung cấp các API phục vụ
truy cập các giao thức WAP và trình duyệt WAP (WAP Browser) hỗ trợ cho
WAP Push
• Hệ thống ngôn ngữ: cung cấp các API cho lập trình Java qua các nhóm
Java, JavaPhone, và MIDP
2.2 Cấu trúc truyền thông
Chức năng truyền thông, liên lạc vô tuyến là một trong những trọng tâm trong thiết kế của các hệ điều hành cho WID và với Symbian, điều này cũng không ngoại
lệ Nhìn vào cấu trúc hệ điều hành và phần mềm của Symbian ở phần trên, ta có thể
dễ dàng nhận ra các hệ thống con phục vụ cho truyền thông, liên lạc vô tuyến chiếm hơn một nữa
Trong phần này chúng ta sẽ tìm hiểu về các server phục vụ cho truyền thông và các phương thức truyền thông vô tuyến quan trọng
• Serial comms server
Serial comms server cung cấp các hàm API truy cập các cổng tuần tự cho các client Nó cũng đặc tả một giao tiếp cho phép một số giao thức tựa tuần tự như là
Trang 39KHOA CNTT –
ĐH KHTN
các cổng tuần tự Symbian sử dụng đặc tính này để truy cập cả truyền thông tuần tự thật qua cổng giao tiếp RS232 và truyền thông hồng ngoại IrCOMM qua cổng hồng ngoại
• Telephony server
Telephony server cung cấp các API chuẩn để các client có thể khởi tạo, điều khiển và ngắt các cuộc gọi, truyền dữ liệu, fax Symbian cung cấp các module chung, chuẩn cho các điện thoại GSM và truyền thông mặt đất dùng các tập lệnh
AT
Bên trong telephony chứa một server khác là fax server chuyên thực hiện các giao thức truyền fax, hỗ trợ truyền và nhận thô, và cung cấp cho các client các API cho phiên truyền thông fax
• Socket server
Socket server cung cấp các socket API tựa BSD cho các client Nó cũng đặc tả một giao tiếp cho phép socket được thực hiện với nhiều giao thức khác nhau Symbian cung cấp giao thức chuẩn là Internet và hồng ngoại, cùng với giao thức kết nối PLP dùng cho kết nối với máy tính cá nhân PC
• Comms database server
Cơ sở dữ liệu truyền thông được thực hiện nhờ DBMS server của Symbian Đây là nơi lưu trữ tất cả các thông tin về cuộc gọi, modem, giao thức, số điện thoại truy cập mạng, địa chỉ Internet và các định vị vật lý, cùng với chi tiết của các trình điều khiển thiết bị sẵn dùng cho các server hệ thống và nhân Control Panel thường được dùng để tạo và cập nhật cho cơ sở dữ liệu này Cơ sở dữ liệu này sẽ cung cấp các thông tin cần cho các thao tác liên quan đến truyền thông
Trang 40KHOA CNTT –
ĐH KHTN
H2.5 Cấu trúc truyền thông
• Truyền thông hồng ngoại
Truyền thông hồng ngoại là một trong 2 giao thức truyền thông dữ liệu chuẩn trên Symbian qua các thiết bị hồng ngoại tuần tự (Serial Infrared-SIR) gắn liền trên các điện thoại Symbian Một ngăn truyền thông hồng ngoại được Symbian cung cấp: socket server cung cấp IrLAP, IrLMP, IrTinyTP, IrObex và IrMUX, IrCOMM được cung cấp bởi dịch vụ tuần tự
• Truyền thông Bluetooth
Truyền thông Bluetooth là một chuẩn trong truyền thông vô tuyến dùng các sóng radio ngắn được Symbian hỗ trợ Bluetooth vốn được Ericsson, một thành viên sáng lập Symbian nghiên cứu phát triển Hiện nay chuẩn Bluetooth được quản lý bởi Special Interest Group (SIG), một nhóm gồm các công ty hàng đầu như Ericsson, 3Com, IBM, Intel, Microsoft, Motorola và Nokia Bluetooth hoạt động ở băng tầng 2.4 GHz và có ảnh hưởng trong phạm vi 10m