GIỚI THIỆU HỆ ĐIỀU HÀNH LINUX, HỆ THỐNG NHÚNG
Hiện nay, cùng với sự phát triển mạnh mẽ của hệ điều
hành Windows của hãng Microsoft, trong thế giới công nghệ thông tin
chứng kiến sự ra đời và phát triển như vũ bão của hệ điều hành mã nguồn
mở Linux. Hệ điều hành Linux có khả năng tương thích với phần cứng cao, và hệ thống mã nguồn mở lớn cho phép
người lập trình xây dựng ứng dụng “nhúng” một cách dễ dàng.
Bên cạnh đó, người sử dụng có thể xây dựng một hệ điều hành cho riêng mình, đây là thế mạnh của Linux nó giúp cho mỗi cơ quan, tổ chức, hay một quốc gia có thể xây dựng những hệ thống chương trình cho riêng mình nhằm tăng tính bảo mật. Đây là một ý nghĩa thực tiễn rất lớn về việc ứng dụng Linux trong các hệ thống điều khiển của nhiều lĩnh vực như: quân sự, ngân hàng, và các hệ thống điều khiển nhúng, .v.v…
Bên cạnh đó, người sử dụng có thể xây dựng một hệ điều hành cho riêng mình, đây là thế mạnh của Linux nó giúp cho mỗi cơ quan, tổ chức, hay một quốc gia có thể xây dựng những hệ thống chương trình cho riêng mình nhằm tăng tính bảo mật. Đây là một ý nghĩa thực tiễn rất lớn về việc ứng dụng Linux trong các hệ thống điều khiển của nhiều lĩnh vực như: quân sự, ngân hàng, và các hệ thống điều khiển nhúng, .v.v…
1. Hệ điều hành Linux (Linux OS)
Linux là một hệ điều hành mã nguồn mở (open-source OS)
chạy trên hầu hết các kiến trúc vi xử lý, bao gồm dòng vi xử lý ARM.
Linux được hỗ trợ bởi một cộng đồng mã nguồn mở (GNU), chính điều này
làm cho Linux rất linh hoạt và phát triển rất nhanh với nhiều tính năng
không thua kém các hệ điều hành khác hiện nay. Tất cả các ứng dụng chạy
trên hệ điều hành UNIX đều tương thích với Linux.
Hầu hết các bản Linux đều hỗ trợ rất nhiều ngôn ngữ lập trình, đặc biệt công cụ GCC cho phép người lập trình có thể biên dịch và thực thi ứng dụng viết bằng nhiều ngôn ngữ lập trình khác nhau: C/C++, Java, .v.v... Ngoài ra, Linux còn hỗ trợ ngôn ngữ lập trình để phát triển các ứng dụng đồ họa như: JTK+, Qt, .v.v...
Ngoài các thiết kế hệ điều hành dành cho máy tính desktop và máy chủ (server), các nhà cung cấp hệ điều hành linux còn thiết kế ra các bản chuyên biệt cho các mục đích khác nhau như: hỗ trợ kiến trúc máy tính, hệ thống nhúng (embedded Linux system), các hệ thống bảo mật, an ninh mạng, .v.v…
Do chi phí thấp, khả năng thay đổi tương thích với phần cứng dễ dàng, nên nhúng Linux thường được sử dụng rất nhiều trong các hệ thống nhúng (embedded system). Ngày nay, Linux đã trở thành một đối thủ cạnh tranh lớn về lĩnh vực hệ điều hành trong các dòng điện thoại thông minh (smartphone), các thiết bị PDA (personal digital assistant) và là một lựa chọn thay thế cho sự độc quyền của Windows CE và Palm OS.
2. Giới thiệu hệ thống nhúng (embeded system)
2.1 Hệ thống “nhúng” là gì?
Theo định nghĩa của IEEE (Hiệp hội kỹ sư điện và điện tử Hoa kỳ):
Hệ thống nhúng là một phần của hệ thống lớn hơn và thực hiện một số chức năng của hệ thống đó.
Nói một cách đơn giản khi một hệ tính toán (có thể là PC, PLC, vi xử lý, vi điều khiển, DSP, .v.v…) được nhúng vào trong một sản phẩm hay một hệ thống một cách “hữu cơ” và thực hiện một số chức năng cụ thể của hệ thống thì ta gọi đó là một hệ thống nhúng.
Nói một cách đơn giản khi một hệ tính toán (có thể là PC, PLC, vi xử lý, vi điều khiển, DSP, .v.v…) được nhúng vào trong một sản phẩm hay một hệ thống một cách “hữu cơ” và thực hiện một số chức năng cụ thể của hệ thống thì ta gọi đó là một hệ thống nhúng.
Các nhà thống kê trên thế giới đã thống kê được số vi xử lý ở trong các máy PC và các máy chủ (server), các mạng LAN, WAN, Internet chỉ chiếm không đầy 1% tổng số vi xử lý có trên thế giới. Hơn 99% số vi xử lý còn lại nằm trong các hệ thống “nhúng”.
Các hệ “nhúng” được tích hợp trong các thiết bị đo lường
điều khiển, các sản phẩm điện tử và tự động hóa tạo nên đầu não và linh
hồn của sản phẩm.
Trong các hệ “nhúng”, hệ thống điều khiển “nhúng” đóng
một vai trò hết sức quan trọng. Hệ điều khiển “nhúng” là hệ thống mà
chương trình máy tính được nhúng vào vòng điều khiển của sản phẩm nhằm
điều khiển một đối tượng, điều khiển một quá trình công nghệ đáp ứng các
yêu cầu đặt ra. Hệ thống điều khiển “nhúng” lấy thông tin từ các cảm
biến, xử lý tính toán các thuật điều khiển và phát tín hiệu điều khiển
cho các cơ cấu chấp hành.
Khác với các hệ thống điều khiển cổ điển theo nguyên lý
cơ khí, thuỷ lực, khí nén, relay, mạch tương tự, v.v… Hệ điều khiển
“nhúng” là hệ thống điều khiển số được hình thành từ những năm 1960 đến
nay. Trước đây các hệ điều khiển số thường do các máy tính lớn đảm
nhiệm, ngày nay chức năng điều khiển số này do các chip vi xử lý, các hệ
nhúng đã thay thế. Phần mềm điều khiển ngày càng tinh xảo tạo nên độ
thông minh của thiết bị và ngày càng chiếm tỷ trọng lớn trong giá thành
của thiết bị.
Như vậy không phải tất cả các sản phẩm đo lường và điều
khiển đều là các hệ nhúng. Hiện nay chúng ta còn gặp nhiều hệ thống điều
khiển tự động hoạt động theo nguyên tắc cơ khí, thuỷ lực, khí nén,
relay, hoặc điện tử tương tự, v.v…có các chương trình điều khiển được
hình thành không cần sử dụng kỹ thuật “nhúng”.
Ngược lại phần lớn các sản phẩm điện tử, tự động hóa
hiện nay đều có nhúng trong nó các chip vi xử lý hoặc một mạng nhúng.
Ngày nay, các sản phẩm điện tử ngày càng tinh xảo và càng thông minh mà
phần hồn của nó do các phần mềm nhúng trong nó tạo nên, và đó là xu hướng không thể đảo ngược của khoa học công nghệ ở thế kỷ 21.
Chức năng xử lý thông tin ở PC và ở các thiết bị “nhúng”
có những nét khác biệt. Đối với PC và mạng Internet chức năng xử lý
đang được phát triển mạnh ở các lĩnh vực như thương mại điện tử, ngân
hàng điện tử, chính phủ điện tử, thư viện điện tử, đào tạo từ xa, báo
điện tử, .v.v... Các ứng dụng này thường sử dụng máy PC để bàn, mạng
WAN, LAN hoạt động trong thế giới ảo.
Còn đối với các hệ nhúng thì chức năng xử lý tính toán được ứng dụng cụ thể cho các thiết bị vật lý (thế giới thật) như điện thoại di động, quần áo thông minh, các thiết bị điện tử cầm tay, thiết bị y tế, xe ô tô, tàu tốc hành, phương tiện vận tải thông minh, máy đo, đầu đo cơ cấu chấp hành thông minh, các hệ thống điều khiển, nhà thông minh, .v.v...
Còn đối với các hệ nhúng thì chức năng xử lý tính toán được ứng dụng cụ thể cho các thiết bị vật lý (thế giới thật) như điện thoại di động, quần áo thông minh, các thiết bị điện tử cầm tay, thiết bị y tế, xe ô tô, tàu tốc hành, phương tiện vận tải thông minh, máy đo, đầu đo cơ cấu chấp hành thông minh, các hệ thống điều khiển, nhà thông minh, .v.v...
2.2 Cấu trúc hệ thống “nhúng”
Các hệ nhúng là những hệ kết hợp phần cứng và phần mềm một cách tối ưu. Một số đặc trưng cơ bản của hệ “nhúng”:
– Tính chuyên dụng cao.
– Ràng buộc về hoạt động trong chế độ thời gian thực.
– Tính chuyên dụng cao.
– Ràng buộc về hoạt động trong chế độ thời gian thực.
– Hạn chế về bộ nhớ, năng lượng, giá thành cao.
Tuy nhiên, đòi hỏi hoạt động với độ tin cậy cao và tiêu tốn ít năng lượng.
2.3 Hệ thống điều khiển tích hợp (SoC)
Ngày nay, công nghệ thiết kế chip có xu hướng chuyển từ
linh kiện riêng rẽ sang chip vi hệ thống (SoC) có khả năng lập trình
được phát triển rất mạnh mẽ.
Các chip vi hệ thống (SoC) trong tương lai sẽ có tới
1000 bộ xử lý và 100 MB memory, đồng thời được tích hợp rất nhiều khối
như PSD, ADC, I2C, PWM, DAC, Wireless, SPI, USB, CAN, Ethernet, .v.v…
Các chip SoC này sẽ là nền tảng của các sản phẩm có khả năng kết nối
mạng WAN-LAN không dây cho các dịch vụ thông tin, giải trí, truyền
thông, định vị ở bất cứ đâu, bất cứ thời gian nào cho tất cả công dân
trên hành tinh này. Các vật dụng sẽ có khả năng nhìn, nghe, nói, có cảm
xúc và nhạy bén thích nghi với yêu cầu của con người.
Hiện nay, các sản phẩm của hệ thống nhúng đa phần đều sử
dụng chip SoC với tốc độ xử lý lên đến hàng GHz mà điển hình là chip
ARM-CortexA8. Với tính linh hoạt trong lập trình phần mềm cho các hệ
nhúng nên SoC sẽ là công cụ chủ chốt cho các sản phẩm điện tử.
2.4 Nhúng Linux (Embedded Linux) chạy trên vi xử lý ARM
Embedded Linux hiện đ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ụng Embedded Linux cho các ứng dụng mới của mình và sau đó mới đến các
hệ điều hành nhúng truyền thống như Win CE. Các đối thủ cạnh tranh của
Embedded Linux hiện nay là các hệđiều hành nhúng tự tạo và Windows CE.
Hình 2.2 Embedded Linux chạy trên ARM9 kit
Embedded Linux có sự phát triển vượt bậc là do có sức hấp dẫn đối với các ứng dụng không đòi hỏi thời gian thực như; các hệ server nhúng, các ứng dụng giá thành thấp và đòi hỏi thời gian đưa sản phẩm ra thị trường nhanh. Mặt khác Linux là phần mềm mã nguồn mở nên bất kỳ ai cũng có thể hiểu và thay đổi theo ý mình. Linux cũng là một hệ điều hành có cấu trúc module và chiếm ít bộ nhớ trong khi Windows không có các ưu điểm này.
Bên cạnh các ưu điểm trên thì Embedded Linux cũng có các nhược điểm sau:
- Embedded Linux không phải là hệ điều hành thời gian thực nên có thể
không phù hợp với một số ứng dụng nhưđiều khiển quá trình, các ứng dụng
có các yêu cầu xử lý khẩn cấp.
- Embedded Linux thiếu một chuẩn thống nhất và không phải là sản phẩm của
một nhà cung cấp duy nhất nên khả năng hỗ trợ kỹ thuật chưa cao.
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ất ngà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ạnh tranh và Embedded Linux đang là sản phẩm hệ điều hành
nhúng có uy tín chiếm vị trí số 1 trên thế giới. Phần mềm nhúng là phần
mềm tạo nên phần hồn, phần trí tuệ của các sản phẩm nhúng. Phần mềm
nhúng ngày càng có tỷ lệ giá trị cao trong giá trị của các sản phẩm
nhúng.
Hiện nay, phần lớn các phần mềm nhúng nằm trong các sản
phẩm truyền thông và các sản phẩm điện tử tiêu dùng (consumer
electronics), tiếp đến là trong các sản phẩm ô tô, phương tiện vận
chuyển, máy móc thiết bị y tế, các thiết bị năng lượng, các thiết bị
cảnh báo bảo vệ, các sản phẩm đo lường và điều khiển.
Trên phương diện phần mềm (software) thì Embedded Linux
là một hệ điều hành chủ chốt trong việc phát triển các sản phẩm nhúng
hiện nay. Đối với bộ xử lý trung tâm thì có khoảng 75% trong tổng các
CPU nhúng 32 bit hiện nay dựa trên kiến trúc vi xử lý ARM.Nguồn: armlinux.info