13 Июл, 2003 г. - 18:45
Начало :: Статьи по темам :: Файлы/Примеры :: Обзоры программ
ФОРУМЫ :: Линки :: ЧАВО :: Поиск на сайте :: О нас 
Поиск по сайту:   
Войти
 Имя пользователя
 Пароль
 Запомнить меня


Все еще не зарегистрировались? Регистрация сделает комфортными Ваши посещения этого сайта, предоставит доступ ко многим дополнительным сервисам и настройкам, которые для анонимного пользователя недоступны.

Темы статей
· Все темы
· Графика (19 Дек, 2002)
· Разное (03 Июл, 2003)
· Обзоры (06 Мар, 2003)
· Проекты (10 Янв, 2003)
· Новости (13 Июл, 2003)
· СОМ (17 Янв, 2003)
· Сети (26 Июн, 2003)
· OS (11 Апр, 2003)
· Теория (27 Мая, 2003)
· Web (17 Мар, 2003)
· Драйвера (13 Июл, 2003)

Архив
· Архив статей

Общее
· Наша статистика
· Топ лист сайта
· Список участников


Rambler's Top100 MAFIA's Top100
Rambler's Top100

Форумы
 
Unix и другие :: Current process in Linux
Модерируется: grom
Перейти на страницу ( Предыдущая страница 1 | 2 )
Автор Current process in Linux
RXL

Новичок
Сообщений: 23
Отправлено: 12 Мар, 2003 г. - 16:51   
Выходит что так. А много ли ядру надо?
 
SlavaI

Хороший работник
Хороший работник
Сообщений: 494
Отправлено: 12 Мар, 2003 г. - 16:59   
Странно, как то не очень надежно выглядит, а если начнется вызов процедур одной из другой в драйвере, мало ли кто как пишет?
 
RXL

Новичок
Сообщений: 23
Отправлено: 12 Мар, 2003 г. - 22:01   
Как правило начинающие программисты драйверов не пишут, а если и пишут, то ядро часто падает и без переполнения стека (сам такой ). IMHO: лезешь на нулевой уровень (полная вседозволенность и не контролируемость) - думай чего делаешь и, прежде чем запустить свое детище, еще раз подумай как оно будет работать.

Как-то ища утечки в своей программе я, заодно, проверил пиковое использование стека - получилось меньше 4кб. При этом в своих подпрограммах была вложеность около 20-ти, передача параметров в стеке, переменные на стеке (в среднем 16-20 байт), плюс PCRE библиотека (она часто использует рекурсию), плюс не оптимизированный код (отладочная сборка gcc -g).
По моим наблюдениям, код ядра написан очень толково, хорошо вылизан, объявления структур и массивов в стеке редкость, часто используются inline функции и макросы, плюс gcc хорошо оптимизирует код.
Всего то для чего нужен этот стек - обслужить один системный вызов - все остальное происходит в контексте пользователя или прерывания.

P.S.: вот почему ядро написано на С и ассемблере, а не на С++. За что я С и уважаю.

 
Перейти на страницу ( Предыдущая страница 1 | 2 )