Hai điều nữa: Việc Linux chuyển sang doanh nghiệp & các máy chủ lớn khác đã khiến cho tĩnh /dev
bị phá vỡ. Công nghệ tiến bộ, trong cả người tiêu dùng và doanh nghiệp, đã phơi bày tĩnh / dev như một trò đùa. [Câu trả lời này lấp đầy trong phần hậu trường, đặc biệt là tại sao các devfs được thay thế bằng udev].
Kiệt sức của không gian số lượng lớn và nhỏ
/dev
các tệp được xác định bên trong kernel bằng số chính và số phụ. Hạt nhân chưa bao giờ thực sự quan tâm đến tên (ví dụ, mv /dev/sda /dev/disk-1
và bạn có thể tiếp tục làm việc, mặc dù tất nhiên các chương trình sẽ không biết tìm nó ở đâu).
Với một tĩnh /dev
, bạn cần phân bổ một số chính / phụ cho mọi thiết bị tiềm năng có thể tồn tại. Những con số này cần phải là duy nhất trên toàn cầu, vì chúng được vận chuyển như một phần của các bản phân phối, không được tạo theo yêu cầu. Vấn đề là mỗi số 8 bit của họ có phạm vi 0 02255.
Ban đầu, ví dụ, Linux bắt đầu với 8,0 là sda, 8,1 là sda1, 8,16 là sdb, v.v. Nhưng mọi người cứ thêm ngày càng nhiều đĩa vào máy, đặc biệt là khi bạn xem xét những thứ như kênh sợi quang. Vì vậy, tại một số điểm, số chính 65 Hàng71 đã được thêm cho nhiều đĩa hơn. Sau đó, số chính 128 trận135. Nhưng mọi người vẫn muốn có nhiều đĩa hơn ...
Và các định dạng bảng phân vùng như GPT xuất hiện, hỗ trợ nhiều phân vùng hơn trên mỗi đĩa. Và tất nhiên các thiết bị khác đã ăn qua không gian số: bộ điều khiển RAID khác nhau, quản lý âm lượng hợp lý, v.v.
Kết quả cuối cùng có thể được nhìn thấy tại Danh sách thiết bị LANANA Linux . Nếu bạn nhìn vào danh sách 2.6 (số duy nhất vẫn còn đó), rất nhiều khối số chính thông qua 200 (tối đa: 255) sử dụng. Rõ ràng, những con số sẽ hết.
Thay đổi số lượng lớn hơn không dễ dàng. Nó thay đổi nhân ABI. Tùy thuộc vào hệ thống tập tin, nó thay đổi cách bố trí trên đĩa. Nhưng, tất nhiên, hầu hết các thiết bị đó không tồn tại trên bất kỳ một hệ thống nào, ngay cả một thiết bị (chẳng hạn) đã hết đĩa SCSI có thể có rất nhiều thứ miễn phí, có lẽ nó không cần đĩa cứng IBM XT, ví dụ.
Với tính năng động /dev
, bản phân phối không phải gửi số thiết bị. Họ không còn phải là duy nhất trên toàn cầu. Chúng thậm chí không phải là duy nhất trên giày.
Tên thiết bị không thể đoán trước
Nó được sử dụng để thực sự dễ dàng để gán một số cho tất cả mọi thứ. Một bảng có hai kênh IDE; mỗi kênh IDE hỗ trợ một chủ và một nô lệ. Bạn có thể chỉ định theo thứ tự kênh và thứ tự master-then-Slave. Vì vậy, hda
trở thành kênh đầu tiên, chủ; hdb
kênh đầu tiên, nô lệ; hdc
kênh thứ hai, chủ; vv Những người đã được dự đoán và ổn định. Chúng có thể thay đổi nếu bạn thêm một ổ đĩa mới hoặc xóa một ổ đĩa, nhưng vắng mặt thay đổi phần cứng, chúng là tĩnh.
Bạn có thể đặt /dev/hda1
tại của bạn /etc/fstab
và tự tin nó sẽ ở lại làm việc, ít nhất là thay đổi phần cứng vắng mặt.
IDE đã làm việc như thế. Không có gì sau khi nó làm.
SATA có vẻ đơn giản: một cổng, một đĩa. Nhưng không phải vậy; nó cho phép nhân số cổng. Và nó cho phép trao đổi nóng. Tuy nhiên, thay đổi phần cứng vắng mặt, bạn thực sự vẫn có thể giữ cho ánh xạ hoạt động.
USB tệ hơn nhiều. Nó không chỉ cho phép trao đổi nóng, nó là điển hình. Mọi người cắm vào ổ flash USB mọi lúc. Hơn nữa, các thiết bị có thể mất một thời gian để thăm dò điều tra và thực sự có thể thay đổi bất cứ khi nào chúng cảm thấy như vậy (ví dụ: khi bật hoặc tắt chế độ lưu trữ USB trên điện thoại của bạn). Firewire cũng tương tự. Với cả hai bạn không thể thực sự đưa ra một bản đồ ổn định.
Mạng kèm theo đĩa không có bất kỳ thứ tự cổng vốn có. Thứ tự duy nhất mà kernel sử dụng là thứ tự chúng xuất hiện. Tương tự với khối lượng logic.
Các nhiệm vụ cho tốc độ khởi động cũng làm cho mọi thứ tồi tệ hơn. Ban đầu, kernel sẽ vui vẻ ngồi xung quanh và chờ một khoảng thời gian khá dài, ví dụ, tất cả các thiết bị USB sẽ khởi tạo. Để thăm dò đầy đủ tất cả các xe buýt SCSI, v.v. Những đầu dò đó được thực hiện thành các nhiệm vụ nền; khởi động sẽ không còn chờ đợi trên chúng. Các thiết bị được thêm vào khi các đầu dò hoàn thành.
Vì vậy, hạt nhân bị bỏ lại, ít nhiều, "bất cứ thứ tự nào chúng xuất hiện". Điều này có nghĩa là nhiều loại thiết bị có thể và đã thay đổi thứ tự cho mỗi boot boot, những gì trên một boot /dev/sdb
này là trên một boot khác /dev/sdc
. Điều này làm cho ý tưởng của một tĩnh /dev
một trò đùa.
Tóm lược
Khi bạn kết hợp tĩnh /dev
trở nên ngày càng vô nghĩa do các lệnh thăm dò thiết bị không thể đoán trước và tiếp tục phân bổ các số chính / phụ tĩnh dẫn đến công việc đáng kể để không hết, thì rõ ràng lý do tại sao các nhà phát triển của Linux chọn chuyển sang động /dev
.
/dev
không (dễ dàng hoặc thuận tiện) giải quyết những thứ như một người cắm bộ điều hợp mạng USB hoặc bộ điều hợp mạng ảo được thêm hoặc gỡ xuống trong khi hệ thống đang chạy. Mặc dù vậy, không có gì ngăn bạn gỡ cài đặtudev
và quay trở lại/dev
tuyến thư mục tĩnh cũ .