Professional Documents
Culture Documents
HÀ NỘI, 11/2023
MỤC LỤC
4.1 Hệ điều hành iOS với các hệ điều hành điện thoại khác ............................ 24
4.2 Hệ điều hành MacOS với các hệ điều hành máy tính khác ........................ 26
Hình 1.1 Các hệ điều hành quen thuộc trên máy tính và điện thoại . . . 1
Hình 1.2 Cấu trúc nguyên khối . . . . . . . . . . . . . . . . . . . . . . . 3
Hình 1.3 Cấu trúc phân lớp . . . . . . . . . . . . . . . . . . . . . . . . . 4
Hình 1.4 Cấu trúc vi nhân . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Hình 1.5 Hệ điều hành Windows . . . . . . . . . . . . . . . . . . . . . . 8
Hình 1.6 Hệ điều hành MacOS . . . . . . . . . . . . . . . . . . . . . . . 9
Hình 1.7 Hệ điều hành Linux . . . . . . . . . . . . . . . . . . . . . . . . 9
i
DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT
ii
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
Hình 1.1: Các hệ điều hành quen thuộc trên máy tính và điện thoại
Các hệ điều hành quen thuộc trên máy tính và laptop như là Windows, trên
MacBook, iMac là macOS, còn trên điện thoại thì phổ biến nhất vẫn là Android và
IOS.
1.1.1 Hệ điều hành máy tính
Hệ điều hành máy tính được thiết kế để sử dụng trên các thiết bị như: Máy tính
để bàn, laptop. Đây là hệ điều hành sử dụng giao diện đồ họa GUI (Graphical User
Interface), là một hệ điều hành máy tính được thiết kế để tương tác với người dùng
thông qua giao diện đồ họa. Với hệ điều hành GUI, người dùng có thể sử dụng
chuột và bàn phím để thao tác trên máy tính một cách thuận tiện và trực quan hơn.
1
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
Giao diện đồ họa của hệ điều hành GUI bao gồm: các biểu tượng, cửa sổ, nút và
menu kéo xuống,. . . cho phép người dùng truy cập nhanh chóng và dễ dàng. GUI
của mỗi hệ điều hành có giao diện khác nhau nhưng hầu hết đều dễ sử dụng và
không quá khác biệt. Các loại hệ điều hành dành cho máy tính phổ biến hiện nay:
Hệ điều hành Windows, Hệ điều hành MacOS, Hệ điều hành Linux, Hệ điều hành
ChromeOS, ...
1.1.2 Hệ điều hành điện thoại
Hệ điều hành cho thiết bị di động là một loại hệ điều hành được thiết kế để sử
dụng trên các thiết bị di động như: điện thoại thông minh, máy tính bảng, đồng hồ
thông minh và các thiết bị điện tử khác. Hệ điều hành này có thể được tìm thấy trên
các thiết bị của các hãng công nghệ lớn như: Samsung, Xiaomi, OPPO,... Ngoài
các tính năng cơ bản như: quản lý điện thoại, nhắn tin, cuộc gọi, định vị GPS và lưu
trữ dữ liệu thì hệ điều hành điện thoại còn cung cấp các tính năng cao cấp như: màn
hình cảm ứng, camera, đa nhiệm, trình duyệt web, ứng dụng thông minh,...Các hệ
điều dành cho điện thoại phổ biến hiện nay:Hệ điều hành Android, Hệ điều hành
IOS, ...
1.2 Cấu trúc của hệ điều hành
Hệ điều hành là một hệ thống phần mềm phức tạp được tạo thành từ nhiều thành
phần đảm đương những nhiệm vụ hoặc cung cấp những dịch vụ khác nhau. Các
thành phần của hệ điều hành cần được tổ chức, kết hợp với nhau theo một cách nào
đó để tạo ra một hệ thống thống nhất là hệ điều hành. Từng thành phần cũng như
cách tổ chức toàn bộ hệ thống có thể rất khác nhau, tùy vào hệ điều hành cụ thể.
Cách tổ chức, liên kết các thành phần xác định cấu trúc của hệ điều hành
1.2.1 Cấu trúc nguyên khối
Cấu trúc nguyên khối (monolithic), hay cấu trúc đơn giản, là cấu trúc trong đó
toàn bộ các chương trình và dữ liệu của hệ điều hành có chung một không gian
nhớ và do vậy có thể coi như một khối duy nhất. Hệ điều hành lúc đó trở thành
một chương trình lớn, là tập hợp các thủ tục hay các chương trình con. Mỗi chương
trình con có thể tự do gọi chương trình con khác khi cần thiết. Cách tổ chức hệ điều
hành như vậy cho ta hình ảnh tương tự với chương trình được viết theo kiểu lập
trình cấu trúc, trong đó toàn bộ chương trình tạo thành từ các chương trình con, ví
dụ chương trình viết trên ngôn ngữ C hay Pascal. Các chương trình con được dịch,
sau đó liên kết thành một chương trình lớn.
2
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
Việc che dấu thông tin hoàn toàn không có, tức là bất cứ chương trình con nào
cũng có thể gọi chương trình con khác hoặc truy cập vào các dữ liệu chung của
chương trình. Khi chương trình ứng dụng cần dùng tới các dịch vụ của hệ điều
hành, chương trình ứng dụng sẽ sử dụng lời gọi hệ thống do hệ điều hành cung cấp.
Lời gọi hệ thống được chuyển cho chương trình con tương ứng của hệ điều hành
thực hiện. Chương trình con này sẽ gọi thêm các chương trình con khác để thực
hiện nhiệm vụ nếu cần thiết.
1.2.2 Cấu trúc phân lớp
Cấu trúc phân lớp là cấu trúc trong đó các thành phần của hệ điều hành được
phân thành các lớp nằm chồng lên nhau hay tiếp xúc với nhau theo một thứ tự nhất
định (hình 1.16). Lớp trên cùng (hay ngoài cùng) là lớp các chương trình ứng dụng,
lớp dưới cùng (hoặc trong cùng) tương ứng với phần cứng. Việc liên lạc giữa các
lớp được quy định sao cho mỗi lớp chỉ có thể liên lạc với lớp nằm kề bên trên và kề
bên dưới. Điểm đặc biệt của cấu trúc phân lớp là mỗi lớp chỉ có thể sử dụng dịch
vụ do lớp nằm ngay bên dưới cung cấp. Dịch vụ này được cung cấp qua giao diện
của lớp dưới, thường là dưới dạng các hàm mà lớp trên có thể gọi. Các chi tiết cụ
thể của lớp dưới như cấu trúc dữ liệu, mã chương trình được che dấu khỏi lớp trên.
Lớp trên chỉ quan tâm tới dịch vụ được cung cấp mà không cần quan tâm đến các
chi tiết này. Như vậy, ta có thể thay đổi các lớp độc lập với nhau, chỉ cần đảm bảo
giữ nguyên giao diện với lớp trên. Phần lớn các lớp chạy trong chế độ nhân hay chế
độ đặc quyền
3
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
Một ưu điểm rõ nét của cấu trúc phân lớp là cấu trúc này cho phép thực hiện dò
lỗi và hoàn thiện hệ điều hành một cách tương đối dễ dàng. Việc dò lỗi và hoàn
thiện được thực hiện từ dưới lên trên. Tuy nhiên, khó khăn thường gặp khi thiết kế
hệ điều hành có cấu trúc phân lớp là việc xác định số lớp cũng như phân chia thành
phần cụ thể của mỗi lớp là không dễ dàng. Do mỗi lớp chỉ có thể gọi lớp nằm ngay
bên dưới, cần xác định và phân hoạch chính xác các lớp trên cơ sở chức năng và
tương tác giữa các phần của hệ điều hành. Một nhược điểm nữa của cấu trúc phân
lớp là tốc độ tương đối thấp so với các kiểu cấu trúc khác. Do các nhược điểm nêu
trên, cấu trúc phân lớp hoàn toàn ít được sử dụng trong thời gian gần đây.
1.2.3 Cấu trúc vi nhân
Một kiểu cấu trúc mới hơn và khá phổ biến khác là cấu trúc vi nhân (microkernel).
Ở các hệ điều hành có cấu trúc kiểu này, phần nhân chỉ chứa các chức năng quan
trọng nhất như quản lý tiến trình, quản lý bộ nhớ, liên lạc giữa các tiến trình. Các
chức năng còn lại của hệ điều hành được tổ chức thành các mô đun khác, mỗi
mô đun có thể là một chương trình riêng biệt. Các mô đun này có thể hoạt động
trong chế độ đặc quyền như phần nhân hoặc như các chương trình ứng dụng thông
thường. Mỗi khi có yêu cầu cung cấp dịch vụ từ chương trình ứng dụng, chẳng hạn
yêu cầu đọc hoặc ghi file, yêu cầu sẽ chuyển cho nhân. Nhân sẽ chuyển tiếp yêu
cầu cho mô đun tương ứng thực hiện, trong trường hợp này là mô đun quản lý hệ
thống file. Như vậy, nhiệm vụ của nhân khi đó chỉ là đảm bảo liên lạc giữa chương
trình ứng dụng và mô đun cung cấp dịch vụ. Cách tổ chức này cho phép giảm tối
thiểu kích thước nhân (từ đây sinh ra tên gọi vi nhân) cũng như kích thước các mô
4
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
đun.
Ưu điểm chính của cách tổ chức này là việc thiết kế, cài đặt, quản lý các mô đun
sẽ dễ dàng và mềm dẻo hơn so với cấu trúc khối. Một ưu điểm khác là do đa số
các mô đun chạy trong chế độ người dùng như các chương trình ứng dụng thông
thường, khi các các mô đun này có lỗi sẽ không ảnh hưởng tới toàn bộ hệ điều hành.
Nhược điểm của cấu trúc vi nhân là việc chuyển đổi giữa các mô đun đòi hỏi thời
gian và tài nguyên hệ thống. Các mô đun chỉ có thể liên lạc với nhau theo những cơ
chế liên lạc nhất định (thường là bằng cách chuyển thông điệp - message passing)
chứ không thể trực tiếp gọi hàm và truy cập dữ liệu của mô đun khác. Cách liên lạc
như vậy chậm hơn nhiều so với cách gọi hàm trực tiếp
1.3 Các thành phần của hệ điều hành
1.3.1 Quản lý tiến trình
Hệ điều hành là một hệ thống phần mềm phức tạp được tạo thành từ nhiều thành
phần đảm đương những nhiệm vụ hoặc cung cấp những dịch vụ khác nhau. Một hệ
điều hành tiêu biểu thường có các thành phần thực hiện những nhiệm vụ sau:
• Tạo và xoá tiến trình (bao gồm cả tiến trình người dùng lẫn tiến trình hệ thống
- tiến trình hệ điều hành). Lưu thông tin về các tiến trình.
• Tạm dừng và khôi phục các tiến trình bị dừng. Một tiến trình bị dừng sẽ bị
tạm không được thực hiện tiếp và có thể bị chuyển từ bộ nhớ trong ra đĩa. Khi
được khôi phục, tiến trình sẽ thực hiện tiếp từ điểm bị dừng thay vì thực hiện
lại từ đầu. Người sử dụng Linux có thể treo một tiến trình bằng cách sử dụng
lệnh suspend.
• Lập lịch cho các tiến trình (process scheduling), hay còn gọi là lập lịch cho
CPU, là quyết định tiến trình nào được cấp phát CPU để chạy
• Đồng bộ hoá các tiến trình: khi có nhiều tiến trình cũng tồn tại cần đảm bảo
để các tiến trình được thực hiện sao cho không dẫn tới xung đột về tài nguyên
5
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
hoặc có thể hợp tác với nhau để dẫn tới kết quả mong muốn.
• Giải quyết các bế tắc, ví dụ như khi có xung đột về tài nguyên.
• Tạo cơ chế liên lạc giữa các tiến trình.
1.3.2 Quản lý bộ nhớ
Bộ nhớ (nếu không nói gì thêm thì được hiểu là bộ nhớ trong hay bộ nhớ sơ cấp,
hay RAM) là nơi chứa các tiến trình và dữ liệu. Đây là tài nguyên quan trọng thứ
hai sau CPU. Bộ nhớ là khối ô nhớ được nhóm lại thành các từ hay các byte và
được đánh địa chỉ. Địa chỉ được sử dụng khi cần đọc hoặc ghi thông tin vào bộ nhớ.
Trong những hệ điều hành đa nhiệm, nhiều tiến trình có thể cùng thực hiện một lúc
và được chứa trong bộ nhớ. Thành phần quản lý bộ nhớ của hệ điều hành thực hiện
các công việc sau:
• Cấp phát, phân phối bộ nhớ cho các tiến trình.
• Tạo ra bộ nhớ ảo và ánh xạ địa chỉ bộ nhớ ảo vào địa chỉ bộ nhớ thực. Ngăn
chặn các truy cập bộ nhớ không hợp lệ, chẳng hạn truy cập sang vùng bộ nhớ
không thuộc tiến trình.
• Cung cấp và giải phóng bộ nhớ theo yêu cầu của các tiến trình.
• Quản lý không gian nhớ đã được cấp và không gian còn trống.
1.3.3 Quản lý vào ra
Một trong các nhiệm vụ của hệ điều hành là đơn giản hoá và tăng hiệu quả quá
trình trao đổi thông tin giữa các tiến trình với thiết bị vào/ra.Nhờ có hệ điều hành,
người dùng không phải quan tâm tới các chi tiết liên quan tới thiết bị vào/ra cụ thể.
Việc điều khiển trực tiếp thiết bị do các chương trình điều khiển thiết bị (driver)
thực hiện. Ngoài ra còn có các giao diện lớp trên driver do hệ điều hành cung cấp.
Các thành phần này nằm trong hệ thống vào ra của hệ điều hành. Một nhiệm vụ
khác của hệ vào ra là tăng hiệu quả trao đổi thông tin với thiết bị ngoại vi nhờ hệ
thống vùng đệm (buffer) và bộ nhớ cache.
1.3.4 Quản lý file và thư mục
File là tập hợp các thông tin có liên quan đến nhau, là nơi có thể ghi thông tin
vào hoặc đọc thông tin ra. Các chương trình và người dùng không cần quan tâm tới
việc file được cất giữ trên bộ nhớ ngoài như thế nào. Hệ điều hành sẽ chịu trách
nhiệm ánh xạ file lên các thiết bị nhớ này. Khi số lượng file lớn tới một mức nào đó,
cần có cơ chế tổ chức các file sao cho dễ tìm kiếm và sử dụng. Chẳng hạn, nếu so
sánh mỗi file như một quyển sách, khi số sách tương đối như trong thư viện, người
ta cần phân loại sách theo thể loại, tác giả v.v. cho dễ tìm kiếm. Hệ điều hành phân
6
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
chia các file thành các nhóm gọi là thư mục. Mỗi thư mục chứa các file có cùng
một đặc điểm nào đó, ví dụ thư mục chứa các văn bản, thư mục chứa chương trình
của cùng một hãng.
1.3.5 Hỗ trợ mạng và xử lý phân tán
Điều này cho phép trao đổi, chia sẻ thông tin giữa các máy, đồng thời tạo khả
năng xử lý phân tán. Các máy tính được nối với nhau qua các môi trường truyền
thông cho phép truyền thông tin và dữ liệu. Đối với những bài toán lớn, đòi hỏi tốc
độ tính toán cao hoặc khả năng lưu trữ dữ liệu lớn có thể phân tán việc xử lý trên
các máy tính đã nối mạng. Xử lý phân tán cho phép tận dụng tài nguyên của các
máy riêng lẻ để tạo nên một hệ thống tính toán có khả năng lớn hơn nhiều.
1.3.6 Giao diện người dùng
Thành phần này được gọi bằng nhiều tên khác nhau như bộ dịch lệnh (command
intepreter), vỏ (shell). Thực chất đây là giao diện giữa người dùng với hệ điều hành.
Bộ dịch lệnh hay vỏ nhận lệnh từ người dùng và thực hiện các lệnh này, có thể bằng
cách sử dụng dịch vụ do các phần khác của hệ điều hành cung cấp. Trong các hệ
điều hành hiện nay, bộ dịch lệnh thường được thay thế bằng các hệ giao diện đồ
hoạ. Thay vì gõ các lệnh dưới dạng văn bản, người sử dụng làm việc với các đối
tượng đồ hoạ như cửa sổ, biểu tượng rất trực giác và dễ hiểu. Các giao diện đồ họa
thường được biết đến là Windows Explorer cho Windows, X windows cho Linux.
1.3.7 Các chương trình tiện ích của người dùng
Hệ điều hành thường chứa sẵn một số chương trình tiện ích và chương trình ứng
dụng. Đây là thành phần không bắt buộc của hệ điều hành. Các chương trình tiện
ích cung cấp cho người dùng một số dịch vụ giúp cho việc sử dụng hệ thống dễ
dàng, hiệu quả hơn. Chẳng hạn có các tiện ích giúp nén tệp, chép các tệp dài ra đĩa
mềm, tiện ích giúp lưu trữ dữ liệu. Trong nhiều trường hợp, việc xác định chương
trình nào là tiện ích, chương trình nào thuộc hệ điều hành không đơn giản do không
có tiêu chí rõ ràng để phân biệt.
1.3.8 Nhân của hệ điều hành
Nhân (kernel) là phần cốt lõi, là phần thực hiện các chức năng cơ bản nhất, quan
trọng nhất của hệ điều hành và thường xuyên được giữ trong bộ nhớ. Kernel có
nhiệm vụ quản lý tài nguyên hệ thống (liên lạc giữa các thành phần phần cứng và
phần mềm). Máy tính hiện đại thường được thiết kế với hai chế độ thực hiện chương
trình:
7
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
• Nhân chạy trong chế độ đặc quyền – chế độ nhân: là chế độ mà chương trình
thực hiện trong đó có đầy đủ quyền truy cập và điều khiển phần cứng máy
tính.
• Nhân chạy chế độ người dùng: chương trình thực hiện trong chế độ người dùng
bị hạn chế rất nhiều quyền truy cập và sử dụng phần cứng.
Việc phân biệt chế độ nhân và chế độ người dùng nhằm mục đích ngăn không cho
chương trình ứng dụng vô tình hoặc cố ý thực hiện những thao tác làm ảnh hưởng
tới hệ thống. Đây là điều kiện cần thiết để hệ thống máy tính hoạt động ổn định và
hiệu quả.
1.4 Một số hệ điều hành cụ thể
1.4.1 Hệ điều hành Windows
Windows là hệ điều hành cực kỳ phổ biến khắp thế giới, được Microsoft ra mắt
lần đầu vào năm 1980. Windows được tích hợp sẵn trên hầu hết máy tính. Hệ điều
hành này đã trải qua rất nhiều phiên bản cho đến nay. Trong đó, Windows 10 và
Windows 7 là hai phiên bản được sử dụng nhiều nhất.
8
CHƯƠNG 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
9
CHƯƠNG 2. GIỚI THIỆU HỆ ĐIỀU HÀNH MACOS
Phiên bản dành cho máy tính để bàn đầu tiên, Mac OS X 10.0 , được phát hành
vào tháng 3 năm 2001, với bản cập nhật đầu tiên, 10.1, đến vào cuối năm đó. Tất
cả các bản phát hành tử Mac OS X 10.5 Leopard trở về sau đều được chứng nhận
UNIX 03, till ngoại trừ OS X 10.7 Lion. Hệ điều hành di động của Apple, iOS ,
được coi là một biến thể của macOS.
2.2 Cấu trúc hệ thống
MacOS là một hệ điều hành chạy trên mọi máy tính của nhà Apple, nó chứa một
số lượng lớn các chương trình được thiết kế rất là tốt. Cấu trúc Mac OS X được cấu
tạo bởi nhiều lớp khác nhau, lớp cơ bản của hệ thống đó là Darwin – core Unix.
Lớp tiếp theo là hệ thống đồ họa bao gồm: Quartz, Open-GL và Quick-Time. Còn
10
CHƯƠNG 2. GIỚI THIỆU HỆ ĐIỀU HÀNH MACOS
về lớp ứng dụng, chúng được tạo thành bởi bốn thành phần chính đó la: classic,
carbon, cocoa và java. Cuối cùng đó là lớp giao diện người dùng nằm ở trên cùng
đó là là lớp Aqua
2.2.1 CoreOS
Core Darwin được phát triển dựa trên phiên bản BSD (Berkeley Software Distribution)
– một phiên bản khác của UNIX (Darwin là một hệ điều hành UNIX mã nguồn mở
do chính Apple ra mắt năm 2000). Trong đó Mach là phần chính của core Darwin
và nó sẽ đảm nhận nhiệm vụ là thực hiện các hoạt động như: sử dụng bộ nhớ, đường
truyền dữ liệu,... Darwin cũng là một nguồn mở, điều này đồng nghĩa với việc bất
cứ ai cũng có thể lấy được mã nguồn của nó và chỉnh sửa nó. Các phiên bản khác
nhau của Darwin có thể được sử dụng để nâng cao Mac OS X. Một số tính năng
nổi bật của Darwin đó chính là bảo vệ bộ nhớ, quản lý bộ nhớ tự động, bộ nhớ ảo
nâng cao, ưu tiên đa nhiệm, ... Ngoài ra nó cũng cung cấp các dịch vụ input output
cho Mac OS X và có hỗ trợ plug-and-play, hot-swapping và quản lý năng lượng
2.2.2 Hệ thống con đồ họa(Graphics Subsystem)
Trong Mac OS X thì hệ thống con đồ họa chứa ba phần chính đó là: Quartz,
OpenGL và QuickTime. Mỗi bộ phận này đều sẽ đảm nhận các chức năng và
nhiệm vụ khác nhau. Trong đó, Quartz sẽ đảm nhận nhiệm vụ là quản lý đồ họa
2D trong hệ thống con đồ họa, ngoài ra nó còn cung cấp phông chữ, kiểu chữ, hiển
thị hình ảnh, đồ họa giao diện,... OpenGL cung cấp, hỗ trợ đồ họa 3-D trong hệ
thống như ánh xạ kết cấu, độ trong suốt, khử răng cưa, hiệu ứng khí quyển, hiệu
ứng đặc biệt, ... Ngoài ra, nó cũng có thể được sử dụng trong các hệ thống Unix và
Windows. QuickTime được sử dụng thường xuyên trong các phương tiện kỹ thuật
số khác nhau như video kỹ thuật số, truyền phát video, âm thanh,... Nó cũng cho
phép sử dụng các ứng dụng sáng tạo trong hệ thống như là iMovie, iTunes,...
2.2.3 Hệ thống con ứng dụng(Application Subsystem)
Hệ thống con ứng dụng trong Mac OS X cung cấp môi trường cổ điển (Classic
Environment) để có thể chạy các ứng dụng cổ điển. Ba môi trường phát triển ứng
dụng có sẵn có thể kể đến như là: Carbon, Cocoa và Java Môi trường cổ điển sẽ
đảm bảo rằng các ứng dụng được viết cho các phiên bản trước của hệ điều hành
có thể chạy một cách mượt mà và trơn tru. Môi trường Carbon được sử dụng để
chuyển các ứng dụng hiện đang có sang giao diện mới là giao diện chương trình
ứng dụng Carbon. Quá trình này được gọi là Cacbon hóa ứng dụng. Còn về môi
trường Cacao, nó cung cấp môi trường phát triển ứng dụng hướng đối tượng. Các
ứng dụng Cacao sẽ sử dụng các lợi ích của Cấu trúc Mac OS X là nhiều nhất. Các
ứng dụng Java và Java applet có thể chạy bằng môi trường Java.
11
CHƯƠNG 2. GIỚI THIỆU HỆ ĐIỀU HÀNH MACOS
12
CHƯƠNG 2. GIỚI THIỆU HỆ ĐIỀU HÀNH MACOS
tệp). File System - FS được tổ chức như một cây bắt đầu từ một nút đơn gọi
là root, được biểu diễn như sau: “/ ”; từ đó sẽ có các thư mục khác tạo thành
nhánh của cây, trong các nhánh có thể có các nhánh (con) khác. Dưới các
nhánh sẽ là tệp. Tệp có thể là tệp bình thường (regular files) hay cũng có thể
là tệp đặc biệt (special files). Tệp được truy nhập qua đường dẫn (path name)
mô tả cách thức định vị được tệp trong FS. Đường dẫn đầy đủ, hay đường dẫn
tuyệt đối, bắt đầu bởi dấu / và nó xác định sẽ tìm tệp bằng cách đi từ root qua
cấu trúc cây thư mục theo các nhánh chỉ thị trong đường dẫn.
Ví dụ ta có:/usr/src/cmd/date.c là đường dẫn tuyệt đối tới tệp date.c. Đường dẫn
không bắt đầu từ root gọi là đường dẫn tương đối, chỉ tới thư mục hiện tại của tệp.
Thư mục cũng là một loại tệp, hệ thống xử lý dữ liệu trong thư mục cũng bằng byte
stream, nhưng dữ liệu ở đây chứa tên các tệp trong thư mục có khuôn dạng dự đoán
được, sao cho OS và các chương trình, ví dụ l, có thể nhận ra các tệp trong thư
mục. Việc truy nhập tệp được kiểm soát bởi quyền truy nhập (access permission)
kết hợp với tệp. Quyền truy nhập được lập ra một cách độc lập để kiểm soát truy
nhập đọc (read), ghi (write), và thực hiện (execute) cho ba lớp người sử dụng:người
sở hữu tệp (u - user), nhóm người được truy nhập (g- group), những người khác (o
- other). Người dùng có thể tạo tệp nếu họ được phép và các tệp mới tạo sẽ là các
nhánh lá của cấu trúc thư mục hệ thống. Đối với người dùng, MacOS xử lí các thiết
bị như thể đó là các tệp. Các thiết bị được mô tả bởi các tệp thiết bị đặc biệt và nằm
ở một nhánh trong cấu trúc hệ thống thư mục (/dev). Các chương trình truy nhập
các thiết bị bằng cú pháp giống như đã dùng để truy nhập tệp bình thường, các thiết
bị cũng được bảo vệ cùng phương thức như các tệp, qua việc ấn định quyền truy
nhập. Bởi vì tên các thiết bị cũng giống như tên các tệp bình thường và các thao tác
13
CHƯƠNG 2. GIỚI THIỆU HỆ ĐIỀU HÀNH MACOS
trên chúng là như nhau, nên hầu hết các chương trình đều không biết tới kiểu tệp
bên trong của tệp mà chúng thao tác.
2.5 Quản lý bộ nhớ
Quản lý bộ nhớ bao gồm việc điều phối, phân bổ và quản lý không gian bộ nhớ
để đảm bảo các ứng dụng chạy mượt mà và hiệu quả. Bộ nhớ ảo:
• Paging System (Hệ thống phân trang): Hệ điều hành macOS sử dụng hệ thống
phân trang để quản lý bộ nhớ ảo. Khi bộ nhớ RAM không đủ cho các tiến
trình chạy, dữ liệu không sử dụng thường được chuyển đổi sang ổ đĩa để tạo ra
không gian ảo, giúp tiếp tục thực hiện các tiến trình.
• Swap Space: macOS sử dụng không gian swap (trên ổ đĩa) để lưu trữ dữ liệu
từ bộ nhớ RAM khi cần thiết. Khi bộ nhớ thực sự đầy, dữ liệu sẽ được chuyển
vào swap space để tạo ra không gian cho các tiến trình khác.
Quản lý bộ nhớ trong ứng dụng:
• ARC (Automatic Reference Counting): Đây là một kỹ thuật quản lý bộ nhớ tự
động dành cho việc quản lý vùng nhớ được sử dụng bởi các đối tượng trong
mã nguồn Objective-C và Swift. ARC tự động theo dõi số lượng tham chiếu
đến một đối tượng và giải phóng bộ nhớ khi đối tượng không còn được sử
dụng.ARC (Automatic Reference Counting): Đây là một kỹ thuật quản lý bộ
nhớ tự động dành cho việc quản lý vùng nhớ được sử dụng bởi các đối tượng
trong mã nguồn Objective-C và Swift. ARC tự động theo dõi số lượng tham
chiếu đến một đối tượng và giải phóng bộ nhớ khi đối tượng không còn được
sử dụng.
• Garbage Collection và Swift Memory Management: Trước khi ARC trở nên
phổ biến, Objective-C sử dụng Garbage Collection. Trong Swift, hệ thống
quản lý bộ nhớ dựa trên ARC, tuy nhiên, có các nguyên tắc khác nhau về cách
quản lý bộ nhớ so với Objective-C
14
CHƯƠNG 2. GIỚI THIỆU HỆ ĐIỀU HÀNH MACOS
15
CHƯƠNG 3. GIỚI THIỆU HỆ ĐIỀU HÀNH IOS
Trong chương này, chúng ta sẽ khám phá sâu hơn về hệ điều hành iOS của
Apple, dành riêng cho các thiết bị di động như iPhone và iPad. Chương này sẽ giúp
bạn hiểu rõ hơn về nguồn gốc và cấu trúc của iOS, cũng như các thành phần quan
trọng của nó như các hàm shell, quản lý bộ nhớ và quản lý file.
3.1 Hoàn cảnh ra đời
iOS, viết tắt của "iPhone Operating System," là một hệ điều hành di động độc
quyền do Apple Inc phát triển. iOS được giới thiệu lần đầu vào năm 2007 với sự ra
mắt của iPhone. Điều đặc biệt về iOS là nó được tối ưu hóa để hoạt động trên các
thiết bị của Apple, bao gồm iPhone, iPad và iPod Touch. Cách mà iOS đã thay đổi
cách mà chúng ta tương tác với các thiết bị di động là một phần quan trọng của câu
chuyện thành công của Apple trong thị trường di động.
iOS nhanh chóng trở thành một trong những hệ điều hành di động phổ biến nhất
trên thế giới. Với cơ chế cập nhật thường xuyên và việc tích hợp các tính năng tiên
tiến, iOS không chỉ là một hệ điều hành di động mà còn là một nền tảng mạnh mẽ
cho việc phát triển ứng dụng di động và kết nối người dùng với hệ sinh thái của
Apple.
3.2 Đặc điểm
Giao diện người dùng tương tác: iOS nổi tiếng với giao diện người dùng mượt
mà và trực quan. Điều này bao gồm sự hỗ trợ cho cảm ứng đa điểm, cho phép người
dùng thực hiện các tác vụ như kéo, vuốt, và phóng to/nhỏ bằng các cử chỉ ngón tay.
Giao diện đồ họa đơn giản và dễ sử dụng giúp người dùng nhanh chóng làm quen
16
CHƯƠNG 3. GIỚI THIỆU HỆ ĐIỀU HÀNH IOS
và tận hưởng trải nghiệm người dùng dễ dàng. Ecosystem của Apple: iOS là một
phần của hệ sinh thái của Apple, được kết nối chặt chẽ với các sản phẩm và dịch vụ
khác của công ty. App Store, iCloud, iTunes, và các dịch vụ khác là một phần quan
trọng của iOS. Người dùng có thể dễ dàng tải xuống ứng dụng, lưu trữ dữ liệu, và
đồng bộ hóa thông tin trên các thiết bị của họ, tạo nên một trải nghiệm liền mạch.
An ninh và quyền riêng tư: Apple luôn đặt an ninh và quyền riêng tư lên hàng đầu.
iOS có các tính năng bảo mật mạnh mẽ để đảm bảo rằng thông tin cá nhân của
người dùng và dữ liệu của họ được bảo vệ khỏi sự xâm phạ. Các ứng dụng trên iOS
phải tuân thủ các quy tắc nghiêm ngặt về quyền riêng tư và an ninh để có thể xuất
hiện trên App Store. Hỗ trợ đa phương tiện: iOS cung cấp khả năng chơi nhạc, xem
video, chụp ảnh, và quay video. Điều này tạo điều kiện cho một loạt các ứng dụng
và tính năng giải trí, từ ứng dụng phát nhạc cho đến ứng dụng máy ảnh và video
biên tập.
17
CHƯƠNG 3. GIỚI THIỆU HỆ ĐIỀU HÀNH IOS
Các lớp dưới cùng là nền tảng của hệ điều hành, phụ trách quản lý bộ nhớ, các
file hệ thống, mạng, các hệ điều hành nhiệm vụ và tương tác trực tiếp với các phần
cứng.
3.3.1 Lớp CoreOS
Lớp Core OS bao gồm các thành phần : OS X Kernel,Match 3.0,BSD,Sockets,
Security, Power Management, Key chain, Certifi cates, File System, Bonjour
3.3.2 Lớp Core Services
Lớp Core Services cung cấp một trừu tượng trên các dịch vụ được cung cấp
trong lớp OS X Kernel.Nó cung cấp truy cập cơ bản để các dịch vụ hệ điều hành
iPhone và bao gồm các thành phần sau : Collection, AddressBook, Networking,
Files Access, SQLite, Core Location, Net Services, Threading, Preferences, URL
Utilities
3.3.3 Lớp Media (Truyền thông)
Lớp Media cung cấp các dịch vụ đa phương tiện mà bạn có thể sử dụng trong
iPhone và iPad.Nó bao gồm các thành phần sau : Core Audio, OpenGL, Audio
Mixing, Audio Recording, Video Playback, JPG,PNG,TIFF, PDF, Quartz, Core
Animation, OpenGL ES
18
CHƯƠNG 3. GIỚI THIỆU HỆ ĐIỀU HÀNH IOS
19
CHƯƠNG 3. GIỚI THIỆU HỆ ĐIỀU HÀNH IOS
Trạng thái khởi tạo (Create): Khi mà một tiến trình mới được tạo, nó nhận
vùng stack riêng của mình và vào trạng thái mới (new).Tiến trình có thể di chuyển
đến trạng thái điều chỉnh (Modify).Nếu không có thay đổi cần thiết, thì tiến trình
chuyển sang trạng thái thực thi (Execute).
Trạng thái điều chỉnh (Modify): Không giống như hầu hết các hệ điều hành, iOS
không tự động truyền tải các tham số khởi tạo hoặc gán một giao tiếp đến một tiến
trình mới khi nó được tạo, bởi vì nó cho rằng hầu hết các tiến trình không cần tài
nguyên này.Nếu một tiến trình cần nguồn tại nguyên này, tuyến mà tạo nó có thể
điều chỉnh để thêm vào.
Trạng thái thức thi (Execute): Sau khi một tiến trình mới được tạo thành công
và điều chỉnh, nó chuyển sang trạng thái sẵn sàng (Ready) và vào trạng thái thực
thi (Execute).Trong suốt trạng thái này, một tiến trình có thể truy cập CPU và
chạy.Trong suốt trạng thái thực thi , một tiến trình có thể truy cập CPU và chạy.Trong
suốt trạng thái thực thi , một tiến trình có thể là một trong 3 trạng thái: sẵn sàng,
chạy và rỗi (Idle).Một tiến trình ở trạng thái sẵn sàng sẽ đợi chuyển sang trạng thái
truy cập CPU và bắt đầu thực thi lệnh.Một tiến trình ở trạng thái rỗi là đang ngủ,
đợi sự kiện bên ngoài xuất hiện trước khi nó có thể chạy.Một tiến trình chuyển từ
trạng thái sẵn sàng sang trạng thái chạy khi mà nó được lập lịch để chạy. Với đa tác
vụ mà không ưu tiên (non-preemptive multitasking), một tiến trình được lập lịch
20
CHƯƠNG 3. GIỚI THIỆU HỆ ĐIỀU HÀNH IOS
chạy trên CPU cho đến khi tạm ngừng hoặc kết thúc.Một tiến trình có thể tạm dừng
theo 2 cách: nó có thể tự dừng bởi việc báo cho kernel, nó muốn nhường cho CPU
và chuyển sang trạng thái sẵn sàng, và đợi đến lúc chạy lại.Tiến trình cũng có thể
dừng bởi một hoạt động bên ngoài xảy ra.Khi mà một tiến trình đợi một sự kiện,
kernel hoàn toàn dừng tiến trình này và chuyển nó sang trạng thái rỗi.Sau khi một
sự kiện xảy ra rồi thì kernel chuyển tiến trình trở lại trạng thái sẵn sàng để đợi chạy
lại.
Trạng thái kết thúc (Terminal): Trạng thái cuối cùng trong vòng đời của tiến
trình là trạng thái kết thúc.Một tiến trình vào trạng thái kết thúc khi nó hoàn thành
chức năng của mình và đóng lại hoặc khi một tiến trình khác đóng nó.Khi một tiến
trình bị đóng hoặc tự đóng, tiến trình chuyển sang trạng thái chết (Dead).Tiến trình
này ở trạng thái chết (không hoạt động) cho đến khi kernel thu hồi tất cả các tài
nguyên của nó.Sau khi tài nguyên được thu hồi, tiến trình bị kết thúc thoát khỏi
trạng thái chết và xóa khỏi hệ thống.
3.4.2 Độ ưu tiên tiến trình iOS
iOS thực hiện chế độ ưu tiên để lập lịch các tiến trình trên CPU.Tại thời điểm
tạo, mỗi tiến trình được gán một trong 4 độ ưu tiên dựa trên mục đích của tiến
trình.Độ ưu tiên là không đổi, chúng được gán khi một tiến trình được tạo và không
bao giờ thay đổi.
Các độ ưu tiên:
• Critical: Dành riêng cho những tiến trình hệ thống thiết yếu mà giải quyết
những vấn đề cấp phát tài nguyên.
• High: Được gán cho những tiến trình mà cung cấp đáp ứng nhanh, như tiến
trình nhận gói trực tiếp từ giao tiếp mạng . -Medium: Độ ưu tiên mặc định sử
dụng bởi hầu hết các tiến trình.
• Low: Được gán cho những tiến trình cung cấp những tác vụ mang tính định kỳ
như bảng ghi lỗi. . . Độ ưu tiên các tiến trình cung cấp sự ưu đãi cho một vài
tiến trình để truy cập CPU dựa trên sự quan trọng của nó đối với hệ thống và
iOS không thực hiện quyền ưu tiên.Một tiến trình có sự ưu tiên cao hơn không
thể ngắt một tiến trình có độ ưu tiên thấp hơn, thay vào đó, tiến trình có độ ưu
tiên cao hơn thì có nhiều cơ hội hơn để truy cập CPU hơn.
3.5 Quản lý bộ nhớ
Bộ quản lý bộ nhó của Kernel quản lý tất cả các vùng nhớ có sẵn của iOS, bao
gồm bộ nhó chứa iOS của nó. Bộ quản lý bộ nhớ có 3 thanh phần riêng biệt với
từng nhiệm vụ riêng. Có 3 bộ quản lý bộ nhớ là: Bộ quản lý Region, Bộ quản lý
21
CHƯƠNG 3. GIỚI THIỆU HỆ ĐIỀU HÀNH IOS
22
CHƯƠNG 3. GIỚI THIỆU HỆ ĐIỀU HÀNH IOS
23
CHƯƠNG 4. SO SÁNH HỆ ĐIỀU HÀNH MACOS VÀ IOS
iOS, Android, Windows và macOS đều là các hệ điều hành phổ biến, mỗi hệ
điều hành này có một bộ tính năng và đặc điểm riêng. Dưới đây là một so sánh giữa
các hệ điều hành này ở nhiều khía cạnh:
4.1 Hệ điều hành iOS với các hệ điều hành điện thoại khác
4.1.1 Hệ sinh thái
iOS được phát triển bởi Apple và chỉ được sử dụng trên các thiết bị của Apple
như iPhone và iPad. Nó có một hệ sinh thái đóng cửa với sự tập trung mạnh mẽ vào
bảo mật và quyền riêng tư.App Store cung cấp một loạt ứng dụng chất lượng cao
và quy trình kiểm tra ứng dụng nghiêm ngặt của Apple đảm bảo bảo mật.
Android được phát triển bởi Google và được sử dụng bởi nhiều nhà sản xuất
khác nhau. Nó có một hệ sinh thái mở hơn, cho phép sự đa dạng về thiết bị. Cửa
hàng Google Play có nhiều ứng dụng, và Android cung cấp tính linh hoạt hơn để
cài đặt ứng dụng từ nguồn khác, nhưng điều này có thể đi kèm với rủi ro bảo mật.
4.1.2 Giao diện người dùng
iOS có giao diện sạch sẽ và dễ sử dụng với sự tập trung vào tính đơn giản và sự
nhất quán. App Store cung cấp một loạt ứng dụng chất lượng cao và quy trình kiểm
tra ứng dụng nghiêm ngặt của Apple đảm bảo bảo mật.
Android cung cấp nhiều tùy chỉnh hơn, cho phép người dùng tùy chỉnh giao diện
thiết bị theo sở thích của họ. Cửa hàng Google Play có nhiều ứng dụng, và Android
cung cấp tính linh hoạt hơn để cài đặt ứng dụng từ nguồn khác, nhưng điều này có
24
CHƯƠNG 4. SO SÁNH HỆ ĐIỀU HÀNH MACOS VÀ IOS
25
CHƯƠNG 4. SO SÁNH HỆ ĐIỀU HÀNH MACOS VÀ IOS
4.1.6 Giá cả
iOS: Thường đắt hơn do phần cứng và phần mềm chất lượng cao của Apple.
Windows: Giá thành phải chăng, có nhiều tùy chọn giá tùy theo mẫu mã và chất
lượng gia công
4.2 Hệ điều hành MacOS với các hệ điều hành máy tính khác
4.2.1 Hệ sinh thái
MacOS: Được phát triển bởi Apple và chỉ có trên máy tính Mac. Nó nổi tiếng
với tích hợp mượt mà với các thiết bị và dịch vụ khác của Apple. App Store cho
Mac cung cấp một loạt ứng dụng và macOS cũng hỗ trợ phần mềm từ các nguồn
bên ngoài.
Windows: Windows được phát triển bởi Microsoft và chủ yếu được sử dụng trên
máy tính để bàn và máy tính xách tay. Nó hỗ trợ nhiều cấu hình phần cứng khác
nhau. Cửa hàng Microsoft có một loạt ứng dụng, nhưng Windows chỉ hỗ trợ các
ứng dụng truyền thống trên máy tính để bàn.
4.2.2 Giao diện người dùng
MacOS: MacOS có giao diện người dùng thanh lịch và dễ sử dụng nổi tiếng với
sự thẩm mỹ và tính thân thiện.
26
CHƯƠNG 4. SO SÁNH HỆ ĐIỀU HÀNH MACOS VÀ IOS
Windows: Windows có giao diện đa dạng đã phát triển qua các phiên bản, bao
gồm Windows 10 và Windows 11.
Windows: Có lịch sử về lỗ hổng bảo mật, nhưng các phiên bản gần đây đã cải
thiện các tính năng bảo mật.
27
CHƯƠNG 4. SO SÁNH HỆ ĐIỀU HÀNH MACOS VÀ IOS
Hình 4.6: Máy tính Macbook đang được đồng bộ với điện thoại iPhone
Windows: Có tích hợp cơ bản giữa các thiết bị, mặc dù bạn có thể sử dụng các
giải pháp từ bên thứ ba cho một số chức năng tích hợp chéo.
4.2.5 Tương thích phần cứng
MacOS: Hạn chế chỉ hoạt động trên phần cứng của Apple, giới hạn sự lựa chọn
về thiết bị.
Windows: Tương thích với nhiều loại phần cứng từ các nhà sản xuất khác nhau.
4.2.6 Giá cả
MacOS: Thường đắt hơn do phần cứng và phần mềm chất lượng cao của Apple.
Windows: Có sẵn nhiều tùy chọn giá, từ thiết bị giá rẻ đến cao cấp.
28
CHƯƠNG 5. KẾT LUẬN
29
CHƯƠNG 5. KẾT LUẬN
30
CHƯƠNG 5. KẾT LUẬN
31
CHƯƠNG 5. KẾT LUẬN
32
TÀI LIỆU THAM KHẢO
[1] Giáo trình Hệ điều hành, Học viện Công nghệ Bưu chính Viễn thông, 2016
- Từ Minh Phương. (lần cuối truy cập: 11/11/2023).
[2] Mac OS X Structure. [Online]. Available: https://www.tutorialsp
oint.com/mac-os-x-structure (lần cuối truy cập: 11/11/2023).
[3] Architecture of IOS Operating System [Online]. Available: https://ww
w.geeksforgeeks.org/architecture-of-ios-operating-sys
tem/ (lần cuối truy cập: 11/11/2023).
[4] File System Programming Guide [Online]. Available: https://develo
per.apple.com/library/archive/documentation/FileManage
ment/Conceptual/FileSystemProgrammingGuide/FileSystemO
verview/FileSystemOverview.html (lần cuối truy cập: 11/11/2023).
[5] Process Manager [Online]. Available: https://developer.apple.
com/library/archive/documentation/mac/pdf/Processes/Pr
ocess_Manager.pdf (lần cuối truy cập: 11/11/2023)
[6] Introduction to Memory Management [Online]. Available: https://de
veloper.apple.com/library/archive/documentation/mac/pd
f/Memory/Intro_to_Mem_Mgmt.pdf (lần cuối truy cập: 11/11/2023)
[7] Complete History of Mac OS [Online]. Available: https://history-c
omputer.com/complete-history-of-mac-os/ (lần cuối truy cập:
11/11/2023)
[8] Apple iOS Operating System: History, Origin, and More [Online]. Available:
https://history-computer.com/apple-ios-operating-syste
m-guide/ (lần cuối truy cập: 11/11/2023)
[9] iOS vs. Android: Full Comparison with Specs, History, and More [Online].
Available: https://history-computer.com/ios-vs-android/ (lần
cuối truy cập: 11/11/2023)
33
PHÂN CHIA CÔNG VIỆC
34
35