Báo Cáo Môn Hệ Điều Hành

72 654 0
Báo Cáo Môn Hệ Điều Hành

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Báo Cáo Môn Hệ Điều Hành Embedded Linux System Phan Duy, Phạm Tuấn Duy, Bùi Thanh Hùng, Phạm Xuân Sơn, Phạm Đức Nguyên, Nguyễn Xuân Triễn, Lê Quốc Hưng, Đào Xuân Dạng 11/22/2012 Những kiến thức hệ điều hành nhúng linux ứng dụng lĩnh vực công nghệ thông tin nói chung lập trình nhúng nói riêng nhóm sưu tầm tổng hợp Nhận xét Nội Dung I GIỚI THIỆU TỔNG QUAN VỀ HỆ THỐNG NHÚNG VÀ HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hệ thống nhúng (Embedded System) a) Khái niệm b) Hệ thống thời gian thực c) Đặc trưng d) Giao diện e) Kiến trúc CPU f) Thiết bị ngoại vi g) Công cụ phát triển Hệ điều hành thời gian thực (RTOS) kernel thời gian thực a) Chương trình, tác vụ luồng b) Vòng lặp kiểm soát đơn giản c) Hệ thống ngắt điều khiển d) Đa nhiệm tương tác e) Đa nhiệm ưu tiên f) Vi nhân (Microkernel) nhân ngoại (Exokernel) g) Nhân khối (monolithic kernels) 10 II PHẦN MÊM TRONG EMBEDDED LINUX 10 Giới thiệu Linux 10 a) Tổng quan 11 b) Điểm mạnh 12 c) Điểm yếu 13 Linux Kernel 14 a) Kiến trúc nhân 14 b) Đặc điểm nhân Linux 20 c) File System 21 d) Device Drivers 25 e) Cấu hình kernel 25 f) Biên Dịch cài đặt hạt nhân cho hệ thống máy chủ 32 g) Sử dụng mô-đun hạt nhân 33 Toolchain 34 a) Cross compiler 34 b) Định nghĩa Toolchain thành phần 35 c) Thư viện C 37 d) Toolchain Options 38 e) Xây dựng Toolchain 39 Bootloader 42 a) Giới thiệu Bootloader 42 b) Bootloader số tảng phổ biến 42 c) Bootloader cho CPUs nhúng 45 d) III U-boot Bootloader 45 PHẦN CỨNG ĐỐI VỚI EMBEDDED LINUX 52 Yêu cầu phần cứng 52 Khả tích hợp phần cứng 54 Các phần cứng tích hợp 56 IV ỨNG DỤNG – XÂY DỰNG MỘT HỆ THỐNG NHÚNG LINUX TRÊN NỀN TẢNG ARM (TI OMAP3) 57 Cấu hình phần cứng 57 Build Cross-compiling Toolchain 58 Buil Bootloader U-Boot 61 Build kernel Linux 64 Hướng phát triển ứng dụng Embedded Linux 66 Embedded Linux Android 67 V Tham Khảo 71 I GIỚI THIỆU TỔNG QUAN VỀ HỆ THỐNG NHÚNG VÀ HỆ ĐIỀU HÀNH THỜI GIAN THỰC Hệ thống nhúng (Embedded System) a) Khái niệm Hệ thống nhúng (Embedded system) thuật ngữ để hệ thống có khả tự trị nhúng vào môi trường hay hệ thống mẹ Đó hệ thống tích hợp phần cứng phần mềm phục vụ toán chuyên dụng nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc truyền tin Đặc điểm hệ thống nhúng hoạt động ổn định có tính tự động hoá cao Hệ thống nhúng thường thiết kế để thực chức chuyên biệt Khác với máy tính đa chức năng, chẳng hạn máy tính cá nhân, hệ thống nhúng thực một vài chức định, thường kèm với yêu cầu cụ thể bao gồm số thiết bị máy móc phần cứng chuyên dụng mà ta không tìm thấy máy tính đa nói chung Vì hệ thống xây dựng cho số nhiệm vụ định nên nhà thiết kế tối ưu hóa nhằm giảm thiểu kích thước chi phí sản xuất Các hệ thống nhúng thường sản xuất hàng loạt với số lượng lớn Hệ thống nhúng đa dạng, phong phú chủng loại Đó thiết bị cầm tay nhỏ gọn đồng hồ kĩ thuật số máy chơi nhạc MP3, sản phẩm lớn đèn giao thông, kiểm soát nhà máy hệ thống kiểm soát máy lượng hạt nhân Xét độ phức tạp, hệ thống nhúng đơn giản với vi điều khiển phức tạp với nhiều đơn vị, thiết bị ngoại vi mạng lưới nằm gọn lớp vỏ máy lớn Các thiết bị PDA máy tính cầm tay có số đặc điểm tương tự với hệ thống nhúng hệ điều hành vi xử lý điều khiển chúng thiết bị hệ thống nhúng thật chúng thiết bị đa năng, cho phép sử dụng nhiều ứng dụng kết nối đến nhiều thiết bị ngoại vi b) Hệ thống thời gian thực Trong lĩnh vực công nghệ thông tin, người ta nói hệ thống thông tin thời gian thực hệ thống điều khiển vật thể vật lý với tốc độ phù hợp với tiến triển tiến trình chủ Một ví dụ dễ hiểu (hệ thống thông tin điều khiển hình hiển thị xác tàu điện ngầm đến gare định) Hệ thống thông tin thời gian thực khác với hệ thống thông tin khác gò bó thời gian, đó, việc tuân thủ nguyên tắc quan trọng độ xác kết quả, nói cách khác, hệ thống không đơn giản đưa kết xác mà phải thực xử lý thời gian ngắn Hệ thống thông tin thời gian thực ngày ứng dụng nhiều lĩnh vực như: ngành công nghiệp sản xuất, kiểm soát tiến trình (trong nhà máy, hay viện hạt nhân, hệ thống hàng không, thông qua hệ thống dẫn đường tích hợp máy bay vệ tinh) Sự phát triển hệ thống thông tin thời gian thực yêu cầu phần tử hệ thống phải thời gian thực, hệ thống thiết kế theo cách gọi hệ điều hành thời gian thực c) Đặc trưng Hệ thống nhúng thường có số đặc điểm chung sau:  Các hệ thống nhúng thiết kế để thực số nhiệm vụ chuyên dụng đóng vai trò hệ thống máy tính đa chức Một số hệ thống đòi hỏi ràng buộc tính hoạt động thời gian thực để đảm bảo độ an toàn tính ứng dụng; số hệ thống không đòi hỏi ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất  Một hệ thống nhúng thường khối riêng biệt mà hệ thống phức tạp nằm thiết bị mà điều khiển  Phần mềm viết cho hệ thống nhúng gọi firmware lưu trữ chip nhớ ROM nhớ flash ổ đĩa Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: bàn phím, hình có với kích thước nhỏ, dung lượng nhớ thấp Sau đây, ta sâu, xem xét cụ thể đặc điểm thành phần hệ thống nhúng d) Giao diện Các hệ thống nhúng giao diện (đối với hệ thống đơn nhiệm) có đầy đủ giao diện giao tiếp với người dùng tương tự hệ điều hành thiết bị để bàn Đối với hệ thống đơn giản, thiết bị nhúng sử dụng nút bấm, đèn LED hiển thị chữ cỡ nhỏ hiển thị số, thường kèm với hệ thống menu đơn giản Còn hệ thống phức tạp hơn, hình đồ họa, cảm ứng có nút bấm lề hình cho phép thực thao tác phức tạp mà tối thiểu hóa khoảng không gian cần sử dụng; ý nghĩa nút bấm thay đổi theo hình lựa chọn Các hệ thống nhúng thường có hình với nút bấm dạng cần điểu khiển (joystick button) Sự phát triển mạnh mẽ mạng toàn cầu mang đến cho nhà thiết kế hệ nhúng lựa chọn sử dụng giao diện web thông qua việc kết nối mạng Điều giúp tránh chi phí cho hình phức tạp đồng thời cung cấp khả hiển thị nhập liệu phức tạp cần đến, thông qua máy tính khác Điều hữu dụng thiết bị điều khiển từ xa, cài đặt vĩnh viễn Ví dụ, router thiết bị ứng dụng tiện ích e) Kiến trúc CPU Các xử lý hệ thống nhúng chia thành hai loại: vi xử lý vi điều khiển Các vi điều khiển thường có thiết bị ngoại vi tích hợp chip nhằm giảm kích thước hệ thống Có nhiều loại kiến trúc CPU sử dụng thiết kế hệ nhúng ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8 … Điều trái ngược với loại máy tính để bàn, thường bị hạn chế với vài kiến trúc máy tính định Các hệ thống nhúng có kích thước nhỏ thiết kế để hoạt động môi trường công nghiệp thường lựa chọn PC/104 PC/104++ làm tảng Những hệ thống thường sử dụng DOS, Linux, NetBSD hệ điều hành nhúng thời gian thực QNX hay VxWorks Còn hệ thống nhúng có kích thước lớn thường sử dụng cấu hình thông dụng hệ thống on chip (System on a chip – SoC), bảng mạch tích hợp cho ứng dụng cụ thể (an application-specific integrated circuit – ASIC) Sau nhân CPU mua thêm vào phần thiết kế chip Một chiến lược tương tự sử dụng FPGA (field-programmable gate array) lập trình cho với thành phần nguyên lý thiết kế bao gồm CPU f) Thiết bị ngoại vi Hệ thống nhúng giao tiếp với bên thông qua thiết bị ngoại vi, ví dụ như:  Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485  Synchronous Serial Communication Interface: I2C, JTAG, SPI, SSC ESSI  Universal Serial Bus (USB)  Networks: Controller Area Network, LonWorks  Bộ định thời: PLL(s), Capture/Compare Time Processing Units  Discrete IO: General Purpose Input/Output (GPIO) g) Công cụ phát triển Tương tự sản phẩm phần mềm khác, phần mềm hệ thống nhúng phát triển nhờ việc sử dụng trình biên dịch (compilers), chương trình dịch hợp ngữ (assembler) công cụ gỡ rối (debuggers) Tuy nhiên, nhà thiết kế hệ thống nhúng sử dụng số công cụ chuyên dụng như:  Bộ gỡ rối mạch chương trình mô (emulator)  Tiện ích để thêm giá trị checksum CRC vào chương trình, giúp hệ thống nhúng kiểm tra tính hợp lệ chương trình  Đối với hệ thống xử lý tín hiệu số, người phát triển hệ thống sử dụng phần mềm workbench MathCad Mathematica để mô phép toán  Các trình biên dịch trình liên kết (linker) chuyên dụng sử dụng để tối ưu hóa thiết bị phần cứng  Một hệ thống nhúng có ngôn ngữ lập trình công cụ thiết kế riêng sử dụng cải tiến từ ngôn ngữ có sẵn Các công cụ phần mềm tạo công ty phần mềm chuyên dụng hệ thống nhúng chuyển đổi từ công cụ phát triển phần mềm GNU Đôi khi, công cụ phát triển dành cho máy tính cá nhân sử dụng xử lý hệ thống nhúng gần giống với xử lý máy PC thông dụng Hệ điều hành thời gian thực (RTOS) kernel thời gian thực a) Chương trình, tác vụ luồng Một chương trình hệ thống nhúng phần mềm có khả thực thi độc lập có vùng nhớ riêng Nó bao gồm môi trường thực thi chức cụ thể khả tương tác với hệ điều hành Một chương trình bắt đầu chạy cách độc lập từ chương trình khác Một hệ điều hành có khả thực thi nhiều chương trình lúc song song Tuy nhiên, chương trình có khả tự chia vài phần có khả thực thi song song nhau, phần gọi luồng Một luồng phần chương trình phụ thuộc mặt chức so với luồng khác lại có khả hoạt động độc lập Các luồng chia sẻ chung nhớ chương trình Khái niệm tác vụ luồng thay cho Hình mô tả khác chương trình luồng Một phương pháp khác mà kernel thời gian thực hay sử dụng mô hình xếp mức độ ưu tiên Trong mô hình này, luồng kèm với mức độ ưu tiên nó, lúc này, vi xử lý thiết lập đường truy cập tới luồng có mức độ ưu tiên cao đòi hỏi phục vụ Cũng có vài biến thể phương pháp này, nhiên phải đảm bảo luồng có mức độ ưu tiên thấp phải truy cập tới vi xử lý vài lần Hình mô tả phương pháp cách xử lý phương pháp Một ưu điểm quan trọng phương pháp có khả tạm hoãn thực thi luồng có luồng khác với mức độ ưu tiên cao cần phục vụ Quá trình lưu trữ lại thông tin thời luồng bị tạm hoãn thực thi có luồng khác với mức độ ưu tiên cao cần phục vụ gọi “context switching” Quá trình phải thực nhanh đơn giản để luồng bị tạm hoãn thực tiếp nhiệm vụ cách xác lấy lại đươc quyền điều khiển Một hệ thống nhúng thời gian thực phải có khả đáp ứng lại tín hiệu ngõ vào hay kiện cách nhanh xác nhất, ngắt hệ thống Ngắt hệ thống phải làm cho vi xử lý ngưng nhiệm vụ thực thi để xử lý ngắt Một ngắt xử lý ISR (interrupt service routine), có khả kích hoạt luồng có mức độ ưu tiên cao luồng thực thi Lúc này, tạm hoãn lại luồng để dành quyền cho luồng có mức độ ưu tiên cao Ngắt tạo phần mềm (ngắt mềm) hay thiết bị phần cứng (ngắt cứng) b) Vòng lặp kiểm soát đơn giản Theo thiết kế này, phần mềm tổ chức thành vòng lặp đơn giản Vòng lặp gọi đến chương trình con, chương trình quản lý phần hệ thống phần cứng phần mềm c) Hệ thống ngắt điều khiển Các hệ thống nhúng thường điểu khiển ngắt Có nghĩa tác vụ hệ thống nhúng kích hoạt loại kiện khác Ví dụ, ngắt sinh định thời sau chu kỳ định nghĩa trước, kiện cổng nối tiếp nhận byte Loại kiến trúc thường sử dụng hệ thống có quản lý kiện đơn giản, ngắn gọn cần độ trễ thấp Hệ thống thường thực tác vụ đơn giản vòng lặp Đôi khi, tác vụ phức tạp thêm vào cấu trúc hàng đợi quản lý ngắt để vòng lặp xử lý sau Lúc này, hệ thống gần giống với kiểu nhân đa nhiệm với tiến trình rời rạc d) Đa nhiệm tương tác Một hệ thống đa nhiệm không ưu tiên gần giống với kỹ thuật vòng lặp kiểm soát đơn giản ngoại trừ việc vòng lặp ẩn giấu thông qua giao diện lập trình API Các nhà lập trình định nghĩa loạt nhiệm vụ, nhiệm vụ chạy môi trường riêng Khi không cần thực nhiệm vụ gọi đến tiến trình tạm nghỉ (bằng cách gọi “pause”, “wait”, “yield” …) Ưu điểm nhược điểm loại kiến trúc giống với kiểm vòng lặp kiểm soát đơn giản Tuy nhiên, việc thêm phần mềm thực dễ dàng cách lập trình tác vụ thêm vào hàng đợi thông dịch (queueinterpreter) e) Đa nhiệm ưu tiên Ở loại kiến trúc này, hệ thống thường có đoạn mã mức thấp thực việc chuyển đổi tác vụ khác thông qua định thời Đoạn mã thường nằm mức mà hệ thống coi có hệ điều hành gặp phải tất phức tạp việc quản lý đa nhiệm Bất kỳ tác vụ phá hủy liệu tác vụ khác cần phải tách biệt cách xác Việc truy cập tới liệu chia sẻ quản lý số kỹ thuật đồng hóa hàng đợi thông điệp (message queues), semaphores … Vì phức tạp nói nên giải pháp thường đưa sử dụng hệ điều hành thời gian thực Lúc đó, nhà lập trình tập trung vào việc phát triển chức thiết bị không cần quan tâm đến dịch vụ hệ điều hành f) Vi nhân (Microkernel) nhân ngoại (Exokernel) Khái niệm vi nhân (microkernel) bước tiếp cận gần tới khái niệm hệ điều hành thời gian thực Lúc này, nhân hệ điều hành thực việc cấp phát nhớ chuyển CPU cho luồng thực thi Còn tiến trình người dùng sử dụng chức Thiết bị giải trí, thiết bị y tế Xe ô tô, tàu tốc hành, phương tiện vận tải thông minh Thiết bị gia dụng thông minh vv Máy chấm công sử dụng Embedded Linux Đầu ghi kênh Điện thoại Motorola E680 sử dụng Embedded Linux Thiết bị download torrent sử dụng Embedded Linux ỨNG DỤNG – XÂY DỰNG MỘT HỆ THỐNG NHÚNG LINUX TRÊN NỀN TẢNG ARM (TI OMAP3) Cấu hình phần cứng Hệ thống xây dựng dựa tảng VXL ARM, cụ thể mục tiêu xây dựng hệ thống nhúng Linux cho KIT IGEPv2 ISEE có cấu sau: IV VXL: DM370 (OMAP3) Texas Instruments Bộ nhớ: 512 MB RAM, 512 MB flash Ngoại vi: USB 2.0 host, USB device, ngõ xuất HDMI/DVI-D, audio I/O 100 Mbit Ethernet port, Wifi, Bluetooth, cổng mở rộng, cổng JTAG… KIT IGEPv2 ISEE Build Cross-compiling Toolchain Cài đặc parkages cần thiết lệnh: sudo apt-get install autoconf automake libtool libexpat1-dev \ libncurses5-dev bison flex patch curl cvs texinfo \ build-essential subversion gawk python-dev gperf sudo apt-get clean Tải công cụ Crosstool-ng 1.16 địa http://crosstool-ng.org Đây công cụ dựng sẵn dùng để build toolchain theo cấu hình tùy chỉnh Dưới trình cài đặt Crosstool-ng sau chuyển đến thư mục dùng lệnh: /configure enable-local make make install Cấu hình thuộc tính để tạo toolchain cho kit IGEPv2 Ở ta dùng cấu hình dựng sẵn arm-unknown-linux-uclibcgnueabi Sau menu để config toolchain: Bước cuối build toolchain với lệnh: /ct-ng build Để test thử toolchain build, ta biên dịch ứng dụng hello.c Kết ứng dụng biên dịch tạo file a.out nạp lên kit Buil Bootloader U-Boot Dựa theo board IGEPv2 trình chạy bootloader thực theo trình VXL cung cấp monitor tích hợp ROM để đọc thẻ nhớ MMC/SD tìm đến vùng bootloader hợp lệ Sau trình khởi chạy nhớ nội NAND flash ROM Code: cố gắng tìm kiếm file ảnh bootstrap hợp lệ từ nguồn lưu trữ khác nhau, tải vào SRAM RAM (RAM khởi tạo mã ROM thông qua header cấu hình).Kích thước nhỏ 64 KB Không có tương tác với người dùng X-Loader: chạy từ SRAM Khởi tạo DRAM, điều khiển NAND MMC, tải bootloader thứ cấp vào nhớ RAM bắt đầu Không có tương tác với người dùng Tập tin gọi MLO U-Boot: chạy từ nhớ RAM Khởi tạo số thiết bị phần cứng khác (mạng, USB, ) Tải kernel image từ lưu trữ mạng RAM bắt đầu Shell với lệnh cung cấp File gọi u-boot.bin Linux Kernel: chạy từ RAM Mất nhiều thời gian hệ thống hoàn thành a) Cài đặt X-loader Download giải nén source X-loader sudo apt-get install git git clone git://git.igep.es/pub/scm/x-loader.git cd x-loader git checkout v1.4.4-3 Áp dụng patch để hỗ trợ NAND flash cho X-loader cat /x-loader-1.4.4-3-igep-nand-support.patch | patch -p1 Để compile X-loader cần khởi tạo enviroment variable (biến môi trường) PATH đến toolchain sau: export CROSS_COMPILE=arm-linux- export PATH=/usr/local/xtools/arm-unknown-linux-uclibcgnueabi/bin:$PATH Lệnh cấu hình cho target board IGEPv2: make igep0020-sdcard_config Và cuối build X-loader lệnh make, kết tạo file x-load.bin.ift chép vào thẻ nhớ b) Cài đặt U-boot Tải U-boot: wget ftp://ftp.denx.de/pub/u-boot/u-boot-2011.12.tar.bz2 tar xvf u-boot-2011.12.tar.bz2 cd u-boot-2011.12 Áp dụng patch hỗ trợ NAND flash cho IGEPv2: cat /u-boot-2011.12-igep-nand-support.patch | patch -p1 Cấu hình lệnh: make include/configs/igep0020.h Build U-boot lệnh make, tạo file u-boot.bin nạp vào thẻ MMC Build kernel Linux Sử dụng nhân 3.1 cho hệ thống này, nhân lấy từ website Linux kernel (http://www.kernel.org/) Áp dụng patch sau: cat /linux-3.2-arm-omap2-make-board-onenand-init-visible-to-board-code.patch | patch -p1 cat /linux-3.2-arm-omap3-igep0020-add-support-for-micron-nand-flash.patch | patch -p1 Thiết lập biến môi trường: export PATH=/usr/local/xtools/arm-unknown-linux-uclibcgnueabi/bin:$PATH Chỉnh sửa makefile ( hướng dẫn cho cross-compiler trình biên dịch nhân) tương ứng với toolchain build tương thích với tảng arm Cấu hình nhân Linux với giao diện đồ hóa lệnh make xconfig Sau cấu hình kernel tiến hành biên dịch nhân: Như hệ thống nhúng Linux với thành phần toolchain, bootloader, kernel biên dịch theo target board IGEPv2 Hướng phát triển ứng dụng Embedded Linux Ngoài việc sử dụng hệ thống Atagi, Apple, windows Thì hệ thống máy trạm HP, Sun,Apollo dùng tảng embedded linux để phát triển ứng dụng công nghệ phát triễn ngày kế thừa từ m68k, ARM, MIPS, SH, and PowerPC để thiết kế hệ thống nhúng cho riêng Hạt nhân tích hợp để chứa biến thể tạo thuận lợi cho việc bổ sung hệ thống khác dựa m68k Mỗi hệ thống thiết lập riêng module cụ thể để giao tiếp với phần cứng Mỗi hệ thống có cách thức ngắt khác nhau, mã nguồn hạt nhân phản ánh khác biệt việc có khác chức để đối phó với cài đặt gián đoạn xử lý loại hệ thống Kể từ phiên MMU đời m68k sử dụng thiết kế Ngoài : Hiện nay, embedded Linux có nhiều phiên khác nhau, từ phiên tự xây dựng DIY ( do-it-yourself) đến phiên thuơng mại độc lập MontaVista, WindRiver…Số luợng công ty sử dụng phiên embedded Linux tiếp tục tăng nhanh Các hãng lớn Motorola, NEC, Panasonic áp dụng thành công phiên MontaVista Linux hàng triệu sản phẩm điện thoại di động; hãng Yamaha chọn OS để xây dựng sản phẩm MOTIF XS (bộ tổng hợp sản phẩm âm nhạc) sử dụng nhạc sĩ ca sĩ tiếng Sự sáng tạo điểm dừng Các nhà thiết kế sử dụng embeddedLinux tạo sản phẩm vuợt mong đợi: đồ chơi, nguời máy công nghiệp, vệ tinh, đọc sách e-book Các hệ thống tự động chế tạo nhiều công nghệ khác thiết bị máy móc tự động chốt khí, hệ thống tự động hoạt động nguyên lý khí nén, thủy lực, rơle điện, mạch điện tử số thiết bị, hệ thống có chức xử lý mức độ tự động thấp so với hệ thống tự động đại xây dựng tảng hệ thống nhúng Ta thấy trình hệ nhúng thâm nhập vào phần tử, thiết bị thuộc lĩnh vực tự động hóa đầu đo, cấu chấp hành, thiết bị giao diện với người vận hành chí vào rơle, contactor, nút bấm mà trước hoàn toàn làm khí Khác với PC thường chạy hệ điều hành windows unix, hệ thống nhúng có hệ điều hành nhúng riêng Các hệ điều hành dùng hệ nhúng trội bao gồm Embedded linux, VxWorks, WinCE, Lynyos, BSD, Green Hills, QNX DOS, Embeddde linux phát triển mạnh Năm 2001 hệ điều hành chiếm 12% thị phần hệ điều hành nhúng năm 2002 chiếm 27% chiếm vị trí số Hiện 40% nhà thiết kế hệ nhúng cân nhắc sử dụng Embedded linux cho ứng dụng sau đến hệ điều hành nhúng truyền thống VxWorks, WinCE Các đối thủ cạnh tranh Embedded linux hệ điều hành nhúng tự tạo windows CE Sở dĩ Embedded linux có phát triển vượt bậc có sức hấp dẫn ứng dụng giá thành thấp đòi hỏi thời gian đưa sản phẩm thị trường nhanh Mặt khác Linux phần mềm mã nguồn mở nên hiểu thay đổi theo ý Linux hệ điều hành có cấu trúc module chiếm nhớ windows đặc tính ưu việt Do thị trường sản phẩm nhúng tăng mạnh lên nhà sản xuất ngày sử dụng hệ điều hành nhúng để đảm bảo sản phẩm có sức cạnh tranh Embedded linux sản phẩm hệ điều hành nhúng có uy tín chiếm vị trí số năm tới Embedded Linux Android Tháng 10 năm 2008, Google tạo cú sốc cho thị trường di động giới công bố hệ điều hành (HĐH) nguồn mở Android dùng cho thiết bị di động Với cấu trúc gồm HĐH, middleware (phần trung gian HĐH ứng dụng) số ứng dụng chính, Android có khả hỗ trợ nhiều kiến trúc vi xử lý mà đảm bảo khả viết chương trình dễ dàng Android SDK cung cấp công cụ API cần thiết cho việc phát triển ứng dụng Android sử dụng ngôn ngữ lập trình Java.Đặc biệt, Android áp dụng giấy phép Apache 2.0, có nghĩa nhà phát triển phát triển mở rộng chức mà không cần công bố mã nguồn phần mở rộng Điều mang lại khả to lớn cho nhà sản xuất thiết bị di động, tạo nên cú hích cho thị trường này.Các mạnh Android:  Application Framework thiết kế tốt  Ứng dụng dựa Java, ngôn ngữ phổ biến  Nền tảng Linux – HĐH nguồn mở  Hỗ trợ NDK (Native Development Kit): Cho phép nhúng thành phần sử dụng mã C++ vào ứng dụng Android Điều đặc biệt quan trọng ứng dụng đòi hỏi hiệu suất cao mà ứng dụng dựa Java máy ảo Dalvik không đáp ứng  Giấy phép sử dụng: Rất hấp dẫn tất gói nhân mở nguồn theo Apache 2.0 Các phần phát triển thêm không cần phải công bố mã nguồn  Mã nguồn: Bộ mã nguồn dễ hiểu Một số trình điều khiển mở mã nguồn  Thị trường cực lớn điện thoại di động  Chuẩn toàn cầu  Các phiên cập nhật liên tục Kiến trúc Cách dễ dàng hình dung cấu trúc Android giống nhà có phòng Tên phòng giống hình vẽ: Applications, Application Framework, Libraries, Android Runtime, Linux Kernel Bây tiếp tục hình dung, phòng chứa số lượng người định Mỗi người tương ứng nút màu đỏ tên người thể nút màu đỏ Những phòng khác có số lượng người khác Mỗi người có chức riêng biệt nhà mang tên Android Applications Căn phòng đâu tiên bạn bước vào đến với nhà Android Tất người phòng ứng dụng mà bạn có thiết bị chạy Android Là thứ mà bạn dễ dàng thấy hình: Phone, Contact, trò chơi, chương trình bạn cài vào… số ứng dụng chạy ngầm mà bạn không thấy Hầu hết ứng dụng viết Java (hoặc C) Có thể ví phòng giống phòng riêng bạn, bạn cho vào (cài đặt ứng dụng) hay “không ưa” “tiễn” họ (gỡ bỏ ứng dụng) tùy thích Những phòng lại bạn quyền làm The Application Framework Căn phòng gồm người có quyền cao người phòng Applications Những người có nhiệm vụ “quản lí” người phòng Applications Ví dụ: Content Provider cho phép chia sẻ thông tin ứng dụng, Resource Mananger: quản lí vấn đề liên quan đến đồ họa, file layout , Notification Manager quản lí cảnh báo: tiếng bíp, đèn led… Activity Manager: quản lí hoạt động ứng dụng Các framework giống ứng dụng sườn Android Có nhiều nhân vật phòng công việc họ bạn đoán thông qua tên gọi họ Mà đa số họ Quản Lí (Manager) hày Nhà cung cấp (Provider) nên “không dám bàn nhiều” Libraries Căn phòng giống nhà bếp nhà Tất người phòng Applications hay Application Framework muốn làm việc phải lấy thứ phòng cho vào “bụng” làm việc Nghĩa ứng dụng chạy gọi hàm nằm thư viện Các lập trình viên dùng hàm thư viện để phát triển ứng dụng Ví dụ: Media Framework gọi chương trình có liên quan đến Media nghe nhạc, xem ảnh Hay WebKit liên quan đến Internet, SQLite liên quan đến sở liệu… Một chương trình phải cần nhiều thư viện phòng Android Runtime Có thể nói phòng ‘Android runtime’ nơi đặc biệt Nó có người: Dalvik Virtual Machine thư viện nhân (core libraries) Những thư viện hệ điều hành, cung cấp cho hệ điều hành Trong Google Android, có công cụ gọi ‘DX’ chuyển ứng dụng thành dạng Dalvik Executable (.dex) Đây file đặc biệt dùng cho Dalvik Virtual Machine Định dạng tạo nhằm làm tối thiểu kích thước chương trình, làm cho tương thích với thiết bị di động Dalvik Virtual Machine chương trình viết để Android chạy đa nhiệm nhanh mượt Linux Kernel Căn phòng nhỏ chứa trình điều khiển (drivers) dùng để điều khiển phần cứng Keypad, Wifi, Camera, Audio, Màn hình… Phòng coi “Trung tâm huy” nhà Linux Kernel nắm giữ cốt lõi hệ điều hành Các giải thuật quản lí tài nguyên, chuyển đổi qua lại tác vụ, phân chia quyền, giải tranh chấp… xem “phòng công tác đối ngoại” đảm nhận việc tương tác với thiết bị ngoại vi Nó nhân Linux 2.6 V - Tham Khảo Nguồn tham khảo internet, training free-electrons.com Một số sách tiếng anh chuyên ngành: Embedded Linux Primer, Building Embedded Linux System

Ngày đăng: 24/08/2016, 14:42

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan