Câu trả lời ngắn gọn là nó chỉ thực hiện nếu bạn có bản sao lưu hệ thống tệp vật lý /dev
(và nếu bạn đang sử dụng bản phân phối Linux hiện đại, có lẽ bạn không nên).
Câu trả lời dài sau:
Tất cả điều này quay trở lại triết lý UNIX ban đầu rằng mọi thứ đều là một tệp. Triết lý này là một phần của những gì làm cho UNIX trở nên linh hoạt, bởi vì bạn có thể tương tác trực tiếp với các thiết bị từ không gian người dùng mà không cần phải có mã đặc biệt trong ứng dụng của mình để nói chuyện trực tiếp với phần cứng vật lý.
Ban đầu, /dev
chỉ là một thư mục khác với một cái tên nổi tiếng nơi bạn đặt các tập tin thiết bị của bạn. Một số hệ thống UNIX vẫn áp dụng cách tiếp cận này (tôi tin rằng OpenBSD vẫn còn) và bạn thường có thể biết liệu một hệ thống có như thế này không vì nó sẽ có rất nhiều tệp thiết bị cho các thiết bị mà hệ thống không thực sự có (ví dụ: tệp cho mọi phân vùng có thể trên mọi đĩa có thể). Điều này giúp tiết kiệm không gian trong bộ nhớ và thời gian khởi động với chi phí sử dụng thêm một chút dung lượng đĩa, đây là một sự đánh đổi tốt cho các hệ thống ban đầu vì chúng thường bị hạn chế bộ nhớ và không nhanh lắm. Điều này thường được gọi là có một tĩnh /dev
.
Trên các hệ thống Linux hiện đại (và tôi cũng tin FreeBSD và có thể là các phiên bản gần đây của Solaris), /dev
là một hệ thống tệp trong bộ nhớ tạm thời được nhân bởi (hoặc udev nếu bạn sử dụng Systemd, vì họ không tin hạt nhân làm hầu hết mọi thứ) . Điều này giúp tiết kiệm một số dung lượng đĩa ở mức giá của một số bộ nhớ (thường là ít hơn vài MB) và chi phí xử lý rất nhỏ. Nó cũng có một số ưu điểm khác, với một trong những ưu điểm lớn nhất là dễ dàng phát hiện phần cứng cắm nóng hơn. Điều này thường được gọi là có một năng động /dev
.
Trong cả hai trường hợp, các nút thiết bị được truy cập thông qua lớp VFS thông thường, theo định nghĩa có nghĩa là chúng phải có một nút (ngay cả khi đó là một nút ảo chỉ tồn tại để những thứ giống như stat()
hoạt động của nó. điều này không ảnh hưởng đến các hệ thống sử dụng động /dev
vì chúng chỉ lưu trữ các nút trong bộ nhớ hoặc tạo chúng khi cần thiết và gần như không ảnh hưởng đến /dev
tĩnh vì các nút chiếm không gian gần bằng 0 trên đĩa và hầu hết các hệ thống tệp đều không có giới hạn trên chúng hoặc cách cung cấp nhiều hơn bất cứ ai có thể sẽ cần.