"Зверек другого рода"

"Зверек другого рода"

Ядро имеет некоторые отличия в сравнении с обычными пользовательскими приложениями, эти отличия хотя и не обязательно приводят к серьезным усложнениям при программировании, но все же создают специфические проблемы при разработке ядра.

Эти отличия делают ядро зверьком другого рода. Некоторые из старых правил при этом остаются в силе, а некоторые правила являются полностью новыми. Хотя часть различий очевидна (все знают, что ядро может делать все, что пожелает), другие различия не так очевидны. Наиболее важные отличия описаны ниже.

• Ядро не имеет доступа к библиотеке функций языка С.

• Ядро программируется с использованием компилятора GNU С.

• В ядре нет такой защиты памяти, как в режиме пользователя.

• В ядре нельзя легко использовать вычисления с плавающей точкой.

• Ядро использует стек небольшого фиксированного размера.

• Поскольку в ядре используются асинхронные прерывания, ядро является преемптивным и в ядре имеется поддержка SMP, то в ядре необходимо учитывать наличие параллелизма и использовать синхронизацию.

• Переносимость очень важна.

Давайте рассмотрим более детально все эти проблемы, так как все разработчики ядра должны постоянно помнить о них.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Выполнение обещания зависит от другого человека X

Из книги автора

Выполнение обещания зависит от другого человека X Обещайте только то, что находится под вашим полным контролем. Например, если вашей целью является завершение модуля, в работе над которым также участвует другая группа, вы не можете обещать завершить модуль с полной


(6.11) На сервере имеется две сетевые карты, каждая из них смотрит в свой сегмент локальной сети. Роутинг включен. Компьютеры из одного сегмента не видят компьютеры из другого сегмента, хотя всё пингуется.

Из книги автора

(6.11) На сервере имеется две сетевые карты, каждая из них смотрит в свой сегмент локальной сети. Роутинг включен. Компьютеры из одного сегмента не видят компьютеры из другого сегмента, хотя всё пингуется. Для того что бы компьютеры из разных сегментов видели друг друга в


(8.5) Постоянно зависает Adobe Photoshop 5.5 при вставлении из клипборда или импорте клипборда при переключении из другого софта.

Из книги автора

(8.5) Постоянно зависает Adobe Photoshop 5.5 при вставлении из клипборда или импорте клипборда при переключении из другого софта. Эта проблема встречается на ограниченном количестве материнских плат, и связанна с ошибкой реализации MMX в Ph5.5. Для решения проблемы достаточно удалить


Назначение другого следующего оператора

Из книги автора

Назначение другого следующего оператора Представьте, что вы, двигаясь сквозь свою программу в пошаговом режиме, вдруг обнаруживаете, что в следующем операторе содержится большая ошибка. Вместо того чтобы выполнить этот оператор и тем самым ввести свою программу в


1.6.6. Правило расчетливости: пишите большие программы, только если после демонстрации становится ясно, что ничего другого не остается

Из книги автора

1.6.6. Правило расчетливости: пишите большие программы, только если после демонстрации становится ясно, что ничего другого не остается Под "большими программами" в здесь подразумеваются программы с большим объемом кода и значительной внутренней сложностью. Разрешая


1.6.6 Правило расчетливости: пишите большие программы, только если после демонстрации становится ясно, что ничего другого не остается

Из книги автора

1.6.6 Правило расчетливости: пишите большие программы, только если после демонстрации становится ясно, что ничего другого не остается Под "большими программами" в здесь подразумеваются программы с большим объемом кода и значительной внутренней сложностью. Разрешая


8.7. Определение, является ли класс объекта подклассом другого класса

Из книги автора

8.7. Определение, является ли класс объекта подклассом другого класса ПроблемаИмеется два объекта и требуется узнать, имеют ли их классы отношения на уровне базовый класс/производный класс, или они не связаны друг с другом.РешениеИспользуйте оператор dynamic_cast, который