HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MÔN HỆ ĐIỀU HÀNH ĐỀ TÀI TÌM HIỂU VỀ HAI HỌ HỆ ĐIỀU HÀNH MACOS VÀ IOS Giảng viên HD ThS Đinh Xuân Trường Nhóm môn học 01 Nhó.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚNMÔN: HỆ ĐIỀU HÀNH
ĐỀ TÀI: TÌM HIỂU VỀ HAI HỌ HỆ ĐIỀU HÀNH: MACOS VÀ IOS
Giảng viên HD: ThS Đinh Xuân Trường Nhóm môn học: 01
Nhóm bài tập : 12 Các thành viên nhóm thực hiện:
1 Nguyễn Đình Khả B20DCCN363
2 Bùi Mạnh Hùng B20DCCN292
3 Nguyễn Hải Phong B20DCCN495
Hà Nội 2022
Trang 2MỤC LỤC
PHẦN 1: GIỚI THIỆU: ……… 2
1.1 Giới thiệu khái quát về hệ thống: Sự ra đời của hệ thống: ……… 2
1.1.1 Hệ điều hành iOS và lịch sử hình thành ………2
1.1.2 Hệ điều hành macOS và lịch sử hình thành ……… 3
1.2 Mục đích của hệ thống ……….5
1.2.1 Hệ điều hành iOS………5
1.2.2 Hệ điều hành macOS ……….6
1.3 Thống kê về số lượng người sử dụng: ……….6
1.3.1 Lượng người dùng và thị phần của iOS ……….6
1.3 Lượng người dùng và thị phần của macOS ……….…….7
PHẦN 2: NỘI DUNG CHI TIÉT: ……….… 9
2.1 Quản lý file như thế nào? ……….…9
2.1.1 Quản lý file trong iOS ……….… 11
2.1.2 Quản lý file trong macOS ……… 14
2.2 Quản lý bộ nhớ chính (Trong): ………14
2.2.1 Bộ nhớ chính của iOS……….…14
2.2.2 Bộ nhớ chính của macOS ……… 17
2.3 Quản lý tiến trình: ……… 19
2.3.1 Tiến trình trong iOS ……… 19
2.3.2 Tiến trình trong macOS ……… … 21
2.4, So sánh (nêu lên các đặc điểm khác biệt của hệ thống) ……… 23
Trang 3Hệ điều hành IOS là gì?
- iOS là hệ điều hành trên thiết bị di động của Apple Ban đầu hệ điều hành này chỉđược phát triển để chạy trên iPhone, nhưng sau đó nó đã được mở rộng để chạy trên các thiết bị của Apple như iPod touch, iPad và Apple TV
- Giao diện người dùng của iOS dựa trên cơ sở thao tác bằng tay Người dùng có thể tương tác với hệ điều hành này thông qua nhiều động tác bằng tay trên màn hình cảm ứng của các thiết bị của Apple
Lịch sử hệ điều hành iOS
- Hệ điều hành này được tiết lộ tại Hội nghị và Triển lãm Macworld diễn ra vào tháng 1 năm 2007 và được phát hành vào tháng 9 năm đó Khi đó, hệ điều hành này chưa có một cái tên riêng chỉ đơn giản là “iPhone chạy OS X”
Trang 4Hình 1.1.1 Stev Jobs tại Triển lãm Macworld diễn ra vào tháng 1 năm 2007
- Ngày 6 tháng 3 năm 2008, Apple đã phát hành bản dùng thử đầu tiên, cùng với một cái tên đầu tiên cho iOS, đó là "iPhone OS"
Hình 1.1.2 Các phiên bản iOS từ 2007 - 2022
Trang 51.1.2 Hệ điều hành macOS
Hệ điều hành macOS
- macOS (trước đây là OS X và ban đầu là Mac OS X ) là một hệ điều
hành Unix [9] được Apple Inc phát triển và tiếp thị từ năm 2001 Đây là hệ điều hành chính cho Máy tính Mac của Apple Trong thị trường máy tính để bàn và máytính xách tay, nó là hệ điều hành máy tính để bàn được sử dụng rộng rãi thứ hai , sau Microsoft Windows và trước ChromeOS
- macOS đã kế tục Mac OS cổ điển , một hệ điều hành Mac với chín bản phát hành
từ năm 1984 đến năm 1999 Trong thời gian này, người đồng sáng lập Apple SteveJobs đã rời Apple và thành lập một công ty khác, NeXT , phát triển nền
tảng NeXTSTEP mà sau này được Apple mua lại để hình thành nền tảng của 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 [10] trở về sau đều được chứng nhận UNIX 03 , [11] ngoại trừ OS X 10.7 Lion [12] Hệ điều hành di động của
Apple, iOS , được coi là một biến thể của macOS [
Lịch sử hình thành
Hình 1.1.3 Logo của Mac OS X / OS X / macOS , từ Cheetah 10.0 / Puma 10.1 đến Ventura 13.
Dòng thời gian của các phiên bản:
Trang 6Hình 1.1.4 Dòng thời gian của hệ điều hành macOS.
Trang 7- Hệ điều hành này có một lưới đơn giản gồm các biểu tượng đầy màu sắc giúp thiết bị có cảm giác dễ tiếp cận và dễ sử dụng Chỉ cần nhấn vào ứng dụng bạn muốn mở và nhấn nút vật lý để quay lại trang chủ Nhìn lại thì có vẻ là một khái niệm hiển nhiên, nhưng những chiếc điện thoại thông minh trước đây như
Blackberry nổi tiếng là CỒNG KỀNH KHI SỬ DỤNG
- Cuối cùng, ảnh hưởng của iOS trên vô số ngành công nghiệp Từ máy tính bảng, đến đồng hồ, ô tô và thậm chí cả tủ lạnh
1.2.2 Hệ điều hành macOS
- macOS X có thiết kế mô-đun nhằm giúp việc bổ sung các tính năng mới vào hệ điều hành trong tương lai dễ dàng hơn Nó chạy các ứng dụng UNIX cũng như các ứng dụng Mac cũ hơn Mac OS đi kèm với dòng máy tính iMac và Power
Macintosh của Apple Computer
1.3 Thống kê về số lượng người sử dụng
1.3.1 Hệ điều hành iOS
Hình 1.3.1 Thị phần iOS từ 2010 - 2020
Trang 8- Dưới đây là bảng với thị phần iOS toàn cầu kể từ năm 2010:
Trang 10PHẦN 2: NỘI DUNG CHI TIẾT
2.1 Quản lý file như thế nào?
- Tất cả các dữ liệu trên máy vi tính của bạn bao gồm hệ điều hành, chương trình ứng dụng, và thông tin do bạn tạo ra đều tồn tại dưới dạng tập tin - File Các tập tinđược sắp xếp trong một hoặc nhiều thư mục
- Thư mục - Folder là một dạng tập tin đặc biệt có công dụng như là một ngăn chứa, được dùng trong việc quản lý và sắp xếp các tập tin Bất kể bạn sử dụng hệ điều hành nào, máy vi tính của bạn sử dụng các thư mục để sắp xếp tất cả các tập tin và ứng dụng khác nhau mà nó có
Khái niệm về quản lý file?
- Trình quản lý tập tin cho phép người dùng tạo, đổi tên, di chuyển, in, sao chép, tìm kiếm và xóa các tệp tin và thư mục, cũng như thiết lập các quyền hạn (thuộc tính) như lưu trữ, chỉ đọc, ẩn hoặc hệ thống và liên kết tệp Loại với các chương trình Người dùng cũng được cấp sẵn các công cụ để đổi tên và định dạng đĩa, quản
lý các thư mục để chia sẻ tập tin và để kết nối đến một ổ đĩa mạng
2.1.1 MacOs
- MacOS sử dụng phần mềm Finder để quản lý tập tin
Finder là gì?
- Finder là trình quản lý tệp mặc định và trình bao giao diện người dùng đồ họa
được sử dụng trên tất cả các hệ điều hành Macintosh
- Nó chịu trách nhiệm khởi chạy các ứng dụng khác và quản lý người dùng tổng thể về tệp, đĩa và khối lượng mạng Nó được giới thiệu cùng với máy tính
Macintosh đầu tiên và cũng tồn tại như một phần của GS / OS trên Apple II GS
Nó đã được viết lại hoàn toàn với việc phát hành Mac OS X vào năm 2001
- Theo truyền thống thì nó có từ thời Mac OS Cổ điển của những năm 1980 và
1990, biểu tượng Finder là màn hình cười của máy tính, được gọi là logo Happy Mac
-Tính năng của Finder
Trang 11 Finder sử dụng chế độ xem hệ thống tệp được hiển thị bằng cách sử dụng phép ẩn dụ trên máy tính để bàn
Nghĩa là, các tệp và thư mục được biểu diễn dưới dạng các biểu tượng thích hợp Nó sử dụng giao diện tương tự như trình duyệt Safari của Apple, nơi người dùng có thể nhấp vào một thư mục để di chuyển đến nó và di chuyển giữa các vị trí bằng cách sử dụng các nút mũi tên "quay lại" và "chuyển tiếp"
Giống như Safari, Finder sử dụng các tab để cho phép người dùng xem nhiều thư mục; các tab này có thể được kéo ra khỏi cửa sổ để biến chúng thành các cửa sổ riêng biệt
Hình 2.1.1 Finder sử dụng tab để cho người dùng xem nhiều thư mục
Trong Finder cổ điển, việc mở một thư mục mới sẽ mở ra vị trí trong một cửa sổ mới: Các cửa sổ của Finder bị 'khóa' để chúng chỉ hiển thị nội dung của một thư mục Nó cũng cho phép tùy chỉnh rộng rãi, người dùng có thể cung cấp cho các thư mục các biểu tượng tùy chỉnh phù hợp với nội dung của họ
Finder hiện đại sử dụng API đồ họa macOS để hiển thị bản xem trước của một loạt tệp, chẳng hạn như hình ảnh, ứng dụng và tệp PDF Tính năng Quick Look cho phép người dùng nhanh chóng kiểm tra tài liệu và hình ảnh chi tiết hơn từ công cụ tìm kiếm bằng cách nhấn phím cách mà không cần
mở chúng trong một ứng dụng riêng biệt Người dùng có thể chọn cách xem
Trang 12tệp, với các tùy chọn như biểu tượng lớn hiển thị bản xem trước của tệp, danh sách với các chi tiết như ngày tạo hoặc sửa đổi lần cuối,
2.1.2 Về iOS
- iOS sử dụng ứng dụng Files để quản lý tập tin
Hình 2.1.2 iOS dùng ứng dụng Files để quản lý tập tin
bố tại hội nghị ngay sau đó
- Tệp cho phép người dùng duyệt các tệp cục bộ được lưu trữ trong ứng dụng, cũngnhư các tệp được lưu trữ trên các dịch vụ lưu trữ đám mây bao gồm iCloud, Box, Dropbox, Google Drive, OneDrive, v.v
Trang 13Hình 2.1.3 Các dịch vụ lưu trữ đám mây
- Người dùng có thể lưu, mở và sắp xếp tệp, bao gồm cả việc đặt tệp vào thư mục
có cấu trúc và thư mục con
Hình 2.1.4 Lưu, mở và sắp xếp tệp, gồm cả việc đặt tệp vào thư mục có cấu trúc và thư mục con.
- Trên iPad, người dùng có thể kéo và thả tệp giữa ứng dụng Tệp và các ứng dụng khác, nhưng trên iPhone, chức năng này chỉ giới hạn trong từng ứng dụng tương ứng Người dùng có thể thêm các thẻ có màu và có tên tùy chỉnh vào tệp, thêm chúng vào phần "Tags"
Trang 14Hình 2.1.5 chức năng kéo, thả tệp giữa các ứng dụng giới hạn trong từng ứng dụng tương ứng.
- Thanh tìm kiếm liên tục ở trên cùng cho phép tìm kiếm các tệp bên trong các thư mục con, mặc dù nó không tìm kiếm trong các ứng dụng khác
Hình 2.1.6 Thanh tìm kiếm liên tục ở trên cùng.
- Chế độ xem danh sách cho phép phân loại tùy chọn theo kích thước hoặc ngày tháng
- Khi nhấn và giữ một tệp, ứng dụng cung cấp một số tùy chọn, bao gồm "Sao chép", "Đổi tên", "Di chuyển", "Chia sẻ", "Thẻ", "Thông tin" và "Xóa" Các tệp được lưu trữ trên các dịch vụ của bên thứ ba có thể được sao chép vào thiết bị để truy cập ngoại tuyến
Trang 15Hình 2.1.7 Ứng dụng cung cấp một số tùy chọn khi nhấn và giữ tệp.
(địa chỉ bộ nhớ 0) và mở rộng lên trên Phân vùng hệ thống chứa một đống hệ thống và một tập hợp các biến toàn cục, được mô tả trong hai phần tiếp theo
- Tất cả bộ nhớ bên ngoài phân vùng hệ thống đều có sẵn để cấp phát cho các ứng dụng hoặc các thành phần phần mềm khác Người dùng có thể mở nhiều ứng dụng cùng một lúc Khi một ứng dụng được khởi chạy, Hệ điều hành sẽ gán cho nó một phần bộ nhớ được gọi là phân vùng ứng dụng của nó Nói chung, một ứng dụng chỉ
sử dụng bộ nhớ có trong phân vùng ứng dụng của chính nó
Trang 16Hình 2.2.1 Minh họa cách tổ chức bộ nhớ khi một số ứng dụng được mở cùng một lúc
- Khi ứng dụng của bạn được khởi chạy, Hệ điều hành sẽ phân bổ cho nó một phânvùng bộ nhớ được gọi là phân vùng ứng dụng của nó Phân vùng đó chứa các phân đoạn bắt buộc của mã của ứng dụng cũng như dữ liệu khác được liên kết với ứng dụng
Trang 17Hình 2.2.2 Minh họa cách tổ chức chung của một phân vùng ứng dụng
b MultiFinder
- Mỗi ứng dụng được cấp phát heap riêng từ RAM có sẵn Lượng RAM thực tế được phân bổ cho mỗi heap được đặt bởi một giá trị được mã hóa trong mỗi ứng dụng, do lập trình viên đặt Luôn luôn có giá trị này không đủ cho các loại công việc cụ thể, vì vậy cài đặt giá trị phải được hiển thị cho người dùng để cho phép họđiều chỉnh kích thước đống cho phù hợp với yêu cầu của riêng họ Ngoài việc khiến người dùng phải tiếp xúc với các kỹ thuật bí truyền, nó còn không hiệu quả,
vì một ứng dụng sẽ lấy (một cách không chủ ý) tất cả RAM đã phân bổ của nó, ngay cả khi nó không sử dụng phần lớn sau đó Một ứng dụng khác có thể bị thiếu
bộ nhớ nhưng không thể sử dụng bộ nhớ trống do ứng dụng khác "sở hữu"
- MultiFinder đã trở thành Finder sau này, bộ nhớ tạm thời là một nơi ứng dụng có thể "mượn" RAM trống nằm ngoài đống của nó trong thời gian ngắn, nhưng điều này không được các lập trình viên ưa chuộng nên phần lớn không giải quyết được vấn đề
Trang 18Hình 2.2.3 Finder trên Macbook
passed by reference
*Cách thức hoạt động của ARC
- Mỗi lần mà bạn tạo 1 instance mới của một class, ARC cấp phát một vùng nhớ đểlưu trữ thông tin về cái instance đó Vùng nhớ đó nó sẽ giữ thông tin về loại của instance cùng với bất kì những biến lưu trữ với instance đó Khi mà instance đó không cần dùng đến nữa, ARC sẽ tự động giải phóng bộ nhớ được sử dụng bởi instance đó vì thế vùng nhớ được giải phóng có thể cho những mục đích khác Điều này đảm bảo rằng class instance không chiếm dụng vùng nhớ khi nó không làm cần dùng đến nữa Tuy nhiên nếu ARC đã deallocated một instance mà nó vẫn được sử dụng, nó sẽ không còn có thể truy cập vào instance của properties hoặc instance của methods Vì vậy nếu tiếp tục cố gắng truy cập vào chúng thì app sẽ bị crash Tuy nhiên ,1 instance không tự dưng biến mất đột ngột trong khi nó đang
Trang 19được sử dụng thì có biện pháp để khắc phục là ARC sẽ theo dõi có bao nhiêu thuộctính, hằng số, biến số hiện tại đang referring tới class instance đó ARC sẽ không giải phóng một instance ngay khi vẫn còn 1 strong reference Đến đây sẽ có 1 định nghĩa mới là strong reference Như vậy strong reference là gì?
* Strong reference là gì?
- Đó chính là hiện tượng khi 2 class có reference tới nhau và khi giải phóng class instance thì một trong 2 instance vẫn còn tồn tại Cách giải quyết đó là xác định mối quan hệ giữa các class là weak hay unowned Còn nếu không giải phóng thì sẽ xảy ra hiện tượng rò rỉ bộ nhớ
phương pháp để thực hiện điều này:
- Alloc: khởi tạo 1 đối tượng và yêu cầu quyền sở hữu đối tượng đó
- Retain: Tăng retain count của đối tượng lên 1, gửi giữ 1 phương pháp đến 1 đối tượng đã tồn tại
- Copy: Copy một đối tượng ra một một vùng mới và giữ một quyền sở hữu đến nó
- Release: Giảm retainCount đối tượng đi 1
- Autorelease: Giảm đối tượng đi 1 nhưng không lập tức
Hình 2.2.4 Các phương pháp thực hiện
Trang 20- Program (user) stack
- CPU program counter
- Kernel stack
- CPU registers
- Thông tin khác cần thiết để chạy trình
Các dữ liệu này tạo ra bối cảnh của TT, mỗi TT có bối cảnh riêng biệt Có rất nhiều tiến trình (TT) được thực hiện đồng thời trên MacOS (đặc tính này còn gọi là
đa trình - multiprogramming hay đa nhiệm - multitasking) theo nguyên lí phân chiathời gian, mà tổng số các TT về logic là không có giới hạn Các TT có thể tạo ra các TT mới, kết thúc các TT, đồng bộ các giai đoạn thực hiện TT, kiểm soát phản ứng với các sự kiện khác nhau
Hình 2.3.1 Ví dụ chạy 4 chương trình A, B, C, D trên cùng một CPU
Trang 21Người dùng có thể viết các chương trình thực hiện các thao tác rất tinh tế mà bản thân kernel không cần có nhiều chức năng hơn là cần thiết Có thể đề cập tới một
số các chức năng, chẳng hạn các trình thông dịch, bộ soạn thảo thuộc lớp các
chương trình cấp người dùng và quan trọng hàng đầu là shell, là trình thông dịch
mà người dùng sử dụng ngay sau khi login vào hệ thống: shell thông dịch các từ trong dòng lệnh thành tên lệnh máy, phát sinh TT con và TT con thực hiện lệnh đưa vào, xử lí các từ còn lại trong dòng lệnh như các thông số của lệnh Shell thực hiện ba kiểu lệnh:
+ Lệnh là tệp có thể thực hiện được chứa mã máy phát sinh do bộ dịch tạo ra từ mãnguồn (chương trình C chẳng hạn)
+ Lệnh là tệp chứa một xâu các dòng lệnh của shell
+ Là các lệnh bên trong của shell Các lệnh bên trong này làm cho shell trở thành một ngôn ngữ lập trình rất mạnh trong MacOS
Shell là chương trình thuộc lớp người dùng, không phải là phần của kernel, cho nên có thể dể dàng biến cải cho mỗi môi trường đặc thù Bản thân shell cũng có ba loại khác nhau thích hợp cho các nhu cầu sử dụng khác nhau và hệ thống có thể chạy các shell đó đồng thời Sức mạnh của mỗi kiểu shell thể hiện ở khả năng lập trình của mỗi kiểu Mỗi TT được thực hiện trong MacOS có một môi trường
(execution environment) thực hiện, bao gồm cả thư mục hiện hành Thư mục hiện hành của TT là thư mục dùng để chỉ đường dẫn không bắt đầu bằng “/” Người dùng có thể thực hiện nhiều TT cùng một lúc, và các TT lại có thể tạo ra các TT khác một cách động, và đồng bộ việc thực hiện các TT đó Đặc tính này tạo ra một môi trường thực hiện chương trình rất mạnh trong MacOS
Kernel thực hiện vô số các thao tác cơ bản thay mặt cho các TT của nguời dùng để
hỗ trợ cho giao diện người dung, bao gồm:
- Kiểm soát việc thực hiện các TT gồm có: cho phép TT tạo TT mới, kết thúc TT, treo việc thực hiện và trao đổi thông điệp giữa các TT
- Lập thời gian biểu để các TT được thực hiện trên CPU Các TT chia sẻ CPU theo phương thức phân chia thời gian, một TT sẽ bị treo sau khi thời gian phân bổ đã hết, kernel lấy TT khác đưa vào thực hiện Sau này kernel sẽ lại lựa chọn TT bị treo để đưa vào thực hiện trở lại