Linux программирование в примерах - [9]
Ядро распознает, что исполняемый файл содержит двоичный объектный код, проверяя первые несколько байтов файла на предмет совпадения со специальными магическими числами. Это последовательности двух или четырех байтов, которые ядро распознает в качестве специальных. Для обратной совместимости современные Unix-системы распознают несколько форматов. Файлы ELF начинаются с четырех символов «>\177ELF
».
Помимо двоичных исполняемых файлов, ядро поддерживает также исполняемые сценарии (скрипты). Такой файл также начинается с магического числа: в этом случае, это два обычных символа ># !
. Сценарий является программой, исполняемой интерпретатором, таким, как командный процессор, awk, Perl, Python или Tcl. Строка, начинающаяся с >#!
, предоставляет полный путь к интерпретатору и один необязательный аргумент:
>#! /bin/awk -f
>BEGIN {print "hello, world"}
Предположим, указанное содержимое располагается в файле >hello.awk
и этот файл исполняемый. Когда вы набираете '>hello.awk
', ядро запускает программу, как если бы вы напечатали '>/bin/awk -f hello.awk
'. Любые дополнительные аргументы командной строки также передаются программе. В этом случае, >awk
запускает программу и отображает общеизвестное сообщение >hello, world
.
Механизм с использованием >#!
является элегантным способом скрыть различие между двоичными исполняемыми файлами и сценариями. Если >hello.awk
переименовать просто в >hello
, пользователь, набирающий '>hello
', не сможет сказать (и, конечно, не должен знать), что >hello
не является двоичной исполняемой программой.
1.1.4. Устройства
Одним из самых замечательных новшеств Unix было объединение файлового ввода- вывода и ввода-вывода от устройств.[14] Устройства выглядят в файловой системе как файлы, для доступа к ним используются обычные права доступа, а для их открытия, чтения, записи и закрытия используются те же самые системные вызовы ввода-вывода. Вся «магия», заставляющая устройства выглядеть подобно файлам, скрыта в ядре. Это просто другой аспект движущего принципа простоты в действии, мы можем выразить это как никаких частных случаев для кода пользователя.
В повседневной практике, в частности, на уровне оболочки, часто появляются два устройства: >/dev/null
и >/dev/tty
.
>/dev/null
является «битоприемником». Все данные, посылаемые >/dev/null
, уничтожаются операционной системой, а все попытки прочесть отсюда немедленно возвращают конец файла (EOF).
>/dev/tty
является текущим управляющим терминалом процесса — тем, который он слушает, когда пользователь набирает символ прерывания (обычно CTRL-C) или выполняет управление заданием (CTRL-Z).
Системы GNU/Linux и многие современные системы Unix предоставляют устройства >/dev/stdin
, >/dev/stdout
и >/dev/stderr
, которые дают возможность указать открытые файлы, которые каждый процесс наследует при своем запуске.
Другие устройства представляют реальное оборудование, такое, как ленточные и дисковые приводы, приводы CD-ROM и последовательные порты. Имеются также программные устройства, такие, как псевдотерминалы, которые используются для сетевых входов в систему и систем управления окнами, >/dev/console
представляет системную консоль, особое аппаратное устройство мини-компьютеров. В современных компьютерах >/dev/console
представлен экраном и клавиатурой, но это может быть также и последовательный порт
К сожалению, соглашения по именованию устройств не стандартизированы, и каждая операционная система использует для лент, дисков и т.п. собственные имена. (К счастью, это не представляет проблемы для того, что мы рассматриваем в данной книге.) Устройства имеют в выводе '>ls -l
' в качестве первого символа >b
или >с
.
>$ ls -l /dev/tty /dev/hda
>brw-rw-rw- 1 root disk 3, 0 Aug 31 02:31 /dev/hda
>crw-rw-rw- 1 root root 5, 0 Feb 26 08:44 /dev/tty
Начальная '>b
' представляет блочные устройства, а '>c
' представляет символьные устройства. Файлы устройств обсуждаются далее в разделе 5.4, «Получение информации о файлах».
1.2. Модель процессов Linux/Unix
Процесс является работающей программой.[15] Процесс имеет следующие атрибуты:
уникальный идентификатор процесса (PID);
• родительский процесс (с соответствующим идентификатором, PPID);
• идентификаторы прав доступа (UID, GID, набор групп и т.д.);
• отдельное от всех других процессов адресное пространство;
• программа, работающая в этом адресном пространстве;
• текущий рабочий каталог ('>.
');
• текущий корневой каталог (>/
; его изменение является продвинутой темой);
• набор открытых файлов, каталогов, или и того, и другого;
• маска запретов доступа, использующаяся при создании новых файлов;
• набор строк, представляющих окружение[16];
• приоритеты распределения времени процессора (продвинутая тема);
• установки для размещения сигналов (signal disposition) (продвинутая тема); управляющий терминал (тоже продвинутая тема).
Когда функция >main()
начинает исполнение, все эти вещи уже помещены в работающей программе на свои места. Для запроса и изменения каждого из этих вышеназванных элементов доступны системные вызовы; их освещение является целью данной книги.
Новые процессы всегда создаются существующими процессами. Существующий процесс называется
Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.
Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.
Реестр Windows является важной частью операционной системы, во многом определяющей ее работу. Изучив приведенный в этой книге материал, вы научитесь редактировать реестр Windows Vista по своему усмотрению, а также освоите многочисленные приемы оптимизации содержащихся в нем настроек операционной системы.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Iptables Tutorial 1.1.19Автор: (C) Oskar AndreassonCopyright (C) 2001-2002 by Oskar AndreassonПеревод: (C) Андрей КиселевПоследнюю версию документа можно получить по адресу: http://iptables-tutorial.frozentux.netfb2-документ отформатирован с использованием большого количества тегов и . Чтобы в «читалке» (в частности, Haali Reader) текст выглядел «красиво», настройте свойства соотвествующих стилей (emphasis и strong), изменив, например, их цвета или начертания. (прим. автора fb2-документа)
Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.Для преподавателей информатики и методистов, а также для студентов и аспирантов соответствующих специальностей.© 2002-3, Максим Отставнов.© 2002, Андрей Добровольский (раздел 3.1).Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL)