4.2 Bài 1
Chứng chỉ: |
Linux Essentials |
---|---|
Phiên bản: |
1.6 |
Chủ đề: |
4 Hệ điều hành Linux |
Mục tiêu: |
4.2 Hiểu về Phần Cứng của Máy tính |
Bài: |
1 trên 1 |
Giới thiệu
Không có phần cứng, phần mềm sẽ chỉ giống như một tài liệu văn bản đơn thuần. Phần cứng sẽ xử lý các lệnh được mô tả bởi phần mềm và cung cấp các cơ chế lưu trữ, nhập và xuất. Suy cho cùng, ngay cả đám mây cũng là được hỗ trợ bởi phần cứng.
Là một hệ điều hành, một trong những trách nhiệm của Linux là cung cấp các phần mềm có giao diện để truy cập vào phần cứng của hệ thống. Hầu hết các chi tiết cụ thể về cấu hình đều nằm ngoài phạm vi của bài học này. Tuy nhiên, người dùng thường quan tâm đến hiệu suất, dung lượng và các yếu tố khác của phần cứng hệ thống vì chúng ảnh hưởng đến khả năng hỗ trợ tương xứng cho các ứng dụng cụ thể của hệ thống. Bài học này sẽ bàn về phần cứng dưới dạng các hạng mục vật lý riêng biệt sử dụng các đầu nối và giao diện tiêu chuẩn. Các tiêu chuẩn thường là tương đối cố định. Tuy nhiên, các yếu tố hình thức, hiệu suất và hiệu suất của phần cứng luôn không ngừng phát triển. Bất kể việc những thay đổi đó có thể làm lu mờ những sự khác biệt về mặt vật lý ra sao thì các khía cạnh khái niệm của phần cứng được mô tả trong bài học này vẫn có thể áp dụng được.
Note
|
Nhiều phần trong bài học này sẽ có chứa các ví dụ về dòng lệnh được sử dụng để minh họa các cách truy cập thông tin về phần cứng. Hầu hết các ví dụ là từ Raspberry Pi B+, nhưng chúng cũng có thể áp dụng cho hầu hết các hệ thống. Tuy nhiên chúng ta hông nhất thiết phải hiểu các lệnh đó để có thể nắm được bài học này. |
Nguồn Điện
Tất cả các thành phần hoạt động trong một hệ thống máy tính đều cần có điện để hoạt động. Thật không may, hầu hết các nguồn điện đều sẽ không phù hợp. Phần cứng của hệ thống máy tính yêu cầu một chỉ số điện áp cụ thể với dung sai tương đối chặt chẽ. Những ổ cắm cục bộ thường có trên tường của bạn lại thường không có sẵn những yếu tố này.
Những nguồn cung cấp năng lượng sẽ chuẩn hóa các nguồn năng lượng có sẵn. Các yêu cầu về điện áp tiêu chuẩn sẽ cho phép các nhà sản xuất tạo ra các thành phần phần cứng có thể được sử dụng trong các hệ thống ở mọi nơi trên thế giới. Bộ nguồn máy tính để bàn có xu hướng lấy điện từ các ổ cắm trên tường làm nguồn. Bộ nguồn máy chủ có xu hướng quan trọng hơn nên chúng thường có thể kết nối với nhiều nguồn để đảm bảo rằng chúng có thể tiếp tục hoạt động trong trường hợp có nguồn gặp sự cố.
Việc tiêu thụ điện năng sẽ tạo ra nhiệt. Nhiệt độ quá cao có thể khiến các bộ phận của hệ thống hoạt động chậm hoặc thậm chí gây ra hỏng hóc. Hầu hết các hệ thống đều có một số dạng quạt để tản nhiệt nhằm làm mát hiệu quả hơn. Các thành phần như bộ xử lý thường tạo ra nhiệt mà luồng không khí bình thường không thể làm tiêu tan hết được. Các bộ phận dễ nóng này thường có gắn các lá tản nhiệt đặc biệt được gọi là bộ tản nhiệt để giúp làm mát hiệu quả. Các bộ tản nhiệt thường có quạt cục bộ nhỏ riêng để đảm bảo luồng không khí tương thích.
Bo mạch chủ
Tất cả phần cứng của hệ thống cần phải được kết nối với nhau. Một bo mạch chủ sẽ chuẩn hóa kết nối đó bằng cách sử dụng các đầu nối và kích thược được tiêu chuẩn hóa. Nó cũng sẽ hỗ trợ cho cấu hình và nhu cầu điện năng của các đầu nối đó.
Có rất nhiều loại cấu hình bo mạch chủ khác nhau; chúng hỗ trợ các bộ xử lý và hệ thống bộ nhớ khác nhau. Bo mạch chủ thường được thiết kế để hỗ trợ nhiều loại đầu nối tiêu chuẩn hóa khác nhau. Các đầu nối này thường được thiết kế với kích cỡ và hình dáng khác nhau để tương thích với các vật chứa của chúng. Ngoại trừ khả năng kết nối các thiết bị bên ngoài cụ thể, cấu hình bo mạch chủ thực sự khá là rõ ràng đối với người dùng. Quản trị viên chủ yếu tiếp xúc với cấu hình bo mạch chủ khi có nhu cầu xác định các thiết bị cụ thể.
Khi nguồn được kết nối lần đầu tiên, phần cứng đặc thù dành cho bo mạch chủ phải được cấu hình và khởi tạo trước khi hệ thống có thể hoạt động. Bo mạch chủ sử dụng chương trình được lưu trữ trong bộ nhớ cố định được gọi là phần sụn để xử lý phần cứng cụ thể của bo mạch chủ. Hình thức ban đầu của phần sụn bo mạch chủ được gọi là BIOS (Hệ thống Nhập Xuất Cơ bản - Basic Input/Output System). Ngoài các cài đặt cấu hình cơ bản, BIOS chủ yếu chịu trách nhiệm xác định, tải và chuyển hoạt động sang một hệ điều hành như Linux. Khi phần cứng phát triển, phần sụn cũng sẽ được mở rộng để hỗ trợ các ổ đĩa lớn hơn, các chẩn đoán, giao diện đồ họa, kết nối mạng và các khả năng nâng cao khác độc lập với bất kỳ hệ điều hành nào được tải. Những nỗ lực ban đầu để nâng cao phần sụn vượt ra khỏi BIOS cơ bản thường là việc riêng của các nhà sản xuất bo mạch chủ. Intel đã xác lập một tiêu chuẩn cho phần sụn nâng cao được gọi là EFI (Giao diện phần sụn mở rộng - Extensible Firmware Interface). Intel đã đóng góp EFI cho một tổ chức tiêu chuẩn để tạo ra UEFI (Giao diện Phần mềm Mở rộng Hợp nhất - Unified Extensible Firmware Interface). Ngày nay, hầu hết các bo mạch chủ đều sử dụng UEFI. BIOS và EFI hầu như không còn có mặt trên các hệ thống gần đây. Bất chấp điều này, hầu hết mọi người vẫn gọi phần sụn của bo mạch chủ là BIOS.
Có rất ít cài đặt phần sụn được người dùng phổ thông quan tâm, vì vậy chỉ những cá nhân chịu trách nhiệm về việc cấu hình phần cứng hệ thống mới cần làm việc với phần sụn và các cài đặt của nó. Một trong số ít các tùy chọn thường được thay đổi là việc kích hoạt các phần mở rộng ảo hóa của CPU hiện đại.
Bộ nhớ
Bộ nhớ hệ thống chứa dữ liệu và mã chương trình của các ứng dụng hiện đang chạy. Khi nói về bộ nhớ máy tính, hầu hết mọi người đều đề cập đến bộ nhớ hệ thống này. Một thuật ngữ phổ biến khác được sử dụng cho bộ nhớ hệ thống là từ viết tắt RAM (Random Access Memory - Bộ nhớ Truy cập Ngẫu nhiên) hoặc một số biến thể của từ viết tắt này. Đôi khi các tham chiếu đến vỏ bọc vật lý của bộ nhớ hệ thống như DIMM, SIMM hoặc DDR cũng được sử dụng.
Về mặt vật lý, bộ nhớ hệ thống thường được đóng gói trên các mô-đun bảng mạch riêng lẻ cắm vào bo mạch chủ. Các mô-đun bộ nhớ riêng lẻ hiện có kích thước từ 2 GB đến 64 GB. Đối với hầu hết các ứng dụng có mục đích phổ thông, 4 GB là bộ nhớ hệ thống tối thiểu mà mọi người nên cân nhắc. Đối với các máy trạm riêng lẻ, 16 GB thường đã quá đủ. Tuy nhiên, ngay cả 16 GB cũng có thể sẽ là hạn chế đối với người dùng đang chạy các ứng dụng trò chơi, video hoặc âm thanh cao cấp. Máy chủ thường yêu cầu bộ nhớ 128 GB hoặc thậm chí 256 GB để hỗ trợ tải lượng của người dùng một cách hiệu quả.
Nhìn chung, Linux cho phép người dùng coi bộ nhớ hệ thống như một chiếc hộp đen. Khi một ứng dụng được khởi động, Linux sẽ đảm nhận việc phân bổ bộ nhớ hệ thống cần thiết. Linux sẽ giải phóng bộ nhớ để các ứng dụng khác sử dụng khi một ứng dụng đã hoàn thành. Nhưng nếu một ứng dụng yêu cầu nhiều bộ nhớ hệ thống khả dụng hơn thì sao? Trong trường hợp này, Linux sẽ di chuyển các ứng dụng nhàn rỗi từ bộ nhớ hệ thống vào một vùng đĩa đặc biệt được gọi là không gian trao đổi. Linux sẽ di chuyển các ứng dụng nhàn rỗi từ không gian trao đổi đĩa trở lại bộ nhớ hệ thống khi chúng cần chạy.
Các hệ thống không có phần cứng video chuyên dụng thường sử dụng một phần bộ nhớ hệ thống (thường là 1 GB) để làm bộ lưu trữ hiển thị video. Điều này có thể làm giảm bộ nhớ hệ thống hiệu quả. Phần cứng video chuyên dụng thường có bộ nhớ riêng không khả dụng dưới dạng bộ nhớ hệ thống.
Có một số cách để lấy thông tin về bộ nhớ hệ thống. Với tư cách là người dùng, các giá trị ta thường quan tâm là tổng dung lượng bộ nhớ khả dụng và đang được sử dụng. Một trong số các nguồn để lấy thông tin là lệnh free
cùng với tham số -m
để sử dụng megabyte ở đầu ra:
$ free -m total used free shared buff/cache available Mem: 748 37 51 14 660 645 Swap: 99 0 99
Dòng đầu tiên biết tổng bộ nhớ khả dụng cho hệ thống (total
), bộ nhớ đang sử dụng (used
) và bộ nhớ trống (free
). Dòng thứ hai hiển thị các thông tin này về không gian trao đổi. Các bộ nhớ được gọi là shared
và buff/cache
thì hiện đang được sử dụng cho các chức năng khác của hệ thống dù dung lượng được chỉ định trong available
(có sẵn) có thể được sử dụng cho ứng dụng.
Bộ Vi Xử lý
Thuật ngữ “bộ vi xử lý” ám chỉ một thứ gì đó đang được xử lý. Trong máy tính, hầu hết quá trình xử lý đó là xử lý các tín hiệu điện. Thông thường, các tín hiệu đó được coi là có một trong hai giá trị nhị phân 1 hoặc 0.
Khi mọi người nói về máy tính, họ thường sử dụng cụm từ bộ vi xử lý thay thế cho từ viết tắt CPU (Bộ xử lý Trung tâm - Central Processing Unit). Điều này không đúng về mặt kỹ thuật. Mọi máy tính có mục đích sử dụng phổ thông đều có CPU xử lý các lệnh nhị phân do phần mềm chỉ định. Vì vậy, việc mọi người cho rằng bộ vi xử lý và CPU là một cũng khá dễ hiểu. Tuy nhiên, ngoài CPU, các máy tính hiện đại thường bao gồm các bộ vi xử lý dành riêng cho tác vụ khác. Có lẽ bộ vi xử lý bổ sung dễ nhận biết nhất là GPU (Bộ xử lý đồ họa - Graphical Processing Unit). Do đó, dù CPU đúng là một bộ xử lý thì không phải bộ vi xử lý nào cũng là CPU.
Đối với hầu hết mọi người, kiến trúc CPU là một tham chiếu đến các lệnh mà bộ xử lý hỗ trợ. Mặc dù Intel và AMD đều tạo ra các bộ xử lý hỗ trợ các tập lệnh giống nhau nhưng việc phân biệt theo nhà cung cấp cũng là cần thiết do sự khác biệt về ngoại hình, hiệu suất và mức tiêu thụ điện. Các bản phân phối phần mềm thường sử dụng các ký hiệu sau để chỉ định tập lệnh tối thiểu mà chúng cần để có thể vận hành:
- i386
-
Tham khảo từ tâp lệnh 32 bit được liên kết với Intel 80386.
- x86
-
Thường tham khảo các tâp lệnh 32 bit được liên kết với các phiên bản kế tiếp của 80386, chẳng hạn như 80486, 80586 và Pentium.
- x64/x86-64
-
Tham khảo bộ xử lý hỗ trợ cả tập lệnh 32-bit và 64-bit của dòng x86.
- AMD
-
Tham chiếu đến phần hỗ trợ x86 của bộ xử lý AMD.
- AMD64
-
Tham chiếu đến hỗ trợ x64 của bộ xử lý AMD.
- ARM
-
Tham chiếu một CPU của Máy tính có Tâp lệnh rút gọn (RISC - Reduced Instruction Set Computer) không dựa trên tâp lệnh x86. Nó thường được sử dụng bởi các thiết bị nhúng, di động, máy tính bảng và các thiết bị chạy bằng pin. Có một phiên bản của Linux dành cho ARM được Raspberry Pi sử dụng.
Tệp /proc/cpuinfo
chứa thông tin chi tiết về bộ xử lý của hệ thống. Thật không may, các chi tiết này lại không được thân thiện với người dùng phổ thông. Ta có thể đạt được một kết quả tổng quát hơn bằng lệnh lscpu
. Đầu ra từ Raspberry Pi B+:
$ lscpu Architecture: armv7l Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 Model: 4 Model name: ARMv7 Processor rev 4 (v7l) CPU max MHz: 1400.0000 CPU min MHz: 600.0000 BogoMIPS: 38.40 Flags: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
Đối với hầu hết mọi người, việc có vô số các nhà cung cấp, các dòng bộ xử lý và các yếu tố thông số kỹ thuật đại diện cho một loạt các lựa chọn gây hoang mang. Dù vậy, có một số yếu tố liên quan đến CPU và bộ xử lý mà ngay cả người dùng phổ thông và quản trị viên cũng cần phải xem xét khi họ cần chỉ định các môi trường hoạt động:
- Kích thước bit
-
Đối với CPU, con số này liên quan đến cả kích thước gốc của dữ liệu mà nó phải thao tác và cả dung lượng bộ nhớ mà nó có thể truy cập. Hầu hết các hệ thống hiện đại đều là 32-bit hoặc 64-bit. Nếu một ứng dụng cần hơn 4 gigabyte bộ nhớ thì ứng dụng đó phải chạy trên hệ thống 64 bit vì 4 gigabyte là mốc tối đa có thể chạy được bằng 32 bit. Và trong khi các ứng dụng 32-bit thường có thể chạy trên các hệ thống 64-bit, các ứng dụng 64-bit lại không thể chạy trên các hệ thống 32-bit.
- Tốc độ đồng hồ
-
Thường được biểu thị bằng megahertz (MHz) hoặc gigahertz (GHz). Yếu tố này liên quan đến tốc độ xử lý lệnh của bộ xử lý. Nhưng tốc độ của bộ xử lý chỉ là một trong những yếu tố ảnh hưởng đến thời gian phản hồi, thời gian chờ và thông lượng của hệ thống. Ngay cả một người dùng đa tác vụ cũng hiếm khi để cho CPU của một máy tính để bàn thông thường hoạt động nhiều hơn 2 hoặc 3 phần trăm thời gian. Bất kể bạn có thường xuyên sử dụng các ứng dụng nặng liên quan đến các hoạt động như mã hóa hoặc kết xuất video hay không thì tốc độ CPU vẫn có thể tác động đáng kể đến thông lượng và thời gian chờ.
- Bộ nhớ đệm
-
CPU yêu cầu một luồng liên tục của cả lệnh và dữ liệu để hoạt động. Chi phí và mức tiêu thụ năng lượng của bộ nhớ hệ thống nhiều gigabyte có thể được truy cập ở tốc độ xung nhịp của CPU khá là cao. Bộ nhớ đệm tốc độ CPU được tích hợp vào chip CPU để cung cấp bộ đệm tốc độ cao giữa CPU và bộ nhớ hệ thống. Bộ nhớ đệm được chia thành nhiều lớp, thường được gọi là L1, L2, L3 và thậm chí cả L4. Thông thường, có càng nhiều bộ nhớ đệm thì hệ thống hoạt động càng hiệu quả.
- Lõi
-
Lõi dùng để chỉ một CPU riêng lẻ. Ngoài lõi đại diện cho một CPU vật lý, Công nghệ siêu phân luồng (HTT - Hyper-Threading Technology) cũng cho phép một CPU vật lý duy nhất xử lý đồng thời nhiều lệnh, do đó nó hoạt động gần như tương đương với nhiều CPU vật lý. Trong đa số các trường hợp, nhiều lõi vật lý sẽ được đóng gói dưới dạng một chip xử lý vật lý duy nhất. Tuy nhiên, có những bo mạch chủ có thể hỗ trợ nhiều chip xử lý vật lý. Trên lý thuyết, khi có nhiều lõi để xử lý các tác vụ hơn thì thông lượng hệ thống sẽ tốt hơn. Thật không may, các ứng dụng dành cho máy tính để bàn thường chỉ khiến CPU bận 2 hoặc 3 phần trăm thời gian; do đó, việc thêm nhiều CPU nhàn rỗi sẽ không mấy cải thiện được thông lượng. Việc sử dụng nhiều lõi sẽ thích hợp nhất để chạy các ứng dụng được viết để có nhiều luồng hoạt động độc lập, chẳng hạn như kết xuất khung hình video, kết xuất trang web hoặc môi trường máy ảo đa người dùng.
Lưu trữ
Các thiết bị lưu trữ cung cấp một phương pháp để giữ lại các chương trình và dữ liệu. Ổ ổ cứng (HDD - Hard Disk Drives) và Ổ đĩa thể rắn (SSD - Solid State Drives) là các dạng thiết bị lưu trữ phổ biến nhất cho máy chủ và máy tính để bàn. Thẻ nhớ USB và các thiết bị quang học như DVD cũng được sử dụng nhưng chúng hiếm khi được dùng làm thiết bị chính.
Đúng như tên gọi, ổ cứng lưu trữ thông tin trên một hoặc nhiều ổ cứng vật lý. Các đĩa vật lý sẽ được phủ bằng phương tiện từ tính để có thể lưu trữ. Các đĩa được chứa trong một gói kín vì bụi, hạt nhỏ và thậm chí cả dấu vân tay cũng có thể cản trở khả năng đọc và ghi phương tiện từ tính của ổ cứng.
SSD là phiên bản phức tạp hơn của thẻ nhớ USB với dung lượng lớn hơn đáng kể. SSD lưu trữ thông tin trong vi mạch nên không có bộ phận chuyển động.
Mặc dù các công nghệ cơ bản của ổ cứng HDD và SSD là khác nhau, nhưng giữa chúng vẫn có những yếu tố quan trọng có thể so sánh được. Dung lượng của ổ HDD dựa trên quy mô của các thành phần vật lý, trong khi dung lượng của ổ SSD lại phụ thuộc vào số lượng vi mạch. Trên mỗi gigabyte, ổ SSD tốn gấp từ 3 đến 10 lần so với ổ HDD. Để đọc hoặc ghi, ổ HDD phải đợi một vị trí trên đĩa xoay đến một vị trí đã biết, trong khi ổ SSD có thể truy cập ngẫu nhiên. Tốc độ truy cập của SSD thường nhanh hơn từ 3 đến 5 lần so với thiết bị HDD. Vì không có bộ phận chuyển động nên SSD sẽ tiêu thụ ít năng lượng hơn và đáng tin cậy hơn so với HDD.
Dung lượng lưu trữ vẫn không ngừng tăng lên đối với ổ cứng HDD và SSD. Ngày nay, ổ HDD 5 terabyte và ổ SSD 1 terabyte là những tiêu chuẩn tương đối phổ biến. Dù vậy, dung lượng lưu trữ lớn hơn không phải lúc nào cũng là tốt hơn. Khi một thiết bị lưu trữ bị lỗi, thông tin chứa trong đó sẽ không còn khả dụng nữa. Và tất nhiên, việc sao lưu sẽ mất nhiều thời gian hơn khi có nhiều thông tin cần sao lưu. Đối với các ứng dụng đọc và ghi nhiều dữ liệu, độ trễ và hiệu suất có thể sẽ quan trọng hơn dung lượng.
Các hệ thống hiện đại sử dụng SCSI (Giao diện Hệ thống Máy tính nhỏ - Small Computer System Interface) hoặc SATA (Phần đính kèm Công nghệ nâng cao Nối tiếp - Serial AT Attachment) để kết nối với các thiết bị lưu trữ. Các giao diện này thường được hỗ trợ bởi đầu nối thích hợp trên bo mạch chủ. Lượt tải ban đầu sẽ đến từ một thiết bị lưu trữ được gắn vào bo mạch chủ. Việc cài đặt chương trình cơ sở sẽ xác định thứ tự truy cập thiết bị cho lần tải đầu tiên này.
Các hệ thống lưu trữ được gọi là RAID (Hệ thống Đĩa dự phòng - Redundant Array of Independent Disks) và là cách triển khai phổ biến để tránh mất thông tin. Một mảng RAID bao gồm nhiều thiết bị vật lý chứa các bản sao thông tin trùng lặp. Nếu một thiết bị bị lỗi, tất cả các thông tin vẫn sẽ có sẵn. Các cấu hình RAID vật lý khác nhau được tham chiếu là 0, 1, 5, 6 và 10. Mỗi tên gọi có kích thước lưu trữ, đặc điểm hiệu suất và cách lưu trữ dữ liệu dư thừa hoặc tổng kiểm tra để phục hồi dữ liệu khác nhau. Ngoài những tác vụ bổ sung về cấu hình quản trị, RAID tương đối dễ nắm bắt.
Các thiết bị lưu trữ thường đọc và ghi dữ liệu dưới dạng các khối byte. Lệnh lsblk
có thể được sử dụng để liệt kê các thiết bị khối có sẵn cho hệ thống. Ví dụ sau được chạy trên Raspberry Pi sử dụng thẻ SD làm thiết bị lưu trữ. Thông tin chi tiết về đầu ra sẽ được đề cập trong trong các bài học về Phân vùng và Trình điều khiển tiếp theo:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 29.7G 0 disk +-mmcblk0p1 179:1 0 43.9M 0 part /boot +-mmcblk0p2 179:2 0 29.7G 0 part /
Phân vùng
Một thiết bị lưu trữ thực chất là một chuỗi dài các vị trí lưu trữ. Phân vùng là cơ chế cho Linux biết nó nên xem các vị trí lưu trữ này là một chuỗi đơn lẻ hay nhiều chuỗi độc lập. Mỗi phân vùng sẽ được xử lý như thể nó là một thiết bị riêng lẻ. Hầu hết các phân vùng sẽ được tạo khi hệ thống được cấu hình lần đầu tiên. Nếu cần thay đổi, các công cụ quản trị sẽ có sẵn để quản lý việc phân vùng thiết bị.
Vậy tại sao yếu tố nhiều phân vùng lại được ưa chuộng? Một số ví dụ về việc sử dụng phân vùng là quản lý dung lượng lưu trữ khả dụng, cô lập thời gian mã hoá bổ sung hoặc hỗ trợ nhiều hệ thống tệp. Các phân vùng sẽ cho phép việc chỉ có một thiết bị lưu trữ duy nhất có thể khởi động trong các hệ điều hành khác nhau.
Mặc dù Linux có thể nhận diện trình tự lưu trữ của thiết bị thô, thiết bị thô lại không thể được sử dụng nguyên trạng. Để sử dụng một thiết bị thô, thiết bị đó phải được định dạng. Việc định dạng sẽ ghi một hệ thống tệp vào một thiết bị và chuẩn bị hệ thống này cho các hoạt động của tệp. Không có hệ thống tệp, thiết bị sẽ không thể được sử dụng cho các hoạt động liên quan đến tệp.
Người dùng xem các phân vùng như thể chúng là các thiết bị riêng lẻ. Điều này khiến bạn dễ dàng bỏ qua một thực tế là bạn vẫn đang xử lý một thiết bị vật lý duy nhất. Cụ thể, các hoạt động từ thiết bị đến thiết bị (trên thực tế là hoạt động của phân vùng đến phân vùng) sẽ không có hiệu suất như mong đợi. Một thiết bị duy nhất là một cơ chế vật lý với một bộ phần cứng đọc/ghi. Quan trọng hơn, bạn không thể sử dụng các phân vùng của một thiết bị vật lý đơn lẻ như một thiết kế chịu lỗi. Nếu thiết bị bị lỗi, tất cả các phân vùng đều sẽ bị lỗi, vậy nên khả năng chịu lỗi là không có.
Note
|
Trình quản lý Khối lượng hợp lý (LVM - Logical Volume Manager) là một khả năng của phần mềm cho phép quản trị viên kết hợp các đĩa với phân vùng đĩa riêng lẻ và xử lý chúng như thể chúng là một ổ đĩa đơn. |
Thiết bị ngoại vi
Máy chủ và máy trạm cần sự kết hợp của CPU, bộ nhớ hệ thống và bộ lưu trữ để hoạt động. Nhưng những thành phần cơ bản này sẽ không giao tiếp trực tiếp với thế giới bên ngoài. Thiết bị ngoại vi là thiết bị cung cấp cho hệ thống đầu vào, đầu ra và khả năng tương tác với phần còn lại của thế giới thực.
Hầu hết các bo mạch chủ đều có các đầu nối bên ngoài tích hợp sẵn và hỗ trợ phần sụn cho các giao diện ngoại vi kế thừa phổ biến hỗ trợ các thiết bị như bàn phím, chuột, âm thanh, video và mạng. Gần đây, các bo mạch chủ thường có đầu nối Ethernet để hỗ trợ mạng, đầu nối HDMI hỗ trợ các nhu cầu đồ họa cơ bản và một hoặc nhiều cổng USB (Universal Serial Bus) cho hầu hết những thứ khác. Có nhiều phiên bản của USB với các đặc tính vật lý và tốc độ khác nhau. Việc có nhiều phiên bản cổng USB trên một bo mạch chủ là khá phổ biến.
Bo mạch chủ cũng có thể có một hoặc nhiều khe cắm mở rộng. Các khe cắm mở rộng cho phép người dùng thêm các bảng mạch đặc biệt được gọi là thẻ mở rộng hỗ trợ các thiết bị ngoại vi tùy chỉnh, kế thừa và không theo tiêu chuẩn. Giao diện đồ họa, âm thanh và mạng là những thẻ mở rộng phổ biến. Thẻ mở rộng cũng hỗ trợ RAID và các giao diện kế thừa định dạng đặc biệt liên quan đến kết nối nối tiếp và song song.
Cấu hình Hệ thống trên một Vi mạch (SoC - System on a Chip) đạt được các lợi thế về sức mạnh, hiệu suất, không gian và độ tin cậy so với cấu hình bo mạch chủ thông qua cách đóng gói bộ xử lý, bộ nhớ hệ thống, SSD và phần cứng để điều khiển các thiết bị ngoại vi dưới dạng một gói mạch tích hợp duy nhất. Các thiết bị ngoại vi được cấu hình SoC hỗ trợ sẽ bị giới hạn bởi các thành phần trong gói. Do đó, các cấu hình SoC có xu hướng được phát triển cho các mục đích sử dụng cụ thể. Điện thoại, máy tính bảng và các thiết bị di động khác thường được dựa trên công nghệ SoC.
Một số hệ thống cũng có kết hợp các thiết bị ngoại vi. Máy tính xách tay cũng tương tự như máy trạm nhưng nó có tích hợp các thiết bị ngoại vi màn hình, bàn phím và chuột mặc định. Hệ thống tất cả-trong-một cũng tương tự như máy tính xách tay nhưng chúng yêu cầu thiết bị ngoại vi là chuột và bàn phím. Bộ điều khiển dựa trên bo mạch chủ hoặc SoC thường được đính kèm với các thiết bị ngoại vi tích hợp sẵn phù hợp với mục đích sử dụng cụ thể.
Trình Điều khiển và Tệp Thiết bị
Đến đây, bài học đã trình bày các thông tin về bộ xử lý, bộ nhớ, đĩa, phân vùng, định dạng và thiết bị ngoại vi. Tuy vậy, việc yêu cầu người dùng phổ thông xử lý các chi tiết cụ thể cho từng thiết bị trong hệ thống của họ sẽ khiến những hệ thống đó trở nên không sử dụng được. Tương tự, các nhà phát triển phần mềm sẽ cần sửa đổi mã của họ cho mọi thiết bị mới hoặc thiết bị đã qua sửa đổi mà họ cần hỗ trợ.
Giải pháp cho các vấn đề thuộc phạm trù “chi tiết” này là trình điều khiển thiết bị. Trình điều khiển thiết bị chấp nhận một bộ yêu cầu tiêu chuẩn, sau đó sẽ dịch các yêu cầu đó thành các hoạt động điều khiển thích hợp với thiết bị. Trình điều khiển thiết bị là thứ cho phép bạn và các ứng dụng bạn chạy đọc từ tệp /home/carol/stuff
mà không cần lo lắng liệu tệp đó có nằm trên ổ cứng, ổ cứng thể rắn, thẻ nhớ, bộ lưu trữ được mã hóa hay một số thiết bị khác hay không.
Tệp thiết bị được tìm thấy trong thư mục /dev
và sẽ xác định các thiết bị vật lý, quyền truy cập thiết bị và các trình điều khiển được hỗ trợ. Theo quy ước, trong các hệ thống hiện đại sử dụng thiết bị lưu trữ dựa trên SCSI hoặc SATA, tên tệp đặc tả sẽ bắt đầu bằng tiền tố sd
. Tiếp theo tiền tố sẽ là một chữ cái (chẳng hạn như a
hoặc b
) để cho biết đó là một thiết bị vật lý. Sau tiền tố và số nhận dạng thiết bị sẽ là một số chỉ ra một phân vùng trong thiết bị vật lý. Vì vậy, /dev/sda
sẽ tham chiếu toàn bộ thiết bị lưu trữ đầu tiên, trong khi /dev/sda3
sẽ tham chiếu phân vùng 3 trong thiết bị lưu trữ đầu tiên. Tệp thiết bị cho từng loại thiết bị có quy ước đặt tên phù hợp với mỗi thiết bị. Mặc dù việc đề cập đến tất cả các quy ước đặt tên có thể nằm ngoài phạm vi của bài học này, nhưng điều quan trọng cần nhớ ở đây là các quy ước này rất quan trọng trong việc giúp tác vụ quản trị hệ thống trở nên khả thi.
Mặc dù nội dung của thư mục /dev
nằm ngoài phạm vi của bài học này, việc xem xét đầu vào cho thiết bị lưu trữ lại khá là hữu ích. Các tệp thiết bị dành cho thẻ SD thường sử dụng mmcblk
làm tiền tố:
$ ls -l mmcblk* brw-rw---- 1 root disk 179, 0 Jun 30 01:17 mmcblk0 brw-rw---- 1 root disk 179, 1 Jun 30 01:17 mmcblk0p1 brw-rw---- 1 root disk 179, 2 Jun 30 01:17 mmcblk0p2
Các chi tiết liệt kệ cho một tệp thiết bị khác với các chi tiết tệp thông thường:
-
Không giống như tệp hoặc thư mục, chữ cái đầu tiên của trường quyền là
b
. Điều này cho biết rằng các khối được đọc và ghi vào thiết bị theo khối thay vì các ký tự riêng lẻ. -
Trường kích thước là hai giá trị được phân tách bằng dấu phẩy thay vì một giá trị. Giá trị đầu tiên thường chỉ ra một trình điều khiển cụ thể trong hạt nhân và giá trị thứ hai sẽ chỉ định một thiết bị cụ thể được điều khiển bởi trình điều khiển.
-
Tên tệp sử dụng một chữ số cho thiết bị vật lý để quy ước đặt tên có thể thích nghi bằng cách chỉ định hậu tố phân vùng là
p
, theo sau là một chữ số.
Mỗi thiết bị hệ thống phải có một đầu vào trong /dev
. Vì nội dung của thư mục /dev
được tạo khi cài đặt nên thường ta sẽ có các đầu vào cho mọi trình điều khiển và thiết bị có thể có ngay cả khi không có thiết bị vật lý nào tồn tại.
Bài tập Hướng dẫn
-
Hãy mô tả các thuật ngữ sau đây:
Bộ vi xử lý
CPU
GPU
-
Nếu bạn chủ yếu chạy các ứng dụng chỉnh sửa video (một hoạt động tính toán cường độ cao), bạn cho rằng các thành phần và đặc điểm nào sẽ có tác động nhiều nhất đến khả năng sử dụng hệ thống:
Lõi CPU
Tốc độ CPU
Bộ nhớ hệ thống khả dụng
Hệ thống lưu trữ
GPU
Trình hiển thị video
Không có đáp án nào đúng
-
Bạn nghĩ tên của tệp thiết bị trong
/dev
sẽ là gì cho phân vùng 3 của ổ đĩa SATA thứ ba trong một hệ thống:sd3p3
sdcp3
sdc3
Không có đáp án nào đúng
Bài tập Mở rộng
-
Hãy chạy lệnh
lsblk
trên hệ thống của bạn. Hãy xác định các tham số dưới đây. Nếu hệ thống không khả dụng ngay lập tức, hãy xem danh sáchlsblk -f
dành cho hệ thống Raspberry Pi được đề cập trong phần “Lưu trữ” ở trên:$ lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT mmcblk0 +-mmcblk0p1 vfat boot 9304-D9FD /boot +-mmcblk0p2 ext4 rootfs 29075e46-f0d4-44e2-a9e7-55ac02d6e6cc /
-
Loại thiết bị và số lượng
-
Cấu trúc phân vùng của từng thiết bị
-
Loại hệ thống tệp và gắn kết cho mỗi phân vùng
-
Tóm tắt
Một hệ thống là một tập hợp tổng của các thành phần của nó. Các thành phần khác nhau tác động đến chi phí, hiệu suất và khả năng sử dụng theo những cách khác nhau. Mặc dù có các loại cấu hình phổ biến cho máy trạm và máy chủ nhưng lại không có một cấu hình duy nhất nào là tốt nhất.
Đáp án Bài tập Hướng dẫn
-
Hãy mô tả các thuật ngữ sau đây:
- Bộ xử lý
-
Một thuật ngữ chung áp dụng cho bất kỳ loại bộ xử lý nào. Thường được sử dụng một cách không chính xác như một từ đồng nghĩa với CPU.
- CPU
-
Bộ xử lý trung tâm. Một đơn vị xử lý cung cấp hỗ trợ cho các tác vụ tính toán có mục đích phổ thông.
- GPU
-
Bộ xử lý đồ họa. Một đơn vị xử lý được tối ưu hóa để hỗ trợ các hoạt động liên quan đến việc trình bày đồ họa.
-
Nếu bạn chủ yếu chạy các ứng dụng chỉnh sửa video (một hoạt động tính toán cường độ cao), bạn cho rằng các thành phần và đặc điểm nào sẽ có tác động nhiều nhất đến khả năng sử dụng hệ thống:
- Lõi CPU
-
Có. Việc có nhiều lõi sẽ hỗ trợ các tác vụ hiển thị và kết xuất đồng thời theo yêu cầu của tác vụ chỉnh sửa video.
- Tốc độ CPU
-
Có. Việc kết xuất video cần một lượng lớn các hoạt động tính toán.
- Bộ nhớ hệ thống khả dụng
-
Có khả năng. Video không được nén được sử dụng trong chỉnh sửa sẽ có dung lượng lớn. Các hệ thống có mục đích phổ thông thường đi kèm với 8 gigabyte bộ nhớ. Bộ nhớ với 16 hoặc thậm chí 32 gigabyte sẽ cho phép hệ thống xử lý nhiều khung hình hơn của video không nén, giúp các hoạt động chỉnh sửa trở nên hiệu quả hơn.
- Hệ thống lưu trữ
-
Có. Các tệp video thường có dung lượng khá lớn. Việc sử dụng ổ đĩa SSD cục bộ sẽ giúp việc truyền tải trở nên hiệu quả hơn. Ổ đĩa mạng chậm hơn có khả năng sẽ phản tác dụng.
- GPU
-
Không. GPU chủ yếu tác động đến việc trình bày video được kết xuất.
- Trình hiển thị video
-
Không. Trình hiển thị video chủ yếu ảnh hưởng đến việc trình bày video được hiển thị.
- Không có đáp án nào đúng
-
Không. Một số yếu tố trên có tác động rõ ràng đến mức độ khả dụng của hệ thống của bạn.
-
Bạn nghĩ tên của tệp thiết bị trong
/dev
sẽ là gì cho phân vùng 3 của ổ đĩa SATA thứ ba trong một hệ thống:sd3p3
Không đúng. Ổ 3 sẽ là
sdc
, không phảisd3
sdcp3
Không đúng. Phân vùng 3 sẽ là
3
, không phảip3
sdc3
Đúng
Không có đáp án nào đúng
Không đúng. Câu trả lời đúng nằm trong số các đáp án trên.
Đáp án Bài tập Mở rộng
-
Hãy chạy lệnh
lsblk
trên hệ thống của bạn. Hãy xác định các tham số dưới đây. Nếu hệ thống không khả dụng ngay lập tức, hãy xem danh sáchlsblk -f
dành cho hệ thống Raspberry Pi được đề cập trong phần “Lưu trữ” ở trên:$ lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT mmcblk0 +-mmcblk0p1 vfat boot 9304-D9FD /boot +-mmcblk0p2 ext4 rootfs 29075e46-f0d4-44e2-a9e7-55ac02d6e6cc /
Các câu trả lời sau đây được dựa trên danh sách
lsblk -f
cho hệ thống Raspberry Pi ở trên. Có thể có nhiều cách trả lời:- Loại thiết bị và số lượng
-
Có một thiết bị:
mmcblk0
. Theo quy ước, ta biết rằngmmcblk
sẽ là thẻ nhớ SD. - Cấu trúc phân vùng của từng thiết bị
-
Có hai phân vùng:
mmcblk0p1
vàmmcblk0p2
. - Loại hệ thống tệp và gắn kết cho từng phân vùng
-
Phân vùng 1 sử dụng hệ thống tệp
vfat
. Nó được sử dụng để khởi động hệ thống và được gắn là/boot
. Phân vùng 2 sử dụng hệ thống tệpext4
. Nó được sử dụng làm hệ thống tệp chính và được gắn là/
.