ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.12.2020
Просмотров: 1060
Скачиваний: 1
Глава
3.
Программное
обеспечение
компьютеров
3.1.
Классификация
и
эволюция
про
-
граммного
обеспечения
Еще
в
30-
е
годы
«
великий
вождь
всех
народов
»
товарищ
Ста
-
лин
произнес
крылатую
фразу
,
которая
долгое
время
не
сходила
с
лозунгов
и
транспарантов
: «
Техника
без
людей
мертва
.
Техника
во
главе
с
людьми
,
овладевшими
техникой
,
может
и
должна
давать
чудеса
».
Адаптируя
это
изречение
к
проблема
информатики
,
мож
-
но
сказать
,
что
вычислительная
техника
(hardware)
без
программ
,
олицетворяющих
действия
людей
по
управлению
ею
,
мертва
и
без
-
душна
как
всякое
железо
.
И
только
программное
обеспечение
(software)
вдыхает
жизнь
в
эти
кристаллы
,
разъемы
и
провода
,
зас
-
тавляет
компьютеры
делать
все
те
чудеса
,
которым
мы
не
перестаем
удивляться
.
Желая
подчеркнуть
приоритет
программного
обеспече
-
ния
перед
аппаратным
,
академик
Глушков
как
-
то
сказал
,
что
в
на
-
стоящее
время
они
соотносятся
друг
с
другом
по
стоимости
и
вло
-
женному
интеллекту
«
как
товар
с
упаковкой
».
За
пятьдесят
лет
развития
многие
поколения
программистов
создали
гигантский
объем
программного
обеспечения
(
ПО
).
Хотя
он
создавался
стихийно
,
под
влиянием
преходящих
обстоятельств
,
158
в
процессе
его
формирования
существуют
определенные
законо
-
мерности
.
Чтобы
их
выяснить
,
нам
понадобится
некоторая
класси
-
фикация
программного
обеспечения
(
см
.
схему
).
Прежде
всего
,
все
программное
обеспечение
можно
разделить
на
общее
и
специальное
.
Общее
ПО
рассчитано
на
самый
широкий
круг
пользователей
и
используется
почти
на
каждом
компьютере
.
Специальное
ПО
разрабатывается
для
решения
конкретной
задачи
,
оно
как
правило
уникально
.
В
качестве
примера
укажем
на
разно
-
образные
бухгалтерские
и
банковские
системы
,
которые
часто
раз
-
рабатываются
под
заказ
,
хотя
есть
и
исключения
.
Общее
ПО
,
в
свою
очередь
,
подразделяется
на
системное
,
слу
-
жащее
для
разработки
программ
и
поддержки
вычислительного
про
-
цесса
на
компьютере
(
операционные
системы
,
системы
программи
-
рования
,
различные
вспомогательные
программы
)
и
прикладное
,
иначе
называемое
пакетами
прикладных
программ
(
ППП
).
Типич
-
ными
ППП
являются
текстовые
процессоры
,
системы
управления
Классификация
программного
обеспечения
Бухгалтерские
системы
СУБД
Текстовые
процессоры
Операционные
системы
Банковские
системы
Электронные
таблицы
Специальное
Общее
Программное
обеспечение
Системное
Прикладное
(
ППП
)
Системы
программирования
Графические
системы
Системы
управления
производством
Служебные
программы
(
утилиты
)
159
Эволюция
общего
программного
обеспечения
1950
1960
1970
1980
1990
2000
100%
Общее
программное
обеспечение
100%
СУБД
Диалоговые
ОС
Специальное
программное
обеспечение
Компьютерные
сети
Мультимедиа
Пакетные
ОС
Языки
и
системы
программирования
Настольные
ППП
CASE-
технологии
Автокоды
и
ассемблеры
Библиотеки
прикладных
программ
базами
данных
(
СУБД
),
электронные
таблицы
,
некоторые
другие
широко
распространенные
программы
.
Граница
раздела
между
упомянутыми
классами
весьма
услов
-
на
и
в
процессе
эволюции
постоянно
передвигается
в
пользу
об
-
щего
ПО
.
На
заре
компьютерной
эры
(
первая
коммерческая
ЭВМ
UNIVAC
появилась
,
как
мы
знаем
,
в
1951
году
),
когда
машины
были
программно
несовместимы
и
каждая
задача
была
уникальна
, 100%
программного
обеспечения
было
специальным
.
Этот
факт
наглядно
представлен
на
схеме
,
где
по
оси
абсцисс
отложено
время
,
а
по
оси
ординат
показана
относительная
доля
каждого
класса
ПО
.
В
даль
-
нейшем
,
по
мере
освоения
типовых
классов
задач
и
унификации
вычислительных
систем
,
все
большее
число
программ
стало
пере
-
ходить
в
разряд
общего
(
системного
или
прикладного
)
ПО
.
К
концу
160
XX
века
90 - 95%
всего
ПО
можно
считать
общим
,
а
,
следовательно
,
и
общедоступным
.
Общее
программное
обеспечение
—
это
ценнейший
интеллек
-
туальный
ресурс
,
накопленный
человечеством
за
последние
полве
-
ка
.
В
его
разработку
вложены
миллионы
человеко
-
лет
труда
несколь
-
ких
поколений
программистов
,
потрачены
многие
миллиарды
дол
-
ларов
.
Образование
массива
общего
ПО
из
специального
подобно
отложению
осадочных
пород
на
дне
океана
,
когда
в
каждую
истори
-
ческую
эпоху
из
плавающей
,
клубящейся
мути
отстаивается
и
вык
-
ристаллизовывается
новый
геологический
пласт
.
Много
тысячеле
-
тий
спустя
геологи
,
пробуривая
скважины
,
обнаруживают
эти
плас
-
ты
и
по
ним
восстанавливают
геологическую
историю
Земли
.
Представим
себя
на
месте
геологов
и
произведем
«
разведочное
бурение
»
общего
ПО
.
В
нашем
случае
вся
«
геологическая
»
история
длилась
всего
50
лет
.
Мы
условно
разделим
ее
на
5
эпох
по
10
лет
каждая
.
Каждая
эпоха
оставила
свой
слой
в
общем
ПО
,
который
на
-
глядно
показан
на
рисунке
и
который
мы
кратко
прокомментируем
.
50-
е
годы
:
библиотеки
стандартных
программ
и
ассемблеры
Первые
вычислительные
машины
во
-
обще
не
имели
никакого
общего
программного
обеспечения
.
Программы
для
решения
конкретных
задач
писались
с
нуля
,
в
машинных
двоичных
ко
дах
(
для
сокращения
записи
использовалась
восьмеричная
или
шестнадцатеричная
система
,
но
это
не
меняло
сути
)
в
абсолютных
адресах
,
они
загружались
в
чис
-
тую
оперативную
память
.
Процесс
был
мучительным
и
трудоемким
.
Приходилось
помнить
двоичные
коды
всех
операций
,
а
любую
под
-
программу
выписывать
из
справочника
в
условных
адресах
,
затем
вручную
привязывать
к
главной
программе
,
распределять
память
и
т
.
д
.
На
каждом
этапе
возникали
ошибки
,
поэтому
отладить
про
-
грамму
даже
в
тысячу
команд
было
уже
очень
трудно
.
Первоочередной
задачей
программистов
на
данном
этапе
было
создание
библиотек
,
которые
обеспечивали
бы
вызов
стандартных
программ
из
внешней
памяти
и
автоматически
подключали
их
к
главной
программе
.
Идея
использования
подпрограмм
была
реали
-
зована
Грейс
Хоппер
еще
до
появления
ЭВМ
,
на
электромеханичес
-
161
кой
MARK-1,
а
в
дальнейшем
она
стала
общепринятой
.
Из
-
за
про
-
граммной
несовместимости
у
каждой
ЭВМ
были
свои
уникальные
библиотеки
.
Например
,
для
отечественной
машины
М
-20
Михаил
Романович
Шура
-
Бура
с
коллегами
разработали
прекрасную
по
тем
временам
интерпретирующую
систему
ИС
-2
с
богатейшей
кол
-
лекцией
стандартных
программ
,
охватывающей
все
области
вычис
-
лительной
математики
.
Создание
библиотек
резко
повысило
про
-
изводительность
труда
программистов
,
так
как
появмлась
возмож
-
ность
опереться
на
труд
предшественников
и
не
программировать
каждую
новую
задачу
с
нуля
.
Вторая
проблема
была
связана
с
мнемоническим
кодированием
и
автоматическим
распределением
памяти
.
Впервые
она
была
ре
-
шена
в
Кембридже
в
Великобритании
на
ЭВМ
EDSAC (1949
г
.).
Вместо
того
,
чтобы
записывать
коды
операций
двоичными
цифра
-
ми
программист
писал
текст
программы
на
символическом
языке
,
пользуясь
мнемоническими
обозначениями
операций
и
условными
адресами
,
а
специальная
программа
(
руководитель
проекта
Морис
Уилкс
назвал
ее
собирающей
системой
—
по
английски
assembly
system
)
автоматически
преобразовывала
мнемонические
коды
в
по
-
нятные
машине
двоичные
,
и
распределяла
память
для
выполнения
программы
.
Идея
оказалась
столь
продуктивной
,
что
все
последую
-
щие
поколения
программистов
на
всех
ЭВМ
отказались
от
абсо
-
лютного
кодирования
.
Языки
программирования
низкого
уровня
,
в
которых
коды
операций
заменены
мнемоническими
обозначения
-
ми
,
стали
называться
языками
ассемблера
или
автокодами
(
мнемо
-
кодами
),
а
преобразующие
программы
—
ассемблерами
.
В
50-
е
годы
ЭВМ
были
еще
экзотической
редкостью
,
они
ис
-
пользовались
в
основном
в
элитных
академических
учреждениях
и
военных
системах
.
Программисты
также
исчислялись
единицами
и
работать
им
приходилось
в
очень
стесненных
условиях
.
Приходи
-
лось
постоянно
изворачиваться
,
экономить
каждую
ячейку
памяти
и
каждый
машинный
такт
,
потому
что
возможности
тех
компьюте
-
ров
были
более
чем
скромными
.
У
машины
Урал
-1,
например
,
ОЗУ
имело
всего
1024
слова
при
быстродействии
100
оп
./
с
.
Зато
каждая
отлаженная
,
тем
более
стандартная
,
программа
была
своего
рода
шедевром
.