Tiêu đề câu hỏi đặt ra: Tại sao chúng ta cần phải gắn kết với Linux?
Một cách để giải thích câu hỏi này: Tại sao chúng ta cần đưa ra mount
các lệnh rõ ràng để làm cho các hệ thống tệp có sẵn trên Linux?
Câu trả lời: chúng tôi không.
Bạn không cần phải gắn kết các hệ thống tệp một cách rõ ràng, bạn có thể sắp xếp để nó được thực hiện tự động và các bản phân phối Linux đã làm điều này cho hầu hết các thiết bị, giống như Windows và Mac.
Vì vậy, đó có thể không phải là những gì bạn muốn hỏi.
Một cách hiểu thứ hai: Tại sao đôi khi chúng ta cần đưa ra mount
các lệnh rõ ràng để làm cho các hệ thống tệp có sẵn trên Linux? Tại sao không làm cho hệ điều hành luôn làm điều đó cho chúng ta và ẩn nó khỏi người dùng?
Đây là câu hỏi tôi đang đọc trong văn bản câu hỏi, khi bạn hỏi:
Tại sao không bỏ qua việc gắn hoàn toàn, và làm như sau
ls /dev/cdrom
và có nội dung của CD-ROM được liệt kê?
Có lẽ, ý bạn là: tại sao không có lệnh đó làm gì
ls /media/cdrom
bây giờ không
Vâng, trong trường hợp đó, /dev/cdrom
sẽ là một cây thư mục, không phải là một tập tin thiết bị. Vì vậy, câu hỏi thực sự của bạn dường như là: tại sao có một tập tin thiết bị ở nơi đầu tiên?
Tôi muốn thêm một câu trả lời cho những câu đã được đưa ra.
Tại sao người dùng có thể xem các tập tin thiết bị?
Bất cứ khi nào bạn sử dụng CD-ROM hoặc bất kỳ thiết bị nào khác lưu trữ tệp, một phần mềm được sử dụng để diễn giải bất cứ thứ gì có trên CD-ROM của bạn dưới dạng cây thư mục của tệp. Nó được gọi bất cứ khi nào bạn sử dụng ls
hoặc bất kỳ loại lệnh hoặc ứng dụng nào khác truy cập các tệp trên CD-ROM của bạn. Phần mềm đó là trình điều khiển hệ thống tệp cho hệ thống tệp cụ thể được sử dụng để ghi các tệp vào đĩa CD-ROM của bạn. Bất cứ khi nào bạn liệt kê, đọc hoặc ghi tệp trên một hệ thống tệp, công việc của phần mềm đó là đảm bảo rằng các hoạt động đọc và ghi mức độ thấp tương ứng được thực hiện trên thiết bị được đề cập. Bất cứ khi nào bạn mount
là một hệ thống tệp, bạn sẽ nói cho hệ thống biết trình điều khiển hệ thống tệp nào sẽ sử dụng cho thiết bị. Cho dù bạn làm điều này rõ ràng với mộtmount
lệnh hoặc để nó cho HĐH được thực hiện tự động, nó sẽ cần phải được thực hiện, và tất nhiên phần mềm trình điều khiển hệ thống tệp sẽ cần phải ở đó ngay từ đầu.
Làm thế nào để một trình điều khiển hệ thống tập tin làm công việc của nó? Câu trả lời: nó thực hiện bằng cách đọc và ghi vào tệp thiết bị. Tại sao? Câu trả lời, như bạn đã nêu: Unix được thiết kế theo cách này. Trong Unix, các tệp thiết bị là sự trừu tượng hóa mức thấp phổ biến cho các thiết bị. Phần mềm thực sự dành riêng cho thiết bị (trình điều khiển thiết bị) cho một thiết bị cụ thể được cho là thực hiện mở, đóng, đọc và ghi trên thiết bị như các thao tác trên tệp thiết bị. Theo cách đó, phần mềm cấp cao hơn (như trình điều khiển hệ thống tệp) không cần biết nhiều về hoạt động bên trong của các thiết bị riêng lẻ. Các trình điều khiển thiết bị cấp thấp và trình điều khiển hệ thống tệp có thể được viết riêng, bởi những người khác nhau, miễn là họ đồng ý về một cách chung để giao tiếp với nhau, và đó là những gì các tệp thiết bị dành cho.
Vì vậy, trình điều khiển hệ thống tập tin cần các tập tin thiết bị.
Nhưng tại sao chúng ta, những người dùng thông thường, có thể xem các tập tin thiết bị? Câu trả lời là Unix được thiết kế để sử dụng cho các lập trình viên hệ điều hành. Nó được thiết kế để cho phép người dùng viết trình điều khiển thiết bị và trình điều khiển hệ thống tệp. Đó là trong thực tế làm thế nào họ nhận được bằng văn bản.
Điều này cũng đúng với Linux: bạn có thể viết trình điều khiển hệ thống tệp của riêng bạn (hoặc trình điều khiển thiết bị), cài đặt nó và sau đó sử dụng nó. Nó làm cho Linux (hoặc bất kỳ biến thể nào khác của Unix) có thể dễ dàng mở rộng (và thực tế đó là lý do Linux được khởi động): khi một số phần cứng mới xuất hiện trên thị trường, hoặc một cách mới, thông minh hơn để thực hiện một hệ thống tệp được thiết kế , ai đó có thể viết mã để hỗ trợ nó, làm cho nó hoạt động và đóng góp nó cho Linux.
Các tập tin thiết bị làm cho điều này dễ dàng hơn.