Операционная система UNIX. Руководство программиста
Операционная система UNIX. Руководство программиста
В 1983 году Кен Томпсон и Деннис Ритчи были удостоены Премии Тьюринга Ассоциации Пользователей Вычислительных Машин (ACM) за разработку операционной системы UNIX. В аннотации, в частности, говорилось:
Успех системы UNIX основывается на удачном выборе нескольких ключевых идей и их элегантной реализации. Благодаря системе UNIX появилось поколение разработчиков программного обеспечения с новой идеологией программирования, основой которой является многократное использование имеющихся программ.
Должны ли программисты, использующие ОС UNIX, интересоваться тем, что делали Томпсон и Ритчи? Имеет ли это сегодня какой-либо смысл? Это необходимо, поскольку понимание идеологии, заложенной в проект системы, а также знание атмосферы, в которой проходила ее реализация, способствует наиболее быстрому ее освоению.
Простая формулировка философии системы UNIX Еще о строках, столбцах и подпрограмме initscr( ) Управление семафорами Неоднозначности и конфликты
Есть ситуация, в которой приведенные выше методы разрешения конфликтов не подходят. Имеется в виду разбор арифметических выражений. Большинство конструкций, обычно используемых в арифметических выражениях, можно естественным образом описать при помощи понятия уровней старшинства (приоритетов) операций и информации о левой или правой ассоциативности. Применяя данный механизм, можно использовать неоднозначные грамматики с соответствующими правилами разрешения неоднозначностей для порождения алгоритмов разбора, которые быстрее и легче задавать, чем алгоритмы, построенные из однозначных грамматик.
Гипертекстовая информационная система состоит из множества информационных узлов, множества гипертекстовых связей, определенных на этих узлах и инструментах манипулирования узлами и связями. Технология World Wide Web - это технология ведения гипертекстовых распределенных систем в Internet, и, следовательно, она должна соответствовать общему определению таких систем. Это означает, что все перечисленные выше компоненты гипертекстовой системы должны быть и в Web.
Web, как гипертекстовую систему, можно рассматривать с двух точек зрения. Во-первых, как совокупность отображаемых страниц, связанных гипертекстовыми переходами (ссылками - контейнер ANCHOR). Во-вторых, как множество элементарных информационных объектов, составляющих отображаемые страницы (текст, графика, мобильный код и т.п.). В последнем случае множество гипертекстовых переходов страницы - это такой же информационный фрагмент, как и встроенная в текст картинка.
При втором подходе гипертекстовая сеть определяется на множестве элементарных информационных объектов самими HTML-страницами, которые и играют роль гипертекстовых связей. Этот подход более продуктивен с точки зрения построения отображаемых страниц "на лету" из готовых компонентов.
Разработка распределенных приложений в Microsoft.NET Framework
В настоящее время много внимания уделяется технологиям разработки распределенных приложений, охватывающих несколько независимых компьютеров. В течение последних десяти лет было создано большое число технологий и стандартов, использование которых должно было помочь разработчикам в создании распределенных приложений масштаба предприятия. Однако поддержка многих технологий была изначально достаточно трудоемкой и сложной для разработчиков прикладных программ, использовавших классические языки программирования, такие как C/С++.
Одной из задач, стоящих перед разработчиками Microsoft, создающими так называемую общеязыковую инфраструктуру (Common Language Infrastructure, CLI), так же известную как .NET, была наиболее полная поддержка средств разработки распределенных систем. Поэтому в платформе разработки приложений Microsoft .NET Framework имеется встроенная поддержка четырех взаимосвязанных технологий, предназначенных для использования в распределенных системах: очередей сообщений (messaging queues), объектов COM+, объектов .NET Remoting, веб служб (web services).
Каждый художник знает, какое значение имеет текстура бумаги, ее рельеф, способность впитывать краску. Хорошая высококачественная бумага в достойной рамке — это уже произведение искусства. Вам предстоит убедиться в том, какие эффекты можно передать с помощью бумаги и каково ее значение в вашей работе.
Представление о бумажных текстурах за последнее десятилетие значительно изменилось. Бумажные коллекции различных фирм обогатились удивительными текстурами, имитирующими разнообразные поверхности и материалы, которые никак, казалось бы, не связаны с бумагой. Например, знаменитая коллекция бумажных текстур Tatiana имитирует всевозможные ткани от грубого сурового полотна до тончайшего шелка.
Если вы до сих пор не работали с издательскими системами, то такой вопрос вполне закономерен. Современные текстовые редакторы обладают весьма широкими возможностями и позволяют управлять такими элементами верстки, какие еще в недавнем прошлом были прерогативой издательских систем. Но, тем не менее, если речь идет именно об издательстве, то для получения высококачественных макетов вам не обойтись без системы верстки. Ниже приведена сравнительная таблица возможностей одной из наиболее популярных издательских систем — PageMaker и одного из наиболее широко применяемых текстовых редакторов — Microsoft Word. Несмотря на общую тенденцию расширения возможностей текстовых редакторов (например, поддержка стилей абзацев, шаблонов, работы с графикой, кернинга и трекинга) и заимствования издательскими системами некоторых удачных находок современных текстовых редакторов (макроопределения и макроязыки, создание электронных публикаций и др.), как такового слияния не происходит. Это обусловлено различной направленностью этих программ. Издательские системы ориентированы на типографское воспроизведение создаваемых документов. Они содержат многие "лишние" для текстовых процессоров функции: поддержку цветоделения и управления цветом, тонкие настройки характеристик шрифта (точный, заказной и ручной кернинг и трекинг), треппинг, высокую точность расположения элементов и др. Но без этих функций при создании полиграфического продукта не обойтись.
Нельзя не упомянуть и об отличии, которое бросается в глаза. Издательские системы ориентированы на работу с текстовыми и графическими блоками, в то время как текстовые процессоры — на работу с одним текстовым блоком, хотя и состоящим из произвольного числа колонок. Эта концепция издательских систем позволяет с абсолютной свободой (вы не приходили в отчаяние от неожиданного поведения рамок в Microsoft Word?) размещать текстовые и графические материалы на страницах. Вы не чувствуете себя скованным ограничениями инструмента, а следуете только своей дизайнерской идее.
Речь идет не о сравнении, что лучше: издательская система или текстовый процессор, а о том, что более соответствует вашим задачам. Мы советуем использовать текстовый процессор для создания небольших документов, рассчитанных на узкий круг читателей. Если же документ предназначен для чтения широкой аудиторией, то лучше обратиться к издательской системе. В случае создания макетов для типографского тиражирования издательская система просто необходима.
Работая на командном языке, пользователь может вводить переменные, присваивать им значения, выполнять простые команды, строить составные команды, управлять потоком выполнения команд, объединять последовательность команд в процедуры (командные файлы). На уровне командного языка доступны такие свойства системы как соединение процессов через программный канал, направление стандартного ввода/вывода в конкретные файлы, синхронное и асинхронное выполнение команд.
Если указанный интерпретатору файл является текстовым и содержит команды командного языка (командный файл) и при этом имеет разрешение на выполнение (помечен "х"), Shell-интерпретатор интерпретирует и выполняет команды этого файла. Другой способ вызова командного файла - использование команды sh (вызов интерпретатора), в котором первым аргументом указывается имя командного файла.
В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. Компьютеры, стоившие в то время значительно дороже, чем разработка любой программы, требовали высокоэффективного кода. Такой код разрабатывался вручную на языке Ассемблер. В середине 50-х годов под руководством Джона Бэкуса для фирмы IBM был разработан алгоритмический язык программирования FORTRAN. Несмотря на то, что уже существовали разработки языков, выполняющие преобразование арифметических выражений в машинный код, создание языка FORTRAN (FORmula TRANslator), предоставляющего возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода, стало точкой отсчета эры алгоритмических языков программирования.
К языку FORTRAN предъявлялись требования cоздания высокоэффективного кода. Поэтому многие конструкции языка первоначально разрабатывались с учетом архитектуры IBM 407. Успех разработки этого языка привел к тому, что производители других вычислительных систем стали создавать свои версии трансляторов. С целью некоторой возможной на тот момент унификации языка язык FORTRAN IV, разработанный в 1966 году, стал первым стандартом, именуемым FORTRAN 66.
Гипертекстовая информационная система состоит из множества информационных узлов, множества гипертекстовых связей, определенных на этих узлах и инструментах манипулирования узлами и связями. Технология World Wide Web - это технология ведения гипертекстовых распределенных систем в Internet, и, следовательно, она должна соответствовать общему определению таких систем. Это означает, что все перечисленные выше компоненты гипертекстовой системы должны быть и в Web.
Web, как гипертекстовую систему, можно рассматривать с двух точек зрения. Во-первых, как совокупность отображаемых страниц, связанных гипертекстовыми переходами (ссылками - контейнер ANCHOR). Во-вторых, как множество элементарных информационных объектов, составляющих отображаемые страницы (текст, графика, мобильный код и т.п.). В последнем случае множество гипертекстовых переходов страницы - это такой же информационный фрагмент, как и встроенная в текст картинка.
При втором подходе гипертекстовая сеть определяется на множестве элементарных информационных объектов самими HTML-страницами, которые и играют роль гипертекстовых связей. Этот подход более продуктивен с точки зрения построения отображаемых страниц "на лету" из готовых компонентов.
Базы данных - это совокупность сведений (об объектах, процессах, событиях или явлениях), относящихся к определенной теме или задаче. Она организована таким образом, чтобы обеспечить удобное представление этой совокупности, как в целом, так и любой ее части.
Реляционная база данных представляет собой множество взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа. Каждая строка таблицы содержит данные об одном объекте (например товаре, фирме, клиенте), а столбцы таблицы содержат различные характеристики этих объектов - атрибуты (например, наименования и цены товаров, адреса и телефоны фирм или клиентов). Строки таблицы называются записями; все записи имеют одинаковую структуру - они состоят из полей, в которых хранятся атрибуты объекта (рис. 1.1). Каждое поле записи содержит одну характеристику объекта и имеет строго определенный тип данных (например, текстовая строка, число, дата). Все записи имеют одни и те же поля, только в них содержатся разные значения атрибутов. Для идентификации записей используется первичный ключ. Первичный ключ - это одно или несколько полей (столбцов), комбинация значений которых однозначно определяет каждую запись в таблице.
Можно создать иллюзию трехмерной глубины объектов путем применения эффектов контура, перспективы, выдавливания, скоса или тени.
В этом разделе содержатся следующие сведения
создание контура для объектов
применение перспективы к объектам
создание векторных выдавливаний
создание эффектов скоса
создание теней
создание перетекания объектов
Программные и аппаратные средства, необходимые для работы с Flash:
Для IBM-совместимых компьютеров:o Intel Pentium 133 (рекомендуется 200) или эквивалентный процессор;
Windows 95/98/2000/NT - 32 Мбайт оперативной памяти (рекомендуется 64 Мбайт), 32 Мбайт свободного дискового пространства;
цветной монитор, поддерживающий разрешение 800x600;
CD-ROM - устройство чтения компакт-дисков.
Для компьютеров Macintosh:
Power Macintosh (рекомендуется G3 или выше), OS версии 8,5 и выше;
32 Мбайт оперативной памяти, 40 Мбайт свободного дискового пространства;
цветной монитор, поддерживающий разрешение 800x600;
CD-ROM - устройство чтения компакт-дисков.
Системные требования Flash Player
Flash Player предназначен для воспроизведения фильмов Flash и может быть установлен как отдельная программа. Для работы Flash Player необходимо следующее:
Microsoft Windows 95/NT 4 и выше или PowerPC с OS 8,1 и выше;
если вы работаете с Netscape (для Windows или Macintosh), - подключаемый модуль (plugin) для Netscape 3 и выше;
если вы работаете с Microsoft Internet Explorer 3 и выше (для Windows 95/98/NT), - элемент управления ActiveX для Internet Explorer 3 и выше;
для Flash Player Java Edition необходим браузер, поддерживающий Java.
В некотором царстве, некотором государстве (а конкретно - в солнечной Невадщине) жил да был парень один. Звали его Дэниел Роббинс. Учился он в местном университете, а на досуге занимался всякими Unix'ами: поучаствовал в разработке FreeBSD, был одним из разработчиков проекта Stampede Linux... А потом взял и изобрел свой дистрибутив, который назвал Gentoo, быстро ставший очень популярным.
Впрочем, о Gentoo знают все, имевшие дело с Linux (а кто не знает - может узнать о нем на официальном сайте, , там и по русски немало написано). А вот о том, что Дэниел был еще и талантливым техническим писателем, нынешнее поколение линуксоидов начинает забывать. И писал он о массе вещей, интересных как IT-специалисту, так и конечному пользователю: о командной оболочке bash и о программных RAID-массивах, о программе awk и об управлении логическими томами (LVM), о редакторе sed и политике управления дисковыми разделами (полный список его статей можно найти на , поиском по ключевому слову Robbins).
Разработка системы управления объектно-ориентированной БД
Развитие вычислительной техники и увеличение объемов хранимой информации привело к необходимости выделения технологии баз данных в отдельную науку. Как правило, базы данных хранили множество однотипных данных, предоставляя пользователю сервис доступа к нужной ему информации. На смену иерархическим и сетевым базам данных пришли реляционные базы данных. Успех реляционных баз данных обусловлен их более простой архитектурой, наличием ненавигационного языка запросов и, главное, ясностью математики реляционной алгебры.