đồ án nhóm nền tảng hệ thống máy tính đề tài tìm hiểu về hệ điều hành unix linux

19 0 0
đồ án nhóm nền tảng hệ thống máy tính đề tài tìm hiểu về hệ điều hành unix linux

Đ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

Tuy nhiên, để sử dụng hiệu quả hệ điều hành Unix Linux, người dùng cần có kiến thức cơ bản về cấu trúc, chức năng và cách thức hoạt động của nó.Mục tiêu của đồ án này là giúp sinh viên t

Trang 1

ĐẠI HỌC DUY TÂNTRƯỜNG KHOA HỌC MÁY TÍNH

KHOA KỸ THUẬT MẠNG MÁY TÍNH & TRUYỀN THÔNG

🙦🕮 🙤

ĐỒ ÁN NHÓM

MÔN HỌC: NỀN TẢNG HỆ THỐNG MÁY TÍNH Tên đề tài:

TÌM HIỂU VỀ HỆ ĐIỀU HÀNH UNIX / LINUX

Giảng viên hướng dẫn: NGUYỄN KIM TUẤN

Thành viên 1: Nguyễn Nguyên Tín-1442Thành viên 2: Trần Quang Nhật-2260Thành viên 3: Nguyễn Nam Khánh-1113Thành viên 4 : Phan Cao Trí-6842

Đà Nẵng, 2023

Trang 2

MỞ ĐẦU

Hệ điều hành Unix Linux là một trong những hệ điều hành phổ biến nhất hiện nay, được sử dụng rộng rãi trong các lĩnh vực như giáo dục, nghiên cứu, công nghiệp, quân sự, v.v Hệ điều hành Unix Linux có nhiều ưu điểm như tính linh hoạt, bảo mật, ổn định, tương thích và miễn phí Tuy nhiên, để sử dụng hiệu quả hệ điều hành Unix Linux, người dùng cần có kiến thức cơ bản về cấu trúc, chức năng và cách thức hoạt động của nó.

Mục tiêu của đồ án này là giúp sinh viên tìm hiểu về lịch sử phát triển, các thành phần chính và các lệnh cơ bản của hệ điều hành Unix Linux Đồ án cũng trình bày về các phiên bản phổ biến của hệ điều hành Unix Linux như Ubuntu, Fedora, Debian, v.v và cách cài đặt và sử dụng chúng Đồ án mong muốn góp phần nâng cao kiến thức và kỹ năng của sinh viên về một hệ điều hành quan trọng và tiềm năng trong thời đại công nghệ số.

Đồ án được chia thành 3 chương chính như sau:

 Chương 1: Giới thiệu về hệ điều hành Unix Linux

 Chương 2: Các thành phần chính của hệ điều hành Unix Linux

 Chương 3: Các phiên bản phổ biến của hệ điều hành Unix Linux

Trang 3

CHƯƠNG 1

GIỚI THIỆU/TỔNG QUAN VỀ HỆ ĐIỀU HÀNH UNIX/LINUX

Trong chương này, chúng tôi sẽ giới thiệu về lịch sử phát triển, các thành phần chính và các đặc điểm nổi bật của hệ điều hành Unix Linux Chúng tôi cũng sẽ so sánh và đánh giá hệ điều hành Unix Linux với các hệ điều hành khác.

1.1 Lịch sử phát triển của hệ điều hành Unix Linux

Hệ điều hành Unix Linux có nguồn gốc từ hai dòng phát triển độc lập là Unix và Linux.

Unix là một hệ điều hành được hình thành và triển khai vào năm 1969, tại Phòng thí nghiệm Bell của AT&T tại Mỹ bởi Ken Thompson, Dennis Ritchie, Douglas McIlroy, và Joe Ossanna Phát hành lần đầu vào năm 1971, Unix ban đầu được viết bằng hợp ngữ, như thường lệ vào thời điểm đó Sau đó, các nhà phát triển đã viết lại Unix bằng ngôn ngữ lập trình C để làm cho nó có thể chạy trên nhiều loại máy tính khác nhau Tính khả dụng và tính di động của Unix khiến nó được chấp nhận rộng rãi, sao chép và sửa đổi bởi các tổ chức học thuật và doanh nghiệp Một số phiên bản Unix nổi tiếng là BSD (Berkeley Software Distribution), System V (AT&T System V), Solaris (Sun Microsystems), AIX (IBM), HP-UX (Hewlett-Packard), v.v.

Linux là một hạt nhân hệ điều hành được phát triển bởi Linus Torvalds, một sinh viên Đại học Helsinki tại Phần Lan Torvalds bắt đầu dự án này vào năm 1991 khi ông không hài lòng với MINIX, một hệ điều hành tương tự Unix dành cho mục đích giảng dạy Torvalds muốn tạo ra một hệ điều hành miễn phí và có thể tùy biến theo ý muốn của người dùng Ông đã lấy cảm hứng từ GNU Project, một dự án nhằm mục đích tạo ra một hệ điều hành hoàn toàn tự do và mã nguồn mở Torvalds đã phát hành phiên bản đầu tiên của Linux kernel vào ngày 17 tháng 9 năm 1991 trên newsgroup comp.os.minix Kể từ đó, Linux kernel đã thu hút sự đóng góp của hàng ngàn lập trình viên trên toàn thế giới.

Hệ điều hành Unix Linux là kết quả của sự kết hợp giữa Linux kernel và các phần mềm GNU, cùng với các phần mềm khác do cộng đồng mã nguồn mở phát triển Hệ điều hành Unix Linux được phân phối dưới dạng các bản phân phối

Trang 4

(distro), mỗi bản có thể có những đặc trưng và ứng dụng riêng biệt Một số bản phân phối Unix Linux phổ biến là Ubuntu, Fedora, Debian, Red Hat, SUSE, v.v.

1.2 Các thành phần chính của hệ điều hành Unix Linux

Hệ điều hành Unix Linux có ba thành phần chính: nhân (kernel), các tiến trình hệ thống (system processes) và các tiến trình người dùng (user processes).

- Nhân (kernel) là phần trung tâm của hệ điều hành, chịu trách nhiệm quản lý các tài nguyên phần cứng, như bộ nhớ, CPU, đĩa cứng, thiết bị ngoại vi, v.v Nhân cũng cung cấp các giao diện để các tiến trình hệ thống và người dùng giao tiếp với nhau và với phần cứng Nhân Linux là một nhân monolithic, tức là nó bao gồm tất cả các chức năng cơ bản của hệ điều hành trong một tập tin nhị phân duy nhất Tuy nhiên, nhân Linux cũng có thể tải thêm các module nhân (kernel modules) để mở rộng khả năng của nó, ví dụ như hỗ trợ các thiết bị mới hay cung cấp các tính năng bảo mật.

- Các tiến trình hệ thống (system processes) là các chương trình được khởi động khi hệ điều hành khởi động và chạy liên tục trong nền Các tiến trình hệ thống thực hiện các chức năng quan trọng cho hoạt động của hệ điều hành, ví dụ như quản lý các tiến trình người dùng, kiểm soát quyền truy cập, ghi log, v.v Một số tiến trình hệ thống quan trọng trong Unix Linux là:

 init: là tiến trình đầu tiên được khởi động khi hệ điều hành khởi động và có ID là 1 Tiến trình init chịu trách nhiệm khởi động các tiến trình hệ thống khác theo một thứ tự xác định và thiết lập môi trường cho các tiến trình người dùng.

 cron: là tiến trình dùng để lập lịch cho các công việc được thực hiện theo chu kỳ hoặc vào một thời điểm xác định.

 syslogd: là tiến trình dùng để ghi log cho các sự kiện của hệ điều hành và các ứng dụng.

- Các tiến trình người dùng (user processes) là các chương trình được khởi chạy bởi người dùng để thực hiện các công việc mong muốn Các tiến trình người dùng có thể được phân loại thành hai loại: foreground processes và background processes.

Trang 5

 Foreground processes là các tiến trình được khởi chạy từ một terminal và chiếm quyền kiểm soát của terminal đó cho đến khi kết thúc Ví dụ, khi bạn chạy một chương trình soạn thảo văn bản từ terminal, bạn không thể nhập lệnh khác cho đến khi thoát khỏi chương trình  Background processes là các tiến trình được khởi chạy từ một

terminal nhưng không chiếm quyền kiểm soát của terminal đó Ví dụ, khi bạn chạy một chương trình tải xuống từ terminal và thêm ký tự & vào cuối lệnh, bạn có thể nhập lệnh khác trong khi chương trình vẫn chạy trong nền.

1.3 Các đặc điểm nổi bật của hệ điều hành Unix Linux

Hệ điều hành Unix Linux có nhiều đặc điểm nổi bật, trong đó có:

- Tính di động: Hệ điều hành Unix Linux có thể chạy trên nhiều loại phần cứng khác nhau, từ các máy tính cá nhân, máy chủ, thiết bị nhúng cho đến các siêu máy tính Điều này là do hầu hết hệ điều hành được viết bằng ngôn ngữ lập trình C, một ngôn ngữ có tính di động cao.

- Tính bảo mật: Hệ điều hành Unix Linux có một cơ chế phân quyền rõ ràng cho các người dùng, các nhóm và các tập tin Mỗi người dùng đều có một tài khoản riêng và một thư mục gốc (home directory) Mỗi tập tin đều có một chủ sở hữu (owner), một nhóm sở hữu (group) và một tập các quyền truy cập (permissions) cho việc đọc, ghi và thực thi Hệ điều hành Unix Linux cũng có một người dùng đặc biệt là root, hay còn gọi là superuser, có quyền cao nhất trong hệ thống Người dùng root có thể thực hiện bất kỳ thao tác nào trên hệ thống, kể cả những thao tác nguy hiểm hay gây hại Do đó, người dùng root chỉ nên được sử dụng khi cần thiết và cẩn thận.

- Tính linh hoạt: Hệ điều hành Unix Linux cho phép người dùng có thể tùy biến hệ thống theo ý muốn của họ Người dùng có thể chọn các bản phân phối khác nhau, các giao diện đồ họa khác nhau, các ứng dụng khác nhau và thậm chí là các phiên bản nhân khác nhau Người dùng cũng có thể sửa đổi mã nguồn của hệ điều hành và các ứng dụng để phù hợp với nhu cầu của họ.

- Tính miễn phí: Hệ điều hành Unix Linux là một sản phẩm của cộng đồng mã nguồn mở (open source community) Điều này có nghĩa là người dùng không phải trả tiền để sử dụng hay phát triển hệ điều hành này Người dùng cũng có quyền

Trang 6

truy cập vào mã nguồn của hệ điều hành và các ứng dụng để nghiên cứu, sửa đổi hay phân phối lại Hệ điều hành Unix Linux tuân theo giấy phép GNU General Public License (GPL), một giấy phép phần mềm tự do (free software license) được thiết kế để bảo vệ quyền tự do của người dùng.

Trang 7

CHƯƠNG 2

CÁC THÀNH PHẦN CHÍNH CỦA HỆ ĐIỀU HÀNH UNIX/LINUX

Hệ điều hành Unix Linux là một hệ điều hành đa nhiệm, đa người dùng, đa nền tảng và mã nguồn mở Hệ điều hành Unix Linux được xây dựng dựa trên kiến trúc lớp, tức là nó được chia thành các lớp khác nhau, mỗi lớp có chức năng và giao diện riêng biệt Các lớp này bao gồm:

2.1 Nhân (kernel)

Như đã nói ở chương trước, nhân là phần trung tâm và quan trọng nhất của hệ điều hành Unix Linux Nhân có nhiệm vụ quản lý các tài nguyên phần cứng, cung cấp các giao diện cho các tiến trình và người dùng làm việc với hệ thống Nhân là một phần của hệ điều hành được nạp vào bộ nhớ khi khởi động máy tính và luôn hoạt động trong suốt quá trình sử dụng.

Nhân Linux là một nhân monolithic, tức là nó bao gồm tất cả các chức năng cơ bản của một nhân hệ điều hành trong một file nhị phân duy nhất Nhân Linux có thể được tùy biến và biên dịch lại để phù hợp với nhu cầu của người dùng Nhân Linux có ba thành phần chính, là:

Quản lý bộ nhớ: Là thành phần có nhiệm vụ quản lý không gian bộ nhớ vật lý và ảo, cấp phát và thu hồi bộ nhớ cho các tiến trình, bảo vệ bộ nhớ khỏi sự truy cập trái phép, v.v Quản lý bộ nhớ trong Linux sử dụng kỹ thuật phân trang (paging) để chia bộ nhớ thành các khối có kích thước bằng nhau gọi là trang (page) Mỗi tiến trình trong Linux có một không gian địa chỉ ảo riêng biệt, được ánh xạ sang không gian địa chỉ vật lý thông qua một bảng ánh xạ trang (page table) Quản lý bộ nhớ trong Linux cũng sử dụng kỹ thuật bộ nhớ đệm (buffering) và bộ nhớ cache (caching) để tăng hiệu suất truy xuất dữ liệu từ các thiết bị lưu trữ.

Quản lý tiến trình: Là thành phần có nhiệm vụ quản lý các tiến trình trong hệ thống, bao gồm việc tạo, kết thúc, chuyển đổi, lập lịch, đồng bộ hóa, giao tiếp và xử lý các tín hiệu của các tiến trình Một tiến trình trong Linux là một thực thể độc lập, có một không gian địa chỉ ảo riêng biệt, một ngăn xếp (stack), một con trỏ chỉ lệnh (instruction pointer) và một bảng ánh xạ tập tin (file descriptor table) Mỗi tiến trình

Trang 8

trong Linux có một định danh duy nhất gọi là PID (process identifier) Các tiến trình trong Linux có thể tạo ra các tiến trình con (child process) thông qua các hàm fork() và exec() Các tiến trình trong Linux có thể ở một trong các trạng thái sau: chạy (running), sẵn sàng (ready), chờ (waiting) hoặc kết thúc (terminated) Quản lý tiến trình trong Linux sử dụng một thuật toán lập lịch hỗn hợp (hybrid scheduling) để phân bổ CPU cho các tiến trình, bao gồm thuật toán lập lịch theo độ ưu tiên (priority-based scheduling) và thuật toán lập lịch theo thời gian chia đều (fair-share scheduling).

Quản lý thiết bị: Là thành phần có nhiệm vụ quản lý các thiết bị ngoại vi, bao gồm việc nhận diện, cài đặt, điều khiển, truyền nhận và xử lý các dữ liệu từ các thiết bị ngoại vi Các thiết bị ngoại vi trong Linux được xem như là các file đặc biệt, có hai loại chính là file thiết bị ký tự (character device file) và file thiết bị khối (block device file) File thiết bị ký tự là file dùng để truyền nhận dữ liệu theo từng ký tự, ví dụ như bàn phím, chuột, máy in, v.v File thiết bị khối là file dùng để truyền nhận dữ liệu theo từng khối, ví dụ như đĩa cứng, đĩa mềm, CD-ROM, v.v Quản lý thiết bị trong Linux sử dụng các chương trình điều khiển thiết bị (device driver) để giao tiếp với các thiết bị ngoại vi Các chương trình điều khiển thiết bị có thể được tích hợp vào nhân hoặc được tải vào nhân khi cần.

2.2 Hệ thống file

Hệ thống file là một cách tổ chức và lưu trữ các file và thư mục trên các thiết bị lưu trữ Hệ thống file quy định cách thức phân bổ không gian lưu trữ, cấu trúc và thuộc tính của các file và thư mục, cũng như cách thức truy cập và quản lý chúng Linux hỗ trợ nhiều loại hệ thống file khác nhau, như ext2, ext3, ext4, FAT, NTFS, v.v Hệ thống file trong Linux có cấu trúc phân cấp theo kiểu cây, bắt đầu từ thư mục gốc (/) Mỗi file và thư mục trong Linux đều có một đường dẫn duy nhất để xác định vị trí của nó trong hệ thống file.

Hệ thống file trong Linux có ba thành phần chính, là:

- File: Là một đơn vị lưu trữ dữ liệu trên các thiết bị lưu trữ Mỗi file trong Linux có một tên duy nhất trong thư mục chứa nó, một loại file xác định kiểu dữ

Trang 9

liệu và cách thức truy cập của file, một kích thước xác định số lượng byte của file, một số thuộc tính khác như quyền truy cập, ngày giờ tạo, sửa đổi, v.v Mỗi file trong Linux cũng có một số định danh duy nhất gọi là i-node (index node), chứa các thông tin về vị trí của file trên thiết bị lưu trữ, số lượng liên kết cứng (hard link) đến file, v.v Có nhiều loại file khác nhau trong Linux, như file thường (regular file), file thiết bị (device file), file thư mục (directory file), file liên kết (link file), v.v.

- Thư mục (directory): Là một loại file đặc biệt, chứa các thông tin về các file và thư mục con của nó Mỗi thông tin này gọi là một mục nhập danh mục (directory entry), bao gồm tên file hoặc thư mục con, loại file, i-node của file hoặc thư mục con, v.v Mỗi thư mục trong Linux có hai liên kết cứng đặc biệt, là “.” và “…” Liên kết “.” chỉ đến chính thư mục đó, còn liên kết “…” chỉ đến thư mục cha của nó Thư mục gốc (/) là thư mục cao nhất trong hệ thống file, không có thư mục cha và chứa các thư mục con quan trọng như /bin, /etc, /home, /usr, v.v.

- Liên kết (link): Là một loại file đặc biệt, cho phép người dùng tạo ra các tên khác nhau cho cùng một file hoặc thư mục Có hai loại liên kết trong Linux, là liên kết cứng (hard link) và liên kết mềm (soft link) hay liên kết tượng trưng (symbolic link) Liên kết cứng là một tên khác cho cùng một i-node của một file hoặc thư mục Liên kết cứng không có loại file riêng biệt và không có thuộc tính khác so với file hoặc thư mục gốc Liên kết cứng chỉ có thể được tạo trong cùng một hệ thống file Liên kết mềm là một file đặc biệt, chứa đường dẫn đến file hoặc thư mục gốc Liên kết mềm có loại file riêng biệt và có thể có thuộc tính khác so với file hoặc thư mục gốc Liên kết mềm có thể được tạo trên các hệ thống file khác nhau.

2.2.1 Các loại hệ thống file phổ biến trong Linux

Linux hỗ trợ nhiều loại hệ thống file khác nhau, mỗi loại có những đặc điểm và ưu nhược điểm riêng Trong phần này, chúng ta sẽ tìm hiểu về ba loại hệ thống file phổ biến trong Linux, là ext2, ext3 và ext4.

- ext2: Là loại hệ thống file cơ bản và đơn giản nhất trong Linux, được phát triển vào năm 1993 bởi Rémy Card ext2 là viết tắt của extended file system version 2 ext2 không có tính năng nhật ký (journaling), tức là nó không ghi lại các thay đổi

Trang 10

trên hệ thống file trước khi áp dụng chúng Do đó, ext2 có hiệu suất cao nhưng không an toàn khi xảy ra sự cố như mất điện hay khởi động lại máy tính ext2 có dung lượng tối đa là 16 TB cho mỗi hệ thống file và 2 GB cho mỗi file.

- ext3: Là loại hệ thống file nâng cấp từ ext2, được phát triển vào năm 2001 bởi Stephen Tweedie ext3 là viết tắt của extended file system version 3 ext3 có tính năng nhật ký, tức là nó ghi lại các thay đổi trên hệ thống file trước khi áp dụng chúng vào một khu vực gọi là nhật ký (journal) Do đó, ext3 có hiệu suất thấp hơn ext2 nhưng an toàn hơn khi xảy ra sự cố ext3 có dung lượng tối đa là 16 TB cho mỗi hệ thống file và 2 GB cho mỗi file.

- ext4: Là loại hệ thống file mới nhất và tiên tiến nhất trong Linux, được phát triển vào năm 2006 bởi Theodore Ts’o ext4 là viết tắt của extended file system version 4 ext4 có nhiều cải tiến so với ext3, như hỗ trợ dung lượng lớn hơn, tăng hiệu suất, giảm độ phân mảnh (fragmentation), v.v ext4 có dung lượng tối đa là 1 EB (exabyte) cho mỗi hệ thống file và 16 TB cho mỗi file.

2.2.3 Các lệnh liên quan đến hệ thống file

Trong phần này, chúng ta sẽ tìm hiểu về một số lệnh cơ bản liên quan đến hệ thống file trong Linux, bao gồm:

 Lệnh df: Hiển thị dung lượng sử dụng và còn trống của các hệ thống file đã lắp.

 Lệnh du: Hiển thị dung lượng sử dụng của các file và thư mục  Lệnh ls: Liệt kê các file và thư mục trong một thư mục  Lệnh cp: Sao chép các file và thư mục từ một vị trí đến một vị trí

 Lệnh mv: Di chuyển hoặc đổi tên các file và thư mục  Lệnh rm: Xóa các file và thư mục.

 Lệnh mkdir: Tạo ra một thư mục mới  Lệnh rmdir: Xóa một thư mục rỗng.

 Lệnh touch: Tạo ra một file rỗng hoặc cập nhật ngày giờ của một file  Lệnh chmod: Thay đổi quyền truy cập của các file và thư mục.

Ngày đăng: 25/04/2024, 16:33

Từ khóa liên quan

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

Tài liệu liên quan