|
|
Copyright (c)
2003-2006, 2007, 2008 Nikolay N. Ivanov.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation;
Каждый имеет право
воспроизводить, распространять и/или вносить изменения в настоящий
Документ в соответствии с условиями GNU Free Documentation License,
Версией 1.2 или любой более поздней версией, опубликованной Free
Software Foundation;
|
Предисловие
|
| Целью создания такой "дополняемой" книги стало осознание многогранности феномена программирования в Linux.
|
|
Глава 1. Введение
|
| Предполагается, что читатель этой книги должен иметь хотя бы начальные пользовательские навыки при работе с GNU/Linux (умение вводить команды в оболочку и знать основы операционной системы), а также знать язык C хотя бы на начальном уровне. Я посчитал бессмысленным писать еще одну книгу по языку C. Если вы знаете язык C на уровне книги Кернигана и Ритчи "Язык программирования Си", то у вас не будет проблем с изучением материала этой книги.
|
|
Глава 2. Первый блин
|
| Чтобы сразу начать программировать, создадим еще один клон известной программы "Hello World". Что делает эта программа, вы знаете
|
|
Глава 3. Библиотеки
|
| В этой главе мы не будем рассматривать динамическую подгрузку, а остановимся на классическом использовании статических и динамических библиотек.
|
|
Глава 4. Окружение
|
| Окружение (environment) или среда - это набор пар ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ, доступный каждому пользовательскому процессу. Иными словами, окружение - это набор переменных окружения. Если вы используете оболочку, отличную от bash, то не все примеры этой главы могут быть воспроизведены.
|
|
Глава 5. Низкоуровневый ввод-вывод
|
| В языке C для осуществления файлового ввода-вывода используются механизмы стандартной библиотеки языка, объявленные в заголовочном файле stdio.h. Как вы вскоре узнаете консольный ввод-вывод - это не более чем частный случай файлового ввода-вывода. В C++ для ввода-вывода чаще всего используются потоковые типы данных. Однако все эти механизмы являются всего лишь надстройками над низкоуровневыми механизмами ввода-вывода ядра операционной системы.
|
|
Глава 6. МНОГОЗАДАЧНОСТЬ
|
| Эта глава открывает большую и очень важную для Linux-программиста тему многозадачности. Описать все сразу не получится, поэтому мы будем неоднократно возвращаться к многозадачности в последующих главах книги. Пристегните ремни покрепче!
|
|
Глава 7. ФАЙЛОВАЯ СИСТЕМА
|
| Файловая система в Linux многих пугает своей мнимой сложностью. Устройства, ссылки, "иноды", права доступа: всё это кажется очень непонятным. На самом же деле, если все "разложить по полочкам", то становится очевидным, что проще и быть не может. В этой главе мы совершим экскурс в файловую систему Linux и посмотрим на нее с позиции программиста.
|
|