Hệ điều hành trên thiết bị di động

Một phần của tài liệu Môi trường phát triển phần mềm nhúng cho các thiết bị di động (Trang 25)

Tốc độ phát triển vượt bậc của các thiết bị di động kéo theo sự phát triển các hệ điều hành cho các thiết bị này. Hệ điều hành cho thiết bị di động không ngừng cải tiến và mở rộng về khả năng kết hợp với các hệ thống khác, khả năng tích hợp ứng dụng và hỗ trợ nhiều nền tảng phần cứng khác nhau. Hiện nay có các hệ điều hành phổ biến sau [12], [13]:

- Symbian: được dùng nhiều cho các máy Nokia, Ericsson, Motorola, Panasonic, Psion, Lenovo, Siemens, NEC, Toshiba.

- Windows Mobile:dùng cho các máy Compad, Dell và Motorola. - Palm OS: cho các máy Samsung, Sony, PalmOne, Foundertech.

- Hệ điều hành phát triển trên Linux: được dùng trong các máy Motorola, Nexterm, ELT, Samsung, Sony, Panasonic, Philips, NEC, Toshiba. Hệ điều hành này có ưu điểm là mã nguồn mở nhưng hạn chế về mặt hỗ trợ công nghệ.

Hệ điều hành trên thiết bị di động là một hệ điều hành nhúng bao gồm các module hệ thống điều khiển phần cứng và cung cấp giao diện thông dịch lệnh cho phép các chương trình người dùng. Điều này được chỉ ra trong Hình 3.1:

Hình 3.1. Tổng quan vai trò hệ điều hành

Ứng dụng 1 Ứng dụng 2 Ứng dụng 3

Hệ điều hành Giao diện lập trình ứng dụng Các khối điều khiển phần cứng

nhúng cho các thiết bị di động

Việc tìm hiểu môi trường phát triển ứng dụng nhúng trên thiết bị di động cần hiểu hệ điều hành sử dụng cho thiết bị cũng như tìm hiểu các thư viện lập trình hệ điều hành cung cấp. Ngoài ra, để mở rộng khả năng tích hợp ứng dụng, một số hệ điều hành có thể tích hợp thêm các nền tảng công nghệ mới cho các ứng dụng trên thiết bị di động. Hai nền tảng phổ biến nhất hiện nay là .NET Framework của Microsoft tích hợp trong Windows Mobile và nền tảng J2ME của Sun [11].

Trong các phần sau sẽ tìm hiểu về môi trường lập trình C/C++ trên hệ điều hành Symbian, .NET Compact Framework trong Windows Mobile và J2ME.

nhúng cho các thiết bị di động 3.2. Môi trường lập trình trong Symbian

3.2.1. Hệ điều hành Symbian

Hệ điều hành Symbian là một hệ điều hành được thiết kế riêng để hoạt động tối ưu trên các thiết bị di động vốn hạn chế về tài nguyên . Lịch sử của Symbian khởi nguồn từ nền tảng EPOC – đó là hệ điều hành sử dụng để điều khiển các thiết bị nhỏ do công ty Psion đưa ra . Sau đó một số công ty di đô ̣ng hàng đầu (Nokia, Siemen, …) mua lại P sion, thành lập lên Symbian . EPOC phát triển với tên mới Symbian OS [22].

Hệ điều hành Symbian cung cấp một chuẩn mở . Các nhà sản xuất muốn chạy Symbian cho thiết bị của mình cần tuân theo các chuẩn này . Bất kỳ nhà sản xuất nào cũng có thể đươ ̣c cấp bản quyền sử du ̣ng Symbian.

Symbian có mô ̣t số đă ̣c điểm cơ bản [29]: - Tiết kiê ̣m năng lươ ̣ng.

- Đa nhiê ̣m: nhiều chương trình hoa ̣t đô ̣ng đồng thời.

- Chuẩn: cung cấp chuẩn mở . Muốn sử du ̣ng Symbian, thiết bi ̣ phải tuân theo chuẩn này.

- Hướng đối tượng: Symbian được thiết kế theo phương pháp hướng đối tươ ̣ng.

- Quản lý bộ nhớ: đươ ̣c tối ưu, thích hợp cho các hệ nhúng. - Bảo mật.

- Hỗ trơ ̣ mã unicode.

Kiến trúc Symbian gồm năm thành phần được chỉ ra trong Hình 3.2 dưới đây [29]:

nhúng cho các thiết bị di động

Nhân Symbian: bao gồm các module cốt yếu , hoạt động thường xuyên của hệ điều hành và thường trực trong bô ̣ nhớ từ khi bâ ̣t máy đến khi tắt . Nhân làm nhiệm vụ quản lý các dịch vụ và các bả ng dữ liê ̣u của symbian . Nhân bao gồm các thành phần [21]:

- Tâ ̣p hợp các trình điều khiển phần cứng

- Các bảng dữ liệu: thông tin cấu hình hê ̣ thống… - Chương trình cho phép giao tiếp với phần cứng

Tầng hệ thống [21]:

- Là phần mềm hệ trung gian, cung cấp các thư viê ̣n , kho dữ liê ̣u , các chương trình hê ̣ thống: quản lý dữ liệu, giao tiếp, đồ ho ̣a.

- Không cần thiết phải đă ̣t trong nhân, được go ̣i khi cần.

- Mục đích: thiết kế các di ̣ch vu ̣ hê ̣ thống mới , nâng cấp các di ̣ch vu ̣ hê ̣ thống cũ mà không cần viết la ̣i nhân. (adsbygoogle = window.adsbygoogle || []).push({});

- Tầng hệ thống cung cấp các di ̣ch vu phổ biến: o Hê ̣ thống cửa sổ.

o Giao tiếp ma ̣ng, cổng nối tiếp, bluetooth, hồng ngoa ̣i. o Quản lý đa phương tiện.

o Cơ sở dữ liê ̣u.

Tầng vận hành ứng dụng (Application Engine)[21]:

- Quản lý dữ liệu, ứng dụng người dùng, không liên quan đến hê ̣ thống. - Các ứng dụng người dùng tương tác với application engine , application

engine tương tác với middleware.

Tầng giao diện người dùng (User Interface Framework) [14]:

- Yêu cầu giao diê ̣n người dùng: dễ sử du ̣ng, dễ thay đổi, dễ lâ ̣p trình. - Mỗi thiết bi ̣ khác nhau cần mô ̣t kiểu giao diê ̣n phù hợp.

- Framework giao diê ̣n người dùng được thiết kế như mô ̣t phần của nhân Symbian. Mục đích của nền giao diện nhằm cung cấp các lớp thao tác giao diê ̣n người dùng.

- Kỹ thuật đồng bộ ứng dụng (Synchronization technology ): Kỹ thuật cho phép đồng bô ̣ dữ liê ̣u với các máy khác nhau . Kỹ thuật đồng bộ gồm 3 nô ̣i dung chính:

nhúng cho các thiết bị di động o Quản lý kết nối: tiến trình người dùng trên symbian phát hiê ̣n và

đồng bô ̣ hóa kết nối khi có yêu cầu kết nối.

o Thực hiê ̣n di ̣ch vụ khi kết nối : các dịch vụ như duyệt file , sao lưu, phục hồi.

o Chuyển dạng file: cho phép chuyển đổi đi ̣nh da ̣ng file khác nhau giữa các ứng du ̣ng.

Tầng máy ảo Java (JVM – java virtual machine):

- Symbian OS hỗ trơ ̣ framework J2ME( java to micro edition) - J2ME: do sun phát triển để lâ ̣p trình java trên các thiết bi ̣ cầm tay

3.2.2. Thực thi ứng dụng trên Symbian

3.2.2.1. Phân loại ứng dụng

Trên Symbian, ứng dụng được chia thành hai loại: ứng dụng hướng file (file- based application) và ứng dụng không hướng file [29]:

- Ứng dụng không hướng file: là các ứng dụng không yêu cầu lưu trữ dữ liệu lâu dài như: các ứng dụng tính toán (calculator), các trò chơi. - Ứng dụng hướng file: là các ứng dụng cần lưu trữ thông tin lâu dài

như: xử lý văn bản, quản lý liên lạc, … Khi phát triển các ứng dụng hướng file cần quan tâm đến vấn đề quản lý dữ liệu lưu trữ lâu dài. Theo đó, ứng dụng hướng file cũng được chia thành hai loại:

o Ứng dụng file độc lập: là các ứng dụng file mà có thể nạp và lưu trữ tài liệu dưới dạng các file độc lập như Word hay Record. Khi một file tài liệu được nạp, toàn bộ dữ liệu file sẽ được lưu và xử lý trong RAM và khi lưu file xuống lại đĩa thì file cũ sẽ bị xóa và được thay thế bằng file mới. Đối với các ứng dụng file dạng này, dữ liệu thật xem như ở trên RAM, các file chỉ lưu lại các phiên bản khác nhau của tài liệu ứng dụng. Mỗi file có biểu tượng của ứng dụng và chúng có chứa UID của ứng dụng. Đây là cơ sở để xác định tài liệu thuộc ứng dụng nào, chúng không dựa trên phần mở rộng của tên như trên các hệ điều hành khác. Một số file tài liệu dạng này có thể cho phép nhúng một tài liệu của một ứng dụng khác, biến tài liệu tồn tại độc lập này thành một phần tài liệu của nó. Ví dụ file hình ảnh có thể nhúng vào một file danh bạ.

nhúng cho các thiết bị di động o Ứng dụng file cơ sở dữ liệu: là các ứng dụng file nhưng tài liệu

của nó là các file cơ sở dữ liệu. Tại mỗi thời điểm sử dụng, chỉ nạp và lưu các bản ghi có cấu trúc trên cơ sở dữ liệu qua việc sử dụng các đầu vào tương ứng nhờ các chỉ mục. Đối với các ứng dụng file này, dữ liệu thật lại nằm trên đĩa trong các file cơ sở dữ liệu, còn trên RAM chỉ là các đoạn dữ liệu sao chép từ file cơ sở dữ liệu.

3.2.2.2. Cấu trúc ứng dụng

Cấu trúc một ứng dụng trên Symbian thường bao gồm bốn lớp [29]:

- Lớp ứng dụng (Application): lớp ứng dụng định nghĩa các thuộc tính ứng dụng, và tạo ra các file mới cho ứng dụng. Trong trường hợp đơn giản nhất, nó chỉ bao gồm định danh ứng dụng UID.

- Lớp tài liệu (Document): đại diện cho mô hình dữ liệu của ứng dụng. Nếu ứng dụng là ứng dụng file, các ứng dụng phục vụ chính cho việc tạo các file tài liệu, lớp này sẽ đảm nhận việc nạp và lưu trữ các file tài liệu cho ứng dụng. Với các ứng dụng không phải là ứng dụng file, lớp tài liệu vẫn tồn tại với mục đích để nạp phần giao diện ứng dụng.

- Lớp giao diện ứng dụng (AppUI – application user interface): Nhiệm vụ chính của lớp này là cung cấp sự tương tác giữa ứng dụng với người dùng qua các đối tượng điều khiển như toolbar hay menu, đồng thời cho phép tạo các khung nhìn giao tiếp giữa ứng dụng và người dùng.

- Lớp hiển thị (AppView): đây thực chất là một điều khiển, mục đích chính của nó là thể hiện các dữ liệu của ứng dụng lên màn hình và cho phép người dùng tương tác với nó. (adsbygoogle = window.adsbygoogle || []).push({});

3.2.2.3. Thực thi ứng dụng trên Symbian

a) Các kiểu thực thi ứng dụng:

Trên Symbian hỗ trợ hai hệ thống chương trình ứng dụng với các kiểu file khác nhau:

- Chương trình .exe: được lưu trữ trong các file thực thi có phần mở rộng là exe. Đây là chương trình với một đầu vào chính từ hàm E32Main(). Khi hệ thống nạp một chương trình .exe mới, đầu tiên nó tạo một tiến trình mới. Trong luồng chính của tiến trình này, điểm vào sẽ được gọi để thực thi chương trình.

nhúng cho các thiết bị di động

- Thư viện liên kết động (Dynamic link library-DLL): một thư viện chứa các mã chương trình với nhiều điểm đầu vào. Hệ thống sẽ nạp một DLL vào trong ngữ cảnh hoạt động của tiểu trình. Có 2 loại DLL quan trọng:

o Shared DLL: cung cấp một nhóm hàm API nhất định cho một hay nhiều chương trình sử dụng. Hầu hết các thư viện này nằm trong các file có phần mở rộng là .dll. Một chương trình thực thi sẽ được nối với thư viện dùng chung mà nó yêu cầu và khi hệ thống nạp chương trình thực thi, thư viện dùng chung cần cho chương trình này sẽ được nạp tự động.

o Polymorphic DLL: cung cấp một nhóm hàm API được lưu trữ trong các file có phần mở rộng khác nhau phục vụ cho các chức năng riêng như điều khiển máy in (.prn), giao thức socket (.prt), hay đó là một ứng dụng đồ họa GUI (.app). Trong hệ điều hành Symbian, polymorphic DLL thường chỉ có một điểm vào, nó khai báo và khởi tạo một lớp dẫn xuất từ các lớp cơ sở trong DLL này. Thư viện DLL loại này được nạp bởi chương trình sử dụng nó.

b)Nạp chương trình:

Các file thực thi chứa ba loại dữ liệu nhị phân: mã chỉ thị, dữ liệu chỉ đọc và dữ liệu thay đổi được [21].

- Chương trình .exe: Khi chương trình .exe được nạp vào RAM từ file .exe được lưu trên RAM (đĩa C) hoặc từ thẻ nhớ (đĩa D), thì nó được cấp một vùng nhớ riêng cho mã, dữ liệu chỉ đọc, dữ liệu động. Nếu một phiên bản thứ 2 của chương trình được nạp vào RAM thì một vùng nhớ mới sẽ được cấp cho nó. Với file chương trình .exe chứa trong ROM (ổ đĩa Z) thì chỉ có dữ liệu động được nạp vào RAM, mã chỉ thị và dữ liệu chỉ đọc được đọc trực tiếp từ ROM.

- Thư viện DLL: Khi một thư viện DLL lần đầu tiên được nạp vào RAM, nó được cấp một vùng nhớ riêng, khi được yêu cầu sử dụng lần thứ hai, nó không nạp tiếp DLL này vào RAM mà đơn giản chỉ gắn địa chỉ nó trên RAM cho luồng yêu cầu. Hệ điều hành Symbian kiểm tra số lượng luồng tham chiếu đến DLL này và giải phóng nó khi không còn luồng nào sử dụng nó nữa. Với các DLL chứa trên ROM thì không cần nạp vào RAM nữa mà được sử dụng trực tiếp trên ROM.

nhúng cho các thiết bị di động

c) Thực thi ứng dụng:

Ứng dụng dòng lệnh được thực thi qua file chương trình .exe. Các ứng dụng dạng này phải tạo một giao diện dòng lệnh riêng để tương tác với người dùng.

Các ứng dụng có giao diện đồ họa là những thư viện polymorphic DLL với phần mở rộng là .app. Tiến trình ứng dụng được tạo bởi một chương trình nhỏ là Apprun.exe, , tên của file chương trình ứng dụng .app được chuyển làm tham số cho Apprun.exe.

nhúng cho các thiết bị di động

3.2.3. Xây dựng ứng dụng trên Symbian với C/C++

Như đã đề cập trong phần trước, có thể phát triển ứng dụng trên Symbian với hai môi trường lập trình chủ yếu là Java và C/C++. Tuy nhiên Symbian cung cấp nhiều thư viện lập trình và cung cấp giao diện API tốt hơn cho các ứng dụng C/C++. Hơn nữa các thiết bị sử dụng hệ điều hành Symbian thường hạn chế về khả năng phần cứng do đó khi phát triển ứng dụng trên Symbian thì lựa chọn môi trường C/C++ tối ưu hơn. Trong phần này sẽ trình bày về nền tảng Symbian và môi trường phát triển tích hợp C/C++ trên Symbian [13].

3.2.3.1. Symbian Flatform

Các hãng sản xuất điện thoại khi sử dụng hệ điều hành Symbian cho thiết bị của mình thường tích hợp thêm một số phần mềm hệ thống cho các công nghệ mới tạo thành các nền tảng Symbian. Có thể tổng quát như sau [29]:

Symbian Flatform = Hệ điều hành Symbian + Phần mềm hệ thống tích hợp (ISS - Intergrated System Software).

Các nền tảng Symbian phổ biến hiện nay là: Series 60, Symbian UIQ, Series 80 và Series 90, trong đó phổ biến nhất là Series 60 với Nokia 7650,3650,3660. Một số công nghệ tích hợp trong Series 60 được mô tả trong Hình 3.3:

Hình 3.3. Công nghệ tích hợp trong Series 60

3.2.3.2. Các SDK và IDE phổ biến

Công việc xây dựng ứng dụng trên Symbian là tương đối phức tạp, trước hết cần phân biệt rõ thuật ngữ SDK và IDE. Symbian SDK là bộ công cụ phát triển được dùng cho việc phát triển ứng dụng chạy trên điện thoại Symbian. Mỗi một nền hệ thống sẽ có bộ SDK (Software Development Kit) riêng với nhiều phiên bản theo các phiên bản hệ điều hành và các IDE hỗ trợ. Mỗi bộ Symbian SDK bao gồm các thành phần sau [20]:

nhúng cho các thiết bị di động

- Một chương trình giả lập Emulator của điện thoại Symbian mà bộ SDK hỗ trợ chạy trên hệ điều hành Windows. Các chương trình ứng dụng sẽ được kiểm lỗi và chạy thử trước khi được cài đặt trên điện thoại Symbian. Chương trình Emulator và các phần liên quan được lưu trữ trong thư mục Epoc32.

- Các file header và thư viện phục vụ cho phát triển ứng dụng chứa trong thư mục con Epoc32\include.

- Một trình biên dịch dựa trên GCC để biên dịch ứng dụng cho điện thoại Symbian chứa trong thư mục con Epoc32\gcc. (adsbygoogle = window.adsbygoogle || []).push({});

- Các công cụ bổ sung dùng cho quá trình phát triển, biên dịch và triển khai ứng dụng nằm trong thư mục Epoc32\tool.

- Tài liệu tham khảo và các ví dụ tham khảo cho các lập trình viên nằm trong thư mục con Documentation và Example.

Trong khi đó, IDE (Integrated Development Environment) là môi trường phát triển tích hợp cho một hoặc một số ngôn ngữ lập trình nhất định, nó thường tích hợp: môi trường soạn thảo, trình biên dịch hoặc thông dịch. Các IDE choC/C++ trên Symbian thường không chứa các SDK mà nó làm việc với một số SDK nhất định. Một số IDE cho Symbian phổ biến: MS Visual C++ 6.0 hay .NET, Borland C++ Builer 6.0, BuilderX và Metrowerks Code Warrior, … trong đó mới nhất và

Một phần của tài liệu Môi trường phát triển phần mềm nhúng cho các thiết bị di động (Trang 25)