Linux From Scratch
Linux From Scratch читать книгу онлайн
Gerard Beekmans
Copyright © 1999-2002 by Gerard Beekmans
Перевод: Денис Каледин, Ник Фролов, Алекс Казанков.
Версия 4.0
Эта книга описывает процесс создания Linux системы с нуля, используя лишь исходные коды необходимого программного обеспечения.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Bin86
Официальная ссылка
Bin86 (0.16.3): http://www.cix.co.uk/~mayday/
Содержание Bin86
Последняя проверка: версия 0.16.3
Программы
as86, as86_encap, ld86, nm86 (ссылка на objdump86), objdump86 и size86 (ссылка на objdump86)
Описания
as86
as86 – ассемблер для процессоров 8086...80386.
as86_encap
as86_encap – скрипт для вызова as86 и конвертирования полученного кода в код C (prog.v) для включения или слинковки с программами вроде инсталляторов загрузочных секторов.
ld86
ld86 понимает только объектные файлы, полученные от ассемблера as86. Возможна линковка как в смешанный, так и раздельный исполняемый код I&D.
nm86
Таблица символов для бинарного файла.
objdump86
Сохраняет детальную информацию о бинарном файле.
size86
Выводит общий объем данных в бинарном файле.
Зависимости Bin86
Последняя проверка: версия 0.16.0.
Bash: sh Binutils: as, ld, strip Fileutils: chmod, install, ln, mv Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed
Binutils
Официальная ссылка
Binutils (2.13): ftp://ftp.gnu.org/gnu/binutils/
Содержимое Binutils
Последняя проверка: версия 2.12.1.
Программы
addr2line, ar, as, gasp, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and strip
Описания
addr2line
addr2line переводит программные адреса в имена файлов и номера строк. Given an address and an executable, используется отладочная информация исполняемого файла, чтобы определить, какое имя файла и номер строки связаны с данным адресом.
ar
ar создает и изменяет архивы, а также производит их распаковку. Архив – файл, содержащий несколько файлов в виде, позволяющем восстановить оригинал.
as
as используется для ассемблирования вывода the GNU C Compiler, gcc для использования с линкером ld.
gasp
gasp – Assembler Macro Preprocessor.
gprof
gprof отображает статистику системных вызовов.
ld
ld объединяет несколько объектных и архивных файлов и устанавливает символьные отношения. Последний шаг в сборке скомпилированной программы – запуск ld.
nm
nm перечисляет символы из объектных файлов.
objcopy
objcopy utility копирует содержимое одного объектного файла в другой. objcopy использует библиотеку GNU BFD для чтения/записи объектных файлов. Возможна запись конечного объектного файла в формате, отличном от исходного.
objdump
objdump выводит информацию об одном или нескольких объектных файлах. Опции указывают, какую информацию выводить. Эта информация полезна для программистов, разрабатывающих компиляторы, в противоположность тем, кому нужно просто скомпилировать и запустить программу.
ranlib
ranlib генерирует оглавление содержимого архива и сохраняет его в архиве. Список будет содержать все символы, определенные членами архива, that is a relocatable object file.
readelf
readelf выводит информацию об бинарных файлах типа elf.
size
size выводит размеры секций –и общий размер– каждого указанного объектного файла. По умолчанию, генерируется одна строка для каждого объектного файла или модуля в архиве.
strings
Для каждого заданного файла strings выводит последовательность отображаемых символов длиной минимум 4 знака (или указанной длины), завершающуюся непечатным символом. По умолчанию, выводятся лишь строки из инициализированных и загруженных частей объектных файлов. Для других типов файлов выводятся строки из всего файла.
strings зачастую используется для определения содержимого нетекстовых файлов.
strip
strip удаляет все или указанные символы из объектных файлов. Список объектных файлов может включать архивы. Должен быть задан как минимум один объектный файл. Модификация указанных файлов приоритетнее, чем запись модифицированных копий под другими именами.
Библиотеки
libbfd.[a,so] и libopcodes.[a,so]
Описания
libbfd
libbfd – библиотека Binary File Descriptor.
libopcodes
libopcodes – библиотека для работы с опкодами, используется в сборке утилит вроде objdump. Опкоды – «читаемые» версии инструкций процессора.
Зависимости Binutils
Последняя проверка: версия 2.11.2.
Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, rmdir, touch Flex: flex Gcc: cc, cc1, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, true, uname Texinfo: install-info, makeinfo Textutils: cat, sort, tr, uniq
Bison
Официальная ссылка
Bison (1.35): ftp://ftp.gnu.org/gnu/bison/
Содержимое Bison
Последняя проверка: версия 1.35.
Программы
bison и yacc
Описания
bison
bison – генератор анализаторов синтаксиса (parser) выражений (заменяет yacc – Yet Another Compiler Compiler). Что же делает bison? Это программа, генерирующая программу, анализирующую структуру текстового файла. Вместо написания собственной программы пользователь указывает, как соотносятся объекты, и основываясь на данных правилах, создается анализатор. Существует множество примеров анализа синтаксиса, например калькулятор.
Дано выражение:
1 + 2 * 3
Человек легко получит результат 7. Почему? Because of the structure. Наш мозг знает, как интерпретировать выражение. Компьютер этого не знает, и bison инструмент, представляющий выражение компьютеру в следующем виде:
+ / * 1 / 2 3
Начиная с вершины дерева и обрабатывая 2 and 3, соединенных знаком умножения, компьютер перемножает 2 и 3. Результат умножения запоминается и следующее, что обрабатывается – 2*3 и 1, соединенные знаком сложения. Сложение 1 и предыдущего результата дает 7. Все составные выражения могут быть преобразованы в подобное дерево и вычислены. Конечно же, bison используется не только в калькуляторах.
yacc
Мы написали скрипт bash с именем yacc, вызывающий bison с опцией -y. Это необходимо для совместимости с программами, использующими yacc вместо bison.
Зависимости Bison
Последняя проверка: версия 1.31.
Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, head, tr, uniq
Bzip2
Официальная ссылка
Bzip2 (1.0.2): ftp://sourceware.cygnus.com/pub/bzip2/
Содержимое Bzip2
Последняя проверка: версия 1.0.2
Программы
bunzip2 (ссылка на bzip2), bzcat (ссылка на bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless и bzmore
Описания
bunzip2
bunzip2 распаковывает файлы, сжатые bzip2.
bzcat
bzcat (или bzip2 -dc) распаковывает указанные файлы на стандартный вывод.
bzcmp, bzdiff
bzcmp и bzdiff позволяют использовать cmp и diff для файлов, сжатых bzip2.
bzegrep, bzfgrep, bzgrep
bzegrep, bzfgrep, и bzgrep позволяют использовать egrep, fgrep, or grep для файлов, сжатых bzip2.
bzip2
bzip2 сжимает файлы, используя Burrows-Wheeler block sorting алгоритм сжатия текста и код Huffman. Сжатие, обычно: значительно лучше, чем достигаемое традиционными архиваторами, основанными на LZ77/LZ78, и достигает производительности PPM семейства статистических архиваторов.
bzip2recover
bzip2recover восстанавливает данные из поврежденных файлов bzip2.
bzless
bzless – подобный less фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.