Отсутствие библиотеки libc

Отсутствие библиотеки libc

В отличие от обычных пользовательских приложений, ядро не компонуется со стандартной библиотекой функций языка С (и ни с какой другой библиотекой такого же типа). Для этого есть несколько причин, включая некоторые ситуации с дилеммой о курице и яйце, однако первопричина — скорость выполнения и объем кода. Полная библиотека функций языка С, и даже только самая необходимая ее часть, очень большая и неэффективная для ядра.

При этом не нужно расстраиваться, так как многие из функций библиотеки языка С реализованы в ядре. Например, обычные функции работы со строками описаны в файле lib/string.с. Необходимо лишь подключить заголовочный файл <linux/string.h> и пользоваться этими функциями.

Заголовочные файлы

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

Отсутствует наиболее известная функция printf(). Ядро не имеет доступа к функции printf(), однако ему доступна функция printk(). Функция printk() копирует форматированную строку в буфер системных сообщений ядра (kernel log buffer), который обычно читается с помощью программы syslog. Использование этой функции аналогично использованию printf():

printk("Hello world! Строка: %s и целое число: %d ",

 a_string, an_integer);

Одно важное отличие между printf() и printk() состоит в том, что в функции printk() можно использовать флаг уровня вывода. Этот флаг используется программой syslog для того, чтобы определить, нужно ли показывать сообщение ядра. Вот пример использования уровня вывода:

printk(KERN_ERR "Это была ошибка ! ");

Функция printk() будет использоваться на протяжении всей книги. В следующих главах приведено больше информации о функции printk().

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

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

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

Отсутствие комплексного подхода

Из книги Продвижение бизнеса в Интернет. Все о PR и рекламе в сети автора Гуров Филипп

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


Отсутствие единого стандарта

Из книги Skype: бесплатные звонки через Интернет. Начали! автора Гольцман Виктор Иосифович

Отсутствие единого стандарта Еще один существенный недостаток заключается в том, что в мире VoIP до сих пор нет единых стандартов. Связисты Международного телекоммуникационного союза (International Telecommunication Union, или ITU) продвигают стандарт Н.323, компьютерщики же придумали


Отсутствие поддержки ограничений при использовании операций

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Отсутствие поддержки ограничений при использовании операций При создании обобщенных методов для вас может оказаться сюрпризом появление ошибок компилятора, когда с параметрами типа используются операции C# (+, -, *, == и т.д.). Например, я уверен, вы сочли бы полезными классы


Отсутствие защиты (уровень 10)

Из книги Основы AS/400 автора Солтис Фрэнк

Отсутствие защиты (уровень 10) Уровень 10 означает самую низкую степень защищенности — отсутствие таковой. Для доступа к системе не требуется пароля и любому пользователю разрешен доступ ко всем системным ресурсам и объектам без ограничений. Единственное условие —


Bleach Bypass (Отсутствие отбеливания)

Из книги Photoshop. Лучшие фильтры автора Бондаренко Сергей

Bleach Bypass (Отсутствие отбеливания) Позволяет воссоздать эффект, применяемый в традиционной фотографии, в результате которого черно-белое изображение накладывается на цветное. Подобные фотографии обычно имеют высокую контрастность и пастельные тона.В настройках модуля


6.16.8 Конец списка вариантов и отсутствие операций

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

6.16.8 Конец списка вариантов и отсутствие операций Вариант "без операций" (No Operation) применяется для заполнения промежутков между вариантами датаграмм. Например, он используется для выравнивания следующего варианта по 16- или 32-разрядной границе.Конец списка вариантов (End of


8.9.11 Отсутствие аутентификации

Из книги Технология XSLT автора Валиков Алексей Николаевич

8.9.11 Отсутствие аутентификации Еще одним неприятным свойством версии 1 является отсутствие аутентификации для сообщений RIP. Если некто получил доступ к сети и сформировал сообщение с заведомо ложной информацией (фальсифицировав адрес источника), то это может сделать


8.9.12 Отсутствие распознавания медленных и быстрых связей

Из книги Инфобизнес на полную мощность [Удвоение продаж] автора Парабеллум Андрей Алексеевич

8.9.12 Отсутствие распознавания медленных и быстрых связей Сетевой администратор может вручную присвоить для связи значение счетчика попаданий. Следовательно, для связи "точка-точка" со скоростью 9,6 Кбайт/с можно установить значение счетчика 5, что укажет на ее меньшие


Отсутствие "побочных" эффектов

Из книги Создаем вирус и антивирус автора Гульев Игорь А.

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


Отсутствие result tree fragment

Из книги Антимозг [Цифровые технологии и мозг] автора Шпитцер Манфред

Отсутствие result tree fragment Главное и наиболее существенное отличие XSLT 1.1 от XSLT 1.0 состоит в том, что тип данных, известный в XSLT 1.0 как result tree fragment (результирующий фрагмент дерева) в XSLT 1.1. отсутствует. Вместо него в версии 1.1 используется множество узлов, состоящее из


Проверка на отсутствие АОН

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Проверка на отсутствие АОН Прежде чем получать адрес и звонить на BBS, нужно убедиться (например, путем звонка с сотового телефона, с телефона-двойника типа Panasonic, с таксофона или с телефона, который гарантированно не определяется системой АОН), что на данном узле


Стресс — это отсутствие самоконтроля

Из книги Разработка ядра Linux автора Лав Роберт

Стресс — это отсутствие самоконтроля Некоторых удивит факт, что существует четкая взаимосвязь между стрессом и самоконтролем. Обычно мы говорим: «Ну что за стресс!», если эскалатор сломан, нам пришлось подняться на пятый этаж по лестнице, утирая пот со лба. На самом деле с


Проблема четвертая – отсутствие развития

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

Проблема четвертая – отсутствие развития При всем многообразии мнений и школ графологическая база знаний, сформированная к середине XX века, остается без изменений. Она статична, не развивается дальше. Не анализируются новые характеристики почерка, а также новые


8.13. Отсутствие управления потоком в UDP

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

8.13. Отсутствие управления потоком в UDP Теперь мы проверим, как влияет на работу приложения отсутствие какого-либо управления потоком в UDP. Сначала мы изменим нашу функцию dg_cli так, чтобы она отправляла фиксированное число дейтаграмм. Она больше не будет читать из


Отсутствие защиты памяти

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

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