настольный справочник программиста

helloworld.ru >> операционные системы >> linux

Ядро ОС Linux. Руководство системного программиста

Введение

  • Сведения об авторских правах

  • Глава 1. " Прежде чем вы начали..."

  • 1.1. Типографские соглашения

  • 1.2. Необходимые знания для изучения книги

  • 1.3. Наставление читателю

  • Глава 2. Драйверы устройств

  • 2.1. Что такое драйвер устройства

  • 2.2. Драйверы пользовательского уровня

  •       2.2.1. Пример - vgalib
          2.2.2. Пример : Преобразование мыши
  • 2.3. Основы драйверов устройств

  •       2.3.1. Область имени (именная область)
          2.3.2. Выделение памяти
          2.3.3. Символьные и блочные устройства
          2.3.4. Прерывание или поочередное опрашивание устройств ?
          2.3.5. Механизмы замораживания и активизации
          2.3.5.1. Усложненный механизм заморозки
          2.3.6. VFS
          2.3.6.1. Функция lseek()
          2.3.6.2. Функции read() и write()
          2.3.6.3. Функция readdir()
          2.3.6.4. Функция select()
          2.3.6.5. Функция ioctl()
          2.3.6.6. Функция mmap()
          2.3.6.7. Функции open() и release()
          2.3.6.8. Функция init()
  • 2.4. Cимвольные устройства

  •       2.4.1. Инициализация
          2.4.2. Прерывания или последовательный вызов?
  • 2.5. Дpайвеpы для блочных устpойств

  •       2.5.1. Инициализация
          2.5.1.1. Файл blk.h
          2.5.1.2. Опознание комплектующих PS
          2.5.2. Механизм кеширования буфера
          2.5.3. Strategy Routine
  • 2.6. Функции поддержки

  • 2.7. Написание драйвера SCSI

  •       2.7.1. Зачем нужны драйверы SCSI
          2.7.2. Что такое SCSI?
          2.7.2.1. Термины SCSI
          2.7.3. Команды SCSI
          2.7.4. С чего начинать?
          2.7.5. Введение: сбор инструментов
          2.7.6. Интерфейс SCSI в Linux
          2.7.6. Структура Scsi_Host
          2.7.7.1. Переменные в структуре Scsi_Host
          2.7.7.1.1. name
          2.7.7.1.2. can_queue
          2.7.7.1.3. this_id
          2.7.7.1.4. sg_tablesize
          2.7.7.1.5. cmd_per_lun
          2.7.7.1.6. present
          2.7.7.1.7. unchecked_isa_dma
          2.7.7.2. Функции структуры Scsi_Host
          2.7.7.2.1. detect()
          2.7.7.2.1.1. Запрос IRQ
          2.7.7.2.2. Запрос канала DMA
          2.7.7.2.3. info()
          2.7.7.2.4. queuecommand()
          2.7.7.2.5. done()
          2.7.7.2.6 command()
          2.7.7.2.7 abort()
          2.7.7.2.8 reset()
          2.7.7.2.9 slave_attach()
          2.7.7.2.10 bios_param()
          2.7.8. Структура Scsi_Cmnd
          2.7.8.1. Зарезервированная область
          2.7.8.1.1. Информационные переменные
          2.7.8.1.2 Список Разветвления - компановки. (Scatter-gather)
          2.7.8.2. Рабочие области
          2.7.8.2.1. Указатель scsi_done()
          2.7.8.2.2. Указатель host_scribble
          2.7.8.2.3. Структура Scsi_Pointer

    Глава 3. Файловая система /proc

  • 3.1. Каталоги и файлы /proc

  • 3.2. Стpуктуpа файловой системы /proc

  • 3.3. Пpогpамиpование файловой системы /proc

  • Глава 4. Планиpовщик Linux

  • 4.1. Исходный текст

  • Глава 5. Как pаботают системные вызовы

  • 5.1. Что поддеpживет 386 пpоцессоp?

  • 5.2. Как Linux использует пpеpывания и исключения

  • 5.3. Как Linux устанавливает вектора системных вызовов

  • 5.4. Как установить свой собственный системный вызов

  • Глава 6. Управление памятью в Linux

  • 6.1. Введение

  • 6.2. Физическая память

  • 6.3. Память пользовательского процесса

  • 6.4. Данные управления памятью в таблице процессов

  • 6.5. Инициализация памяти

  •       6.5.1. Процессы и программа управления памятью
  • 6.6. Выделение и освобождение памяти: политика страничной организации

  • 6.7. Программы контроля корректности использования страниц

  • 6.8. Листание (paging)

  • 6.9. Управление памятью в 80386

  •       6.9.1. Страничная организация (paging) в 386
          6.9.2. Сегменты в 80386
          6.9.3. Селекторы в 80386
          6.9.4. Дескрипторы сегментов
          6.9.5. Макросы, используемые при установке дескрипторов

    Приложения

  • Приложение А

  •       A.1. Аннотированная библиография
  • Приложение B

  •       B.1. Обзор исходного текста ядра Linux
          B.2. Загрузка системы
          В.3. Как ядро рассматривает процесс
          B.4. Создание и удаление процесса
          B.5. Запуск программы
  • B.6. Доступные файловые системы

  •       B.7. Краткий обзор сущности типа файловой системы
          B.8. Пультовый драйвер
          B.8.1. Как файловые операции посылаются пульту
          B.8.2. Передача информации пульту
          B.8.3. Чтение из пульта
          B.8.4. Управление клавиатурой
          B.8.5. Переключение пультов
          B.8.6. Механизм выбора пульта
          B.8.7. Контроль над вводом-выводом устройства (ioctl())

    Rambler's Top100 AllBest.Ru Rambler's Top100