Википедия, "Фактор (Unix)" с интересным взятием:
фактор сначала появился на 5-м Unix Исследования выпуска в 1974, когда "пользователь поддержал" утилиту (разделите 6 из руководства). В 7-м выпуске в 1979, это было перемещено в основной раздел "команд" руководства (разделите 1). Оттуда, факторная утилита была скопирована во все другие варианты Unix, включая коммерческий Unixes и BSD. В некоторых вариантах Unix это классифицировано как "игра" больше, чем серьезная утилита и поэтому зарегистрировано в раздел 6.
Таким образом, казалось бы, что некоторый пользователь (пользователи) любил играть вокруг с простыми множителями и записал фактор - и после того как это существовало, вероятно, не было никаким серьезным основанием не включать его как команду в последующих версиях Unix. Таким образом, "практические применения" фактора могут зависеть от того, что Вы считаете практичными - если Вы в теорию простого числа, это - вероятно, большой tool/game/whatever.
Я предполагаю, что Вы обращаетесь к этому абзацу:
В отличие от традиционных систем Unix, где узлы устройства в/dev каталоге были статическим набором файлов, динамично обеспечивает Linux udev диспетчер устройств, только узлы для устройств на самом деле представляют в системе. Хотя devfs раньше обеспечивал схожую функциональность, Greg Kroah-Hartman процитировал много reasons3 для предпочтения ее реализации по devfs:
От 1-го предложения они обращаются к другим системам Unix где устройства в /dev
статически создаются и сохраняются от перезагрузки до перезагрузки. Предыдущие версии Linux (думают 2,4 версии Ядра) раньше работали это слишком, более новые версии больше не ведут себя этим способом. Другие Unixes обычно включают единый набор файлов устройств, когда Вы устанавливаете их, и только редко это необходимый для ручного создания дополнительных.
В 2,4 Вы могли использовать mknod
управляйте к вручную для создания любых необходимых файлов устройств. Например:
$ mknod ./dev/random b 12 5
Примечание: Это указывает, создают /dev/random
дескриптор файла, как блочное устройство с количеством основного устройства 12 и незначительным номером устройства 5.
OP задал следующий последующий вопрос относительно полной функциональности /dev
каталог. Вот его вопрос:
Можно ли добавить, что детали о техническом методе раньше сохраняли файлы устройств через перезагрузки? как они физически хранятся на диске? им была нужна специальная поддержка файловой системы?
В исследовании этого я полагал, что запущу с Linux, С нуля проекта для получения общего представления о как /dev
управляется в более новых версиях ядра Linux. Я знаю, что в прошлом (думают версии Ядра 2.4 и прежде), /dev
каталог был статическим набором файлов, которые буквально заняли место на жестком диске, но с появлением udev
и sysfs
это больше не имело место.
Традиционно, эти специальные файлы были созданы во время установки распределением, с помощью mknod
команда. В последние годы системы Linux начали использовать udev
управлять ими /dev
файлы во времени выполнения. Например, udev
создаст узлы, когда устройства обнаруживаются и удаляют их, когда устройства удалены (включая устройства замены в горячем режиме во времени выполнения). Таким образом, /dev
каталог содержит (по большей части) только записи для устройств, которые на самом деле существуют в системе в текущее время, в противоположность устройствам, которые могли существовать.
Так уведенный дни необходимости волноваться о Ваших файлах устройств под /dev
. Этим каталогом теперь полностью управляют udev
и sysfs
от перезагрузки до перезагрузки.
udev
& sysfs
ресурсы"файлы устройств" - это особый тип файлов (примерно так же, как каталоги, символические ссылки, именованные каналы и сокеты домена unix являются специальными типами файлов). Они не хранят пользовательские данные напрямую, вместо этого они хранят старший и младший номер устройства и тип устройства (char или block). Файловые системы, разработанные для unix-подобных систем, будут поддерживать хранение файлов устройств.
Когда к «файлу устройства» обращается либо приложение, либо команда монтирования, старший и младший номер устройства и тип устройства извлекаются из файловой системы. На основе этих чисел ядро выбирает драйвер и открывает его.
Традиционно файлы устройств просто существовали в каталоге корневой файловой системы с именем / dev, обычно создаваемом с помощью инструмента MAKEDEV, который считывает файлы конфигурации и создает узлы устройств. Это называется статической настройкой и использовалась в течение многих лет практически во всех unix-подобных ОС, включая Linux. У этого подхода есть несколько недостатков.
Первая попытка Linux решить эту проблему была названа devfs (некоторые другие unix-подобные операционные системы также имеют файловую систему devfs, но я не знаю подробностей). Это была виртуальная файловая система, в которой ядро предоставляло узлы устройств. Afaict он был относительно мертворожденным, он продвигал свою собственную нестандартную схему именования устройств, нравится вам это или нет, и не предлагал огромных преимуществ по сравнению со статическим / dev
. Позже появился udev. Здесь использовалась другая модель. Файл tmpfs был смонтирован на / dev, и dameon пользовательского пространства управлял узлами устройств в нем на основе уведомлений от ядра. https://lwn.net/Articles/65197/
Совсем недавно появилось нечто под названием devtmpfs. Это похоже на компромисс, когда ядро создает набор базовых узлов устройства, но пользовательское пространство может занять место, если требуется более сложная функциональность.
En el sistema Altos 386 (i386/SCO SysV Unix ), un ejemplo de un dispositivo estático que tuvo que crearse en la actualización del kernel (o reinstalar )fue la plétora de /dev/mt entradas para admitir unidades de cinta SCSI HP Dat. El número mayor era para el controlador de cinta en el bus SCSI y los menores eran para el número de dispositivo SCSI y las características (raw, rewind no rewind vienen a la mente ). Había dos buses SCSI y podían admitir múltiples unidades de cinta mixtas y sistemas de archivos de extensión HD montados en cada bus.
Los desarrolladores eran solo entradas en el sistema de archivos raíz hechas con MAKEDDEV. A efectos prácticos, podrían vincularse a nombres más utilizables, por lo que el dispositivo de rebobinado en el dispositivo SCSI 5 podría vincularse a /dev/st (cinta SCSI para distinguirlo de una unidad DC300 incorporada)
Más tarde, tuvimos que hacer lo mismo cuando comenzamos a usar Slackware Linux y tuvimos que parchear manualmente el kernel.99b para usar las tarjetas ethernet combinadas 3Com 3C509b correctamente. Estos tenían conectores cat5, BNC y AUI y el juego estaba obteniendo la interfaz correcta en el momento del arranque