Познай свою ОС j1m (j1m@list.ru) Хакер, номер #080, стр. 080-098-5 Ты можешь дать указание ядру запустить вместо init любой другой процесс, просто указав параметр init=/путь/до/программы. Например init=/bin/bash. Все больше дружелюбных к пользователю дистрибутивов начинают использовать ядерный патч bootsplash (или более продвинутый fbsplash) для сокрытия процесса загрузки за красивой картинкой. Система udev только недавно начала использоваться в Linux. До этого был devfs, который, в отличие от udev, находился в ядре. Именно из-за того, что в Linux-дистрибутивы, помимо ядра, входит множество различного свободно софта под лицензией GPL, Linux следует называть GNU/Linux. Стандартная библиотека языка C О том, что "UNIX и C друзья на веки" знает каждый юниксоид. Поэтому можно предположить, что и ядро, и программное окружение написаны именно на C. Но сам язык не представляет никаких встроенных средств для вывода на экран, работы с файлами, памятью и другими ресурсами. Все эти действия должна выполнять внешняя библиотека. Такая библиотека присутствует в любом UNIX и называется LibC (сейчас используется ее GNU-версия - glibc). С ней слинкована каждая программа, можно в этом легко убедиться, натравив ldd на любой бинарник в каталоге /bin или /usr/bin. Ты увидишь заветную строку "libc.so.6 => /lib/libc.so.6 (0xb7eb2000)". Сама библиотека лежит в каталоге /lib и называется libc.so.6 (цифра 6 означает, что она совместима с шестым релизом оригинальной libc). Чтобы уменьшить объем, занимаемый библиотекой в памяти, ее разбили на несколько частей и менее востребованные функции поместили в другие либы. Например: libm - математические функции, libdl - функции для загрузки библиотек "на лету", libcrypt - криптографические функции. Вместе с библиотекой поставляется динамический загрузчик (ld-linux.so.2 для Linux). При запуске программы он помещается в память первым и загружает все необходимые программе библиотеки, наличие которых определяет по файлу /etc/ld.so.cache. Этот файл, в свою очередь, создается утилитой ldconfig, читающей конфиг /etc/ld.so.conf. Кстати, такие популярные инструменты, как ldd, iconv и locale, тоже являются частью пакета glibc. |