1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu, khai thác hệ điều hành nhúng (embedded os) và khả năng xây dựng hệ thống firewall trên hệ điều hành nhúng

114 946 7

Đ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

Thông tin cơ bản

Định dạng
Số trang 114
Dung lượng 1,6 MB

Nội dung

Nghiên cứu, khai thác hệ điều hành nhúng (embedded os) và khả năng xây dựng hệ thống firewall trên hệ điều hành nhúng

Trang 1

MỤC LỤC

MỤC LỤC i

DANH MỤC HÌNH VẼ iv

BẢNG CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ CHUYÊN NGHÀNH vi

LỜI NÓI ĐẦU ix

Chương 1: HỆ THỐNG ĐIỀU KHIỂN NHÚNG 1

1.1 Hệ thống nhúng 1

1.1.1 Các khái niệm về hệ nhúng .1

Hình 1.1: Một vài hình ảnh về hệ nhúng 2

Hình 1.2: Phân bố và mối quan hệ giữa hệ nhúng và thời gian thực 4

1.1.2 Lĩnh vực ứng dụng của hệ nhúng 4

1.1.3 Đặc điểm công nghệ và xu thế phát triển của hệ nhúng 4

1.1.3.1 Đặc điểm công nghệ 4

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

1.2 Hệ điều hành nhúng (Embedded OS) 8

1.2.1 Hệ điều hành 8

Hình 1.3: Kiến trúc hệ điều hành 8

1.2.2 Bộ nạp khởi tạo 9

Hình 1.4: Nguyên lý hoạt động của bộ nạp khởi tạo boot-loader 10

Hình 1.5: Kiến trúc của bộ nạp khởi tạo boot-loader 12

1.2.3 Các yêu cầu chung 12

1.2.4 Hệ điều hành thời gian thực 14

Hình 1.6: So sánh kiến trúc RTOS và OS chuẩn 14

Hình 1.7: Cấu trúc hệ điều hành thời gian thực 15

Hình 1.8: Mô hình trạng thái của quá trình 17

Chương 2: HỆ ĐIỀU HÀNH LINUX 19

2.1 Sơ lược về Linux 19

2.1.1 Giới thiệu về hệ điều hành Unix 19

2.1.2 Giới thiệu hệ điều hành Linux 20

2.1.3 Tính năng của Linux 21

2.1.4 Các thành phần: 22

2.1.5 Vấn đề bản quyền 24

2.1.6 Yêu cầu về phần cứng 25

2.2 Dòng lệnh 26

2.2.1 Các phương thức hoạt động của dòng lệnh 26

2.2.2 Trang Man 26

2.2.3 Các quy ước 27

2.3 Các lệnh cơ bản trong Linux 28

2.3.1 Thư mục và lệnh về thư mục 28

2.3.1.1 Một số thư mục đặc biệt 28

2.3.1.2 Các lệnh chính lien quan đến thư mục 29

2.3.2 Tập tin và các lệnh về tập tin 30

Trang 2

2.3.2.1 Các kiểu tập tin trong Linux 30

2.3.2.2 Các lệnh về tập tin 31

2.3.3 Các lệnh liên quan đến tài khoản người dùng 34

2.3.3.1 Các lệnh liên quan đến người dùng 34

2.3.3.2 Thay đổi thuộc tính người dùng 36

2.3.3.3 Xóa bỏ một người dùng 36

2.3.4 Các lệnh liên quan đến nhóm người dùng 36

2.3.5 Các lệnh liên quan đến quản lý thiết bị 37

2.4 Một số vấn đề về an toàn thông tin 38

2.4.1 Nguy cơ mất an toàn 39

2.4.2 Giải pháp cho kernel 40

Chương 3: MỘT SỐ VẤN ĐỀ VỀ AN TOÀN THÔNG TIN VÀ HỆ ĐIỀU HÀNH NHÚNG BERING 41

3.1 Một số vấn đề về an toàn thông tin 41

3.1.1 Tại sao cần an toàn thông tin 41

3.1.2 Mục tiêu của an toàn thông tin 42

3.1.3 Các hình thức tấn công trên mạng 43

Hình 3.1: Luồng thông tin bình thường trong hệ thống thông tin 43

3.1.3.1 Ngăn chặn thông tin 43

Hình 3.2: Luồng thông tin bị chặn trên đường truyền 43

3.1.3.2 Chặn bắt thông tin (Intercreption) 43

Hình 3.3: Luồng thông tin bị chặn bắt trên đường truyền 44

3.1.3.3 Sửa đổi thông tin (Modification) 44

Hình 3.4: Kẻ tấn công sửa đổi thông tin trên đường truyền 44

3.1.3.4 Chèn giả thông tin (Fabrication) 44

Hình 3.5: Kẻ tấn công chèn thông tin giả lên đường truyền 45

3.1.4 Các dịch vụ an toàn thông tin trên mạng 45

3.1.4.1 Dịch vụ bí mật (Confidentiality) 45

3.1.4.2 Dịch vụ xác thực (Authentication) 45

3.1.4.3 Dịch vụ toàn vẹn (Intergrity) .45

3.1.4.4 Dịch vụ chống chối bỏ (Nonrupudiation) 45

3.1.4.5 Kiểm soát truy cập (Access Control) 45

3.1.4.6 Tính sẵn sàng phục vụ (Availability) 46

3.1.5 Kỹ thuật an toàn truyền thông 46

3.1.5.1 Kỹ thuật bức tường lửa 46

3.1.5.2 Kỹ thuật mật mã 46

3.2 Hệ điều hành Bering và tổ chức leafsourceforge 47

3.2.1 Đối tượng nghiên cứu của đề tài .47

3.2.2 Tổng quan về hệ điều hành nhúng Bering 47

3.2.3 Cài đặt Bering-uClibc: 48

Hình 3.6: Màn hình yêu cầu đưa đĩa mềm vào hệ thống 49

Hình 3.7: Cửa sổ fomat đĩa mềm trên HĐH Windows 50

3.2.4 Quản trị cơ bản trên Bering: 51

3.2.4.1 Khởi động Bering 51

Hình 3.8: Màn hình khởi động Bering 52

Hình 3.9: Màn hình yêu cầu đăng nhập hệ thống 52

Hình 3.10: Màn hình cấu hình LEAF Bering 53

3.2.4.2 Môi trường làm việc của Bering 53

Trang 3

3.2.4.3 Tắt HĐH Bering 54

3.2.4.4 Các lệnh cơ bản của LEAF Bering 54

3.2.4.5 Quản lý thiết bị lưu trữ 57

Hình 3.11: Màn hình cấu hình LEAF Bering 58

Hình 3.12: Các gói modules mặc định bởi LEAF Bering 61

Hình 3.13: Nội dung files mặc định syslinux.cfg 62

Hình 3.14: Menu cấu hình mạng 63

Hình 3.15: Màn hình hiển thị nội dung mặc định của giao diện ngoài eth0 64

Hình 3.16: Màn hình hiển thị nội dung mặc định của eth1 64

Hình 3.17: Màn hình hiển thị nội dung mặc định của hosts IP addresses 64

Hình 3.18: Màn hình hiển thị tên mặc định của máy 65

Hình 3.19: Màn hình nội dung mặc định của file cấu hình địa chỉ DNS 65

Hình 3.20: Màn hình hiển thị nội dung file /etc/host.allow 66

Hình 3.21: Màn hình mặc định nội dung của hosts.deny 66

Hình 3.22: Màn hình mặc định nội dung của Networks 67

3.2.4.6 Tổ chức leafsourceforge: 67

3.3 Tích hợp hệ điều hành nhúng Bering lên các thiết bị lưu trữ 67

3.3.1 Cài đặt LEAF Bering Version 3.0 trên đĩa mềm 67

Hình 3.23: Màn hình khai báo nội dung file syslinux.cfg 68

Hình 3.24: Màn hình khai báo nội dung file syslinux.cfg 68

3.3.2 Cài đặt và khởi động Bering từ USB 68

3.3.3 Cài đặt và khởi động Bering từ ổ đĩa cứng IDE 71

3.3.4 Cài đặt và khởi động Bering từ đĩa CD-ROM 72

Chương 4: BẢO MẬT VỚI FIREWALL SHOREWALL, IPTABLES TRÊN HỆ ĐIỀU HÀNH NHÚNG 74

4.1 Firewall 74

4.1.1 Định nghĩa 74

Hình 4.1: Vị trí firewall trong môi trường truyền 74

4.1.2 Chức năng 74

4.1.3 Cấu trúc của FireWall 75

4.1.4 Các thành phần của FireWall 75

4.1.4.1 Bộ lọc packet (Packet filtering router) .75

4.1.4.2 Cổng ứng dụng (Application-level gateway hay proxy server) 76

4.1.4.3 Cổng mạch (circuit-level gateway) .77

4.1.5 Những hạn chế của Firewall 77

4.2 IpTables 78

4.2.1 Tổng quan về IpTables 78

4.2.2 Bảng filter 79

4.2.3 Bảng NAT 79

4.2.4 Bảng mangle 80

Hình 4.2: Trình tự gói tin đi trong mangle 82

4.2.5 Cấu hình iptables 82

4.2.5.1 Cú pháp cơ bản của iptbles 82

4.2.5.2 Các lệnh của iptables 83

4.2.5.3 Các điều kiện trong luật 85

4.2.5.4 Các hành động trong luật 88

4.2.5.5 Một số ví dụ 92

Trang 4

4.3.1 Khái niệm 94

4.3.2 Cài đặt Shorewall 95

Hình 4.3: Màn hình file leaf.cfg để khai báo gói shorewall.lrp vừa thêm vào 95

4.3.3 Cấu hình Shorewall 96

Hình 4.4: Cửa sổ LEAF Configuration menu 97

4.3.3.1 File Zones-Partition the network into zones 97

Hình 4.5: Màn hình hiển thị nội dung mặc định của File Zones 97

4.3.3.2 File Ifaces-Shorewall Networking Interfaces 98

Hình 4.6: Màn hình hiển thị nội dung mặc định của File Ifaces 98

4.3.3.3 File Rules-Exception to policy 98

Hình 4.7: Màn hình hiển thị nội dung mặc định của File Rules 99

4.3.3.4 File masq-Internal MASQ Server configuration 99

Hình 4.8: Màn hình hiển thị nội dung mặc định của File masq 100

4.4 Phân tích khả năng ứng dụng của HĐH Bering trong an toàn thông tin 100

4.4.1 Mục tiêu của an toàn thông tin 100

4.4.2 Một vài nhận xét của tác giả sau qúa trình tìm hiểu về HĐH nhúng Bering 100

KẾT LUẬN 102

TÀI LIỆU THAM KHẢO 103

CÁC TRANG WEB THAM KHẢO 103

DANH MỤC HÌNH VẼ Hình 1.1: Một vài hình ảnh về hệ nhúng 2

Hình 1.2: Phân bố và mối quan hệ giữa hệ nhúng và thời gian thực 4

Hình 1.3: Kiến trúc hệ điều hành 8

Hình 1.4: Nguyên lý hoạt động của bộ nạp khởi tạo boot-loader 10

Hình 1.5: Kiến trúc của bộ nạp khởi tạo boot-loader 12

Hình 1.6: So sánh kiến trúc RTOS và OS chuẩn 14

Hình 1.7: Cấu trúc hệ điều hành thời gian thực 15

Hình 1.8: Mô hình trạng thái của quá trình 17

Hình 3.1: Luồng thông tin bình thường trong hệ thống thông tin 43

Hình 3.2: Luồng thông tin bị chặn trên đường truyền 43

Hình 3.3: Luồng thông tin bị chặn bắt trên đường truyền 44

Hình 3.4: Kẻ tấn công sửa đổi thông tin trên đường truyền 44

Hình 3.5: Kẻ tấn công chèn thông tin giả lên đường truyền 45

Hình 3.6: Màn hình yêu cầu đưa đĩa mềm vào hệ thống 49

Hình 3.7: Cửa sổ fomat đĩa mềm trên HĐH Windows 50

Hình 3.8: Màn hình khởi động Bering 52

Hình 3.9: Màn hình yêu cầu đăng nhập hệ thống 52

Hình 3.10: Màn hình cấu hình LEAF Bering 53

Hình 3.11: Màn hình cấu hình LEAF Bering 58

Hình 3.12: Các gói modules mặc định bởi LEAF Bering 61

Hình 3.13: Nội dung files mặc định syslinux.cfg 62

Hình 3.14: Menu cấu hình mạng 63

Trang 5

Hình 3.15: Màn hình hiển thị nội dung mặc định của giao diện ngoài eth0 64

Hình 3.16: Màn hình hiển thị nội dung mặc định của eth1 64

Hình 3.17: Màn hình hiển thị nội dung mặc định của hosts IP addresses 64

Hình 3.18: Màn hình hiển thị tên mặc định của máy 65

Hình 3.19: Màn hình nội dung mặc định của file cấu hình địa chỉ DNS 65

Hình 3.20: Màn hình hiển thị nội dung file /etc/host.allow 66

Hình 3.21: Màn hình mặc định nội dung của hosts.deny 66

Hình 3.22: Màn hình mặc định nội dung của Networks 67

Hình 3.23: Màn hình khai báo nội dung file syslinux.cfg 68

Hình 3.24: Màn hình khai báo nội dung file syslinux.cfg 68

Hình 4.1: Vị trí firewall trong môi trường truyền 74

Hình 4.2: Trình tự gói tin đi trong mangle 82

Hình 4.3: Màn hình file leaf.cfg để khai báo gói shorewall.lrp vừa thêm vào 95

Hình 4.4: Cửa sổ LEAF Configuration menu 97

Hình 4.5: Màn hình hiển thị nội dung mặc định của File Zones 97

Hình 4.6: Màn hình hiển thị nội dung mặc định của File Ifaces 98

Hình 4.7: Màn hình hiển thị nội dung mặc định của File Rules 99

Hình 4.8: Màn hình hiển thị nội dung mặc định của File masq 100

Trang 6

BẢNG CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ CHUYÊN

Trang 7

Time slot Khe thời gian

hành)General Public Licence GPL Tổ chức về bản quyền

hiện một tiến trình nào đó

Embedded Operating System

(Embedded System)

Hệ điều hành nhúng (thiết bị nhúng)

Universal Serial Bus USB Thiết bị USB, USB là một chuẩn

truyền dữ liệu cho bus ngoại vi

Domain Name Server DNS Dịch vụ phân giải tên miền

Trang 8

User DataGram Protocol UDP

Giao thức truyền, UDP là dịch

vụ truyền phi kết nối không cần

độ tin cậyNetwork Address Translation NAT Dịch chuyển địa chỉ mạng

SSL/TLS Mật mã khóa công khai

Tunnels/Tunnels Address

Protocol

TUN/TAP Giao diện mạng ảo

X.509 Thuật toán khóa X.509

hướng dẫn và đồng bộ việc truyền dữ liệu giữa đơn vị xử lý trung tâm và các thiết bị ngoài

Point to Point Protocol PPP Giao thức kết nối điểm-điểmRandom Access Memory RAM Bộ nhớ truy cập ngẫu nhiên

Network Interfaces Card NIC Card giao tiếp mạng, NIC là một

adapter được cài đặt trên máy

Trang 9

tính để cung điểm nối kết với mạng máy tính

LỜI NÓI ĐẦU

Kỷ nguyên công nghệ mới đã và đang tiếp tục phát triển không ngừng nhằm thông minh hóa và hiện đại hóa thông suốt các hệ thống Sau sự phát triển của máy tính lớn và mini (main frame và mini computer) giai đoạn 1960-1980 Giai đoạn PC-Internet 1980-2000 Giai đoạn hậu PC-Internet này được dự đoán

từ 2000 đến 2020 là giai đoạn của môi trường thông minh mà hệ điều hành nhúng là cốt lõi và đang làm nên làn sóng đổi mới trong công nghệ thông tin

Khoa học công nghệ phát triển cả về số lượng cũng như chất lượng Số lượng người dùng Internet ở Việt Nam cũng như trên thế giới tăng lên hàng ngày, cùng với nó là việc các đối tượng lợi dụng để tạo ra các công cụ lấy cắp thông tin ngày một tinh vi và kỹ xảo hơn Vì vậy việc đảm bảo an toàn thông tin trên mạng là một vấn đề cần và đang được quan tâm

Ngày nay, đã có rất nhiều các sản phẩm về an toàn thông tin cả về phần cứng lẫn phần mềm, các sản phẩm đó được phát triển bởi nước ngoài hoặc trong nước Mỗi sản phẩm có những ưu nhược điểm riêng của mình Một vấn đề đặt ra hiện nay là cần có các sản phẩm đảm bảo được độ an toàn, có thể sửa đổi cho

Trang 10

phù hợp với từng lợi ích người sử dụng, không giới hạn, có kích thước nhỏ gọn

và là các thiết bị chuyên dụng

Với lý do trên, đề tài “Nghiên cứu, khai thác hệ điều hành nhúng (embedded OS) và khả năng xây dựng hệ thống Firewall trên hệ điều hành nhúng”, nhằm đem lại những kiến thức cơ bản về hệ điều hành nhúng (hệ điều hành Bering ), khai thác các ứng dụng, các công cụ trên Bering

Nội dung của đề tài được chia làm 4 chương, với nội dung cơ bản sau:

• Chương 1: Hệ thống điều khiển nhúng

Nội dung chương này trình bày một số khái niệm về hệ nhúng và vấn đề liên quan Giúp ta hiểu được đặc điểm công nghệ và các ứng dụng của nó trong thực tế Đồng thời đưa ra khái niệm, ưu nhược điểm về hệ điều hành nhúng Thông qua chương này giúp ta có cái nhìn cơ bản về hệ điều hành nhúng, từ đó

sẽ đi sâu tìm hiểu cụ thể về hệ điều hành nhúng Bering ở chương 3

• Chương 2: Hệ điều hành Linux

Chương này trình bày một số vấn đề về hệ điều hành Linux như nguồn gốc ra đời, quá trình phát triển và một số câu lệnh cơ bản trong hệ điều hành Linux

• Chương 3: Một số vấn đề về an toàn thông tin và HĐH nhúng Bering

Trong chương này nêu lên một số vấn đề về an toàn thông tin trên mạng

Từ đó tìm hiểu sâu về hệ điều hành nhúng cụ thể là hệ điều hành Bering và tổ chức leafsourceforge Đồng thời nghiên cứu cách tích hợp Bering lên các thiết bị

• Chương 4: Bảo mật với Firewall Iptables, Shorewall

Chương này với mục tiêu tìm hiểu về Firewall (Iptables và Shorewall), các ứng dụng của nó trong việc đảm bảo an toàn cho hệ thống Cụ thể nghiên cứu về Shorewall trên hệ điều hành Bering

Trang 12

Chương 1: HỆ THỐNG ĐIỀU KHIỂN NHÚNG

Nội dung chương này trình bày một số khái niệm về hệ nhúng, và vấn đề liên quan Giúp ta hiểu được đặc điểm công nghệ và các ứng dụng của nó trong thực tế Đồng thời đưa ra khái niệm về hệ điều hành nhúng; những ưu, nhược điểm của nó Thông qua chương này giúp ta có cái nhìn cơ bản về hệ điều hành nhúng, từ đó sẽ đi sâu tìm hiểu cụ thể về hệ điều hành nhúng Bering ở chương các chương sau

để được chuẩn hoá và thừa nhận rộng rãi cho hệ nhúng mà vẫn chỉ là những khái niệm để diễn tả về chúng thông qua những đặc thù chung Tuy nhiên ở đây chúng ta có thể hiểu hệ nhúng là một phần hệ thống xử lý thông tin nhúng trong các hệ thống lớn, phức tạp và độc lập ví dụ như trong ôtô, các thiết bị đo lường, điều khiển, truyền thông và thiết bị thông minh nói chung Chúng là những tổ hợp của phần cứng và phần mềm để thực hiện một hoặc một nhóm chức năng chuyên biệt cụ thể (Trái ngược với PC mà chúng ta thường thấy được sử dụng không phải cho một chức năng mà là rất nhiều chức năng hay phục vụ chung cho nhiều mục đích) PC thực chất lại là một hệ thống lớn, tổ hợp của nhiều hệ thống nhúng, ví dụ như card màn hình, âm thanh, ổ cứng, bàn phím…Chính điều này

Trang 13

làm chúng ta dễ lúng túng nếu được hỏi nên hiểu thế nào về PC, có phải là hệ nhúng hay không.

Hình 1.1: Một vài hình ảnh về hệ nhúng

• Hệ thời gian thực:

Trong các bài toán điều khiển và ứng dụng chúng ta thường hay bắt gặp thuật ngữ thời gian thực Thời gian thực có phải là thời gian phản ánh về độ trung thực của thời gian hay không? Thời gian thực có phải là hiển thị chính xác

và đồng bộ theo đúng như nhịp đồng hồ đếm hay không?

Về thực chất, theo cách hiểu nếu nói trong các hệ thông kỹ thuật đặc biệt các hệ thống yêu cầu khắt khe về sự ràng buộc thời gian, thời gian thực được hiểu là yêu cầu của hệ thống phải đảm bảo thoả mãn về tính tiền định trong hoạt động của hệ thống Tính tiền định nói lên hành vi của hệ thống thực hiện đúng trong một khung thời gian cho trước hoàn toàn xác định Khung thời gian này được quyết định bởi đặc điểm hoặc yêu cầu của hệ thống, có thể là vài giây và cũng có thể là vài nano giây hoặc nhỏ hơn thế nữa Ở đây chúng ta phân biệt yếu

tố thời gian gắn liền với khái niệm về thời gian thực Không phải hệ thống thực hiện rất nhanh là sẽ đảm bảo được tình thời gian thực vì nhanh hay chậm hoàn toàn là phép so sánh có tính tương đối về mili giây có thể là nhanh với hệ thống điều khiển nhiệt nhưng lại là chậm đối với các đối tượng điểu khiển điện như dòng, áp… Hơn thế nữa nếu chỉ nhanh không là chưa đủ mà phải đảm bảo duy trì ổn định bằng một cơ chế hoạt động tin cậy Chính vì vậy hệ thống không

Trang 14

kiểm soát được hoạt động của nó (bất định) thì không thể là một hệ thống đảm bảo tính thời gian thực mặc dù hệ thống đó có thể cho đáp ứng rất nhanh, thậm chí nhanh hơn rất nhiều so với yêu cầu đặt ra Một ví dụ tiểu biểu đó là cơ chế truyền thông dữ liệu qua đường truyền chuẩn Ethernet truyền thông, mặc dù ai cũng biết tốc độ truyền là rất nhanh nhưng vẫn không phải hệ hoạt động thời gian thực vì không thoả mãn tính tiền định trong cơ chế truyền dữ liệu (có thể là rất nhanh và cũng có thể là rất chậm nếu có sự cạnh tranh và đường truyền bị nghẽn).

Người ta phân ra làm hai loại đối với khái niệm thời gian thực là cứng (hard real-time) và mềm (soft real-time) Thời gian thực cứng là khi hệ thống hoạt động với yêu cầu thoả mãn sự ràng buộc trong khung thời gian cứng tức là nếu vi phạm sẽ dẫn đến hoạt động của toàn hệ thống bị sai hoặc bị phá huỷ Ví

dụ về hoạt động điều khiển cho một lò phản ứng hạt nhân, nếu chậm ra quyết định có thể dẫn đến thảm hoạ gây ra do phản ứng phân hạch và dẫn đến bùng nổ

cả hệ thống Thời gian thực mềm là khi hệ thống hoạt động với yêu cầu thoả mãn

sự ràng buộc trong khung thời gian mềm, nếu vi phạm và sai lệch trong khoảng thời gian cho phép thì hệ thống vẫn có thể hoạt động được và chấp nhận được

Ví dụ như hệ thống phát thanh truyền hình, nếu thông tin truyền đi từ trạm phát tới người nghe/nhìn chậm một vài giây thì cũng không ảnh hưởng đáng kể đến tính thời sự của tin được truyền đi và hoàn toàn được chấp nhận bởi người theo dõi

Thực tế thấy rằng hệ nhúng hầu hết là các hệ thời gian thực và hầu hết các

hệ thời gian thực là hệ nhúng Điều này phản ánh mối quan hệ mật thiết giữa hệ nhúng và thời gian thực và tính thời gian thực đã trở thành như một thuộc tính tiêu biểu của hệ nhúng Vì vậy hiện nay khi đề cập đến các hệ nhúng người ta đều nói tới đặc tính cơ bản của nó là tính thời gian thực

Trang 15

Hình 1.2: Phân bố và mối quan hệ giữa hệ nhúng và thời gian thực

1.1.2 Lĩnh vực ứng dụng của hệ nhúng

Chúng ta có thể kể ra được rất nhiều ứng dụng của hệ thống nhúng đang được sử dụng hiện nay, và xu thế sẽ còn tiếp tục tăng nhanh Một số các lĩnh vực

và sản phẩm thị trường rộng lớn của các hệ nhúng có thể được nhóm như sau:

• Các thiết bị điều khiển

• Ô tô, tàu điện

• 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

Trang 16

+ Khả năng bảo trì và nâng cấp

+ 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ăng rấ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ột chứ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ống lớ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àn thà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ịp thờ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ãn tấ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êu cầu và điều kiện nhằm ưu tiên cho chức năng cụ thể mà chúng được

Trang 17

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

1.1.3.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ữa cá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êu thụ năng lượng ít, giá thành thấp Các chíp xử lý nhúng cho lớp hệ thống ứng dụ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 đượ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ện nhanh Các chíp xử lý nhúng cho các hệ thống đó cũng sẽ là các Chip áp dụng cá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 đạt tớ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ích thước nhỏ gọn, mức tiêu thụ năng lượng thấp, tốc độ tính toán nhanh Tuỳ theo

sự 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 đa dạ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át triể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ột giả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ông thườ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ấp giả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

Trang 18

nay các Chip vi xử lý hay vi điều khiển đều có các hệ phát triển (Starter Kit 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 nhu cầu phát triển nhanh và hiệu quả có rất nhiều các công nghệ cho phép thực thi 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 quan tâm hiện nay như ASIC, CPLD, FPGA, PSOC 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 đả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ữu hạ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 gian thự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ác phiê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ác thiế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ển mộ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ừng trong 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 ứng dụ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ên biệ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ác

hệ 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

Trang 19

1.2 Hệ điều hành nhúng (Embedded OS).

1.2.1 Hệ điều hành

Nguồn gốc ra đời của hệ điều hành là để đảm nhiệm vai trò trung gian để tương tác trực tiếp với phần cứng của máy tính, 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 gói phần mềm điều khiển phần cứng máy tính mà không cần phải can thiệp

trực tiếp sâu Hệ điều hành của máy tính có thể thấy nó bao gồm các drivers cho

các ngoại vi tích hợp với máy tính như card màn hình, card âm thanh Các công

cụ để quản lý tài nguyên như bộ nhớ và các thiết bị ngoại vi nói chung Điều này tạo ra một giao diện rất 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ác nền phần cứng đã có Đồng thời tránh được yêu cầu và hiểu biết sâu sắc về phần cứng và có thể phát triển dựa trên các ngôn ngữ bậc cao

Hệ thống điều hành bản chất cũng là một loại phần mềm nhưng nó khác với các loại phần mềm thông thường Sự khác biệt điển hình là hệ thống đ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ệ thống điều hành được viết để phục vụ điều khiển bộ xử lý cũng như các tài nguyên khác trong hệ thống bởi vì nó sẽ đảm nhiệm chức năng quản lý và lập lịch các quá trình sử dụng CPU và cùng chia sẻ tài nguyên

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

Trang 20

Tóm lại, hệ điều hành thực chất chính là một giao diện quan trọng, giao tiếp trực tiếp với tầng phần cứng cấp thấp phục vụ cho cả người sử dụng cũng như các chương trình ứng dụng thực thi trên nền phần cứng hệ thống Hơn nữa

hệ điều hành còn có vai trò quan trọng trong việc đảm nhiệm 3 tác vụ nguyên lý chính: (1) Quản lý quá trình, (2) Quản lý tài nguyên, (3) Bảo vệ tài nguyên khỏi

sự xâm phạm của các quá trình thực thi sai

1.2.2 Bộ nạp khởi tạo

Thuật ngữ “bootstrap” bắt nguồn từ cách diễn đạt cổ xưa có nghĩa là tự mình vươn lên bằng chính nỗ lực của bản thân “pulling yourself up by your own bootstraps” Nó đã được sử dụng như một thuật ngữ rất phổ biến để gọi tên một phần mềm thực thi việc khởi tạo chương trình thực thi trên các nền vi điện tử khả trình nói chung Chương trình này thường rất nhỏ gọn và đảm nhiệm chức năng tiền hoạt động của hệ điều hành Cũng rất phổ biến hiện nay người ta cũng thường dùng thuật ngữ “boot-loader” (bộ nạp khởi tạo) thay vì “bootstrap” Bộ nạp khởi tạo thực chất là một chương trình nhỏ thực hiện trong hệ thống và đảm nhiệm chức năng cần thiết để đưa hệ điều hành vào hoạt động Trong các hệ nhúng, các lệnh được thực hiện đầu tiên thường nằm trong các vùng nhớ ROM

và thường thuộc loại chậm Dó đó, một trong những tác vụ phổ biến của bộ nạp khởi tạo là sao chép chương trình ứng dụng chính (main program) vào trong vùng bộ nhớ nhanh trước khi chúng được thực hiện Bộ nạp khởi tạo cũng có nhiệm vụ khởi tạo vùng nhớ dữ liệu và các thanh ghi hệ thống trước khi nhảy tới chương trình ứng dụng chính Cũng có rất nhiều dạng khác nhau của bộ nạp khởi tạo, từ dạng đơn giản đến phức tạp Dạng đơn giản nhất có thể chỉ là một lệnh

nhảy tới chương trình ứng dụng chính ngay sau khi reset mà không thực hiện bất

kỳ một tác vụ khởi tạo hay nạp chương trình gì Chương trình ứng dụng chính sẽ phải tự thiết lập để thực thi tác vụ của mình Các bộ nạp khởi tạo phức tạp hơn

có thể thực hiện nhiệm vụ chuẩn đoán bộ nhớ và khởi tạo hệ thống, kiểm tra chương trình và nạp chúng trước khi cho bộ xử lý nhảy tới thực hiện chương trình ứng dụng chính

Sau đây chúng ta sẽ tìm hiểu về một môi trường phát triển khá điển hình

và thảo luận về một số các thuộc tính nguyên lý cơ bản của bộ nạp khởi tạo

Trang 21

Hình 1.4: Nguyên lý hoạt động của bộ nạp khởi tạo boot-loader

Trong môi trường phát triển hệ nhúng điển hình, nền phần cứng đích cần phát triển được kết nối với trạm chủ (host) thông qua một giao diện truyền thông Một môi trường phát triển bao gồm một chương trình gỡ rối (debugger), ví dụ như Code Composer Studio của Texas Instrument, để cho phép người phát triển chương trình nạp và thực hiện thử nghiệm các chương trình trên phần cứng đích Một số các công cụ hỗ trợ ví dụ như để thiết lập các điểm dừng (breakpoint)…và các nhiệm vụ phụ trợ khác để bám sát trạng thái quá trình thực thi thời gian thực của chương trình thử nghiệm Điều này rất có ý nghĩa và tạo nên một sự dễ dàng hơn trong quá trình phát triển và gỡ rối một chương trình ứng dụng mới cho nền phần cứng đích

Thông thường các ứng dụng được phát triển trong môi trường ngôn ngữ C thì chương trình ứng dụng chính được thực thi và nằm trong phạm vi hàm main() phần khởi tạo chương trình và nạp tiền thực hiện chương trình chính thường không tường minh hoặc bị ẩn đi Thực chất điều này chỉ đúng đối với những người phát triển mã chương trình ứng dụng chính bằng ngôn ngữ bậc cao (đặc biệt cho các ứng dụng không phải cho hệ nhúng) mà không cần phải quan tâm nhiều đến các tác vụ cơ sở đảm nhiệm việc khởi tạo các thanh ghi hệ thống, ngăn xếp và dữ liệu…Điều này cũng rất có ý nghĩa để tạo ra một cảm giác và môi

Trang 22

trường phát triển thân thiện cho người phát triển chương trình và chỉ cần tập trung phần thực hiện chức năng chính của hệ thống Tuy nhiên trong môi trường phát triển hệ thống nhúng việc thực thi chương trình thường bắt đầu tại địa chỉ chương trình nơi bắt đầu tác vụ khởi tạo hệ thống trước khi nhảy tới thực hiện chương trình chính main() Quá trình này được bắt đầu thực chất là thực thi một tác vụ ngắt kích hoạt bởi sự kiện reset

Boot-loader cũng có nhiều dạng khác nhau Hình 1.4 mô tả một bộ nạp

khởi tạo cho một ứng dụng C nhúng Trong ví dụ này vector RESET trỏ tới thủ tục c_int00 thực hiện tác vụ khởi tạo Ngoài việc khởi tạo các thanh ghi, ngăn xếp… các biến C cũng cần được khởi tạo trước khi được thực thi Quá trình này

sẽ sao chép từ phần cinit và viết vào các địa chỉ dữ liệu tương ứng của chúng trong phần bss Sau khi hoàn thành chương trình chính main() mới được gọi và bắt đầu thực thi Trong ví dụ đơn giản này bộ nạp khởi tạo tổ hợp vector RESET cùng với hàm khởi tạo c_int00 và giả thiết rằng cả chương trình bộ nạp khởi tạo

và chương trình ứng dụng chính đều nằm cùng trong vùng nhớ vật lý volatile Trong các trường hợp hệ thống phức tạp hơn, bộ nạp khởi tạo có thể bao

non-hàm cả tác vụ sao chép chương trình chính vào trong vùng nhớ fast volatile trước

khi nó được gọi và thực thi Bộ nạp khởi tạo cũng có thể đảm nhiệm cả chức năng chuẩn đoán, gỡ rối và nâng cấp hệ thống nếu có Chức năng chuẩn đoán có thể chỉ là kiểm tra bộ nhớ, ngoại vi và độ tương thích tích hợp trong hệ thống Chức năng gỡ rối cũng có thể là một giao diện giám sát cung cấp thông tin và trạng thái thời gian thực về hệ thống mà người ta vẫn thường biết tới với tên gọi

là chương trình monitoring Việc nâng cấp hoặc thay đổi chương trình bộ nạp

khởi tạo cũng có thể được thực thi nhờ khả năng lập trình FLASH in-circuit và

nạp từ bộ nhớ ngoài thông qua giao diện với trạm chủ hoặc chức năng tương tự

Trang 23

Hình 1.5: Kiến trúc của bộ nạp khởi tạo boot-loader.

1.2.3 Các yêu cầu chung

Như chúng ta đã được biết đối với các hệ thống thời gian thực, yêu cầu thiết kế một hệ điều hành khá đặc biệt Hệ nhúng thời gian thực lại yêu cầu hệ điều hành phải thực hiện với một nguồn tài nguyên thường rất hạn hẹp Mặc dù

kích thước bộ nhớ tích hợp on-chip sẽ có thể tăng lên trong tương lai nhưng với

sự phát triển hiện nay hệ điều hành cho các hệ nhúng chỉ nên cỡ khoảng nhỏ hơn

32 Kbytes

Hệ thống điều hành đảm nhiệm việc điều khiển các chức năng cơ bản của

hệ thống bao gồm chủ yếu là quản lý bộ nhớ, ngoại vi và vào ra giao tiếp với hệ thống phần cứng Một điểm khác biệt cơ bản như chúng ta đã biết về hệ điều hành với các phần mềm khác là nó thực hiện chức năng điều khiển sự kiện thực thi trong hệ thống Có nghĩa là nó thực hiện các tác vụ theo mệnh lệnh yêu cầu từ các chương trình ứng dụng, thiết bị vào ra và các sự kiện ngắt

Bốn nhân tố chính tác động trực tiếp tới quá trình thiết kế hệ điều hành là: (1) khả năng thực hiện, (2) năng lượng tiêu thụ, (3) giá thành, và (4) khả năng tương thích Hiện nay chúng ta cũng có thể bắt gặp rất nhiều hệ điều hành khác nhau đặc biệt cho các hệ nhúng cũng vì sự tác động của 4 nhân tố nêu trên Hầu hết chúng đều có kiểu dạng và giao diện khá giống nhau nhưng cơ chế quản lý

và thực thi các tác vụ bên trong rất khác nhau Mỗi hệ điều hành được thiết kế

Trang 24

phục vụ trực tiếp các chức năng đặc thù phần cứng của hệ nhúng và không dễ dàng so sánh được giữa chúng với nhau

Hai thành phần chính trong thiết kế hệ điều hành là: phần hạt nhân (kernel) và các chương trình hệ thống Hạt nhân nó chính là phần lõi của hệ điều hành Nó được sử dụng để phục vụ cho các bộ quản lý quá trình, bộ lập lịch bộ quản lý tài nguyên và bộ quản lý vào ra Phần hạt nhân đảm nhiệm chức năng lập lịch, đồng bộ và bảo vệ hệ thống bởi việc sử dụng sai, xử lý ngắt…Chức năng điều khiển chính của nó là phục vụ điều khiển phần cứng bao gồm ngắt, các thanh ghi điều khiển, các từ trạng thái và các bộ định thời gian Nó nạp các phần mềm điều khiển thiết bị để cung cấp các tiện ích chung và phối hợp với các hoạt động vào ra với hệ thống Phần hạt nhân có vai trò điều khiển rất quan trọng để đảm bảo tất cả các phần của hệ thống có thể làm việc ổn định và thống nhất

Hai kiến trúc thiết kế phần hạt nhân kinh điển nhất là kiến trúc vi hạt nhân

và đơn hạt nhân (monolithic) Các vi hạt nhân cung cấp các chức năng điều hành

cơ bản cốt lõi (thô) theo cơ chế các module tương đối độc lập đảm nhiệm các tác

vụ cụ thể và chuyển rời rất nhiều các dịch vụ điển hình điều hành hệ thống thực thi trong không gian người sử dụng Nhờ cơ chế này mà các dịch vụ có thể được khởi tạo hoặc cấu hình lại mà không nhất thiết phải khởi tạo lại toàn bộ hệ thống Kiến trúc vi hạt nhân cung cấp độ an toàn cao bởi vì dịch vụ hệ thống chạy ở tầng người sử dụng với hạn chế về truy nhập vào tài nguyên của hệ thống và có thể được giám sát Kiến trúc vi hạt nhân có thể được xây dựng một cách mềm dẻo để phù hợp với cấu hình phần cứng khác nhau một cách linh hoạt hơn so với kiểu kiến trúc hạt nhân monolithic Tuy nhiên do tính độc lập tương đối giữa các

modul trong vi hạt nhân nên cần thiết phải có một cơ chế trao đổi thông tin hay truyền thông giữa các modul đó vì vậy có thể là lý do làm chậm tốc độ và giảm

tính hiệu quả hoạt động của hệ thống Đặc điểm nổi bật và cốt lõi của kiến trúc

vi hạt nhân là kích thước nhỏ và dễ dàng sửa đổi cũng như xây dựng linh hoạt hơn Các dịch vụ thực thi ở tầng trên của hạt nhân vì vậy đạt được độ an toàn cao Kiến trúc vi hạt nhân được phát triển mạnh mẽ trong các hệ thống đa xử lý

ví dụ như Windows 2000, Mach và QNX

Kiểu kiến trúc monolithic cung cấp tất cả chức năng/dịch vụ chính yếu

thông qua một qua trình xử lý đơn lẻ Chính vì vậy kích thước của chúng thường

Trang 25

lớn hơn kiểu kiến trúc vi hạt nhân Loại hình kiến trúc này thường được áp dụng

chủ yếu cho các phần cứng cụ thể mà hạt nhân monolithic có sự tương tác trực

tiếp với phần cứng nhờ vậy mà khả năng tối ưu cũng dễ dàng hơn so với áp dụng kiểu kiến trúc vi hạt nhân Chính vì vậy cũng là lý do tại sao kiến trúc monolithic không thể thay đổi mềm dẻo linh hoạt như kiểu vi hạt nhân Ví dụ điển hình về loại hình kiến trúc hạt nhân monolithic bao gồm Linux, MacOS, và DOS

Vì hệ điều hành cũng đòi hỏi về tài nguyên và kiêm cả chức năng quản lý chúng vì vậy người thiết kế cần phải nắm được thông tin về chúng một cách đầy

đủ Ví dụ như đối với hệ thống điều hành cho Sun Microsystem Solaris yêu cầu

tối thiểu không gian bộ nhớ trên đĩa là 8MB; Windows 2000 yêu cầu khoảng gấp hai lần như vậy

1.2.4 Hệ điều hành thời gian thực

QNX là một ví dụ điển hình về hệ thống thời gian thực RTOS được thiết

kế để đáp ứng các yêu cầu về lập lịch rất khắt khe QNX cũng chưa thực sự phù hợp để có thể được thực thi cho các hệ thống nhúng bởi vì nó đòi hỏi dung lượng

bộ nhớ không nhỏ và thường phù hợp cho các ứng dụng đòi hỏi về độ an toàn và

độ tin cậy lớn Hệ thống điều hành thời gian thực là hệ điều hành hỗ trợ khả năng xây dựng các hệ thống thời gian thực

Hình 1.6: So sánh kiến trúc RTOS và OS chuẩn.

Hệ thống điều hành với phần lõi là hạt nhân phải đảm nhiệm các tác vụ chính như sau:

• Xử lý ngắt:

+ Lưu trữ ngữ cảnh chương trình tại thời điểm xuất hiện ngắt

Trang 26

+ Khởi tạo giao tiếp vào ra

Hình 1.7: Cấu trúc hệ điều hành thời gian thực.

Tuỳ theo cơ chế thực hiện và xây dựng hoạt động của hạt nhân người ta phân ra một số loại hình sau:

(1) Hệ thống thời gian thực nhỏ: Với loại này các phần mềm được phát triển mà không cần có hệ điều hành, người lập trình phải tự quản lý và xử lý các vấn đề

về điều khiển hệ thống bao gồm:

Trang 27

+ Mỗi quá trình có một không gian bộ nhớ riêng

+ Các quá trình phải được chia nhỏ thành các Thread cùng chia sẻ không

Đặc điểm cơ bản của hạt nhân thời gian thực điển hình:

• Kích thước nhỏ (lưu trữ toàn bộ trong ROM)

• Hệ thống ngắt

• Không nhất thiết phải có các cơ chế bảo vệ:

+ Chỉ hỗ trợ phần kiểm tra chương trình ứng dụng

+ Tăng tốc độ chuyển ngữ cảnh và truyền thông giữa các quá trình

+ Khi các quá trình ứng dụng đang thực hiện thì các yêu cầu hệ thống điềuhành có thể được thực hiện thông qua các lời gọi hàm thay vì sử dụng cơchế ngắt mềm

• Vi hạt nhân (Micro-kernel): Bao gồm một tập nhỏ các dịch vụ hỗ trợ

• Quản lý quá trình

• Các dịch vụ truyền thông giữa các quá trình nếu cần

• Các phần mềm điều khiển thiết bị là các quá trình ứng dụng

Hạt nhân điển hình cơ bản:

• Loại hạt nhân đơn giản nhất là một vòng lặp vô hạn thăm dò các sự kiện xuất hiện trong hệ thống và phản ứng lại theo sự thay đổi nếu có

• Với một bộ xử lý cấu hình nhỏ nhất, không phải lúc nào nó cũng có thể lưu cất ngữ cảnh vì không thể thay đổi con trỏ ngăn xếp hoặc vùng ngăn xếp rất hạn chế

• Thay vì sử dụng các thanh ghi thiết bị, vòng lặp thăm dò có thể giám sát các biến mà chịu sự thay đổi cập nhật bởi các bộ xử lý ngắt

Trang 28

• Hạt nhân có thể được xây dựng sao cho tất cả các tín hiệu logic được điều khiển bởi vòng lặp và nhịp được điều khiển bởi các ngắt.

• Các tác vụ lớn cần nhiều thời gian thực hiện có thể được chia nhỏ thành các tác vụ nhỏ và được thực hiện tại các thời điểm khác nhau nhờ vào cơ chế chuyển và sử dụng bộ đếm

• Các hạt nhân thực thi theo cơ chế ngắt rất giống với loại hạt nhân thực hiện theo cơ chế vòng lặp thăm dò Nó xử lý tất cả các tác vụ thông qua các dịch vụ ngắt

• Các hạt nhân lớn và phức tạp hơn sẽ bao gồm một số các dịch vụ phụ phục

vụ cho việc truyền thông giữa các quá trình Và nếu được bổ sung đầy đủ

nó sẽ trở thành một hệ điều hành đầy đủ

Các kiểu loại hạt nhân cơ bản:

• Hạt nhân thực hiện vòng lặp thăm dò

• Hạt nhân thực hiện theo cơ chế ngắt

• Hạt nhân quá trình vận hành quá trình

Việc lựa chọn loại hạt nhân nào hoàn toàn tùy thuộc vào các bộ xử lý và kích thước phần mềm, tuy nhiên riêng loại hạt nhân vận hành theo quá trình không phù hợp với các bộ xử lý nhỏ

• Hạt nhân quá trình:

Các hạt nhân quá trình rõ ràng là phức tạp hơn các hạt nhân thực hiện theo

cơ chế thăm dò và điều khiển ngắt Các đường truyền tín hiệu logic bên trong các quá trình và các dịch vụ ngắt được tích hợp và thực hiện thông qua việc truyền

dữ liệu

Hình 1.8: Mô hình trạng thái của quá trình.

Hạt nhân sẽ phải đảm nhiệm chức năng lập lịch cho các quá trình theo đúng mô hình trạng thái

Trang 29

+ RUN: quá trình được thực hiện

+ WAIT: các quá trình chờ một sự kiện hoặc tín hiệu vào ra kích hoạt quá

trình

+ READY: các quá trình sẵn sàng được thực hiện

• Các phần tử thuộc tính của một quá trình:

Các phần tử này cần thiết để phục vụ cho việc lập lịch Ví dụ đối với cơ chế lập lịch theo mức độ ưu tiên sẽ yêu cầu thông tin sau với mỗi quá trình:

+ Tên (địa chỉ bộ nhớ của phần tử quá trình)

+ Trạng thái: RUN, WAIT, READY

+ Mức độ ưu tiên

+ Ngữ cảnh (dùng con trỏ để quản lý lưu cất thông tin trong ngăn xếp)

Trang 30

Chương 2: HỆ ĐIỀU HÀNH LINUX

Chương này trình bày một số vấn đề về hệ điều hành Linux như nguồn gốc ra đời, quá trình phát triển và một số câu lệnh cơ bản trong hệ điều hành Linux

2.1 Sơ lược về Linux.

2.1.1 Giới thiệu về hệ điều hành Unix

Năm 1964, Bell Labs, MIT & General Electric phát triển một hệ điều hành gọi là MULTICS (Multiplexed Information and Computing System) Sau đó năm 1969, Ken Thompson (một lập trình hệ thống của Bell Labs) nghĩa rằng ông

ta có thể làm một hệ điều hành tốt hơn Vì vậy ông ta đã viết một hệ điều hành trên hệ thống máy tính PDP-7, và hệ điều hành này được gọi là Unix Mục tiêu khởi đầu là cung cấp một môi trường máy tính hoá để mô phỏng trò chơi không gian Nhưng có một vấn đề xảy ra là phiên bản Unix này không thể chạy được trên hệ thống phần cứng khác Do đó đến năm 1973, Ritchie và Thompson đã viết lại hệ điều hành bằng ngôn ngữ C, khác hẳn với các hệ điều hành viết bằng ngôn ngữ máy, do đó Unix rất dễ cài đặt trên các hệ thống máy tính khác Năm

1974 hệ điều hành Unix đã được cài đặt trên các máy DEC PDP-11 ở hơn 100 trường đại học Mục tiêu chủ yếu là cung cấp môi trường chuyên nghiệp cho các lập trình viên chuyên ngiệp Vì thế Unix ngày càng thông dụng và càng có nhiều đặc tính mới được bổ sung Sau đó quân đội và chính phủ Mỹ đã sử dụng Unix

để nối mạng toàn cầu (Internet)

Đến nay đã có hàng trăm ngàn hệ thống Unix cài đặt trên khắp thế giới Hầu hết các hãng sản xuất máy đều có một phiên bản cho Unix Tuy nhiên hiện nay để chuẩn hoá hệ điều hành Unix, người ta quy ước các tập lệnh chuẩn và gọi

là Unix System V Release 4 Trên PC hiện nay phổ biến hai hệ diều hành là SCO Unix và SUN Solaris

• Các đặc điểm cơ bản của hệ điều hành Unix:

- Đa nhiệm (Multitasking)

- Nhiều người sử dụng (Multiuser)

Trang 31

• Ưu điểm của hệ điều hành Unix:

- Hệ thống được viết trên ngôn ngữ C nên dễ đọc, dễ hiểu, dễ thay đổi

để cài đặt trên máy mới

- Có giao diện người dùng đơn giản, cho phép xây dựng chương trình phức tạp từ chương trình đơn giản hơn

- Đây là hệ đa người dùng đa tiến trình, mỗi người dùng có thể thực hiện nhiều chương trình mỗi chương trình có thể có nhiều tiến trình

- Che đi cấu trúc máy đối với người dùng, có thể viết chương trình chạy trên các điều kiện phần cứng khác nhau

- Sử dụng hệ thống file có cấu trúc

2.1.2 Giới thiệu hệ điều hành Linux

Linux là một trong những hệ điều hành phổ thông nhất bởi sự phân phối

và cơ sở hỗ trợ mở rộng của nó Ban đầu, Linux được phát triển dưới dạng một

hệ thống đa nhiệm cho máy tính mini và máy chủ vào giữa thập niên 70 Kể từ

đó đến nay Linux lớn mạnh và trở thành một trong những hệ điều hành được sử dụng rộng rãi nhất

Linux là phiên bản của Unix được phân phối miễn phí và ban đầu do Linus Torvalds thực hiện và phát triển Ông bắt đầu nghiên cứu Linux vào năm

1991 khi còn là sinh viên ở trường đại học Helsinki ở Phần Lan Linux được xây dựng và phát triển từ hệ điều hành Minix (một phiên bản của Unix) Lúc đầu Linus tung ra phiên bản Linux đầu tiên trên Internet cho mọi người sử dụng miễn phí, điều đó vô tình dấy lên một hiện tượng phát triển phần mềm lớn Linux được xác lập và duy trì bởi một nhóm hợp tác gồm vài ngàn nhà phát triển phần mềm tình nguyện cùng làm việc qua Internet Các công ty cung cấp hỗ trợ Linux để phát triển nó thành loại sản phẩn dễ cài đặt với mục đích kinh doanh các trạm làm việc có cài sẵn phần mềm Linux

Trang 32

Vào ngày 5 tháng 10 năm 1991, Linus đã công bố phiên bản Linux chính thức đầu tiên, phiên bản 0.02 Bắt nguồn từ hệ điều hành Minix của Andrew Tanenbaum, Linux ban đầu chỉ là một dự án mà trong đó Linus muốn xây dựng một hệ Unix đơn giản có thể chạy trên PC 386 Phiên bản này được xác định như

là một hệ thống của các hacker Vấn đề chính là phát triển kernel chứ không phải nhằm mục đích để hỗ trợ người dùng hay để phân phối Nhưng đến nay sự hoàn thiện thực sự trong thế giới Linux đã giải quyết được vấn đề môi trường người

sử dụng đồ hoạ, gói sản phẩm dễ dàng cài đặt và các ứng dụng cao cấp như: tiện ích đồ hoạ và các bộ phiên bản sản phẩm

Từ khi phiên bản Linux đầu tiên ra đời cho đến nay, thì đã có rất nhiều phiên bản Linux mới ra đời cùng với nhiều tính năng mới được thêm vào nhằm phục vụ, hỗ trợ những tiện ích ngày càng cao của người dùng

Vì Linux được phát triển từ hệ điều hành Minix (một phiên bản của Unix) nên Linux cũng có những đặc tính và ưu điểm của hệ điều hành Unix:

• Linux cũng được viết bằng C

• Linux cũng là đa người dùng, đa nhiệm, là hệ điều hành mạng

• Linux cung cấp môi trường đầy đủ cho lập trình và phát triển

• Linux chạy trên nhiều hệ thống phần cứng khác nhau:

2.1.3 Tính năng của Linux

Linux là một hệ điều hành đa người sử dụng: Nghĩa là nhiều người có thể

sử dụng máy tính có cài Linux tại một thời điểm

Linux là một hệ diều hành đa nhiệm: Tại một thời điểm một người sử dụng có thể thực hiện đồng thời nhiều tác vụ Với hệ điều hành đơn chương như MS-DOS một lệnh thực hiện sẽ chiếm toàn bộ thời gian CPU xử lý, bạn chỉ có

Trang 33

thể thực hiện lệnh kế tiếp khi lệnh trước đó đã thực hiện xong Còn trong Linux, bạn có thể thực hiện cùng lúc nhiều lệnh.

Linux gần như tương thích với nhiều chuẩn Unix ở cấp nguồn bao gồm tính năng BSD, IEEE POSIX.1 và System V Linux được phát triển và rất chú trọng tới tính khả chuyển nguồn Do đó bạn có thể dùng chung những tính năng trong hệ Linux qua thi hành Unix

Linux còn hỗ trợ cho bàn phím tuỳ biến hoặc theo chuẩn quốc gia sử dụng trình điều khiển bàn phím khả tải động Linux còn hỗ trợ các console ảo, cho phép bạn chuyển đổi giữa nhiều phiên bản đăng nhập từ console hệ thống trong chế độ văn bản

Linux có thể tồn tại trên hệ thống có hệ điều hành khác như windows 95, windows 98, windows NT, windows XP, OS/2 hoặc những phiên bản khác của Unix Bộ nạp khởi động Linux cho phép bạn lựa chọn hệ diều hành để bắt đầu vào thời điểm khởi động và Linux cũng tương thích với các bộ nạp khởi động khác

Linux có thể chạy trên nhiều kiến trúc CPU bao gồm:

X86(Celeron/PII/PIII/PIV/Pentium/80386/80486), SPARC, Alpha, PowerPc, MIPS và m68k

Linux hỗ trợ nhiều kiểu file khác nhau để lưu dữ liệu

Hỗ trợ mạng là một trong những sức mạnh lớn nhất của Linux cả về chức năng lẫn tính năng Linux cung cấp cài đặt hoàn hảo về mạng TCP/IP, bao gồm các trình điều khiển thiết bị cho nhiều card Ethernet thông dụng PPP và SLIP, Parallel Line Internet Protocol (PLIP) và Network File System (NFS) Có rất nhiều ứng dụng khách và dịch vụ TCP/IP được hỗ trợ như FTP, Telnet, Simple Mail Transfer Protocol (SMTP) Linux kernel còn hỗ trợ tường lửa mạng hoàn hảo, cho phép bạn cấu hình bất cứ máy Linux nào dưới dạng tường lửa

2.1.4 Các thành phần:

Giống như Unix, Linux gồm 3 thành phần chính: Kernel, shell, cấu trúc file

- Kernel là chương trình nhân, chạy các chương trình và quản lý các thiết

bị phần cứng như đĩa và máy in

Trang 34

- Shell (môi trường) cung cấp giao diện cho người sử dụng, còn được mô

tả như một bộ biên dịch Nhiều shell được phát triển Linux cung cấp một số shell như: desktops, windows manager, và môi trường dòng lệnh Hiện nay chủ yếu tồn tại 3 shell: Bourne, Korn và C shell Bourne được phát triển tại phòng thí nghiệm Bell, C shell được phát triển cho phiên bản BSD của UNIX, Korn shell

là phiên bản cải tiến của Bourne shell Nhưng phiên bản hiện nay của Unix bao gồm cả Linux tích hợp cả 3 shell trên

- Cấu trúc file qui định cách lưu trữ các file trên đĩa File được nhóm trong các thư mục Mỗi thư mục có thể chứa file và các thư mục con khác Một số thư mục là các thư mục chuẩn do hệ thống sử dụng Người dùng có thể tạo các file/thư mục của riêng mình cũng như dịch chuyển các file giữa các thư mục đó Hơn nữa, với Linux người dùng có thể thiết lập quyền truy nhập file/thư mục, cho phép hay hạn chế một người dùng hoặc một nhóm truy nhập file Các thư mục trong Linux được tổ chức theo cấu trúc cây, bắt đầu bằng một thư mục gốc (root) Các thư mục khác được phân nhánh từ thư mục này

Kernel, shell và cấu trúc file cấu thành nên cấu trúc hệ điều hành Với những thành phần trên người dùng có thể chạy chương trình, quản lý file, và tương tác với hệ thống

Linux là HĐH mã nguồn mở và miễn phí, vì thế bất kỳ ai cũng có thể sở hữu HĐH này bằng cách sao chép, phân tán, hay viết lại HĐH này cho riêng mình Nó được đưa ra trên nền tảng cơ bản là PC (cụ thể là Intel 80386) Từ khi

ra đời đến nay nó đã phát triển một cách nhanh chóng trên thế giới PC, dành cho mọi nhà, mọi người mà không phân biệt lứa tuổi, trình độ,… Có thể nói đã có hàng trăm HĐH được phát triển từ linux đã ra đời, thậm chí còn hơn thế Trung Quốc cũng đã cho ra một HĐH riêng của mình dựa trên linux được mang tên là HĐH Hồng Kỳ (Red Flag), và ở Việt Nam cũng có dự án phát triển một HĐH riêng dựa trên nền tảng linux

Vì tính mở và miễn phí nên với việc cài đặt linux sẽ mang lại lợi ích kinh

tế đáng kể Ngày nay nó hoàn toàn được tin cậy và được sử dụng trong nhiều lĩnh vực: kinh doanh, ngân hàng, an ninh-quốc phòng,… Theo thống kê thì trên thế giới số lượng sử dụng HĐH Linux và HĐH Windowns trong các server là tương đương nhau Mặc dù vậy, ở Việt Nam thì Linux còn mới mẻ bởi vì nó

Trang 35

không đánh vào người dùng mức client: 1 Giao diện không thuận lợi với người dùng, 2 Thao tác phức tạp hơn Windown, 3 Đa phần người dùng là client Tuy nhiên, ngày nay các phiên bản của nó đã chú trọng vào giao diện người dùng, vì thế tương lai không xa nó có thể được nhiều người quan tâm hơn.

2.1.5 Vấn đề bản quyền

Linux được cấp giấp phép công cộng GNU General Public Licence hay GPL GPL đôi khi được gọi là giấp phép không bản quyền Giấy phép này đưa ra các điều khoản ràng buộc việc phân phối và sửa đổi phần mềm miễn phí (free software)

Ban đầu Linus Torvalds tung ra Linux với giấp phép hạn chế hơn GPL Giấy phép náy cho phép tự do phân phối và sửa đổi phần mềm nhưng không cho phép thay đổi giá thành đối với việc sử dụng và phân phối sản phẩm đó GPL cho phép bán và thu lợi từ phần mềm miễn phí nhưng không cho phép hạn chế quyền phân phối phần mềm của người khác dưới bất cứ hình thức nào

Mọi tổ chức bán phần mềm miễn phí phải tuân theo những giới hạn nhất định đưa ra trong GPL:

- Thứ nhất, họ không thể hạn chế quyền của người sử dụng, tức là người mua phần mềm Nghĩa là khi bạn mua CD_ROM với phần mềm GPL, bạn có thể sao chép và phân phối miễn phí CD_ROM đó hoặc cũng có thể bán lại

- Thứ hai, nhà phân phối phải nói rõ cho người sử dụng biết rằng phần mềm này thực sự hoạt động trong phạm vi giấy phép GPL

- Thứ ba, nhà phân phối phải cung cấp miễn phí mã nguồn đầy đủ cho phần mềm phân phối Điều này giúp cho bất kỳ ai mua phần mêm GPL đều có thể sửa đổi phần mềm đó

Linux là một phần mềm thuộc GPL nên nó cũng tuân theo những quy tắc của GPL Vì vậy Linux được xem như là phần mềm có mã nguồn mở (Open Source) Nghĩa là mã nguồn của Linux phải là mở đối với tất cả những người muốn sử dụng nó và có thể sửa đổi và phát triển một cách tự do Và nếu thực hiện thay đổi đến chương trình thì những thay đổi này cũng phải mở đối với mọi người dùng

Trang 36

• Máy laptop:

Linux cũng hoạt động tốt trên nhiều laptop như Apple Powerbooks, IBM Thinkpad, Toshiba Tecras Điều kỳ diệu là Linux có thể chạy được cả trên Intel

và Mac, ít nhất là với phần cứng cơ bản (bo mạch chính, bộ vi xử lý, bộ nhớ)

Có rất nhiều các loại phần cứng khác nhau, các ký hiệu khác nhau (như SCSI, IDE, BIOS…) Hầu hết các thông tin về máy tính đều được chứa trong BIOS và có thể thấy được khi khởi động khi ấn các phím đặc biệt (F1, Del…)

Trang 37

2.2 Dòng lệnh.

2.2.1 Các phương thức hoạt động của dòng lệnh

Các lệnh trong Linux được chia làm hai loại là câu lệnh và chương trình Điểm khác nhau giữa câu lệnh và chương trình là: Đối với các câu lệnh Linux đã

có cài sẵn các phản ứng và khi bạn gõ lệnh, Linux sẽ đáp ứng các lệnh đó Còn đối với chương trình, nó sẽ tìm chương trình có tên thích hợp rồi thực hiện chương trình đó

Nhiều lệnh trong Linux cho phép đầu ra của một lệnh này là đầu vào của một lệnh khác Để làm được điều đó chỉ cần đánh dâu ”|” ngăn cách giữa hai dòng lệnh Còn nếu câu lệnh dài quá bạn có thể ngắt xuống dòng bằng cách thêm dấu “\” tại cuối dòng (dấu “\” phải là ký tự cuối cùng của dòng lệnh) Khi bạn muốn đánh nhiều lệnh một lúc thì chỉ cần đánh dấu “,” giữa các câu lệnh, từ đó các câu lệnh sẽ thực hiện một cách tuần tự

Linux còn cung cấp nhiều sự tiện lợi khi sử dụng các lệnh, đặc biệt là khả năng hoàn chỉnh lệnh bằng việc sử dụng phím tab Bạn cũng có thể sử dụng mũi tên lên/xuống trên bàn phím để nhận được các câu lệnh đã sử dụng lúc trước.Một số phím tắt để thực hiện lệnh các thao tác đơn giản khi nhập lệnh:

- Nhấn phím ESC +BACKSPACE để xoá một từ bên trái con trỏ

- Nhấn phím ESC +D để xoá một từ bên phải con trỏ

- Nhấn phím ESC +F để di chuyển con trỏ sang phải một từ

- Nhấn phím ESC +B để di chuyển con trỏ sang trái một từ

- Nhấn phím CTRL +A để di chuyển con trỏ về đầu dòng lệnh

- Nhấn phím CTRL +E để di chuyển con trỏ về cuối dòng lệnh

- Nhấn phím CTRL +U để xoá dòng lệnh hiện tại

Ta có thể nhấn phím ALT thay cho phím ESC

2.2.2 Trang Man

Linux là một hệ điều hành rất phức tạp với rất nhiều câu lệnh có thể kết hợp với nhau để thực hiện hàng nghìn thao tác khác nhau Hầu hết các câu lệnh đều kèm theo một số các tuỳ chọn lệnh hay những thông tin quan trọng Trong Linux có tới hơn 1000 lệnh và chắc chắn rằng chúng ta không thể nhớ hết được

Sử dụng trang Man sẽ giúp chúng ta giải quyết được điều đó

Trang 38

Trang Man (Manual page), là một tài liệu trực tuyến trong Linux lưu trữ toàn bộ các lệnh có sẵn với các thông tin tham khảo đầy đủ.

Để mở trang Man của một lệnh, bạn hãy gõ:

+ Bất cứ từ nào đứng một mình hay không ở trong các dấu [], {}, <> thì phải gõ y như vậy

+ Từ nằm trong dấu ngoặc vuông ([]) là tuỳ ý có thể gõ hoặc không

+ Từ nằm trong dấu <> là bắt buộc phải có và được thay thế bằng từ thích hợp

+ Từ nằm trong dấu {} là chọn một trong các giá trị trong ngoặc đó

Trang 39

+ Dấu … thường được dùng với các tham số như tên tập tin.

+ Khi nào cần, có thể kết hợp các dấu ngoặc với nhau để tạo ra cách sử dụng tham số mới

Ngoài những quy ước trên, có một điều cần lưu ý là trong dòng lệnh Linux

có phân biệt chữ hoa và chữ thường Trong Linux có hai ký tự đại diện phổ biến

là “*” và “?” “*” là ký tự đại diện thông dụng nhất, nó thay cho một hay nhiều

ký tự Và “?” là ký tự đại diện cho một ký tự duy nhất

2.3 Các lệnh cơ bản trong Linux.

2.3.1 Thư mục và lệnh về thư mục

2.3.1.1 Một số thư mục đặc biệt.

+ Thư mục / : Đây là thư mục gốc chứa đựng tất cả các thư mục con có

trong hệ thống

+ Thư mục /root: được sử dụng để lưu trữ các tập tin tạm thời, nhân Linux

và các hình ảnh khởi động, các tập tin nhị phân quan trọng, các tập tin đăng nhập…

+ Thư mục /bin: Một chương trình được coi là khả thi nếu nó có thể thực

hiện được và khi biên dịch nó có dạng là tập tin nhị phân Và thư mục /bin chính

là nơi lưu giữ các tập tin nhị phân khả thi đó Nhưng theo thời gian ngày càng có

nhiều tập tin nhị phân khả thi nên có thêm các thư mục như /sbin, /usr/bin được

sử dụng để lưu trữ các tập tin nhị phân đó

+ Thư mục /dev: Lưu trữ tất cả các trình điều khiển thiết bị.

+ Thư mục /etc: lưu trữ tất cả các thông tin hay tệp tin cấu hình hệ thống + Thư mục /lib: Lưu trữ các thư viện hàm và thủ tục.

+ Thư mục /lost+ found: Một tập tin được khôi phục sau khi có bất kì một

vấn đề hay một trục trặc nào trên hệ thống đều được lưu vào tập tin này

+ Thư mục /mnt: Là nơi để kết nối các thiết bị (đĩa cứng, đĩa mềm…) vào

hệ thống tập tin chính

+ Thư mục /tmp: Thư mục này được rất nhiều chương trình trong Linux sử

dụng như một nơi lưu các tập tin tạm thời Ví dụ như bạn soạn thảo một tập tin, chương trình sẽ tạo ra một tập tin là bản sao của tệp tin đó và lưu vào trong thư

Trang 40

mục /tmp Bạn sẽ soạn thảo trực tiếp trên thư mục tạm thời này và sau khi soạn

thảo xong, tập tin sẽ được ghi đè lên tập tin gốc của bạn

+ Thư mục /usr: thông thường thư mục này là trung tâm lưu tất cả các câu

lệnh hướng đến người dùng Tuy nhiên ngày nay thì hầu hết các tập tin nhị phân của Linux đều được lưu trữ tại thư mục này

+ Thư mục /home: lưu trữ các thư mục cá nhân của người dùng.

+ Thư mục /var: Được sử dụng để lưu trữ các thông tin luôn luôn thay đổi + Thư mục /boot: Là thư mục chứa nhân của hệ thống, system.map (tập tin

ánh xạ đến các driver để nạp các hệ thống tập tin khác),…Thư mục này cho phép khởi động và nạp lại bất kỳ trình điều khiển nào được yêu cầu để đọc các hệ thống tập tin khác

+ Thư mục /proc: Là thư mục dành cho nhân hệ thống (kernel).

+ Thư mục /mise và thư mục /opt: Bạn có thể lưu trữ mọi thứ bạn thích

vào thư mục này

+ Thư mục /sbin: Lưu trữ các tập tin hệ thống thường tự động chạy.

Ngoài ra còn có hai thư mục đặc biệt trong Lnux, đó là hai thư mục được biểu

hiện bằng dấu “.” Và “ ”

+ Dấu “.” biểu hiện cho thư mục hiện hành.

+ Dấu “ ” biểu hiện cho thư mục cha của thư mục hiện hành.

2.3.1.2 Các lệnh chính lien quan đến thư mục.

Xác định thư mục hiện thời với lệnh pwd:

Cú pháp lệnh:

pwd

Lệnh này cho bạn biết hiện bạn đang ở trong thư mục nào

Mặc định, Linux luôn đặt bạn vào thư mục cá nhân của bạn khi đăng nhập

• Xem thông tin về thư mục với lệnh ls:

Ngày đăng: 08/04/2016, 18:52

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] TS Lưu Hồng Việt. Hệ thống điều khiển nhúng. Đại BK Hà Nội Khác
[2] Đề tài nghiên cứu khai thác phần mềm Linux nhúng phục vụ cho việc tạo các thiết bị an toàn thông tin chuyên dụng, Ts. Đặng Vũ Sơn, năm 2006 Khác
[3] Trần Thạch Tùng và Hoàng Đức Hải. Bảo mật và tối ưu hóa trong Linux. Nhà xuất bản lao động-xã hội Khác
[4] Nguyễn Ngọc Tuấn &amp; Hồng Phúc. 100 thủ thuật cao cấp với Linux. Nhà xuất bản Giao thông vận tải Khác
[5] Nhóm tác giả Elicom. Làm chủ hệ điều hành Linux. Nhà xuất bản thống kêCÁC TRANG WEB THAM KHẢO Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w