1. Giới thiệu hệ điều hành
Hệ điều hành về cơ bản đó là một gói phần mềm lớn dùng để quản lý các tài nguyên trên máy tính như màn hình, bàn phím, CPU. Mục tiêu của việc quản lý là giúp người dùng có thể tương tác với chúng một cách dễ dàng và thuận tiện để thực hiện một mục đích nào đó. Trên thị trường có nhiều tên tuổi hệ điều hành như Microsoft Windows, Mac OS, Linux với các bản phân phối nổi tiếng như Ubuntu, Debian, Red Hat. Trên thiết bị di động có thể kể đến như Android OS, iOS, Windows 10 mobile. Trong hệ điều hành có 2 thành phần chính đó là không gian nhân (kernel space) và không gian người dùng (user space). Nhân được xem như là thành phần lõi quan trọng trong hệ điều hành. Nó quản lý và giao tiếp trực tiếp với phần cứng máy tính. Chúng ta với vai trò người dùng sẽ không tương tác trực tiếp với nhân mà phải thông qua không gian người dùng. Không gian người dùng bao gồm những chương trình mà chúng ta tương tác trực tiếp đến như bộ soạn thảo văn bản, chương trình chơi nhạc, v.v…
Trong không gian nhân, có 4 thành phần quan trọng là bộ quản lý tập tin, bộ quản lý tiến trình, bộ quản lý bộ nhớ, bộ quản lý nhập xuất. Bộ quản lý tập tin chịu trách nhiệm quản lý tập tin và thư mục trên vùng chứa và cung cấp cho người dùng cấu trúc phân tầng để truy cập. Trong khi đó, bộ quản lý tiến trình chịu trách nhiệm lập lịch để thực thi tiến trình như thứ tự thực hiện, thời gian thực thi và tài nguyên được sử dụng. Hai bộ còn lại là quản lý bộ nhớ để tối ưu hóa bộ nhớ và đảm bảo đủ bộ nhớ để chạy các ứng dụng của chúng ta, bộ quản lý nhập xuất để giao tiếp với các thiết bị để đọc và xuất thông tin. Phần tiếp theo, chúng ta sẽ đi chi tiết vào một số đặc điểm của mỗi bộ quản lý này.
2. Quản lý tiến trình, bộ nhớ, nhập xuất và giao diện người dùng
Quản lý tập tin Bộ quản lý tập tin gồm 3 thành phần chính đó là dữ liệu của tập tin, siêu dữ liệu và hệ thống tập tin.
Hệ thống tập tin là cách thức và cấu trúc mà hệ điều hành sử dụng để quản lý tập tin được chứa và nhận. Trên hình là cấu trúc hệ thống tập tin NTFS. Mỗi hệ điều hành sử dụng các hệ thống tập tin khác nhau như FAT32, NTFS, exFAT trên Windows, HFS+, APFS trên MacOS, ext*, XFS, JFS trên Linux. Mặc dù một số phiên bản hệ điều hành có thể hỗ trợ nhiều loại hệ thống tập tin nhưng việc chép tập tin giữa chúng đôi khi vẫn gặp những vấn đề. Siêu dữ liệu là loại dữ liệu mô tả thông tin về mỗi loại tập tin như tên, tên mở rộng, loại tập tin, kích thước, ngày giờ cập nhật, v.v Nhờ đó, chúng ta quản lý về tập tin một cách tốt hơn. Quản lý tiến trình Tiến trình (process) là một chương trình đang ở trạng thái thực thi, trong khi đó chương trình là một ứng dụng, một đoạn mã trên vùng nhớ mà chúng ta chưa thực thi. Chúng ta có thể tạo ra nhiều tiến trình của một chương trình. Ví dụ, chúng ta có mở nhiều lần chương trình notepad trên Windows, mỗi một cửa sổ chúng ta nhìn thấy là một tiến trình của một chương trình duy nhất là Notepad. Trong quá trình thực thi, mỗi tiền trình đều cần tài nguyên như RAM, CPU, v.v. Tuy nhiên tài nguyên trong máy tính là hữu hạn, ví dụ, chỉ có 1 CPU trong khi đó có đến 10 tiến trình đều muốn dùng, thì việc quản lý và chia sẻ tài nguyên giữa các tiến trình trở nên quan trọng. Việc luân chuyển tài nguyên sẽ giúp trải nghiệm của người dùng hệ thống trở nên tốt hơn. Một công cụ giúp hệ điều hành có thể làm được điều đó là lát cắt thời gian (time slice). Đó là khoảng thời gian đủ ngắn để HĐH ngắt một tiến trình (tức là đòi lại tài nguyên) và xem xét việc có nên cấp tiếp hay cấp cho một tiến trình khác hay không. Các quyết định này được thực hiện bởi bộ lập lịch (scheduler).
Quản lý vùng nhớ Tương tự như CPU, nếu tất cả dữ liệu cần cho các tiến trình đều được đặt trên RAM thì có thể sẽ không đủ chỗ. Người ta thiết kế ra một vùng nhớ gọi là vùng nhớ ảo (virtual memory). Đây là vùng nhớ được đặt trên ổ cứng và HĐH sử dụng nó để chứa các dữ liệu chưa cần dùng tới hoặc không thường xuyên sử dụng của các tiến trình. Khi cần thiết, chúng được tải trở lại RAM và cung cấp cho tiến trình.
Quản lý nhập xuất Để có thể quản lý việc nhập/xuất đối với các thiết bị thì kernel cần làm việc với một loại phần mềm đặc biệt là driver (trình điều khiển thiết bị). Sau khi nhận ra và thiết lập kênh giao tiếp, kernel có thể thực hiện chuyển nhận dữ liệu ví dụ như lưu trữ kết quả của một phép tính lên ổ cứng hoặc hỗ trợ giao tiếp giữa các thiết bị với nhau ví dụ như bật tắt loa sử dụng bàn phím. Bên cạnh đó, bộ quản lý nhập/xuất còn kiểm soát lỗi xảy ra trong quá trình giao tiếp và giải quyết độ trễ giữa các thiết bị.
Giao diện người dùng Để tương tác với HĐH, người sử dụng có thể dùng 2 cách. Cách thứ nhất là sử dụng giao diện người dùng, gọi tắt là GUI, cách thứ hai là giao diện dòng lệnh (CLI). Mỗi cách đều có ưu và nhược điểm riêng. CLI chủ yếu hướng đến đối tượng người sử dụng chuyên về máy tính và sử dụng phổ biến trong các hệ điều hành Linux hoặc khi tương tác với máy chủ. Đối với CLI, mỗi hệ điều hành cũng sẽ thực hiện không hoàn toàn giống nhau. Trên Linux, chúng ta có Bash còn trên Windows chúng có Powershell.
3. Tiến trình khởi động hệ điều hành
Khi chúng ta nhấn công tắc nguồn để khởi chạy máy tính, một chương trình có tên là BIOS/UEFI sẽ thực thi kiểm tra tình trạng của các thiết bị trong máy tính. Nếu mọi thứ để ổn, nó sẽ chọn một thiết bị khởi động (boot device) dựa trên cấu hình đã lưu trước đó trên CMOS. Tiếp theo, nó sẽ tìm kiếm trên thiết bị boot một chương trình có tên là bootloader. Bootloader là một chương trình để nạp hệ điều hành lên và thực thi nó.
Khi HĐH được tải lên, kernel của HĐH sẽ thực thi, kiểm soát và phân phối các tài nguyên của hệ thống. Kernel cũng tải lên các driver và các phần mềm khác để có thể giao tiếp tốt với các phần cứng. Cuối cùng là các tiến trình hệ thống cùng với các ứng dụng ở không gian người dùng được khởi chạy.
4. Cài đặt hệ điều hành
Để cài đặt HĐH, trước tiên ta cần chọn lựa phiên bản HĐH. Có nhiều yếu tố để chi phối quyết định chọn HĐH nào nên cài đặt. Một số tiêu chí như nhu cầu HĐH muốn sử dụng, sự tương thích của nhà sản xuất thiết bị với HĐH, kiến trúc HĐH, ví dụ như CPU 64 bit thì cần phải cài phiên bản HĐH 64 bit. Chúng ta điểm qua một số hệ điều hành phổ biến. Windows là hệ điều hành được phát triển bởi Microsoft với phiên bản mới nhất hiện tại là Windows 11. Ưu điểm của hệ điều hành Windows là có nhiều phần mềm được phát triển cho hệ điều hành này. Tuy nhiên, nhược điểm của Windows là vấn đề bảo mật, vì rất nhiều phần mềm độc hại nhắm đến hệ điều hành để khai thác. MacOS là hệ điều hành được tạo bởi Apple và thường chỉ chạy được trên phần cứng Mac. Ưu điểm của macOS là Apple cập nhật nó thường xuyên và miễn phí. Hệ điều hành cũng ít bị ảnh hưởng bởi các phần mềm độc hại. Nhược điểm của mac OS là phần cứng của Apple có thể đắt tiền, cũng như có ít phần mềm miễn phí. Linux và các bản phân phối của nó được phát triển bởi cộng đồng mã nguồn mở. Sức mạnh lớn nhất của Linux là tính linh hoạt. Tuy nhiên, đối với người dùng bình thường, sẽ mất nhiều thời gian để học các dòng lệnh cần thiết.
Sau khi đã quyết định hệ điều hành mong muốn, ta cần tạo một thiết bị để chứa bản cài đặt. Thông thường, ổ USB là một lựa chọn đơn giản và tiết kiệm. Mỗi hệ điều hành đều có hướng dẫn cách tạo ổ USB cài đặt, do đó chúng ta cần tham khảo các tài liệu này. Tiếp theo, chúng ta khởi động lại máy tính và thực hiện boot vào thiết bị cài đặt mà chúng ta đã tạo trước đó. Thứ tự boot có thể được thay đổi trong phần cài đặt BIOS.
Sau khi boot được vào phần cài đặt, chúng ta theo hướng dẫn trong hệ điều hành để tiến hành các cấu hình như chọn lựa ngôn ngữ, thời gian, kết nối mạng, tài khoản, v.v. Tuy nhiên quan trọng nhất vẫn là chọn đúng phân vùng ổ cứng cần cài đặt, đặc biệt khi máy tính đang có dữ liệu và có nhiều phân vùng dữ liệu. Ngoài việc cài hệ điều hành trực tiếp cho máy tính, chúng ta có thể cài đặt nó trên máy ảo. Máy ảo là một phần mềm giả lập lại một máy vật lý. Một số ứng dụng hỗ trợ tạo máy ảo như Virtual Box, VMWare.
ST Grow with Google.
» Tin mới nhất:
» Các tin khác: