nghiên cứu ứng dụng các phương pháp mã hóa bảo mật cho giao thức modbus tcp

52 0 0
Tài liệu đã được kiểm tra trùng lặp
nghiên cứu ứng dụng các phương pháp mã hóa bảo mật cho giao thức modbus tcp

Đ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

Mở đầuHệ thống điều khiển giám sát và thu thập dữ liệu SCADA được sử dụngrộng rãi trong các hệ thống công nghiệp tự động hóa, trong các cơ sở hạ tầng rấtquan trọng như các nhà máy hóa ch

Trang 1

1.1.1 Cấu trúc cơ bản một hệ thống SCADA 4

1.1.2 Các vòng lặp điều khiển phản hồi trong hệ thống SCADA 5

1.2 Giao thức Modbus 7

1.2.1 Cơ chế giao tiếp 7

1.2.2 Cấu trúc một thông điệp Modbus 8

1.3 Modbus TCP/IP 9

1.4 Ứng dụng Modbus trong mạng công nghiệp 10

1.5 Các lỗ hổng trong giao thức Modbus 10

1.6 Một số giải pháp khắc phục 11

Chương 2 13

Tiêu chuẩn mã hóa tiên tiến AES và mã hóa RSA 13

2.1 Tiêu chuẩn mã hóa tiên tiến AES 13

2.2 Mã hóa khóa công khai RSA 16

Ứng dụng mã hóa AES và RSA khắc phục các lỗ hỏng bảo mật 29

cho giao thức Modbus - TCP 29

4.1 Ứng dụng mã hóa AES bảo mật cho giao thức Modbus TCP 29

4.2 Cài đặt và thử nghiệm giao thức bảo mật Modbus TCP trên cơ sở mã AES 32

4.2.1 Chương trình trên máy tính 32

4.2.2 Chương trình trên Board Tiny 6410 34

Trang 2

4.2.3 Một số kết quả thử nghiệm 35

4.2.4 Nhận xét 36

4.3 Tạo chữ ký số xác thực cho giao thức Modbus TCP trên cơ sở mã RSA 37

4.4 Cài đặt và thử nghiệm giao thức Modbus TCP có chứ ký số 40

4.4.1 Mô hình thử nghiệm 40

4.4.2 Chương trình giám sát trên máy tính PC1 41

4.4.3 Chương trình trên Board Mini2440 42

4.4.4 Kết quả thử nghiệm 43

4.4.5 Nhận xét 44

Kết Luận 45

Tài liệu tham khảo 46

THÔNG TIN CHUNG VỀ ĐỀ TÀI 4753

Trang 3

Mở đầu

Hệ thống điều khiển giám sát và thu thập dữ liệu (SCADA) được sử dụngrộng rãi trong các hệ thống công nghiệp tự động hóa, trong các cơ sở hạ tầng rấtquan trọng như các nhà máy hóa chất, trạm phát điện, mạng lưới truyền tải và phânphối điện, mạng lưới phân phối nước và xử lý chất thải, hệ thống thủy lợi, các lòphản ứng tổng hợp hạt nhân… Các hệ thống SCADA như vậy có ý nghĩa chiếnlược bất kỳ một lỗi hoặc trục trặc gây ra thì hậu quả thiệt hại là rất lớn Một hệthống SCADA cho phép kết nối liên thông giữa nhiều mạng thông qua nhiều loạigiao thức, bao gồm cả giao thức Internet Phạm vi kết nối rộng này làm cho hệthống SCADA có thêm nhiều lỗ hổng, cùng với những lỗ hổng sẵn có của hệ thốngSCADA làm chúng rất dễ bị tấn công bởi những kể có ý đồ xấu.

Trong thiết kế truyền thống các hệ thống SCADA mối quan tâm chính làhiệu suất, hiệu quả của của hệ thống An ninh trong các hệ thống SCADA ít đượcquan tâm cho đến khi xuất hiện nhiều sự cố an ninh Cụ thể tháng 3/2000, các trạmbơm trong nhà máy dịch vụ nước Maroochy ở Úc không hoạt động được, các nhânviên phát hiện ra một người nào đó đã tấn công vào hệ thống, gây ra sự cố này Vàotháng 8/2003, một sâu máy tính đã vượt qua tường lửa và xâm nhập vào hệ thốngđiều khiển SCADA tại các nhà máy điện hạt nhân DavisBesse ở Ohio Xu hướngnày lên đến đỉnh điểm với Stuxnet, một phần mềm độc hại tấn công vào hệ thốngSCADA phát hiện vào tháng 7/2010 Stuxnet là một phần mềm độc hại tấn côngtinh vi vào các loại PLC, kiểm soát chúng gây ra những bất thường trong hệ thống.

Hệ thống SCADA ban đầu được xây dựng trên giả thiết là tất cả các thànhphần hoạt động trong mạng là hợp pháp Các hệ thống như vậy hầu như không cócác biện pháp bảo vệ chống lại các cuộc tấn công có chủ ý Các thành phần trongmạng không có xác thực danh tính, xác thực truy nhập, cũng không thể xác minhđược nội dung của thông điệp có hợp lệ hay không và tất cả các dữ liệu đượctruyền qua mạng đều là bản rõ, không có bất kỳ mã hóa nào Giao thức Modbus,Modbus TCP cũng nằm trong số đó, hơn nữa theo xu hướng công nghệ hiện nay thìModbus TCP đang được sử dụng rộng rãi trong các hệ thống SCADA Từ những lýdo đó chúng tôi nghiên cứu ứng dụng các phương pháp mã hóa bảo mật cho giaothức Modbus TCP, nhằm ngăn chặn các cuộc tấn công của những kể có ý đồ xấuvào hệ thống mạng SCADA.

Trang 4

Hình 1.1 Một hệ thống SCADA đơn giản

Hệ thống điều khiển giám sát và thu thập dữ liệu (SCADA) là hệ thống thờigian thực thường gồm có các máy tính giám sát và các thiết bị chuyên dụng trongcông nghiệp cùng phối hợp hoạt động để theo dõi, giám sát và điều khiển các quátrình vật lý từ xa liên quan đến việc quản lý các máy móc, thiết bị và cơ sở vật chấthình 1.1 là một hệ thống SCADA cơ bản.

1.1.1 Cấu trúc cơ bản một hệ thống SCADA

Trang 5

Cấu trúc cơ bản một hệ thống SCADA thường gồm 4 thành phần [5].

 Thành phần đầu tiên bao gồm cảm biến (sensor) và cơ cấu chấp hành(actuator) Các cảm biến thu thập dữ liệu cho hệ thống như cảm biến áp suất, đồnghồ đo mức nước, các cảm biến nhiệt độ Cơ cấu chấp hành (như máy bơm, độngcơ, van từ ) thực hiện các truyền động của hệ thống

 Thành phần thứ hai là các bộ điều khiển logic khả trình (PLC) hay còn gọi làthiết bị đầu cuối từ xa (Remote Terminal Unit - RTU) Các RTU thực hiện một sốchức năng điều khiển hạn chế hoặc trực tiếp đo dữ liệu từ cảm biến cho hệ thống.

 Thành thứ ba là bộ điều khiển giám sát Bộ điều khiển giám sát thường đượcxử lý bởi các thiết bị trạm chủ (Master Terminal Units - MTU) MTU là thiết bịgiao tiếp với các RTU, trái ngược với các RTU một MTU thực hiện các chức năngđiều khiển chiến lược lớn hơn cấp hệ thống Ví dụ, trong một hệ thống SCADAđiều khiển giám sát nhiệt độ lò nung; RTU có thể được cài đặt các luật điều khiểnon/off hay PID, để điều khiển ổn định nhiệt độ trong lò nung MTU có thể gửi lệnhchọn một trong hai luật điều khiển này cho RTU, hay gửi các lệnh đặt nhiệt độ ởcác thời điểm khác nhau để thực hiện sơ đồ công nghệ của quá trình gia nhiệt tronglò nung, hay gửi các lệnh đọc nhiệt độ từ RTU đo được Có nhiều giao thức chophép giao tiếp giữa hai thiết bị này như Modbus, Profibus, Fieldbus, DistributedNetwork Protocol Version 3 (DNP3)

 Thành phần thứ tư là giao diện người máy (Human Machine Interface HMI), được dùng để giao tiếp với các nhà điều hành HMI hiển thị các dữ liệu cảmbiến thu thập bởi các MTU hoặc hiển thị các thông tin cảnh báo HMI thường cóchứa một giao diện chính của hệ thống và các giao diện con điều khiển hoạt độngcủa hệ thống HMI cũng được sử dụng để thay đổi các thông số và các trạng tháitrong hệ thống SCADA Một hệ thống SCADA đơn giản điển hình thể hiện tronghình 1.1.

-1.1.2 Các vòng lặp điều khiển phản hồi trong hệ thống SCADA [6]

Hệ thống ICS nói chung và SCADA nói riêng cài đặt các vòng lặp điều khiểnphản hồi để thực giám sát và điều khiển toàn bộ hệ thống, hình 1.2 cho thấy mộtcấu hình hệ thống điều khiển công nghiệp điển hình với ba vòng lặp điều khiểnphản hồi.

Trang 6

Hình 1.2 Các vòng lặp điều khiển phản hồi trong hệ thống điều khiển công nghiệp

 Vòng lặp điều khiển phản hồi đầu tiên kết nối trực tiếp một bộ điều khiểnlogic khả trình (PLC/RTU) với các cảm biến và cơ cấu chấp hành để thu đo và tácđộng trực tiếp vào các quá trình vật lý Vòng lặp điều khiển phản hồi này không sửdụng các giao thức mạng Các kết nối được thực hiện bằng cách sử dụng các đầuvào/ra số, tương tự trên PLC/RTU Bộ điều khiển PLC/RTU thực hiện một chươngtrình để điều khiển một số chức năng con của hệ thống.

 Vòng lặp điều khiển phản hồi thứ hai kết nối các PLC/RTU với HMI hoặcMTU

HMI/MTU thường được kết nối mạng với các PLC/RTU thông qua nhiềuchuẩn truyền vật lý khác nhau (Ethernet, Serial, không dây, v.v.) và nhiều phươngtiện vận chuyển và các giao thức lớp ứng dụng khác nhau (TCP/IP, Modbus,DNP3, Zigbee, ) HMI/MTU liên tục truy vấn các PLC/RTU cho phép đo giá trịtừ cảm biến để HMI/MTU có thể thực hiện một thuật toán điều khiển tổng thể cấphệ thống HMI/MTU không kết nối trực tiếp với các RTU bằng các tín hiệu màbằng các giao thức SCADA (như Modbus, DNP3, Profibus ) và các RTU luônchịu sự giám sát của MTU nên vòng điều khiển này còn gọi là vòng điều khiểnphản hồi giám sát.

 Vòng lặp điều khiển phản hồi thứ ba kết nối giữa nhà điều hành và các thiếtbị HMI/MTU Vòng lặp điều khiển này đưa thông tin quá trình đến người điềuhành, người điều hành thực hiện điều khiển giám sát như giới hạn quá trình, trạngthái hệ thống, chọn các cơ chế điều khiển hệ thống

1.2 Giao thức Modbus

Trang 7

Hình 1.3 Giao thức Modbus đối chiếu với mô hình OSI

Modbus [7] được thiết kế vào năm 1979 bởi hãng Modicon (sau này thuộcSchneilder Automation) Hiện nay, Modbus là một trong những giao thức phổ biếnnhất được sử dụng trong hệ thống điều khiển công nghiệp Theo khảo sát năm 2013bởi “American Control Engineering magazine”, 40% số hệ thống điều công nghiệpquan trọng được triển khai bằng giao thức Modbus Thành công của Modbus bắtnguồn từ việc tương đối dễ sử dụng Nó cũng là một tiêu chuẩn mở, được phânphối miễn phí và được hỗ trợ rộng rãi bởi các thành viên của tổ chức Modbus, vẫncòn hoạt động đến ngày nay.

Theo mô hình OSI thì Modbus thực chất là một chuẩn giao thức và dịch vụthuộc lớp ứng dụng, có thể được thực hiện vận chuyển qua TCP/IP hay qua đườngtruyền RS232/RS485 (hình 1.3).

1.2.1 Cơ chế giao tiếp

Giao thức Modbus giao tiếp theo cơ chế yêu cầu/đáp ứng, trong đó chỉ cómột thiết bị chủ (Master) có thể gửi yêu cầu, còn các thiết bị tớ (Slave) đáp ứngbằng dữ liệu trả lời hoặc thực hiện một hành động nhất định theo yêu cầu (hình1.4) Kết hợp mã hàm (function code) và dữ liệu, Modbus thực hiện được một loạtcác lệnh như:

 Đọc giá trị một thanh ghi Ghi giá trị cho một thanh ghi

 Đọc giá trị một nhóm các thanh ghi liên tiếp

Trang 8

 Ghi giá trị cho một nhóm thanh ghi liên tiếp Đọc các trị đầu vào

 Ghi các giá trị đầu ra

Hình 1.4 Cơ chế giao tiếp của giao thức Modbus

Địa chỉ của các trạm trong mạng Modbus từ 0-247, trong đó địa chỉ 0 là địachỉ gửi quảng bá.

MỘT SỐ MÃ HÀM CHỨC NĂNG CỦA MODBUS

01 (0x01) Đọc trạng thái thanh ghi vào/ra số02 (0x02) Đọc trạng thái thanh ghi đầu vào số

04 (0x04) Đọc giá trị thanh ghi đầu vào

1.2.2 Cấu trúc một thông điệp Modbus

Modbus có hai chế độ truyền là RTU và ASCII Trong chế độ truyền RTU(Modbus RTU, hình 1.5) mỗi byte trong thông điệp được truyền đi là 8 bit nhịphân, khởi đầu và kết thúc bức điện là khoảng nghỉ ít nhất 4 chu kỳ ký tự Chế độtruyền ASCII (Modbus ASCII, hình 1.6) mỗi byte trong thông điệp được truyền đibởi hai ký tự ASCII là hai ký tự số số hexa biểu diễn byte đó, ký tự khởi đầu là ’:’,hai ký tự kết thức là CR và LF

Mỗi thông điệp đều được định dạng đơn giản gồm phần khởi đầu, kết thúc,địa chỉ, mã hàm, dữ liệu, mã kiểm lỗi để kiểm tra thông điệp có bị lỗi truyền không.

Trang 9

Hình 1.5 Cấu trúc bức điện Modbus RTU

Khởi đầu Địa chỉ Mã hàm Dữ liệu Mã LRC Kết thúc

Hình 1.7 Tạo một thông điệp Modbus TCP

Phần kiểm lỗi (checksum) của Modbus không được sử dụng thay vào đó sửdụng kiểm lỗi của TCP/IP để bảo toàn dữ liệu Mã hàm và dữ liệu của Modbusđược chuyển thành phần dữ liệu của TCP, không có bất kỳ thay đổi nào và bổ sungthêm 7 byte ở phía trước chia thành bốn trường như sau:

Transaction Identifier (2bytes): Được sử dụng để phân biệt các thông điệp

khi có nhiều thông điệp khác nhau truyền đi từ một kết nối TCP.

Protocol Identifier (2bytes): Trường này luôn đặt bằng 0 với Modbus, các

giá trị khác mở rộng cho tương lai.

Length (2 bytes): Cho biết độ dài của các trường còn lại gồm Unit ID,

Function code, Data.

Unit ID (1byte): Có giá trị từ 0-255 sử dụng để nhận dạng các thiết bị trong

mạng Modbus TCP có ý nghĩa như trường địa chỉ (address) trong Modbus chuẩn.

Trang 10

Dữ liệu của Modbus TCP sau khi được tạo ra như hình 7 được giao thức TCP gửi vànhận qua cổng 502 dành riêng cho Modbus.

1.4 Ứng dụng Modbus trong mạng công nghiệp

 Modbus thường được triển khai giao tiếp giữa PLC và HMI, hoặc giữa PLCchủ và các thiết bị tớ như PLCs, HMIs, Drivers, Sensors, I/O devices, … hỗ trợ tốiđa 247 thiết bị trong một bus (xem hình 1.8).

 Một triển khai phổ biến khác sử dụng Modbus TCP/IP là trong vùng DMZSCADA (vùng cho truy cập từ bên ngoài), hoặc trong mạng LAN giám sát có HMIchủ có khả năng quản lý tập trung một số PLC chủ, mỗi PLC chủ trong số đó có thểkết nối trên bus của nó các thiết bị khác, để thực hiện một vòng quét xem hình 8.

Hình 1.8 Modbus sử dụng trong mạng công nghiệp

1.5 Các lỗ hổng trong giao thức Modbus

Giao thức Modbus/Modbus TCP đã là chủ đề của nhiều công trình nghiênnghiên cứu về các lỗ hổng như (Mallouhi, Al-Nashif, Cox, Chadaga, & Hariri,2011 [9]; Sridhar, Manimaran, 2010 [10]; Huitsing, Chandia, Papa, & Shenoi, 2008[11] ) Các công trình này đều chỉ ra cả Modbus Serial và Modbus TCP đều khôngcung cấp một phương pháp để xác thực người gửi, xác thực toàn vẹn gói tin củangười gửi nên người nhận không xác nhận được gói tin có đúng là của người gửi,hay có bị thay đổi khi truyền đi không.

Do cơ chế giao tiếp và cấu trúc gói tin đơn giản nên dễ sử dụng thì cũng giúpkẻ tấn công dễ dàng tạo ra các cuộc tấn công hơn Giao thức Modbus TCP còn

Trang 11

không có cơ chế kiểm lỗi ở phần ứng dụng nên càng dễ dàng tạo ra tấn công hơnnữa.

Không có cơ chế ngăn chặn gửi thông điệp quảng bá lỗi, một thông điệpquảng bá từ Master thì tất cả các thiết bị Slave đều phải nhận do đó kẻ tấn công cóthể lợi dụng điểm yếu này để tấn công từ chối dịch vụ (DoS).

Từ những lỗ hổng đó chúng tôi chỉ ra một số dạng tấn vào vòng lặp điềukhiển giám sát (xem vòng lặp thứ hai trong hình 2) như sau:

 Tấn công lặp lại (replay attacks), từ Master hoặc Slave gửi lại gói tin cho bênnhận mà bên gửi đã gửi nó đi trước đó nhưng bên nhận không phát hiện ra.

Tấn công giả mạo chèn lệnh từ Master (Command Injection) hoặc chèn đáp

ứng lại từ Slave (Response Injection).

 Tấn công kẻ trung gian (Man-in-the-middle attacks), thiếu sự kiểm tra tínhtoàn vẹn cho phép một kẻ tấn công có thể truy cập vào mạng để sửa đổi gói tin hợppháp hoặc chế tạo lại các gói tin và gửi chúng đến các thiết bị Slave hoặc Master.

 Tấn công trinh sát (Reconnaissance attacks) kẻ tấn công gửi các lệnh đếnMaster hoặc Slave rồi lắng nghe phải hồi hoặc thông báo lỗi để tìm các thông tin vềđịa chỉ, mã hàm, cấu trúc mạng hoặc thông tin cụ thể về thiết bị trong mạng

 Tấn công từ chối dịch vụ (DoS), tấn công làm cản trở giao tiếp giữa Mastervà Slave làm cho vòng lặp điều khiển phản hồi giữa Master và các Slave rối loạnkhông thực hiện được.

1.6 Một số giải pháp khắc phục

An ninh, an toàn cho hệ thống SCADA luôn gắn liền với an ninh, an toàn củahệ thông mạng máy tính truyền thống vì vậy để đảm bảo an ninh cho hệ thốngSCADA cần phải kết hợp chặt chẽ các thiết bị an ninh bảo vệ vòng ngoài như sửdụng Firewall, và các gải pháp bảo vệ vòng trong sau đây là một số giải pháp nhưvậy:

1 Sử dụng thiết bị an ninh tường lửa (Firewall) để ngăn cách gữa mạnginternet và mạng LAN của công ty và Firewall khác cho vùng Air Gap ngăn chặntruy nhập trái phép xuống tầng điều khiển giám sát của hệ thống SCADA phíadưới Ưu điểm của giải pháp này dễ triển khai khi thiết kế nhưng không khắc phụctriệt để các lỗ hổng, chỉ tạo ra bảo vệ được vòng ngoài, không ngăn chặn được cáctấn công từ bên trong hệ thống và các cuộc tấn công tinh vi vượt qua tường lửa.

Trang 12

2 Sử dụng kết Firewall bảo vệ vòng ngoài và các thiết bị an ninh chống xâmnhập IDS-SCADA (Intrusion Detection System), hoặc IPS-SCADA (IntrusionPrevention System) để bảo vệ vòng trong Giải pháp này sẽ được chúng tôi nghiêncứu và trình bày trong các nghiên cứu khác khác.

3 Sử dụng kết hợp Firewall bảo vệ vòng ngoài và ứng dụng các kỹ thuật mãhóa khắc phục trực tiếp các lỗ hổng của giao thức sử dụng trong hệ thống SCADA,để bảo vệ vòng trong Đây là giải pháp được chúng tôi tập trung nghiên cứu trongđề tài này các phương pháp mã hóa AES và RSA được trình bày ở chương 2

4 Sử dụng kỹ thuật sinh trắc học để xác nhận người dùng phụ trợ cho anninh của hệ thống SCADA như nhận dạng vân tay, mặt người

Ngoài những giải pháp trên cũng cần phải xây dựng các điều luật, chế tài vềmặt pháp luật để hạn chế những kẻ tấn công gây thiệt hại cho các hệ thống SCADAnói riêng, hệ thống thông tin nói chung.

Trang 13

Nền tảng cơ bản của các thuật toán mã hóa khóa đối xứng hiện đại nóichung, mã hóa DES, AES nói riêng sử dụng phép biến đổi thay thế S-Box và phéphoán vị P, hai phép toán này được lặp đi lặp lại nhiều lần DES lặp lại trong 16vòng, AES 128, 192, 256 bít lần lượt lặp lại trong 10, 12, 14 vòng Kết hợp haiphép biến đổi thay thế S-Box và phép hoán vị P tạo ra hai tính chất quan trọng củamã hóa là tính khuếch tán (diffusion) và tính gây lẫn (confusion).

 Tính khuếch tán: Một bít của bản rõ tác động đến tất cả các bít của bản mã,hay nói cách khác một bít của bản mã chịu tác động của tất cả các bít trong bản rõ.Tính chất này làm giảm tối đa mối liên quan giữa bản rõ và bản mã, ngăn chặn việcsuy ra khóa.

 Tính gây lẫn: Làm phức tạp hóa mối liên quan giữa bản rõ, bản mã và khóa.Do đó cũng ngăn chặn việc suy ra khóa khi có bản mã.

Mã hóa AES (chi tiết xem [12]) sử dụng 4 phép biến đổi chính để mã hóa một khốidữ liệu 128 bit là: Add row key, Substitute bytes, Shift rows, Mix columns Mỗiphép biến đổi đều nhận tham số đầu vào có kích thước 128 bít và cho ra kết quảcũng có kích thước 128 bít AES thực hiện 4 phép biến đổi trên trong 10 vòng lặpnhư bên trái (hình 2.1) là giai đoạn mã hóa, bên phải thực hiện ngược lại là giaiđoạn giải mã.

Các phép biến đổi Substitute bytes, Shift rows, Mix columns có phép biếnđổi ngược tương ứng là Inverse sub bytes, Inverse shift rows, Inverse mix cols.

Trang 14

Riêng phép biến đổi Add row key đơn giản chỉ là phép XOR nên phép biến đổingược cũng là Add row key Các phép biến đổi ngược bên phải hình 9 giải mã AEScũng gồm 10 vòng thực hiện theo chiều ngược lại

Kích thước khóa ban đầu là 128 bít (16 byte) AES dùng hàm mở rộng khóa(Expand key) để mở rộng kích thước khóa thành 44 word 32 bít 44 word này đượcchia thành 11 cụm khóa con, mỗi khóa con (128 bít) hay 4 word làm tham số vàocho 11 thao tác Add row key 128 bit bản rõ và 128 bit khóa con đều được tổ chứcthành khối ma trận 4x4 mỗi phần tử là 1 byte được sắp xếp lần lượt theo cột.

Hình 2.1 Quá trình mã hóa/giải mã AES.

 Phép biến đổi Add row key: Khóa con được kết hợp với các khối dữ liệuvào, mỗi khóa con có độ dài giống như dữ liệu vào Quá trình kết hợp được thựchiện bằng cách XOR từng bít của khóa con với từng bít khối dữ liệu vào.

 Substitute bytes: Các byte của khối đầu vào được thay thế bằng tra trongbảng S-Box có kích thước (16x16) byte Đây chính là quá trình phi tuyến của thuậttoán Hộp S-box được tạo ra từ một phép biến đổi khả nghịch trong trường hữu hạnGF (28) có tính chất phi tuyến Tương tự phép biến đổi nghịch Inverse sub bytes

Trang 15

thực hiện tra trong bảng IS-BOX Chi tiết các bảng S-BOX, IS-BOX, trường hữuhạn GF(28) xem tài liệu [12].

 Shift rows: Các hàng của khối dữ liệu vào được dịch vòng một số bước nhấtđịnh Hàng đầu được giữ nguyên, mỗi byte của hàng thứ 2 được dịch vòng trái mộtvị trí Tương tự các hàng thứ 3 và 4 được dịch vòng 2 và 3 vị trí Do vậy, mỗi cộtcủa khối đầu ra của bước này sẽ bao gồm các byte ở đủ 4 cột khối đầu vào Phépbiến đổi ngược Inverse shift rows thực hiện ngược lại, dòng 1 giữ nguyên, các dòng2, 3 và 4 được dịch vòng phải tương ứng 1 byte, 2 byte và 3 byte.

Hình 2.2 Thuật toán tạo khóa con w0 đến w44

 Mix columns: Mỗi cột của khối dữ liệu vào (ma trận 4x4) tương ứng là hệ sốcủa một đa thức f(x) bậc bằng 3 (với hệ số tự do ứng byte đầu tiên của cột) Đathức này được nhân với đa thức a(x)=3x3+x2+x+2, sau đó thực hiện phép chiamodulo cho đa thức n(x)=x4+1, kết quả phép modulo là đa thức bậc 3 c(x)=f(x).a(x)mod n(x), bốn byte hệ số của đa thức c(x) được thay thế tương ứng cho 4 byte trongcột tạo đa thức f(x) của khối dữ liệu Các phép cộng và nhân trong đa thức đượcthực hiện trong trường GF(28) Phép biến đổi ngược Inverse mix cols, thực hiệntương tự mỗi cột của khối dữ liệu vào được nhân với đa thức b(x) =11x3+13x2+9x+14, sau đó cũng thực hiện phép chia modulo cho đa thức n(x)=x4+1,cuối cùng thu được bốn hệ số của đa thức kết quả, các hệ số này thay thế cho cộttương ứng Chi tiết chứng minh phép biến đổi Inverse mix cols là phép biến đổingược của Mix columns xem tài liệu [12].

Trang 16

 Hàm mở rộng khóa (Expand key) 16 byte khóa ký hiệu là: k0, k1,k2…k15và được sắp xếp lại thành ma trận 4x4 sau đó phép mở rộng khóa (tạo khóa con)được thực như trong hình 2.2.

Từ bốn từ (word) đầu vào w0w1w2w3, w0 = (k0,k1,k2,k3)…w3=(k12,k13,k14,k15) trong lần lặp đầu tiên thao tác sinh ra bốn wordw4w5w6w7, lần lặp thứ 2, từ w4w5w6w7 sinh ra w8w9w10w11, cứ như thế chođến lần lặp thứ 10 sinh ra bốn word cuối cùng w40w41w42w43 như hình 2.2.

Trong mỗi lần lặp để sinh ra 4 word, thì word đầu tiên sinh ra theo quy tắc wi= wi-4 ⊕ g, với g =SubWord(RotWord(wi-4,wi-3,wi-2,wi-1)) ⊕ Rcon[i/4], i=4,8,12 40.Ba word tiếp theo sinh ra theo quy tắc wj = wj-1 ⊕ wj-4, j=i+1,i+2,i+3.

+ RotWord: Dịch vòng trái một byte Giả sử word đầu vào có 4 byte là [b0, b1,b2, b3] thì kết quả của RotWord là [b1, b2, b3, b0].

+ SubWord: Thay thế mỗi byte trong word đầu vào bằng cách tra cứu bảngS-Box trong thao tác Substitute Bytes.

+ Rcon: Là một mảng hằng số Mảng này gồm 10 word ứng với 10 vòngAES Bốn byte của một phần tử Rcon[ j] là (RC[ j], 0, 0, 0) với RC[ j] là mảng 10byte hexa như sau:

2.2 Mã hóa khóa công khai RSA

RSA [13] là ba chữ cái đầu của ba tác giả Ron Rivest, Adi Shamir và LenAdleman xây dựng ra nó năm 1977 RSA là một phương pháp mã hóa khóa côngkhai, mã hóa và giải mã sử dụng hai khóa khác nhau, một khóa bí mật gọi là khóariêng, khóa kia có thể công bố gọi là khóa công khai RSA là phương pháp mã hóatheo khối Trong đó bản rõ M và bản mã C là các số nguyên từ 0 đến 2i, với i số bítcủa khối Kích thước thường dùng của i là 1024 bít hoặc dài hơn với các ứng dụngbảo mật rất cao

RSA hiện nay đang được sử dụng rộng rãi Ưu điểm của mã hóa RSA làkhông phải chọn kênh an toàn để phân phối khóa, khi trao đổi thông tin cần bảomật thì mỗi bên sử dụng một cặp khóa cho riêng mình, khóa riêng giữ bí mật, khóacông khai công bố cho các người gửi Người gửi mã hóa bằng khóa công khai của

Trang 17

người nhận rồi gửi bản mã cho người nhận, người nhận giải mã bằng khóa riêngcủa mình Quá trình xác thực người gửi thì tiến hành ngược lại, người gửi mã hóabằng khóa riêng của mình, bên nhận giải mã bằng khóa công khai của bên gửi đểxác thực.

 Các bước sinh khóa của RSA như sau:

1 Chọn hai số nguyên tố lớn p và q và tính N = pq Cần chọn p và q sao cho: M < 2i-1 < N < 2i Với i = 1024 thì N là một số nguyên dài khoảng 309 chữsố

2 Tính n = (p - 1)(q - 1)

3 Tìm một số e sao cho e nguyên tố cùng nhau với n

4 Tìm một số d sao cho e.d mod n =1, (d là nghịch đảo của e với phépmodulo n).

5 Hủy bỏ n, p, q Chọn khóa công khai PU là cặp (e,N), khóa riêng PR là cặp(d,N).

 Mã hóa/giải mã để bảo mật theo công thức:

+ Mã hóa để bảo mật: C = E(M,PU) = Me mod N+ Giải mã bảo mật: M = D(C,PR) = Cd mod N Mã hóa/giải mã để xác thực:

+ Mã hóa để xác thực: C = E(M,PR) = Md mod N + Giải mã để xác thực: M = D(C,PU) = Ce mod NBản rõ M có kích thước i-1 bít, bản mã C có kích thuớc i bít.

Trang 18

Chương 3

Hệ nhúng, hệ điều hành nhúng Linux3.1 Hệ thống nhúng và ứng dụng

Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ hệ thống xử lýthông tin, hệ tính toán có khả năng hoạt động độc lập được nhúng vào trong mộtmôi trường hay một hệ thống mẹ Đó là các hệ thống tích hợp cả phần cứng vàphần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tựđộng hóa điều khiển, quan trắc và truyền tin Đặc điểm của các hệ thống nhúng làhoạt động ổn định và có tính năng tự động hóa cao.

Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyênbiệt nào đó Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân,một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đikèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứngchuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung Vì hệthống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thểtối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất Các hệ thống nhúngthường được sản xuất hàng loạt với số lượng lớn Hệ thống nhúng rất đa dạng,phong phú về chủng loại Có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩthuật số và máy chơi nhạc MP3, hoặc những sản phẩm lớn như đèn giao thông, bộkiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân.Xét về độ phức tạp, hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặcrất phức tạp với nhiều đơn vị, các thiết bị ngoại vi và mạng lưới được nằm gọntrong một lớp vỏ máy lớn.

Hệ thống nhúng được ứng dụng rộng rãi trên nhiều lĩnh vực như:

 Các hệ thống dẫn đường trong không lưu, hệ thống định vị toàn cầu, vệtinh.

 Điện tử gia dụng: Tủ lạnh, máy giặt, tivi, lò vi sóng, máy quay phim, chụphình số…

 Điện tử ô tô: Hệ điều khiển động cơ, hệ điều khiển phanh điện từ, định vị,dẫn đường GPS…

 Trên tàu hỏa: Hệ thống lái tự động, hệ thống hãm…

Trang 19

 Các thiết bị y tế: Máy thẩm thấu, máy điều hòa nhịp tim, đo nhiệt độ, ECG,chẩn đoán từ xa…

 Viễn thông và thiết bị mạng: Router, hub, gateway, hệ thống tổng đài, điệnthoại di động, thiết bị GPS, điều khiển anten…

 Nhà thông minh: Hệ thống tiết kiệm năng lượng, điều chỉnh nhiệt độ, thiếtbị chiếu sáng tự động…

 Thiết bị văn phòng: máy photocopy, máy fax, máy in, máy scan, … Dây chuyền sản xuất tự động trong công nghiệp, robots.

Khả năng độc lập và thông minh hoá: Điều này được chỉ rõ hơn thông

qua một số các thuộc tính yêu cầu, cụ thể như: Độ tin cậy

 Khả năng bảo trì và nâng cấp Sự phổ cập và tiện sử dụng Độ an toàn

Trang 20

 Kích thước về phần cứng và phần mềm Hiệu quả về thời gian thực hiện

 Kích thước và khối lượng Giá thành

Phân hoạch tác vụ và chức năng hoá: Các bộ vi xử lý trong các hệ nhúng

thường được sử dụng để đảm nhiệm và thực hiện một hoặc một nhóm chức năngrất độc lập và cũng đặc thù cho từng phần chức năng của hệ thống lớn mà nóđược nhúng vào Ví dụ như một vi xử lý thực hiện một phần điều khiển cho mộtchức năng thu thập, xử lý và hiển thị của ôtô hay hệ thống điều khiển quá trính.Khả năng này làm tăng thêm sự chuyên biệt hoá về chức năng của một hệ thốnglớn và dễ dàng hơn cho quá trính xây dựng, vận hành và bảo trì.

Khả năng thời gian thực: Các hệ thống đều gắn liền với việc đảm nhiệm

một chức năng chính và phải được thực hiện đúng theo một khung thời gian quiđịnh Thông thường một chức năng của hệ thống phải được thực hiện và hoànthành theo một yêu cầu thời gian định trước để đảm bảo thông tin cập nhật kịpthời cho phần xử lý của các chức năng khác và có thể ảnh hưởng trực tiếp tới sựhoạt động đúng và chính xác của toàn hệ thống Tuỳ thuộc vào từng bài toán vàyêu cầu của hệ thống mà yêu cầu về khả năng thời gian thực cũng rất khác nhau.Tuy nhiên, trong thực tế không phải hệ nhúng nào cũng đều có thể thoả mãntất cả những yêu cầu nêu trên, vì chúng là kết quả của sự thoả hiệp của nhiều yêucầu và điều kiện nhằm ưu tiên cho chức năng cụ thể mà chúng được thiết kế.Chính điều này lại càng làm tăng thêm tính chuyên biệt hoá của các hệ/thiết bịnhúng mà các thiết bị đa năng không thể cạnh tranh được.

3.2.2 Xu thế phát triển và sự tăng trưởng của hệ nhúng

Vì sự phát triển hệ nhúng là sự kết hợp nhuần nhuyễn giữa phần cứng vàphần mềm nên công nghệ gắn liền với nó cũng chính là công nghệ kết hợp giữacác giải pháp cho phần cứng và mềm Vì tính chuyên biệt của các thiết bị/hệnhúng như đã giới thiệu nên các nền phần cứng cũng được chế tạo để ưu tiên đápứng cho chức năng hay nhiệm vụ cụ thể của yêu cầu thiết kế đặt ra.

Lớp hệ nhúng ưu tiên phát triển theo tiêu chí về kích thước nhỏ gọn, tiêuthụ năng lượng ít, giá thành thấp Các chíp xử lý nhúng cho lớp hệ thống ứngdụng đó thường yêu cầu về khả năng tính toán ít hoặc vừa phải nên hầu hết

Trang 21

được xây dựng trên cở sở bộ đồng xử lý 8 bít ‐16 bit hoặc cùng lắm là 32 bit vàkhông hỗ trợ dấu phảy động do sự hạn chế về dung lượng và khả năng tính toán.

Lớp hệ nhúng ưu tiên thực thi khả năng xử lý tính toán với tốc độ thực hiệnnhanh Các chíp xử lý nhúng cho các hệ thống đó cũng sẽ là các Chip áp dụngcác công nghệ cao cấp với kiến trúc xử lý song song để đáp ứng được cường độtính toán lớn và tốc độ mà các Chip xử lý đa chức năng thông thường không đạttới được.

Lớp hệ thống ưu tiên cả hai tiêu chí phát triển của hai lớp trên, tức là kíchthước nhỏ gọn, mức tiêu thụ năng lượng thấp, tốc độ tính toán nhanh Tuỳ theosự thoả hiệp giữa các yêu cầu và xu thế phát triển chính vì vậy cũng không có gìngạc nhiên khi chúng ta thấy sự tồn tại song song của rất nhiều các Chip vi xử lýnhúng, vi điều khiển nhúng 8 bit, 16 bit hay 32 bit cùng với các Chíp siêu xử lýkhác vẫn đang được ứng dụng rộng rãi cho hệ nhúng Đó cũng là sự kết hợp đadạng và sự ra đời của các hệ nhúng nói chung nhằm thoả mãn các ứng dụng pháttriển không ngừng.

Với mỗi một nền phần cứng nhúng thường có những đặc thù riêng vàkèm theo một giải pháp phát triển phần mềm tối ưu tương ứng Không có mộtgiải pháp nào chung và chuẩn tắc cho tất cả các hệ nhúng Chính vì vậy thôngthường các nhà phát triển và cung cấp phần cứng cũng lại chính là nhà cung cấpgiải pháp phần mềm hoặc công cụ phát triển phần mềm kèm theo Rất phổ biến

hiện nay các Chip vi xử lý hay vi điều khiển đều có các hệ phát triển (StarterKit hay Emulator) để hỗ trợ cho các nhà ứng dụng và xây dựng hệ nhúng với

hiểu biết hạn chế về phần cứng Ngôn ngữ mã hoá phần mềm cũng thường là C

hoặc gần giống như C (Likely C) thay vì phải viết hoàn toàn bằng hợp ngữAssembly Điều này cho phép các nhà thiết kế tối ưu và đơn giản hoá rất nhiều cho

bước phát triển và xây dựng hệ nhúng.

Trong xu thế phát triển không ngừng và nhằm thoả mãn được nhucầu phát triển nhanh và hiệu quả có rất nhiều các công nghệ cho phép thựcthi các giải pháp hệ nhúng Đứng sau sự phổ cập rộng rãi của các Chip vi xử lývi điều khiển nhúng, DSP phải kể đến các công nghệ cũng đang rất được quantâm hiện nay như ASIC, CPLD FPGA, PSOC, AVR, dsPIC, ARM…và sự tổhợp của chúng Kèm theo đó là các kỹ thuật phát triển phần mềm cho phép

Trang 22

đảm nhiệm được các bài toán yêu cầu khắt khe trên cơ sở một nền phần cứng hữuhạn về khả năng xử lý và không gian bộ nhớ Giải quyết các bài toán thời gianthực như phân chia tác vụ và giải quyết cạnh tranh chia sẻ tài nguyên chung.Hiện nay cũng đã có nhiều nhà phát triển công nghệ phần mềm lớn đang

hướng vào thị trường hệ nhúng bao gồm cả Microsoft Ngoài một số các hệđiều hành Windows quen thuộc dùng cho PC, Microsoft cũng đã tung ra cácphiên bản mini như WindowsCE, WindowsXP Embedded và các công cụ phát

triển ứng dụng kèm theo để phục vụ cho các thiết bị nhúng, điển hình như cácthiết bị PDA, một số thiết bị điều khiển công nghiệp như các máy tính nhúng,IPC của Siemens

Có thể nói hệ nhúng đã trở thành một giải pháp công nghệ và phát triểnmột cách nhanh chóng, hứa hẹn nhiều thiết bị nhúng sẽ chiếm lĩnh được thịtrường rộng lớn trong tương lai nhằm đáp ứng nhu cầu ứng dụng không ngừngtrong cuộc sống của chúng ta Đối với lĩnh vực công nghiệp về điều khiển và tựđộng hoá, hệ nhúng cũng là một giải pháp đầy tiềm năng đã và đang được ứngdụng rộng rãi Nó rất phù hợp để thực thi các chức năng thông minh hoá, chuyênbiệt trong các hệ thống và thiết bị công nghiệp, từ các hệ thống tập trung đến cáchệ thống phân tán Giải pháp hệ nhúng có thể thực thi từ cấp thấp nhất của hệthống công nghiệp như cơ cấu chấp hành cho đến các cấp cao hơn như giám sátđiều khiển quá trình.

3.3 Hệ điều hành nhúng Linux

Hệ thống nhúng được chia thành 2 loại chính:

 Hệ nhúng không có hệ điều hành: Thường sử dụng các vi điều khiển hiệunăng tương đối thấp như: 8051, ATMega, PIC, ARM7…Ngôn ngữ lập trình thườngbằng ngôn ngữ C, Assembly Môi trường công cụ lập trình tùy theo từng dòng viđiều khiển như: Code Vision, CCS, HT PIC, Keil C… Phù hợp với các ứng dụngđiều khiển vào/ra cơ bản, các giao tiếp ngoại vi cơ bản.

 Hệ nhúng có hệ điều hành (Open System): Dựa trên các vi điều khiển, vixử lý có hiệu năng cao như: dsPIC, AVR32, ARM9, ARM11… Nền tảng hệ điềuhành nhúng: UCLinux, Embedded Linux, Ubuntu Embedded, Windows CE,Android… Môi trường, công cụ lập trình tùy thuộc nền tảng hệ điều hành: C/C++,QT SDK, Net Compact FrameWork, Java … Ứng dụng cho nhiều bài toán phức

Trang 23

tạp: GPS Tracking/Navigator, Xử lý ảnh, ứng dụng Client/Server, điều khiểnRobot…

 Như mục 3.1 nêu khái niệm hệ thống nhúng là hệ thống có khả năng tínhtoán độc lập được nhúng vào trong một môi trường hay một hệ thống mẹ Đó là cáchệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụngtrong nhiều lĩnh vực công nghiệp, tự động hóa điều khiển, quan trắc và truyền tin…Một hệ điều hành được sử dụng trong các hệ thống nhúng được gọi là hệ điều hànhnhúng Hệ thống điều hành nhúng thường rất nhỏ gọn và thường được thiết kế chocác hoạt động thời gian thực Một số hệ điều hành nhúng thông dụng như:Embedded Linux, VxWorks, Win CE, Lynyos, BSD, Green Hills, QNX, DOS

Hệ điều hành đảm nhiệm vai trò trung gian để tương tác trực tiếp với phầncứng của máy tính hoặc hệ nhúng, phục vụ cho nhiều ứng dụng đa dạng Các hệđiều hành cung cấp một tập các chức năng cần thiết để cho phép các phần ứng dụngkhông cần can thiệp trực tiếp, sâu vào phần cứng Hệ điều hành có thể bao gồm cácdrivers cho các ngoại vi tích hợp như COM, I2C, GPIO, màn hình, âm thanh …,các công cụ quản lý tài nguyên như bộ nhớ RAM, ROM Điều này tạo ra một giaodiện thuận lợi cho các ứng dụng và người sử dụng phát triển phần mềm trên cácnền phần cứng đã có Đồng thời tránh được yêu cầu phải tìm hiểu sâu về phần cứngvà có thể phát triển dựa trên các ngôn ngữ bậc cao.

Hệ điều hành thực chất cũng là một loại phần mềm nhưng nó khác với cácloại phần mềm thông thường Sự khác biệt điển hình là hệ điều hành được nạp vàthực thi đầu tiên khi hệ thống bắt đầu khởi động và được thực hiện trực tiếp bởi bộxử lý của hệ thống Hệ điều hành được viết để phục vụ điều khiển bộ xử lý cũngnhư quản lý các tài nguyên khác trong hệ thống bởi vì nó đảm nhiệm chức năngquản lý và lập lịch các quá trình sử dụng CPU và chia sẻ tài nguyên của hệ thống.

3.3.1 Kiến trúc nhân hệ điều hành nhúng Linux

Nhân được ví như trái tim của hệ điều hành Về bản chất nhân cũng là mộtchương trình phần mềm nhưng ở cấp độ hệ thống có vai trò điều khiển các thànhphần của hệ thống, quản lý tài nguyên của hệ thống, cung cấp một số dịch vụ vàphần mềm cơ bản cho lớp cao hơn, cung cấp môi trường thực thi có các ứng dụngkhác nhau chạy trên hệ thống Nhân chính là cầu nối giữa phần cứng vật lý của máytính với và chương trình ứng dụng.

Trang 24

Các dịch vụ của nhân được chạy trong chế độ đặc quyền của bộ xử lý Tráilại, các chương trình ứng dụng được chạy trong chế độ người dùng hoàn toàn cáchly với hệ điều hành Khi ứng dụng chạy trong chế độ người dùng gọi tới một dịchvụ hệ thống thông qua một giao diện, bộ xử lý chặn lại lời gọi và thi hành dịch vụmức nhân hệ điều hành Thông thường việc thực thi ở mức nhân đơn giản và nhanhhơn bởi vì nó không bị chuyển giữa chế độ đặc quyền và không đặc quyền.

Hình 3.2 Kiến trúc hệ điều hành Linux

Nhân của Linux gồm năm bộ phận:

Bộ phân thời gian cho tiến trình (Process Schedule):

Hoạt động của máy tính, tại một thời điểm chỉ có một lệnh được thực thi.Tuy nhiên các hệ điều hành đa nhiệm như Windows, Linux … đều cho phép nhiềuchương trình chạy cùng một lúc Các hệ điều hành đa nhiệm có thể làm được nhưvậy bằng cách chuyển quyền thực thi qua lại giữa các chương trình thật nhanh làmcho người dùng có cảm giác các chương trình chạy cùng lúc với nhau Ví dụ ngườidùng có thể vừa soạn thảo văn bản vừa có thể nghe nhạc Trong hệ điều hành đanhiệm thì bộ phân thời gian tiến trình đảm nhiệm nhiệm vụ này Process Scheduleđược chia thành bốn khối:

Khối luật định thời (scheduling policy): Chịu trách nhiệm phân bố xem tiến

Trang 25

hay không nhờ vào bộ luật này, tránh trường hợp một tiến trình lợi dụng sơ hở củađiều luật mà chiếm thời gian hệ thống quá nhiều làm các tiến trình khác bị đóngbăng (freeze).

Khối phụ thuộc kiến trúc (architeture-specific): Khối này gồm các mãassembly phụ thuộc vào mỗi loại CPU dùng để tạm ngưng hoạt động của tiến trình.

Khối độc lập kiến trúc (architeture-independent): Khối gọi các hàm từ khốiphụ thuộc kiến trúc và khối luật để chuyển giữa các tiến trình đồng thời nó còn gọi

các hàm của khối quản lý bộ nhớ (Memory Manager) để thiết lập bộ nhớ ảo cho các

tiến trình được hồi phục lại Khối phụ thuộc kiến trúc sẽ khác nhau ở mỗi loại CPUnhưng khối độc lập kiến trúc thì không đổi.

Khối hàm gọi hệ thống (system call) Gồm các hàm mà người dùng có thểdùng để tương tác với Schedule Khi lập trình Linux và Unix sẽ quen với các hàmgọi hệ thống này.

Bộ quản lý bộ nhớ (Memory Manager - MM)

Bộ nhớ qui ước của các máy tính chỉ có 640KB Do BIOS chỉ quản lý đượctới FFFFF, vùng nhớ cao từ A0000 trở lên dùng để ánh xạ BIOS, video cardmemory và các thiết bị ngoại vi khác, vùng nhớ còn lại tử 9FFFF trở xuống tươngđương với 640KB Trong chế độ bảo vệ (protect mode) của CPU 32 bit đưa ra kháiniệm bộ nhở ảo (Virtual Memory) Lúc này mỗi tiến trình được cấp tới 4GB bộ nhớảo Nhưng nhân hệ điều hành sẽ tạo ra một bảng mô tả từng trang của bộ nhớ ảovới bộ nhớ vật lý Bộ nhớ vật lý bây giờ bao gồm cả bộ nhớ RAM và vùng nhớhoán vị trên đĩa cứng.

Hệ thống file ảo

Hệ thống này không chỉ cung cấp truy suất đến hệ thống file trên đĩa cứngmà còn tất cả các ngoại vi Trong Linux tất cả các tập tin , thư mục và các thiết bịđều được coi như là file Ví dụ như máy in , cổng nối tiếp , các ổ đĩa … đều đượctruy cập như là file Linux cũng cung cấp các thuộc tính truy cập cho file và thưmục , các thuộc tính có thể được thiết lập như cho phép đọc , cho phép ghi , chophép thực thi Linux thiết lập chế độ bảo vệ đối với các file hệ thống và hạn chếquyền truy cập đối với các thiết bị

Giao diện mạng (Network Interface - NET)

Trong nhân Linux dựng sẵn giao thức TCP/UDP, IP và Ethernet

Trang 26

Bộ truyền thong nội bộ (Inter-process communication IPC)

Một tiến trình trong Linux giao tiếp với các tiến trình khác và với nhân hệđiều hành thông qua một cơ chế được gọi là bộ truyền thông nội bộ - IPC Nó chophép các tiến trình gửi hoặc nhận các thông điệp từ một tiến trình khác, sử dụngchung vùng nhớ chia sẻ và đồng bộ với các tiến trình khác.

3.3.2 Bootloader

Trong một hệ thống nhúng, không tồn tại firmware giống như CMOS của PC.Vì vậy để khởi động một hệ thống nhúng, chúng ta phải xây dựng bootloader.Bootloader là một phần rất quan trọng trong hệ thống nhúng Chức năng củabootloader như sau:

Sao chép kernel từ flash memory đến RAM và thực thi kernel Khởi tạo phần cứng

Bootloader cũng bao gồm chức năng ghi dữ liệu đến flash memory (tảikernel hoặc RAM disk image xuống flash memory bằng cổng giao tiếp nối tiếphoặc các thiết bị nối mạng)

Cung cấp giao tiếp để gửi lệnh đến hoặc nhận về các trạng thái của bo mạchcần chạy.

3.3.3 Device driver

Device driver là phần mềm giao tiếp giữa phần cứng và kernel củaEmbedded Linux Linux device driver có thể được tích hợp vào trong kernel theo 2phương pháp: Biên dịch trực tiếp vào kernel hoặc biên dịch thành một định dạngđối tượng (object format có tập tin là device_driver.o) để kernel có thể tải lên khicó nhu cầu (sử dụng lệnh install module “insmod device_driver.o”) Để biên dịchcác tập tin của device driver cần phải xây dựng một Makefile Kết quả thu được sẽlà tập tin có phần mở rộng *.o.

Ngày đăng: 24/05/2024, 15:00

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

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

Tài liệu liên quan