B.3. Các hoạt động bên trong của máy tính: Các tầng khác nhau tham gia
Một máy tính thường được coi là một cái gì đó khá trừu tượng, và giao diện bên ngoài nhìn thấy được đơn giản hơn nhiều so với phức tạp nội bộ của nó. Sự phức tạp như vậy gây ra bởi số lượng khá nhiều các thành phần liên quan bên trong. Tuy nhiên, các phần này có thể được xem trong các tầng chứa chúng, nơi một tầng chỉ tương tác với những tầng ngay trên hoặc dưới nó.
Một người dùng có thể vẫn sử dụng mà không biết những thành phần này... miễn là mọi thứ hoạt động. Khi đối mặt với một vấn đề như“Internet không hoạt động!“, Điều đầu tiên cần làm là xác định tầng mà vấn đề bắt nguồn ở đó. Là card mạng (phần cứng) làm việc? Nó được máy tính nhận diện? Liệu hạt nhân Linux có thấy nó? Các thông số mạng có được cấu hình đúng không? Tất cả những câu hỏi này sẽ cô lập lớp thích hợp và tập trung vào các nguồn gốc khả dĩ của vấn đề.
B.3.1. Tầng sâu nhất: phần cứng
Chúng ta hãy bắt đầu với một điều rất cơ bản là máy tính, trước hết, là một bộ các phần tử phần cứng. Nói chung, có một bảng mạch chính (được gọi là motherboard), với một (hoặc nhiều) bộ xử lý (s), một số bộ nhớ RAM, bộ điều khiển thiết bị và khe cắm mở rộng cho các bảng tùy chọn (cho các thiết bị khác Bộ điều khiển). Đáng chú ý nhất trong số các bộ điều khiển này là IDE (Parallel ATA), SCSI và Serial ATA, để kết nối với các thiết bị lưu trữ như đĩa cứng. Các bộ điều khiển khác bao gồm USB, có thể lưu trữ nhiều thiết bị khác nhau (từ webcam đến nhiệt kế, từ bàn phím đến các hệ thống tự động hóa gia đình) và IEEE 1394 (Firewire). Các bộ điều khiển này thường cho phép kết nối nhiều thiết bị nên hệ thống con hoàn chỉnh do bộ điều khiển xử lý thường được gọi là“bus“. Các bảng lựa chọn bao gồm card đồ hoạ (vào màn hình màn hình sẽ được cắm), card âm thanh, card giao tiếp mạng, vân vân. Một số bo mạch chính được xây dựng trước với các tính năng này, và không cần bảng tùy chọn.
B.3.2. Trình khởi động: BIOS hoặc UEFI
Phần cứng một mình nó không thể thực hiện các tác vụ hữu ích mà không có một phần tương ứng của phần mềm điều khiển nó: driver. Kiểm soát và tương tác với phần cứng là mục đích của hệ điều hành và ứng dụng. Điều này cũng cần đòi hỏi phần cứng để chạy.
Sự cộng sinh giữa phần cứng và phần mềm không xảy ra riêng biệt. Khi máy tính được khởi động lần đầu tiên, một số thiết lập ban đầu là bắt buộc. Vai trò này được thực hiện bởi BIOS hoặc UEFI, một phần mềm được nhúng vào bảng mạch chính được chạy tự động khi bật nguồn. Nhiệm vụ chính của nó là tìm kiếm phần mềm nó có thể chuyển giao quyền kiểm soát. Thông thường, trong trường hợp của BIOS, việc này liên quan đến việc tìm kiếm đĩa cứng đầu tiên với một khu vực khởi động (còn được gọi là
master boot recordor
MBR, tải phần khởi động đó, và chạy nó. Từ đó trở đi, BIOS thường sẽ không tham gia (cho đến lần khởi động kế tiếp). Trong trường hợp của UEFI, tiến trình này liên quan đến việc quét các đĩa để tìm một phân vùng EFI chuyên dụng có chứa các ứng dụng EFI để thực hiện.
Khu ổ đĩa (hoặc phân vùng EFI) lại chứa một phần mềm khác, được gọi là bộ tải khởi động, có mục đích là tìm và chạy một hệ điều hành. Vì bộ nạp khởi động này không được nhúng trong bo mạch chủ nhưng được tải từ đĩa, nên nó có thể thông minh hơn BIOS, điều này lý giải tại sao BIOS lại không tải hệ điều hành của chính nó. Ví dụ, bộ tải khởi động (thường là GRUB trên hệ thống Linux) có thể liệt kê các hệ điều hành hiện có và yêu cầu người dùng chọn một. Thông thường, sự giới hạn thời gian và lựa chọn mặc định được cung cấp. Đôi khi người dùng cũng có thể chọn để thêm các thông số để vượt qua nhân kernel, và tiếp tục như vậy. Cuối cùng, một nhân kernel được tìm thấy, nạp vào bộ nhớ, và thực thi.
BIOS/UEFI cũng có trách nhiệm phát hiện và khởi tạo một số thiết bị. Hiển nhiên, điều này bao gồm các thiết bị IDE/SATA (thường là ổ đĩa cứng và ổ đĩa CD/DVD-ROM), nhưng cũng có các thiết bị PCI. Các thiết bị phát hiện thường được liệt kê trên màn hình trong tiến trình khởi động. Nếu danh sách này quá nhanh, hãy sử dụng phímPauseđể đóng băng nó đủ lâu để đọc. Các thiết bị PCI được cài đặt không mà xuất hiện thì có vẻ không ổn. Tồi tệ nhất là thiết bị bị lỗi. Hoặc có thể, nó chỉ đơn thuần là không tương thích với phiên bản hiện tại của BIOS hoặc bảng mạch chính. Thông số kỹ thuật PCI liên tục phát triển, và các bo mạch chính cũ không được đảm bảo để xử lý các thiết bị PCI mới hơn.
Cả hai BIOS/UEFI và bộ tải khởi động chỉ chạy trong vài giây; Bây giờ chúng ta đang đi đến phần đầu tiên của phần mềm chạy trong một thời gian dài hơn, hạt nhân hệ điều hành. Hạt nhân này đóng vai trò của một nhạc trưởng trong một dàn nhạc, và đảm bảo sự phối hợp giữa phần cứng và phần mềm. Vai trò này liên quan đến một số nhiệm vụ bao gồm: điều khiển phần cứng, quản lý tiến trình , người dùng và quyền hạn, hệ thống tệp, v.v. Hạt nhân cung cấp một cơ sở chung cho tất cả các chương trình khác trên hệ thống.
B.3.4. Không gian người dùng
Mặc dù tất cả mọi thứ xảy ra bên ngoài hạt nhân có thể được gộp lại với nhau dưới“không gian người dùng“, chúng ta vẫn có thể tách nó thành các lớp phần mềm. Tuy nhiên, tương tác của chúng phức tạp hơn trước đây, và sự phân loại có thể không đơn giản. Một ứng dụng thường sử dụng thư viện, do đó liên quan đến hạt nhân, nhưng các thông tin liên lạc cũng có thể liên quan đến các chương trình khác, hoặc thậm chí nhiều thư viện gọi nhau.