Наши друзья:
дисконт магазины адидас |
Операционная система
• операционная система, функции операционной системы
• драйвер устройства
Большая часть этой книги посвящена компьютерной операционной системе. Что же она собой представляет, зачем нужна, можно ли работать на компьютере без операционной системы?
Операционная система — это хорошо продуманная и организованная совокупность программ, система, управляющая компьютером. Она является своеобразным «мостиком» между вами, прикладными программами, с которыми вы работаете, и аппаратурой компьютера. Операционная система решает несколько важных задач:
• Управляет работой всей аппаратуры как самого компьютера, так и подключенных к нему дополнительных «внешних» устройств, например, дисплея, клавиатуры, мыши, принтера, сканера и так далее. Можно ли обойтись без операционной системы и управлять работой различных частей компьютера непосредственно из прикладной программы? Конечно можно, но...
Представьте себе, что вам надо добраться из гостиницы в аэропорт. Обычно вы заказываете такси и спокойно ждете, когда за вами приедут и отвезут. Но вдруг обнаруживается, что в данной местности вообще нет понятия «такси», а есть некоторое количество свободных автомобилей. Вам предстоит самому выбрать подходящий, проверить его исправность, заглянуть в бензобак — имеется ли в нем бензин — и так далее. Кроме того, и управлять этим автомобилем вы должны сами, а вы не умеете водить автомобиль или научились водить совсем недавно и неуверенно чувствуете себя в сложном потоке движения на большой автостраде... Одной такой поездки будет достаточно, чтобы еще раз убедиться в том, что лучше, когда существует порядок, есть система, где каждый занимается своим делом, которому хорошо обучен. Централизованный подход к управлению аппаратурой компьютера повышает эффективность ее использования, снимает с разработчиков прикладных программ необходимость вникать во все детали работы многочисленных устройств и писать свои программные модули управления этими устройствами. Можно воспользоваться готовыми услугами, предоставляемыми «транспортной компанией» (операционной системой) для «доставки груза из одного места в другое» (передачи данных с одного устройства на другое). Заказываете — и получаете весь сервис целиком, не заботясь о внутренних деталях его выполнения («исправность автомобиля, наличие бензина, обученность водителя» и так далее). Разработчики дополнительных устройств к компьютерам также получают выгоды от такого подхода. Им не надо писать программы, обеспечивающие работоспособность всей технологической цепочки, заботиться о бесконфликтном сосуществовании с другими устройствами. Достаточно по заранее определенным правилам написать модуль, отвечающий за управление только данным устройством, так называемый драйвер (driver) этого устройства. Все остальное система сделает сама. По аналогии с автомобилями: если транспортная компания хочет использовать новый тип транспортного средства, ей надо предоставить само транспортное средство и обученного водителя — и все. Остальная часть общей процедуры перевозки пассажиров или грузов остается неизменной, лишь бы не были нарушены общие, заранее оговоренные правила. s Предоставляет возможность не только единообразно и централизованно управлять аппаратурой, но и использовать одинаковые элементы при построении прикладных программ (приложений). Приведем пример. При всем многообразии фирм-изготовителей и марок автомобилей, основные органы управления весьма схожи: круглый руль, педали газа и тормоза, панель приборов. Если вы научились управлять конкретной моделью автомобиля, то в большинстве случаев вам не составит труда освоить модель другой фирмы-производителя. А теперь представьте себе ситуацию, когда все автомобили используют разные органы управления: в одном автомобиле руль, в другом рычаги, как на тракторе, в третьем только кнопки... Наличие общего набора базовых программных модулей, узнаваемых элементов внешнего вида экономит время как на написание самих программ, так и на обучение пользованию ими, облегчает их понимание и применение. Операционная система как раз и предоставляет «кирпичики», основные элементы такого «конструктора»,— бери и строй свой дом из готовых базовых блоков: графических окон, меню, экранных кнопок и так далее. Кроме того, операционная система создает необходимые условия, среду для эффективного функционирования прикладных программ, отслеживает всевозможные нарушения и сбои в их работе. Выполняет роль диспетчера при распределении оперативной памяти между задачами.
Компьютерные системы хранят информацию на различных носителях: магнитных дисках, лентах, компакт-дисках и многих других. Но все эти устройства слишком медленны по сравнению со скоростью работы главного вычислителя — процессора. Чтобы процессор большую часть времени не простаивал в ожидании очередной порции данных для обработки или очередной команды для исполнения, вся оперативная информация, нужная процессору во время работы, хранится в более дорогой, но и существенно более быстрой памяти, которая так и называется — оперативная память. Эта память является одним из важнейших ресурсов компьютера и подлежит строгому учету.
Обеспечивает пользователя удобными средствами управления большим количеством информации, хранящейся на компьютере. Так называемая файловая система и модули операционной системы, работающие с ней, решают эту задачу. Об этом чуть подробнее в следующей части книги.
Диски, файлы, файловая система
• магнитные диски
• произвольный доступ
Компьютер — это не только средство обработки информации, но и ее «кладовая». В процессе развития компьютерных технологий было придумано немало способов хранения информации — от бумажных лент до оптических компакт-дисков. Однако наиболее популярными долговременными хранилищами стали магнитные носители, и особенно магнитные диски. В чем же их достоинства? Это устройства:
• многократной записи, в отличие от одноразовых бумажных лент, перфокарт или компакт-дисков;
• произвольного доступа: к любой части записанной информации можно добраться очень быстро, без последовательного просмотра и утомительной перемотки, характерных для бумажных или магнитных лент;
• быстрые, емкие и компактные;
• достаточно надежные;
• с очень неплохими показателями соотношения емкость/цена.
Таким образом, магнитные диски являются удобными и надежными устройствами хранения больших объемов информации.
Но информацию надо не только аккуратно «складывать в сундуки», но и уметь быстро ее находить и эффективно использовать. Немалую роль в достижении этой цели играет организация хранения информации, ее структура.
Одна из книг видного теоретика программирования и автора языка паскаль Никлауса Вирта (Niklaus Virth) называется: «Алгоритмы + структуры данных = программы».
Он справедливо считал, что эффективность программ зависит не только от используемых алгоритмов и качества их реализации, но и в равной степени от правильности выбора структуры данных, наиболее подходящей для каждой конкретной задачи. То же самое можно сказать и о способах хранения информации.
Файловое дерево
• структура хранения информации на магнитных дисках
• файл (file), папка (folder)
• имя файла, идентификатор файла
• иерархическая файловая система (Hierarchical File System, HFS)
Компьютерные системы создавались и создаются людьми, и многие решения, которые встречаются в компьютерных технологиях, «заимствованы» из обычной жизни.
Что мы делаем, когда наш стол постепенно начинает превращаться в бумажную свалку? Пытаемся навести порядок. Начинаем с простого — создаем для каждого документа титульный лист с названием документа, чтобы отличать один документ от другого, составляем список имеющихся документов, складываем их в аккуратную стопку и помещаем все это в шкаф. Нечто аналогичное существует и на компьютерах.
Документы, хранящиеся на диске компьютера, называются файлами (file). Это могут быть не только текстовые документы, но и картинки, музыкальные произведения, видеоклипы, шрифты, программы и так далее. Таким образом, файл — это некоторая самостоятельная, законченная, поименованная (имеющая название) единица хранения информации на носителях. Понятие «файл» пришло из того времени, когда основным средством ввода информации в компьютер была колода перфокарт — файл перфокарт. Хотя перфокарты практически нигде уже не используются, сам термин «файл» прочно закрепился в компьютерной терминологии.
Итак, организация информации на дисках вначале вполне соответствовала описанному выше сценарию. Для каждого диска создавался простой список имеющихся на нем файлов. При создании очередного файла информация о нем добавлялась в список, при уничтожении файла удалялась из списка. Объемы дисков быстро росли, а вместе с ними росло и количество файлов. Просматривать длинные списки в поисках нужного файла становилось утомительно.
Как быть, когда документов становится слишком много? Обычный путь — отсортировать документы по какому-либо критерию и сложить в папки для бумаг. Для каждой группы документов выделить отдельную папку. Если документов очень много, можно воспользоваться дополнительными внутренними разделителями, например: «счета», «накладные», «факсы», «заявки» и так далее. Все эти папки ы7^. подписать и положить в шкаф.
То же самое и на компьютерах: документы — это файлы, папки с документами так и называются папки (folders), а шкаф — это весь диск целиком. Спо соб хранения файлов несколько усложнился: вместо простого списка файлов появились новые структурные единицы — папки, в которых могут находиться как файлы, так и другие папки, в которых, в свою очередь, могут находиться другие файлы и папки.
Многоуровневая организация, при которой каждый новый уровень следует из предыдущего, от высшего к низшему, называется иерархической. Соответственно и файловая система на диске получила название иерархической файловой системы — Hierarchical File System (HFS).
Иерархическая файловая система обеспечивает более удобный способ хранения и возможность быстрого поиска требуемой информации. Иногда о ней говорят как о файловом дереве. Действительно, если все это представить в графическом виде, то получится дерево корнями вверх. От диска, «корня» всей системы, отходят вниз «ветви» — папки первого уровня, от них «ветви» — папки второго уровня и так далее. На «ветвях» всех уровней могут находиться «листья» — файлы. Строго говоря папка — это тоже файл, только содержит в себе не документ или программу, а информацию о других папках и файлах, «находящихся» в этой папке.
Каждый файл имеет свое имя и учетный номер, который называется идентификатором файла. Об идентификаторе мы мало что знаем — это внутренний параметр системы и обрабатывается системными программами, а вот имя файла нам вполне доступно. Во многих случаях мы можем изменять имя файла по своему усмотрению. Но некоторые имена файлов и их местоположение на диске строго предопределены. Изменение имен таких файлов или изменение их местоположения может привести к потере работоспособности системы. Поэтому никогда не переименовывайте и не перемещайте системные файлы.
Путь к файлу
• путь к файлу, разделители фрагментов пути
• полный путь, частичный путь
Если требуется указать местоположение конкретного файла в файловой структуре, записывают путь (path) к нему, то есть перечисляют имена всех папок, через которые надо пройти, чтобы добраться до требуемого файла. Имя самого файла указывается в этом списке последним. Имена папок в пути разделяются специальным символом. Файловые системы HFS и HFS+, стандартные для Mac OS, в качестве разделителя используют двоеточие, а в файловой системе UFS, распространенной в UNIX'e, разделителем является символ «/» (slash). В иллюстративных материалах по Mac OS X чаще всего встречается «/» — неизбежное влияние UNIX'a, но истинное значение символа разделителя определяется файловой системой носителя, на котором находится файл, а не операционной системой.
В большинстве случаев путь начинается с «корня» системы — с имени диска. Такой путь называется полным, например:
MacOSX/Users/Petrov/Documents/PriceLists.
Иногда достаточно указать только часть полного пути, начиная с некоторого места файловой структуры, например от папки, в которой вы в данный момент находитесь. Такой путь называется частичным, например: /Documents/PriceList.
Форматирование дисков
• форматирование магнитного диска, сектор
• таблица размещения, блок размещения
• потери дискового пространства
• файловые системы FAT32, HFS+
Каждый магнитный диск перед началом эксплуатации размечают, или форматируют. Фирма Apple для этого использует термин инициализация (Initialize).
Форматирование необходимо для того, чтобы подготовить диск к работе, создать на нем необходимые информационные структуры. Форматированию подвергаются либо новые диски, на которые еще ничего не было записано, либо проблемные, когда при работе с диском возникли серьезные неприятности, от которых не удается избавиться никаким другим способом. Такая операция полностью уничтожает всю ранее записанную на диск информацию, поэтому форматирование диска (если он не абсолютно новый) — это крайняя мера. Будьте внимательны и осторожны.
Форматирование не может устранить проблем, связанных с неправильной работой аппаратуры. Если на вашем компьютере барахлит контроллер диска или плохо работает шина, то форматирование диска не спасет.
Процесс форматирования состоит из двух этапов.
На первом этапе, который называется форматированием низкого уровня, весь диск делится на логические участки, называемые секторами, размером по 512 байт каждый. Все секторы нумеруются от нуля до некоторого максимального значения, определяемого емкостью данного конкретного диска. Чтобы добраться до нужного сектора на диске, надо знать его номер.
На втором этапе, называемом форматированием верхнего уровня, на диск записывается различная служебная информация, создается основа файловой системы.
Для учета занятости секторов, во время форматирования на диске создается специальная таблица — таблица размещения. Она имеет фиксированный размер: 216 = 65 536 записей (снова степень двойки...). В такой таблице можно учесть каждый сектор, если объем диска не превышает 32 Мбайт (65 536 х 512 байт). В противном случае приходится объединять два, три и более соседних сектора в один общий блок и хранить информацию о целых блоках. Размер блока размещения равен объему диска (в байтах), деленному на количество записей в таблице размещения и округленному до ближайшего кратного 512.
При создании или расширении файла ему выделяется целое число блоков, так как таблица размещения не может учитывать более мелкие участки диска. Даже если вы создали файл, состоящий всего из нескольких слов текста, на диске он все равно занимает не менее одного блока. Таким образом, часть пространства, выделенного файлам, просто пропадает зря. Если объем диска невелик, то и потери дискового пространства сравнительно невелики. С увеличением объемов дисков возрастают и размеры блоков размещения и соответственно суммарные объемы «пустот».
Во времена первых персональных компьютеров казалось, что диска объемом в 32 Мбайт будет более чем достаточно на долгие годы. Поэтому и таблица размещения размером 216 записей считалась вполне приемлемой. Однако время внесло свои коррективы. С появлением гигабайтных дисков ситуация заметно ухудшилась — потери дискового пространства стали ощутимы. Пришлось вводить новый стандарт на разметку дисков с существенно большими таблицами размещения. В мире PC этот новый стандарт стал называться FAT32 Аналогичный стандарт на Macintosh'ax называется HFS+. И в том, и в другом случае таблицы размещения содержат не 216, а 232 (4 294 967 296) записей.
Новые таблицы размещения позволяют учесть все секторы для дисков объемом до 2 Тбайт. Таким образом, переход на новый стандарт формата дисков позволяет уменьшить потери дискового пространства, но при этом возрастает размер самой таблицы.
Точности ради следует заметить, что для повышения эффективности работы в стандарте HFS+ предусмотрено, чтобы количество секторов в блоке размещения также являлось степенью двойки. Таким образом, блоки размещения в HFS+ могут быть объемом в 512 байт, 1 Кбайт (2x512), 2 Кбайт (4 х 512), 4 Кбайт (8x512) и так далее.
Дисковые тома
• дисковый том (volume), раздел (partition)
• монтирование тома (mount)
Так как потери дискового пространства зависят от размера блока размещения, а значит и от объема диска, можно попытаться уменьшить «пустоты» путем разбиения одного большого диска на несколько логических дисков меньшего объема, называемых томами (volumes).
Понятия диск и том часто используют как синонимы, хотя это не совсем корректно. Термин «диск» больше связан с физическим носителем информации, со средой хранения и электроникой управления устройством, а термин «том» связан с логической структурой данных на диске, с файловой системой.
Когда общее пространство доступных секторов диска делится на некоторые непрерывные фрагменты, это называется разбиением на разделы (partition). Когда, помимо этого, в разделах создаются все необходимые для отдельных дисков информационные структуры, разделы становятся томами. Деление диска на разделы происходит во время форматирования низкого уровня, создание дисковых томов — во время форматирования высокого уровня.
Каждый том ведет себя, с точки зрения пользователя, как отдельное устройство (логическое), хотя реально несколько томов могут быть расположены на одном и том же физическом устройстве, то есть могут занимать несколько разделов диска. Для каждого тома создается своя отдельная таблица размещения. Следовательно, логический том, составляющий часть большого диска, имеет меньшие блоки размещения и меньшие потери дискового пространства. Разбиение большого диска на логические тома имеет еще одно преимущество: при возникновении серьезных проблем с каким-либо томом и необходимостью применения радикальных мер по наведению порядка на нем, вы можете удалить информацию с данного тома, ничего не меняя на остальных томах.
Чтобы получить доступ к тому на магнитном диске, система сначала должна настроиться на работу с ним, установить канал обмена данными. Операция подготовки системы для работы с данным томом называется монтированием тома (mount). Пользователь может устанавливать доступ как к локальным томам, расположенным на данном компьютере, так и к удаленным, расположенным на других компьютерах (серверах), подключенных через компьютерную сеть. Кроме магнитных дисков в настоящее время используются и другие носители информации: компакт-диски, магнитооптические диски и другие. Многие из них поддерживают ту или иную файловую структуру и являются с точки зрения системы отдельными томами. Например, когда вы вставляете компакт-диск в соответствующий дисковод, система, как и в случае с магнитными дисками, сначала настраивается на работу с ним, «монтирует» этот диск, и лишь затем вы получаете к нему доступ.
Ссылки на файлы
• ссылка на файл
• символическая ссылка (symbolic link)
• ссылка по идентификатору (alias)
Многие операционные системы, в том числе и Mac OS, позволяют создавать так называемые ссылки на файлы. Ссылка (в некоторой литературе псевдоним) — это файл, который содержит информацию о другом файле для быстрого поиска и обращения к нему. Можно создать ссылку и поместить ее туда, где удобнее с нею работать, не перемещая и не копируя сам оригинал. Можно создать несколько ссылок на один и тот же файл и «разложить» их в разные места. Ссылки занимают мало места на диске и обеспечивают удобный и быстрый доступ к нужному документу или программе.
Существует два основных механизма ссылок на файлы: символические ссылки (symbolic links) и ссылки по идентификатору (aliases). В символических ссылках для указания конкретного файла используется полный путь к этому файлу в файловой системе. Этот способ удобен тогда, когда файл имеет фиксированное имя и постоянное место на диске. Сам файл при этом можно обновлять. Но изменение имени файла-оригинала или его местоположения в файловой системе приводит к разрушению связи символической ссылки с этим файлом.
Ссылка по идентификатору содержит уникальный номер файла-оригинала — идентификатор файла. Поэтому такая ссылка позволяет перемещать как оригинал, так и саму ссылку по файловой системе: ссылка найдет оригинал в любом месте, так как ей важен только номер файла-оригинала, а не его местоположение. Но обновление файла-оригинала разрушает связь ссылки с оригиналом, так как при обновлении, по сути, происходит удаление предыдущего файла и замена его на новый с тем же именем, но с другим идентификатором.
|