Модуль ядра является небольшим количеством скомпилированного кода, который может быть вставлен в ядро во времени выполнения, такой как с insmod
или modprobe
.
Драйвер является небольшим количеством кода, который работает в ядре, чтобы говорить с некоторым устройством. Это "управляет" аппаратными средствами. Почти каждый бит аппаратных средств в Вашем компьютере имеет связанный драйвер. ¹ значительная часть рабочего ядра код драйвера. ²
Драйвер может быть создан статически в файл ядра на диске. ³ драйвер может также быть создан как модуль ядра так, чтобы он мог быть динамично загружен позже. (И затем возможно, разгруженный.)
Общепринятая практика состоит в том, чтобы создать драйверы как модули ядра, если это возможно, вместо того, чтобы связать их статически с ядром, так как это дает больше гибкости. Существуют серьезные основания не к, однако:
Иногда данный драйвер абсолютно необходим для помогания начальной загрузке системы встать. Этого не происходит так часто, как Вы могли бы вообразить, из-за initrd функции.
Статически созданные драйверы могут быть точно, что Вы хотите в системе, которая статически ограничена по объему, такие как встроенная система. То есть, если Вы знаете заранее точно, какие драйверы всегда будут необходимы и что это никогда не будет изменяться, у Вас есть серьезное основание не обеспокоиться динамическими модулями ядра.
Если Вы создаете свое ядро статически и отключаете динамическую опцию загрузки модуля Linux, Вы предотвращаете модификацию во время выполнения кода ядра. Это обеспечивает дополнительную безопасность и устойчивость за счет гибкости.
Не все модули ядра являются драйверами. Например, относительно недавняя функция в ядре Linux - то, что можно загрузить другой планировщик процесса. Другой пример - то, что более составные типы аппаратных средств часто имеют несколько универсальных слоев, которые находятся между драйвером оборудования низкого уровня и пространством пользователя, таким как драйвер HID USB, который реализует конкретный элемент стека USB, независимого от используемого оборудования.
Asides:
Одним исключением к этому широкому оператору является микросхема ЦП, которая не имеет никакого "драйвера" по сути. Ваш компьютер может также содержать аппаратные средства, для которых у Вас нет драйвера.
Остальная часть кода в ядре ОС предоставляет универсальные услуги как управление памятью, IPC, планирование, и т.д. Эти сервисы могут, прежде всего, обслуживать приложения пространства пользователя, как с примерами, связанными ранее, или они могут быть внутренними сервисами, используемыми драйверами или другой инфраструктурой внутриядра.
Тот в /boot
, загруженный в RAM во время начальной загрузки загрузчиком рано в процессе начальной загрузки.
IMO, это - путь как lftp
клиентские работы. Проверьте файл журнала /var/log/secure
(на RHEL/CentOS) или подобный для событий как
pam_listfile(vsftpd:auth): Refused user root for service vsftpd
Я проверил такое поведение путем сниффинга трафика FTP (RHEL 6.x, vsftpd 2.2.2, lftp 4.0.9). Соединение FTP не устанавливается, пока Вы не вводите некоторую допустимую команду FTP (иначе ls
) и не, когда Вы вводите имя пользователя и его пароль.
vim /etc/vsftpd/vsftpd.conf
Приезжайте в предпоследнюю строку.... userlist_enable="NO"
Сохраните его и после этого
# vim /etc/vsftpd/ftpusers
удалите "корневого" пользователя из него... в этом файле
Пользователи, которым не разрешают войти в систему через ftp. Сохраните его и перезапустите сервис. Я надеюсь, что это будет работать.....
pam_listfile(vsftpd:auth): Refused user root for service vsftpd
в журнале. Похож на lftp кэши имя пользователя и пароль, и дает формальную подподсказку, которая заставила меня недооценить это, фактическое соединение устанавливается. Это пытается установить фактическую связь только при вводе допустимой команды. Я проверил время, когда я ввожу команду, и она соответствует времени отказа в журнале. – sjsam 26.09.2013, 11:41