Информация о книге

978-5-9775-0747-9

Главная  » Научно-техническая литература » Информационные технологии. Компьютеры » Операционные системы » Linux » Разработка Linux-приложений

Колисниченко Д.Н., Разработка Linux-приложений


серия: Профессиональное программирование
BHV, 2012 г., 978-5-9775-0747-9


Описание книги

Рассмотрены основные аспекты программирования в Linux: от программирования на языках командных оболочек bash и tcsh до создания приложений с графическим интерфейсом с использованием библиотек Tk, glib, GTK+ и средства dialog, Подробно дано программирование на C/C++ в Linux: использование компилятора gcc, ввод/вывод в Linux, создание многопоточных приложений, сетевых приложений архитектуры клиент/сервер, а также разработка модулей ядра для современной линейки ядер. Описан популярный среди разработчиков утилит язык TCL. Особое внимание уделено отладке и оптимизации программ, рассмотрены отладчик gdb и профайлер gprof. Для программистов.

Скачать, но не бесплатно эту книгу можно в интернет-магазинах

  Литрес - 255 руб.

Читать онлайн


Доступен для чтения фрагмент книги

Ключевые слова

Поделиться ссылкой на книгу



Содержание книги

Введение
ЧАСТЬ I. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ
КОМАНДНОЙ ОБОЛОЧКИ
Глава 1. Командные интерпретаторы
1.1. Файл/etc/shells
1.2. Оболочка sh
1.3. Оболочка csh
1.4. Оболочка ksh
1.5. Оболочка bash
1.6. Оболочка zsh
1.7. Оболочка tcsh
1.8. Оболочка ash
1.9. Выбор оболочки
Глава 2. Командный интерпретатор bash
2.1. Настройка bash
2.2. Автоматизация задач с помощью bash
2.3. Привет, мир!
2.4. Использование переменных в собственных
сценариях
2.5. Передача параметров сценарию
2.6. Массивы и bash
2.7. Циклы
2.8. Условные операторы
2.9. Функции
2.10. Примеры сценариев
2.10.1. Сценарий мониторинга журнала
2.10.2. Переименование файлов
2.10.3. Преобразование систем счисления
Глава 3. Создание сценариев на tcsh
3.1. Использование tcsh
3.2,. Конфигурационные файлы tcsh
3.3. Создание сценариев на tcsh.
3.3.1. Переменные, массивы и выражения
3.3.2. Чтение ввода пользователя
3.3.3. Переменные оболочки tcsh
3.3.4. Управляющие структуры.
Условный оператор if
Условный оператор ifthenelse
Оператор foreach
Оператор while
Оператор switch
3.3.5. Встроенные команды tcsh
Глава 4. Пакет dialog: псевдографический
интерфейс пользователи
4.1. Необходимость в графическом интерфейсе
4.2. Простейшее диалоговое окно
4.3. Информационное окно
4.4. Ввод текста
4.5. Создание меню
4.6. Проблема выбора: зависимые и независимые
переключатели
4.7. Выбор даты и времени
4.8. Индикатор
4.9. Диалог выбора файла
4.10. Дополнительные возможности
Глава 5. Компилятор gec и вспомогательные
программы
5.1. Выбор редактора
5.2. Компилятор gec
5.2.1. Установка компилятора
5.2.2. Компиляция первой программы в Linux
5.2.3. Опции компилятора
5.3. Автоматическая сборка программ
5.3.1. Введение в автоматическую сборку
5.3.2. Синтаксис Makefile
ЧАСТЬ П. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА С В
LINUX
Глава 6. Библиотеки. Автоматическая сборка
библиотек
6.1. Динамические и статические библиотеки
6.2. Создание статической библиотеки
6.3. Создание динамической библиотеки
Глава 7. Переменные окружения
7.1. Еще один способ передачи параметров
7.2. Что такое окружение?
7.3. Чтение переменных окружения в вашей
программе
7.4. Модификация окружения
Глава 8. Ввод/вывод в Linux
8.1. Понятие ввода/вывода. Перенаправление
ввода/вывода в командной строке.
8.2. Библиотечные функции С для организации
ввода/вывода
8.3. Низкоуровневый ввод/вывод
8.3.1. Системные вызовы файлового ввода/вывода
8.3.2. Системный вызов crealQ
8.3.3. Чтение файла: системные вызовы ореп() и
readQ
8.3.4. Системный вызов writeQ
8.3.5. Системный вызов IseekQ
ЧАСТЬ III. СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ
Глава 9. Концепция многозадачности
9.1. Основы многозадачности Linux
9.1-1. Иерархия процессов
9.1.2. Аварийное завершение процесса
9.1.3. Программа top: кто больше всех расходует
процессорное время.
9.1.4. Команды nice и renice: изменение приоритета
процесса
9.2. Функция systemQ
Глава 10. Системные вызовы для работы с
процессами.
10.1. Создание и запуск процессов
10.1.1. Модели описания состояний процессов
10.1.2. Особенности forkQ
10.1.3. Семейство функций exec
10.2. Системный вызов wailQ: ожидание
завершения дочернего процесса.
10.3. Обработка сигналов
10.4. Получение информации о процессе.
Глава 11. Многопоточные приложения
11.1. Введение в потоки.
11.2. Функция pthreadcreateQ
11.3. Передача аргументов потоковой функции
11.4. Правильное завершение потока: функция
pthread_exit().
11.5. Избавляемся от бесконечного цикла: функция
pthreadJoinQ.
11.6. Получение информации о потоке.
11.7. Прерывание потока
Глава 12. Взаимодействие процессов
12.1. Способы взаимодействия
12.2. Каналы
12.3. Именованные каналы типа FIFO.
12.4. Очереди сообщений
12.4.1. Межпроцессное взаимодействие System V
12.4.2. Структуры ядра для работы с очередями
12.4.3. Создание очереди сообщений.
12.4.4. Постановка и чтение сообщений
12.5. Семафоры
12.5.1. Введение в семафоры
12.5.2. Структуры ядра
12.5.3. Создание набора семафоров
12.5.4. Операции над семафорами
12.5.5. Управление семафором
12.6. Разделяемые сегменты памяти
12.6.1. Структуры ядра.
12.6.2. Создание разделяемого сегмента памяти и
привязка к нему
12.6.3. Демонстрационная программа
Глава 13. Создание модуля ядра
13.1. Что такое модуль ядра
13.2. Команды Ismod, insmod, modprobe
13.3. Установка необходимых пакетов.
13.4. Ваш первый модуль.
13.5. Компиляция модуля.
13.6. Тестируем наш модуль.
13.7. Сборка сложных модулей
13.8. Настоящее программирование ядра
13.8.1. Отличие обычных программ от модулей
ядра
13.8.2. Пространства, пространства и еще раз
пространства.
13.8.3. Драйверы устройств и ядро
13.9. Символьные устройства.
13.9.1. Возможные операции
13.9.2. Регистрация устройства.
13.9.3. Драйвер абстрактного символьного
устройства.
13.10. Создание файла в /ргос.
13.11. Полезный пример: клавиатурный шпион.
ЧАСТЬ IV. ФАЙЛОВАЯ СИСТЕМА LINUX
Глава 14. Введение в файловую систему
14.1. Родные файловые системы Linux
14.2. Особенности файловой системы Linux.
14.2.1. Имена файлов в Linux.
14.2.2. Файлы и устройства
14.2.3. Корневая файловая система и
монтирование.
14.2.4. Стандартные каталоги Linux
14.3. Внутреннее строение файловой системы
14.4. Монтирование файловых систем.
14.4.1. Команды mount и umounl.
14.4.2. Файлы устройств и монтирование.
Жесткие диски
Приводы оптических дисков.
Дискеты.
Флешки и USB-диски.
14.4.3. Опции монтирования файловых систем.
14.4.4. Монтирование разделов при загрузке
14.4.5. Подробно о UUID и файле /etc/fstab
14.4.6. Системный вызов mountQ
Глава 15. Операции над каталогами
15.1. Команды для работы с каталогами.
15.2. Функции для работы с каталогами
15.2.1. Изменение текущего каталога
15.2.2. Открываем, читаем и закрываем каталог
15.2.3. Получение информации о файлах
15.2.4. Создание и удаление каталога.
Глава 16. Операции с файлами
16.1. Команды для работы с файлами
16.2. Системные вызовы для работы с файлами
16.2.1. Переименование файла: renameQ
16.2.2. Удаление файла и каталогов: unlinkQ и
rmdirQ
16.2.3. Системный вызов umaskQ
16.2.4. Работа со ссылками.
Глава 17. Получение информации о файловой
системе.
17.1. Список смонтированных файловых систем.
17.2. Функции basenameQ ugetcwdQ
Глава 18. Права доступа к файлам и каталогам
18.1. Изменение прав доступа. Системный вызов
chmodf)
18.2. Смена владельца файла. Системный вызов
chownQ
Глава 19. Псевдофайловые системы
19.1. Что такое псевдофайловая система.
19.2. Виртуальная файловая система sysfs
19.3. Виртуальная файловая система/ргос
19.3.1. Информационные файлы
19.3.2. Файлы, позволяющие изменять параметры
ядра
19.3.3. Файлы, изменяющие параметры сети
19.3.4. Файлы, изменяющие параметры
виртуальной памяти.
19.3.5. Файлы, позволяющие изменить параметры
файловых систем
19.3.6. Как сохранить изменения
ЧАСТЬ V. СЕТЕВОЕ ПРОГРАММИРОВАНИЕ
Глава 20. Введение в ТСРЯР
20.1. Модель OSI
20.2. Что такое протокол
20.3. Адресация компьютеров
Глава 21. Программирование сокетов: теория.
21.1. Что такое сокет
21.2. Создание и связывание сокета
21.3. Установление связи с удаленным
компьютером
21.4. Передача данных.
21.5. Завершение сеанса связи.
Глава 22. Программирование сокетов: практика
22.1. Создание приложения клиент/сервер.
22.1.1. Программа-сервер
22.1.2. Программа-клиент
22.2. Параметры сокета
22.3. Сигналы, связанные с сокетами
22.4. Неблокирующие операции
ЧАСТЬ VI. СОЗДАНИЕ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА
СРЕДСТВАМИ TCL/TK.
Глава 23. Введение в TCL/Tk
23.1. Знакомство с TCL
23.2. Установка TCL/Tk
23.3. Первая программа
Глава 24. Синтаксис TCL
24.1. Знакомство с синтаксисом TCL
24.1.1. Формат TCL-сценария
24.1.2. Команды puts и format: вывод и
форматирование строки.
24.1.3. Группировка аргументов
24.1.4. Переменные.
24.1.5. Процедуры
24.1.6. Получаем ввод пользователя.
24.1.7. Математические операции.
24.1.8. Условная команда //
24.1.9. Команда while
24.1.10. Команда for
24.2. Строки
24.2.1. Команда string
24.2.2. Сравнение строк
24.2.3. Получаем информацию о строках
24.2.4. Модификация строк
24.2.5. Конкатенация строк
24.3. Списки
24.3.1. Команда list: создание списка.
24.3.2. Команда concat: слияние списков.
24.3.3. Команда lappend: добавление элемента в
конец списка.
24.3.4. Доступ к элементам списка
24.3.5. Вставка новых элементов
24.3.6. Замена и удаление элементов списка.
24.3.7. Поиск элемента
24.3.8. Сортировка списка.
24.3.9. Преобразование строки в список и обратно
24.3.10. Цикл foreach.
24.4. Массивы
24.4.1. Отличие массивов от списков.
24.4.2. Команда array: обработка массивов.
24.5. Ошибки начинающих TCL-программистов.
Глава 25. Работа с файлами
25.1. Открываем и закрываем файлы.
25.2. Чтение файла.
25.3. Запись файлов.
25.4. Произвольный доступ к файлу
Глава 26. Понятие о виджстах.
26.1- Tk-программирование.
26.2. Компоненты Тк-приложения и имена
виджетов.
Глава 27. Основные элементы графического
интерфейса.
27.1- Команда раек
27.2 Команда button 27.3 Команда checkbuiton 27.4
Зависимые переключатели 27.5 Создание меню
27.6 Поля ввода 27.7 Списки и домашнее задание
27.8 Программирование событий. Команда bind
Глава 28. Многооконный интерфейс.
28.1. Менеджер геометрии grid.
28.1.1. Относительное размещение.
28.1.2. Абсолютное размещение
28.1.3. Объединение ячеек.
28.2. Фреймы.
28.3. Создание окон
28.4. Сообщения.
28.5. Диалоги открытия и сохранения файла
Глава 29. Практический пример.
29.1. Постановка задачи
29.2. Создание оболочки.
29.3. Запуск оболочки
29.4. Последние штрихи
ЧАСТЬ VII. БИБЛИОТЕКА GTK+
Глава 30. Знакомство с библиотекой
30.1. Введение в GTK+
30.2. Библиотека GLib
30.2.1. Типы данных
30.2.2. Строки в GLib
30.2.3. Функции распределения памяти.
30.2.4. Списки
30.2.5. Использование таймеров.
Глава 31. Первая программа на GTK+
31.1. Виджеты, контейнеры, сигналы и события
31.2. Создание первой программы.
31.3. Компиляция программы
31.4. Совершенствование программы. Обработчик
сигнала
Глава 32. Виджеты
32.1. Подробно о сигналах
32.1.1. Сигналы и события
32.1.2. Виджет EventBox
32.2. Русский текст и GTK
32.3. Состояния виджета.
32.4. Контейнеры, поля ввода и кнопки.
32.5. Зависимые и независимые переключатели.
32.6. Список CList
32.7. Диалог выбора файлов.
32.8. Визуальная разработка интерфейса
пользователя.
Глава 33. Редактор интерфейсов Glade
33.1. Быстрая разработка приложений
33.2. Установка Glade
33.3. Использование Glade
33.4. Создание программы
33.5. Компиляция программы.
33.6. Рекомендуемая литература
ЧАСТЬ VIII. ОТЛАДКА И ОПТИМИЗАЦИЯ ПРОГРАММЫ
Глава 34. Отладка программ. Трассировка
системных вызовов
34.1. Для чего нужна отладка программ
34.2. Введение в отладчик gdb
34.3. Пример использования gdb
34.4. Трассировка системных вызовов
Глава 35. Оптимизация программы
35.1. Назначение и основные опции профайлера
gprof
35.2. Практическое использование профайлера
Заключение
Приложение. Ядро Linux
П1. Установка исходных кодов ядра
П2. Настройка ядра
ПЗ. Компиляция ядра
Предметный указатель


Об авторе

Колисниченко Д.Н.
Инженер-программист и системный администратор.

Последние поступления в рубрике "Linux"



Linux All??“in??“One For Dummies Dulaney E.

8 BOOKS IN 1 Getting Started with Linux Linux Desktops Networking The Internet Administration Security Scripting Linux Certification Get up and running with the popular Linux operating system Are you a Linux user looking to take your...

Bash Pocket Reference Bash Pocket Reference Robbins A.

It\"s simple: if you want to interact deeply with Mac OS X, Linux, and other Unix-like systems, you need to know how to work with the Bash shell. This concise little book puts all of the essential information about Bash right at your fingertips....

Linux с нуля. Версия 7.3 Linux с нуля. Версия 7.3 Бикманс Ж.

Если вы мечтаете собрать свою собственную операционную систему, то книга \\\"Linux с нуля\\\" - именно для вас....

Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Колисниченко Д.Н., Разработка Linux-приложений в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.