Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

модули ядра загружаемые или интегрированные?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Ср Апр 28 2004 11:34    Заголовок сообщения: модули ядра загружаемые или интегрированные? Ответить с цитатой

Что существенно различного в том, чтобы скомпилить ядро с загружаемыми модулями и полностью интегрированными?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Чт Апр 29 2004 22:53    Заголовок сообщения: Ответить с цитатой

Правильный путь на обычном компе:
Делать модули загружаемыми. Что понадобиться - то загрузится.
Делать все интегрированным глупо. Будет в ОЗУ болтаться много ненужного.

Правильный путь для серверов и встраиваемых(Embedded) систем:
Все модули вкомпилированы в ядро, лишнее выкинуто.
Используется меньше ОЗУ, в частности не нужны софт и библиотеки для загрузки модулей.

Разницы в быстродействии между загружаемыми и интегрированными модулями нет.

Есть клинические случаи. Некоторые драйверы работают только если модули для них вкомпилены в ядро, либо только как загружаемые модули. Это сильно зависит от версии драйверов и версии ядра. Определяется только опытным путем.
Я по таким граблям ходит в первых версия ядра 2.4 и модулями для сетевухи Intel Pro 100.

В 2.4.18 и выше глюки были пофиксены и работает все путью и так и эдак.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Пт Апр 30 2004 09:26    Заголовок сообщения: Ответить с цитатой

Вобщем -то думаю аналогично, вот только..
and3008 писал(а):
... Будет в ОЗУ болтаться много ненужного.

какая разница где будет валяться ненужное в ОЗУ или на винте? Ненужные модули компилить вообще не надо Smile А нужные всё-равно либо вместе с ядром память занимают, либо сами по себе.
И вот кстати, вопрос возник: большинство модулей ведь заливаются в память при старте машины и инициализации. И состав загруженных модулей практически не меняется. Это в основном драйвера устройств и файловых систем. Их есть смысл интегрировать. Какие же тогда модули загружаются и выгружаются в процессе работы? Это как раз тот случай когда экономится ОЗУ.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Пт Апр 30 2004 09:41    Заголовок сообщения: Ответить с цитатой

какая разница где будет валяться ненужное в ОЗУ или на винте?

Уважаемый! Вы в курсе, что ОЗУ быстрее винта в N-раз? И если все модули сделать интерированными, то лишний код неиспользуемых модулей будет болтаться мертвым грузом в ОЗУ.
Да, через некоторое время этот неиспользуемый код будет вытеснен планировщиком на винт в своп. Но на фига козе баян? Проще сделать модули загружаемыми и не напрягать систему по-напрасну.

Если у вас ОЗУ огромное, то это еще не значит, что оно такое у всех. Особенно это касается встраиваемых устройств. Там и винтов-то нет. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dmitry.Karpov



Зарегистрирован: 30.11.2003
Сообщения: 415
Откуда: Moscow

СообщениеДобавлено: Пт Апр 30 2004 19:53    Заголовок сообщения: Re: модули ядра загружаемые или интегрированные? Ответить с цитатой

Те модули, которые будут использоваться постоянно (например, др-ры сетевых карт), надо вкомпидировать. Те модули, которые будут использоваться время от времени (например, файловые системы CD-ROM и DOS/FAT) лучше держать загружаемыми.
_________________
Благословен Бог, сотворивший меня сисадмином!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Ср Май 05 2004 08:38    Заголовок сообщения: Ответить с цитатой

and3008 писал(а):
какая разница где будет валяться ненужное в ОЗУ или на винте?

Уважаемый! Вы в курсе, что ОЗУ быстрее винта в N-раз? И если все модули сделать интерированными, то лишний код неиспользуемых модулей будет болтаться мертвым грузом в ОЗУ.
Да, через некоторое время этот неиспользуемый код будет вытеснен планировщиком на винт в своп. Но на фига козе баян? Проще сделать модули загружаемыми и не напрягать систему по-напрасну.

Если у вас ОЗУ огромное, то это еще не значит, что оно такое у всех. Особенно это касается встраиваемых устройств. Там и винтов-то нет. Smile


Уважаемый, надо внимательнее читать вопрос, а не растопыривать пальцы. Я В КУРСЕ чем ОЗУ отличается от винта.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Ср Май 05 2004 08:46    Заголовок сообщения: Re: модули ядра загружаемые или интегрированные? Ответить с цитатой

Dmitry.Karpov писал(а):
Те модули, которые будут использоваться постоянно (например, др-ры сетевых карт), надо вкомпидировать. Те модули, которые будут использоваться время от времени (например, файловые системы CD-ROM и DOS/FAT) лучше держать загружаемыми.

Спасибо, это то, чем я интересовался.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Ср Май 05 2004 11:00    Заголовок сообщения: Ответить с цитатой

по-моему однозначного ответа нет: всё зависит от апликации.
примеры с обоих концов:
Если у тебя просто ПК, то как Д.К. и сказал.
А если у тебя устройство к-рое включается и выключается постоянно,
и тебе важно ускорить этот процесс, то быстрее загрузится маленькое ядро =>
после запуска init загрузятся самые важные драйвера, и уже можно использовать
устройство [а в это время загружаются менее важные] и поэтому стоит использовать побольше загружабельных модулей, ну и загружать их в правильном порядке.
А если напр. тебе нужен пуленепробиваемый сервер пользователей, подвергающийся локальным атакам, то сам механизм загружаемых модулей его подвергает опасности и не стоит вообще в ядре включать поддержку загружаемых модулей.
короче, мой ответ - 1-я строка :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Ср Май 05 2004 17:09    Заголовок сообщения: Ответить с цитатой

Размер самого большого ядра не больше пары мегабайт. Всё это заливается в память за секунду. Хотя в случае загрузки с дискеты это действительно имеет смысл Smile Вот только размер модуля намного меньше размера ядра, так что разница в скорости будет не в разах, а всего лишь в процентах.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dmitry.Karpov



Зарегистрирован: 30.11.2003
Сообщения: 415
Откуда: Moscow

СообщениеДобавлено: Ср Май 05 2004 17:20    Заголовок сообщения: Ответить с цитатой

fLamer писал(а):
Размер самого большого ядра не больше пары мегабайт. Всё это заливается в память за секунду. Хотя в случае загрузки с дискеты это действительно имеет смысл :) Вот только размер модуля намного меньше размера ядра, так что разница в скорости будет не в разах, а всего лишь в процентах.

Лично я за незнание латентности жёсткого диска страшно дрючу своих физтеховских студентов. Модуль - это отдельный файл, лежащий в произвольном месте; а обращение к произвоьному месту занимает в среднем полоборота диска. Для средненького диска с 7200 rpm это составляет около 4 ms, что по компьютерным меркам очень много.

Хотя по сравнению с выполнением стартовых скриптов, которые задействуют тучу файлов, загрузка модулей действительно несущественна.
_________________
Благословен Бог, сотворивший меня сисадмином!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Чт Май 06 2004 11:33    Заголовок сообщения: Ответить с цитатой

Dmitry.Karpov писал(а):

Лично я за незнание латентности жёсткого диска...

Видимо, это ко мне относится.. Smile
Dmitry.Karpov писал(а):
Модуль - это отдельный файл, лежащий в произвольном месте; а обращение к произвоьному месту занимает в среднем полоборота диска. Для средненького диска с 7200 rpm это составляет около 4 ms, что по компьютерным меркам очень много.

Хотелось бы добавить, что размер модуля измеряется КИЛОбайтами и считывается за один оборот диска. А полный размер ядра максимум до двух, как я сказал МЕГАбайт. Выигрыш в скорости загрузки ядра минимальный. ДК, ты говорил о частой загрузке ядра, а не модулей.
4 мс - это много? Ты упоминал про драйверы файловых систем CD-ROM и DOS (floppy). Ты сможешь с такой скоростью вставлять диски и монтировать дискеты? Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mr.Nobody
Гость





СообщениеДобавлено: Ср Май 12 2004 18:27    Заголовок сообщения: Ответить с цитатой

Господа не нужно забывать о той цели которую вы преследуюте: если важна безопасность и производительность - то все модули надо выжигать калёным железом (делать монолитное ядро), если важно удобство - то можно использовать модульное.
Кстати - по поводу того что в ОЗУ в случае монолита будет болтаться много лишнего - ничто не мешает скомпалить напр несколько ядер под определённые кофигурации. К тому же (согласно моим представлениям о работе Unix систем) благодаря (обычно) интегрированным буферному и страничному кешу хоть раз использованный модуль будет тоже болтаться в ОЗУ (настройка по умолчанию не оптимальна, а тонкую настройку буферного и страничного кеша тот кто использует модульные ядра скорее всего делать не станет Smile).
По моему мнению модульные ядра нужно использовать в системах подверженных изменениям железа или при невозможности (относительно частой) перезагрузки компа.
P.S. Это была точка зрения ярого сторонника монолитных ядер
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...