Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
6. Программное обеспечение
6.1. Что такое программное обеспечение?
Компьютер это электронное устройство, которое само по себе ничего не умеет. Чтобы использовать его для решения каких‐то задач, необходимо программное обеспечение (англ. software «мягкое оборудование») программы, в которых заложены алгоритмы ввода, обработки и вывода данных.
Обычно выделяют три вида программного обеспечения (ПО): прикладные программы, сис‐
темные программы и системы программирования.
Программное обеспечение
Прикладные программы
Системные
программы
Системы
программирования
Всех, кто работает с компьютерами, можно разделить на пользователей, системных администраторов и программистов.
Пользователи решают свои задачи с помощью прикладных программ (к ним относятся тек‐
стовые и графические редакторы, электронные таблицы, базы данных, игры и т.п.).
Системные программы выполняют вспомогательную роль они обеспечивают пользовате‐
лю и прикладным программам удобный интерфейс (способ обмена данными) с аппаратными средствами. К этой группе относятся операционные системы, драйверы (программы для управления внешними устройствами) и утилиты (служебные программы). Задача системных администраторов настроить системное и прикладное ПО, чтобы пользователи смогли нормально работать.
Программисты создают новые программы с помощью систем программирования (инстру‐
ментальных средств).
пользователи
Прикладное ПО
системные администраторы
программисты
Системы программирования
Системное ПО
Программное обеспечение освобождает человека от необходимости работать напрямую с ком‐
пьютерным «железом» (аппаратными средствами, англ. hardware «жесткое оборудование»).
Часто термин «программное обеспечение» понимают в широком смысле как целую отрасль, включающую все этапы разработки программ, в том числе тестирование (проверку программ, поиск ошибок) и разработку документации.
6.2. Системное программное обеспечение
6.2.1. Что такое операционная система?
Команды, которые умеет выполнять процессор представляют собой числовые коды. Чтобы он выполнил программу, нужно эту программу загрузить в память и передать процессору адрес первой команды. В принципе, это можно делать вручную, с помощью переключателей (1/0) или перфокарт, так и было на первых компьютерах. Однако в этом случае ввод программы будет значительно занимать больше времени, чем ее выполнение, поэтому процессор будет простаивать. Кроме того, для ввода и вывода данных нужно программировать внешние устройства, каждое из которых имеет собственный набор команд. В таких условиях с компьютером могут работать только высококвалифицированные специалисты. Ситуация еще более усложняется, если требуется записать данные на жесткий диск или обеспечить одновременную работу нескольких программ.
Для решения всех этих проблем программисты разработали вспомогательные программы
(точнее, программные системы, состоящие из многих программ), которые называются операционными системами.
Операционная система (ОС) это комплекс программ, обеспечивающих пользователю и прикладным программам удобный интерфейс (способ обмена информацией) с аппаратными средствами компьютера.
Операционная система обеспечивает:
• взаимодействие пользователя и аппаратных средств;
• обмен данными между прикладными программами и устройствами компьютера;
• работу файловой системы (хранение данных в виде файлов и папок);
• запуск и выполнение прикладных программ;
• обработку ошибок, контроль за работой оборудования;
• распределение ресурсов компьютера между несколькими одновременно работающими программами (время работы процессора, память, внешние устройства).
Операционные системы бывают однозадачные (на компьютере в любой момент выполняется только одна программа) и многозадачными (пользователь может запустить несколько про‐ грамм, которые будут выполняться одновременно).
Первые операционные системы появились на компьютерах второго поколения и были однозадачными. Нередко получалось так, что большую часть времени занимали не вычисления, а операции ввода и вывода данных, тогда как процессор в это время простаивал. Чтобы полностью
использовать мощность компьютера, разработали пакетный режим: в разные области памяти загружали несколько программ. Когда одна программа выполняла операции ввода‐вывода, процессор переходил к выполнению следующей, и таким образом мог быть загружен практически на полную мощность.
На компьютерах третьего поколения часто использовался многопользовательский режим
(режим разделения времени), при котором с большим компьютером (мэйнфреймом) было связано несколько терминалов (так называли рабочие места с клавиатурой и монитором). С каждого терминала можно было отправить задание на выполнение, таким образом, с компьютером одновременно работало несколько программистов.
Операционные системы первых персональных компьютеров были однозадачными. Самая популярная ОС в 1980‐х годах MS DOS (Microsoft Disk Operating System дисковая операционная система фирмы Microsoft). Сейчас иногда на дешевые ноутбуки устанавливается ее бесплатный аналог FreeDOS (www.freedos.org).
Все современные ОС многозадачные. ОС распределяет время работы процессора между
запущенными программами, выделяя каждой кванты (небольшие интервалы) времени, так что создается впечатление, что программы работают одновременно, даже если на компьютере установлен один процессор.
В состав операционной системы обычно входят:
• начальный загрузчик небольшая программа, расположенная в первом секторе загрузочного диска; его задача организовать загрузку в память ядра (основной части) ОС и передать ему управление;
• система управления памятью;
• система ввода и вывода, которая управляет внешними устройствами и файлами; она использует программы для обмена данными с дисковода‐ ми, клавиатурой, монитором и принтером, записанные в постоянном за‐ поминающем устройстве (ПЗУ) микросхемы BIOS2, расположенной на ма‐ теринской плате;
• командный процессор программа, которая выполняет команды
Микросхема BIOS
пользователя, введенные в командной строке, и командные файлы текстовые файлы,
содержащие списки команд и даже программы на специальном языке программирования;
• утилиты (лат. utilitas польза) служебные програмы для проверки и настройки компьютера.
Может ли компьютер работать без операционной системы? Да, в том случае, если он рабо‐ тает по одной единственной программе, которая хранится в ПЗУ или на диске, и автоматически запускается при включении питания. Например, микрокомпьютеры, встроенные в бытовые уст‐
ройства, могут обходиться без операционной системы. Однако такой компьютер невозможно на‐
страивать, поэтому во многих более сложных устройствах (игровых приставках, банковских тер‐
миналах и т.д.) используют операционные системы.
6.2.2. Современные операционные системы
Самые популярные современные операционные системы для персональных компьютеров Windows, Mac OS X3 и Linux. Все они используют графический интерфейс с пользователем: окна программ, управление с помощью мыши, кнопки, переключатели и т.п.
Система Windows разработана фирмой Microsoft (www.microsoft.com) и распространяет‐ ся на коммерческой основе. По управлением Windows работает более 90% персональных компь‐ ютеров4, имеющих доступ в Интернет.
Примерно 5% пользователей используют Mac OS X. Она устанавливается на компьютерах фирмы Apple, которые часто используют профессионалы в области дизайна, компьютерной гра‐ фики, полиграфии, видеомонтажа.
Около 1% компьютеров работают под управлением ОС Linux. Ее начал разрабатывать в
1991 году финский студент Линус Торвальдс в качестве хобби. Сейчас в развитии Linux принимают
участие сотни разработчиков во всём мире. В современном ядре Linux насчитывается более
11 млн. строк кода5. Система Linux распространяется бесплатно вместе с исходными кодами, так что каждый (при желании и умении) может ее усовершенствовать.
2 BIOS = Basic Input‐Output System базовая система ввода‐вывода.
3 Последний символ в названии Mac OS X это римская цифра X, что означает «версия 10».
4 Данные сайта www.netmarketshare.com (2010 г.) 5 Данные 2009 г.
На основе ядра Linux построено много различных дистрибутивов (распространяемых сбо
рок), самые известные из них Ubuntu (ubuntu.com), Mandriva (mandriva.ru), OpenSUSE (open
suse.org), Slackware (www.slackware.com), Gentoo (www.gentoo.org). В дистрибутивы входит не только сама операционная система, но и программное обеспечение, состав которого зависит от конкретной сборки. Существуют дистрибутивы с улучшенной поддержкой русского языка, например, ALT Linux (www.altlinux.org).
Достоинства Linux:
• бесплатное распространение ОС и многих программ для нее;
• высокий уровень безопасности и защиты от вирусов;
• невысокие требования к аппаратным средствам;
• возможность гибкой настройки.
Основные сферы применения Linux:
• личные компьютеры (не нужно платить за ПО);
• портативные компьютеры, которые закупаются организациями в большом количестве;
• серверы в локальных сетях и в Интернете (до 50%), важно быстродействие;
• суперкомпьютеры (до 80%6), важна возможность настройки для работы на нестандартном оборудовании;
• встроенные компьютеры в банкоматах, терминалах оплаты, стиральных машинах и даже бес‐ пилотных военных аппаратах; важна бесплатность и возможности настройки.
Среди недостатков этой ОС обычно отмечают:
• сложность настройки для неквалифицированного пользователя (для выполнения многих операций необходимо вводить команды в режиме командной строки);
• отсутствие драйверов для некоторых устройств и сложность их установки;
• отсутствие версий популярных профессиональных программ, например, Adobe Photoshop;
• отсутствие поддержки современных игр.
Появление карманных персональных компьютеров (КПК), смартфонов и коммуникаторов привело к развитию нового класса операционных систем, которые могут работать на маломощном оборудовании. Самая популярная ОС для мобильных устройств Symbian, с ней конкурируют Windows Mobile (разработка фирмы Microsoft) и BlackBerry. Некоторые ОС этого класса строятся на основе ядра Linux: Google Android, Palm webOS, Maemo и другие. Портативные компьютеры фирмы Apple (iPhone, iPod Touch, iPad) используют операционную систему iPhone OS.
Новая операционная система компании Google для персональных компьютеров, названная Chrome OS, тоже строится на ядре Linux. Она нетребовательна к аппаратным ресурсам компьютера, основная роль отводится веб‐браузеру и «облачным вычислениям». Данные пользователя хранятся на серверах Интернета, для их обработки используются веб‐службы, при этом на компьютер не нужно устанавливать дополнительное программное обеспечение. Недостаток этой ОС низкая безопасность. Также она не подойдет тем, кому нужно выполнять сложную обработку графики и видео.
Существует еще один класс операционных систем, от которых требуется не просто решать задачи, а делать это за определённый промежуток времени. Такие ОС называются операционными системами реального времени. Они применяются в тех случаях, когда задержка может привести к аварии, катастрофе или финансовым потерям: в системах аварийной защиты, системах управления роботами и самолетами, в военных приборах. Например, робот, снимающий деталь с конвейера, должен сделать это за маленький промежуток времени. Наиболее известные системы реального времени QNX (www.qnx.com), Windows CE (www.microsoft.com), VxWork (www.windriver.com) и LynxOS (www.lynuxworks.com/rtos).
6 Данные сайта www.top500.org (2010 г.)
Многие современные операционные системы, включая Linux, Mac OS X, QNX, VxWorks, Lyn‐ xOS, относятся к классу UNIX‐подобных ОС. Это значит, что они используют общие идеи и принципы, заложенные в 1970‐х годах при разработке системы UNIX:
• для настройки и управления системой используются простые текстовые файлы;
• программы часто используют текстовый ввод данных и вывод результатов;
• широко применяются утилиты, запускаемые в командной строке;
• каждая утилита выполняет одну задачу; ее режимы работы можно задачать с помощью параметров командной строки;
• утилиты можно объединять в «конвейер», направляя результаты работы одной утилиты на вход следующей;
• все устройства (жесткие диски, флэш‐диски, принтеры, сканеры) рассматриваются как файлы. Сейчас система UNIX используется в основном для управления серверами. Все UNIX‐подобные системы считаются очень надежными с точки зрения безопасности. Достаточно сказать, что для них практически неактуальна проблема компьютерных вирусов.
6.2.3. Драйверы устройств
Драйверы (англ. driver водитель) это программы специального типа, которые находятся в оперативной памяти и обеспечивают обмен данными между ядром ОС и внешними устройствами компьютера (звуковой картой, видеокартой, сетевой картой, принтером и т.п.). Драйверы обычно включают в подсистему ввода и вывода.
Драйвер представляет собой набор процедур, которые вызываются ядром ОС при необходимости передать данные устройству или принять от него данные. Задача драйвера преобразовать команды ввода‐вывода в команды конкретного устройства. Драйверы загружаются в память и фактически становятся частью ОС. Такая схема позволяет устанавливать и использовать устройства, которые были разработаны уже после выпуска операционной системы.
Ядро ОС
Драйвер
Если драйвер не установлен, устройство работать не будет, потому что неизвестно, как к не‐
му обращаться. Драйверы наиболее популярных устройств обычно включаются в дистрибутив (установочный пакет) операционной системы. Когда ОС обнаруживает новое устройство, она пы‐ тается найти подходящий драйвер в своей базе данных. Если такого драйвера нет, его можно ус‐
тановить вручную с диска, который прилагается к устройству. Кроме того, любой драйвер можно бесплатно скачать из Интернета с сайта производителя.
6.2.4. Утилиты
Утилиты решают вспомогательные задачи, расширяя возможности ОС. К утилитам относятся
• программы для проверки дисков (chkdsk в Windows, fsck в Linux);
• программы для разбивки жестких дисков, с помощью которых можно сделать несколько разделов на одном диске (Управление дисками в Windows; GNU Parted в Linux);
• файловые менеджеры программы для работы с файлами; самые известные файловые менеджеры для Windows Проводник (входит в состав ОС), Total Commander (www.ghisler.com), Free Commander (www.freecommander.com), Far Manager
(farmanager.com); в Mac OS X используется программа Finder, а в операционной системе
Linux файловые менеджеры Konqueror, Midnight Commander и др.;
•
• архиваторы и программы для сжатия данных; в ОС Windows чаще всего используются WinRAR (www.rarlab.com) и WinZip (www.winzip.com); в Linux Ark (utils.kde.org) и File Roller (fileroller.sf.net); архиватор (www.7‐zip.org) распространяется бесплатно с исходными кодами для различных операционных систем;
• программы для шифрования данных, например, PGP и ее версии для разных операционных систем (www.pgpru.com);
• редакторы, позволяющие менять данные на диске и в оперативной памяти; например, про‐ граммы HxD (mh‐nexus.de/en/hxd) и WinHex (www.winhex.com) для ОС Windows или hexedit (rigaux.org/hexedit.html) для Linux;
• сетевые утилиты для проверки связи в локальной и глобальной сетях; например, утилиты
ping, tracert (traceroute), nslookup в Windows и Linux.
Часто к утилитам относят также
• программы для записи CD и DVD‐дисков; в системе Windows наиболее популярны программы Nero Burning ROM (www.nero.com), CDBurnerXP (cdburnersp.se) и DeepBurner (www.deepburner.com); в Linux для этой цели используют утилиту K3b (k3b.org)$;
• программы для сканирования и распознавания текста; широко применяются коммерческая программа ABBYY FineReader (www.abbyy.ru) и бесплатная CuneiForm (www.cuneiform.ru).
6.2.5. Файловые системы
Вы знаете, что данные можно хранить в виде файлов на жестких дисках, CD и DVD‐дисках, флэш‐дисках. Однако винчестер и флэш‐диск «ничего не знают» о том, что записанные на них данные в самом деле объединены в файлы и папки.
С другой стороны, когда программа сохраняет файл на диск, она «ничего не знает» о том, в какое место диска эта информация будет записана, указывается только имя файла и каталог. Поэтому между программой и носителем информации необходим «посредник», который определяет, в какое именно место диска будут записаны биты переданных данных. Эту роль выполняет драйвер файловой системы:
программа
/home/vasya/privet.txt
драйвер
файловой
системы
сектор 5, дорожка 10
Файловая система это порядок размещения, хранения и именования данных на носителе ин‐
формации.
Файловые системы решают несколько задач:
• определяют правила построения имен файлов и каталогов;
• определяют, как именно размещаются файлы на диске;
• предоставляют программам функции для работы с файлами;
• обеспечивают защиту данных в случае сбоев и ошибок;
• обеспечивают установку прав доступа к данным для каждого пользователя;
• обеспечивают совместную работу с файлами (когда один пользователь открыл файл, для ос
тальных устанавливается режим «только чтение»).
С точки зрения файловой системы диск делится на кластеры (блоки) размером от 512 байт до 64 Кбайт. Каждому файлу выделяется целое число кластеров. Файлу размером 1 байт выделяется целый кластер, остальное место считается занятым, но фактически не используется.
Поэтому при большом размере кластера хранить мелкие файлы невыгодно, значительная часть места пропадает впустую. С другой стороны, при увеличении размера кластера скорость чтения и записи больших файлов повышается, кроме того, увеличивается и максимальный объем диска, который поддерживает файловая система.
В операционной системе Linux применяются файловые системы ext3 и ext4. Они поддер‐
живают журналирование, помогающее сохранить данные в случае сбоев. Его суть в том, что перед
выполнением операции с файлами ОС записывает «план действий» в специальный журнал. Когда операция полностью закончена, эта запись из журнала удаляется. Если во время операции произошел сбой (например, отключение питания), по записям в журнале можно сразу определить,
какие файлы могли быть затронуты. Таким образом, журналируемая файловая система устойчива к сбоям.
В системе Windows применяют файловые системы NTFS и FAT32. Хотя FAT32 в некоторых
случаях работает быстрее и требует меньше памяти, она считается устаревшей. В отличие от FAT32, файловая система NTFS
• обеспечивает защиту от сбоев с помощью журналирования (в FAT32 журналирование не ис‐
пользуется);
• позволяет назначить права доступа к файлам и папкам (в FAT32 каждый пользователь может просматривать и изменять данные всех остальных);
• позволяет задать квоту (ограничение) на использование диска для каждого пользователя;
• позволяет использовать сжатие файлов и папок без специальных программ.
В операционной системе Mac OS X применяется файловая система HFS (англ. Hierarchical
File System, иерархическая файловая система).
Первые файловые системы были одноуровневыми, то есть, все файлы хранились в одном каталоге (на дискете). С увеличением емкости дисков (и количества файлов!) это стало неудобно, поэтому разработали иерархические (многоуровневые) файловые системы, где файлы группируются в каталоги, а сами каталоги вложены друг в друга. Такая структура называется деревом каталогов.
В операционной системе Linux существует один корневой каталог (обозначаемый как «/»),
остальные файлы и каталоги вложены в него. Любое устройство (включая жесткие диски, принтеры, сканеры и т.п.) в Linux рассматривается как файл, то есть входит в состав единой иерархической файловой системы.
/
bin boot dev etc home usr var
vasya petya olya
Вот что хранится в показанных каталогах:
• bin команды операционной системы;
• boot ядро ОС и данные для загрузки;
• dev файлы устройств, подключенных к ОС;
• etc файлы с настройками ОС и некоторых программ;
• home домашние каталоги пользователей;
• usr установленные пакеты программ;
• var часто меняющиеся данные, например, журналы ОС.
Чтобы указать путь к файлу или каталогу, перечисляют (начиная от корня) все каталоги, в которых он находится, разделяя их символом «/» (он называется «слэш»). Например, адрес домашнего каталога пользователя petya запишется как /home/petya, а адрес файла qq.txt в этом каталоге как /home/petya/qq.txt.
Дерево каталогов в операционной системе Windows строится отдельно для каждого диска:
C:
Download Program Files WINDOWS
Help Media system32
В качестве разделителя при записи адреса файла или каталога (папки) используют обратный слэш «\», например, C:\WINDOWS\System32\shell32.dll.
Для работы с группами файлов используются маски или шаблоны (англ. wildcards). Кроме символов, которые допустимы в именах файлов, маска может включать два специальных символа: знак «*» заменяет любое количество любых символов, а знак «?» один любой символ. Приведем несколько примеров:
*.* все файлы;
*.bmp все файлы с расширением .bmp;
a*.? файлы, имя которых начинается с буквы «a», а расширение состоит из 1 символа
*x*.??* файлы, в имени которых есть буква «x», а расширение содержит не менее 2‐х символов;
*z.a? файлы, имя которых заканчивается на букву «z», а расширение начинается с буквы «a» и состоит из 2‐х символов.
Маски чаще всего применяют для поиска файла по известной части имени или по расширению. Например, для того, чтобы найти все документы Word, у которых имя содержит слово «отчет», можно использовать маску *отчет*.doc*. При этом будут найдены, например, такие файлы:
отчет2010.doc Самый_важный_отчет.docx Новый_отчет_март_2011.docx
В операционной системе Windows заглавные и строчные буквы в названиях файлов и каталогов не различаются, то есть к файлу с именем Вася.txt можно обращаться как вася.txt, вАсЯ.txt, ВаСя.txt или ВАСЯ.txt. В Unix‐подобных ОС (Linux, Mac OS X) это не так, все перечисленные имена файлов разные, и такие файлы могут быть созданы в одном каталоге.
Нужно отметить, что файловая система не обязательно напрямую связана с жестким диском или другим физическим носителем информации. Существуют, например, сетевые файловые системы, которые являются просто способом обращения к файлам на удалённых компьютерах.
Контрольные вопросы
1. Назовите три типа программного обеспечения. Чем они отличаются?
2. Какие задачи решают пользователи, программисты, системные администраторы?
3. Что означает слово «интерфейс»?
4. Что такое драйверы, утилиты?
5. Что обозначают английские термины hardware и software?
6. Зачем нужны операционные системы? Можно ли обойтись без них?
7. Что такое операционная система?
8. Какие задачи выполняет ОС?
9. Чем отличаются многозадачные ОС от однозадачных?
10. Как обеспечивается многозадачность на компьютерах с одним процессором?
11. Что такое пакетный режим работы?
12. Что такое многопользовательский режим?
13. Перечислите составные части ОС.
14. Что такое начальный загрузчик?
15. Что такое драйвер?
16. Что такое утилита?
17. Назовите наиболее популярные современные ОС для персональных компьютеров.
18. Какими достоинствами и недостатками обладает система Linux?
19. Какие ОС используются для мобильных устройств?
20. В чем состоят особенности операционной системы Chrome OS?
21. Что такое «операционная система реального времени»? Где применяются такие системы?
22. Что такое UNIX‐подобные ОС? В чем их особенности?
23. Как ОС обменивается данными с внешними устройствами? В чем достоинства такой схемы?
24. Что происходит, когда ОС обнаружила новое устройство?
25. Какие программы относятся к утилитам?
26. Что такое файловая система? Зачем она нужна?
27. Какие задачи решает файловая система?
28. Что такое кластер?
29. Почему невыгодно хранить мелкие файлы в файловой системе с большим размером кластера?
30. Что улучшается при увеличении размера кластера?
31. Какие файловые системы используются в ОС Linux, Windows и Mac OS X?
32. Что такое журналируемая файловая система? Какие журналируемые системы вы знаете?
33. Почему файловая система FAT32 считается устаревшей?
34. Что такое одноуровневая и многоуровневая файловые системы?
35. Что такое корневой каталог?
36. В чем отличие файловых систем в ОС Linux и Windows?
37. Где расположены каталоги пользователей в ОС Linux?
38. Какие символы используются как разделители при записи адреса файла в ОС Linux и Windows?
39. Что такое сетевая файловая система?
Задачи
1. Определите, какое из указанных имен файлов удовлетворяет маске: ?hel*lo.c?*
а) hello.c |
б) hello.cpp |
в) hhelolo.cpp |
г) hhelolo.c |
д) hello.cс |
е) ahello.cpp |
ж) ahelolo.c |
з) ahelolo.cp |
2. Пользователь vasya работает в ОС Linux. Перемещаясь из одного каталога в другой, он последовательно посетил каталоги math, lections, professor и оказался в своем домашнем каталоге. Каково полное имя каталога, из которого начал перемещение пользователь.
3. Пользователь ОС Windows, перемещаясь из одного каталога в другой, последовательно по‐ сетил каталоги Математика, Задания, c:\, Классы, 10-A. Каково полное имя каталога, из которого начал перемещение пользователь?