[Из песочницы] «Операционные системы: зачем они инженеру»

Подвигло меня к написанию этого материала публикация «История языков программирования: как Fortran позволил пользователям общаться с ЭВМ на «ты».

И тут я вспомнил, что почти 30 лет назад я вел рубрику «ИНЖЕНЕР И КОМПЬЮТЕР» в журнале «Техника и наука». 165bbb7c3f5544a7bffa5a1d5426fb0e.png Первой публикацией в этой рубрике была статья в №7 журнала с названием «Операционные системы: зачем они инженеру». И этой статье говорится о том, что именно операционные системы позволяют перейти на «ты» с ЭВМ. Но одно другому не противоречит. Перечитав статью, я понял, что за 30 лет она не потеряла своей актуальности, но при этом позволяет взглянуть, что же происходило 30 лет назад в нашей стране в области информатизации, когда еще не было Linux, но был UNIX/ЮНИКС и уже был MS/DOS, и оправдались ли надежды. Мне кажется, что страна опять наступает на грабли: тогда это было ЕС ЭВМ от IBM, а сегодня MS Windows от Microsoft. Что еще примечательно? Иллюстрировал эту серию мой коллега Блажнов В.Ю. Ниже предлагается материал этой статьи без купюр вместе с иллюстрациями.

37a6e52e9d84463b959d8bdce0f840b3.pngВсе, что может быть запрограммировано, должна делать машина; люди должны делать лишь то, на что они пока не в состояние написать программы.

Г.Р. Громов, (Национальные информационные ресурсы: проблемы промышленной эксплуатации. М., Наука, 1985, с. 166).

СЕГОДНЯ мы открываем рубрику «Инженер и компьютер». Первая, вводная, статья — о системе ЮНИКС. У читателя могут возникнуть вопросы: почему операционные системы, а не устройство современных ЭВМ, почему операционные устройства, а не языки программирования? И наконец, почему система ЮНИКС, а не любая другая! Попытаемся ответить.

С 1949 года, когда заработала первая электронно-вычислительная машина с запоминаемой программой, и до наших дней ЭВМ сделали поистине грандиозный скачок.

На первые ЭВМ, так же как и на первый самолет братьев Райт, люди смотрели как на чудо. А сегодня говорят о наступлении «компьютерной эры», звучат серьезные предупреждения о том, что если специалист не будет обучаться компьютерной грамотности, то он отстанет от жизни, не получит продвижения по службе. Становится привычным, что на рабочем столе инженера мы видим либо дисплей, подключенный к большой ЭВМ, либо персональную ЭВМ (ПЭВМ), которые служат то пишущей машинкой, то суперкалькулятором, то информационно-справочной системой, то кульманом, то средством управления экспериментальной установкой. В такой промышленно развитой стране, как США, один терминал сегодня приходится на 10 работающих, для пользователей ЭВМ фирмы ИБМ это число составляет 6, а в самой фирме ИБМ один терминал имеют в среднем два сотрудника.

С появлением на рынке ПЭВМ насыщенность ЭВМ становится еще более высокой. В ведущих фирмах США на одного научно-технического сотрудника приходится уже 1,5 дисплея или ПЭВМ. Руководители фирм считают дисплей на столе инженера необходимым предметом оргтехники, так же нужным, как телефон.

В нашей стране эти цифры пока не столь впечатляющи, однако подготовка к этапу широкомасштабного внедрения ЭВМ во все сферы жизни должна вестись уже сейчас: в школах, высших и средних специальных учебных заведениях, на производстве, на курсах повышении квалификации. За годы двенадцатой пятилетки выпуск средств вычислительной техники в нашей стране увеличится в 2,3 раза, только в вузах будет создано около 130 тыс. рабочих мест, оборудованных ПЭВМ и дисплеями.

Какими же знаниями о вычислительной технике должен обладать современный инженер? Здесь уместно сравнение ЭВМ с автомобилем. Легковые автомобили покупают миллионы людей, и большинство из них порой имеют самые общие сведения о машине, только те, которые нужны при покупке: максимальная скорость, мощность двигателя, вместимость салона, расход горючего и т. п.

Так же обстоит дело и с ЭВМ. Организация, приобретающая ЭВМ, или человек, приобретающий персональный компьютер, прежде всего интересуются быстродействием центрального процессора, объемом оперативной и внешней памяти, количеством подключаемых дисплеев и т.п. Инженера, работающего в конструкторском бюро или на производстве, мало заботит, как устроена ЭВМ, какие микросхемы входят в ее состав, как работают центральный процессор или каналы ввода-вывода. Для него главное, чтобы он на ней смог решить свои задачи.

Продолжим аналогию между автомобилем и ЭВМ. Для того чтобы человек смог ездить на автомобиле, он должен изучить правила вождения и правила дорожного движения. Не зная правил вождения, вы не тронетесь с места, а езда без знания и соблюдения правил дорожного движения может привести к аварии.

Аналогичные правила должен знать и любой человек, начинающий работу с ЭВМ. ЭВМ — это сложная техническая система, состоящая из ряда функциональных элементов — логических, запоминающих, индикационных и других. ЭВМ не могут осуществить связь и обмен информацией с дисплеем и другими внешними устройствами, ввести и выполнить необходимые программы.

Вычислительным машинам, так же как и автомобилю, кроме «мотора» (центрального процессора), требуется «рулевое управление», которое обеспечило бы согласованное функционирование их узлов и дало возможность использовать их человеку. Такое «рулевое управление» для ЭВМ — операционные системы (ОС) — одно из самых выдающихся достижений в области вычислительной техники, которое позволило по-новому взглянуть на возможности и сферу применения вычислительных машин. Операционные системы сегодня неотделимы от ЭВМ, они являются ее естественным продолжением, и порой бывает трудно определить, где кончается машина и где начинается операционная система.

Операционные системы разрабатываются системными программистами и представляют собой организованную совокупность программ, реализующих сложные алгоритмы управления функционированием ЭВМ. Эти программы, по сути дела, скрывают от пользователя всю сложность вычислительных машин. Для работы с машиной достаточно знать возможности ОС, предоставляемые пользователю в виде некоторого языка взаимодействия с ней. Сразу оговоримся, что языки взаимодействия с ОС и языки программирования не имеют между собой ничто общего. Язык взаимодействия с операционной системой — это просто набор команд.

Пользователь, набирая их на клавиатуре дисплея, может заставить машину делать то, что ему необходимо: выполнить некоторую программу, подготовить и распечатать документ, обменяться корреспонденцией с другими пользователями, просмотреть информацию, а банке данных, провести арифметические расчеты и, наконец, ввести, оттранслировать и отладить программу, написанную на одном из языков программирования высокого уровня, включенных в состав ОС.

Перечень этих команд операционной системы и составляет «правила вождения» вычислительной машины, а правила и особенности их применения — «правила дорожного движения» в системе. Без знаний первых вы не сможете работать с ЭВМ, а несоблюдение вторых может привести к «аварии», например, уничтожению очень нужной вам программы. Сразу оговоримся, что целью нашего семинара не является изучение того, как устроена ОС, это является прерогативой системных программистов. В рамках серии последующих публикаций мы будем вести речь о том, какие возможности предоставляет операционная система пользователю и как их применять на практике.

Но почему все же операционная система, а не просто языки программирования высокого уровня? Здесь несколько причин. Сегодня, спустя почти 40 лет после начала эксплуатации ЭВМ, когда во всех вузах, а теперь и в школах, дают основы информатики и вычислительной техники и в первую очередь учат программированию хотя бы на одном из языков высокого уровня, когда в стране действует широкая сеть курсов по обучению искусству программирования, когда массовыми тиражами и различными издательствами выпускается литература по программированию, когда чуть ли не в каждом издаваемом журнале введена рубрика, в рамках которой ведется обучение программированию, когда принята национальная программа по обеспечению всеобщей компьютерной грамотности, трудно представить себе инженера, который не знал хотя бы одного языка программирования высокого уровня или не имел бы дома соответствующей литературы (хотя бы у детей или внуков).

С другой стороны, инженер, освоивший программирование, но не знающий операционной системы, подобен человеку, заблудившемуся темной ночью только из-за того, что, взяв с собой фона фонарик, он забыл выяснить, как же его включать. Не зная языка взаимодействия с ОС, инженер, даже написав программу, не будет представлять, что с ней делать: как ввести ее в память машины, в каком виде, как обеспечить ее сохранность, как выполнить ее и т. д.

И третья, пожалуй, самая важная причина. Современные операционные системы резко отличаются от систем, ориентированных на перфокарты, которые работали на ЭВМ 15, 10 и даже 5 лет тому назад. Современные ОС — это прежде всего диалоговые системы, рассчитанные на взаимодействие пользователя с машиной посредством дисплея. В современные системы включены различные программные средства общего назначения (так называемые утилиты), которыми можно пользоваться вообще без программирования. Освоив их и осознав все преимущества применения ЭВМ, человек гораздо легче переходит к программированию.

image К таким средствам ОС можно отнести редакторы текстов, с помощью которых легко и просто готовить, корректировать и размножать различные документы; электронную почту, посредством которой вы можете обмениваться информацией с другими пользователями; так называемые файловые системы и системы управления базами данных, на основе которых вы сможете построить информационно-поисковые системы, и ряд других. Да¬же не умея программировать, вы можете использовать в своей работе готовые программы. Но и здесь не обойтись без знания ОС: как ввести программу в память машины, как ее выполнить, где и как подготовить для нее исходные данные, где и как сохранить результаты счета, — все это «рычаги управления» современной вычислительной машины.

И наконец, почему система ЮНИКС? До последнего времени для каждого типа ЭВМ разрабатывались собственные операционные системы: ОС РВ для СМ ЭВМ, ДОС ЕС и ОС ЕС для ЕС ЭВМ, MS/DOS и СР/М для ПЭВМ, — имеющие различные языки взаимодействия, запросы на выполнение системных функций, директивы ввода-вывода, то есть у разных вычислительных машин были свои «рычаги управления». Если учесть, что смена поколений ЭВМ происходит каждые 5—7 лет, что инженеру приходится обращаться за помощью как к большой, так и к персональной ЭВМ, что у инженера может быть накоплена большая библиотека программ (например, имитационного моделирования), которую он хотел бы использовать на любой ЭВМ и сохранять при переходе на новую машину, то понятно, какой ужас его охватывает при виде такого многообразия машин, и самое главное — операционных систем. Часто даже в том случае, когда несколько ОС предназначены для машин одного и того же типа, они имеют существенные различия в языке взаимодействия пользователя с системой.

Все это приводило (да и сейчас часто приводит) к тому, что даже профессиональному программисту при переходе с одной системы на другую требуется серьезная переподготовка. Еще большие накладные расходы связаны с переносом пользовательских программ, без которых уже невозможна нормальная работа инженера, в новую ОС.

Рано или поздно стандартизация должна коснуться и операционных систем (как это уже было с языком программирования и вычислительными сетями), и в первую очередь языка взаимодействия с системой.

imageДолжна была появиться мобильная операционная система, функционирующая на всех типах ЭВМ — больших и персональных — и имеющая унифицированный язык взаимодействия. Такой ОС в настоящее время стала система ЮНИКС, которая с начала 8О-х годов уверенно выходит по числу приложений на уровень «стандарта-де-факто» мировой индустрии ЭВМ в целом. В Японии, например, система ЮНИКС рассматривается как основной претендент, а качестве стандартной операционной системы для ЭВМ пятого поколения.
Совместимые с системой ЮНИКС операционные системы созданы или создаются и в нашей стране. Это инструментальная мобильная операционная система ИНМОС для СМ ЭВМ, мобильная операционная система МОС для ЕС ЭВМ, диалоговая мобильная единая операционная система ДЕМОС для СМ ЭВМ, ЕС ЭВМ и ПЭВМ. В двенадцатой пятилетке мобильные операционные системы типа ЮНИКС будут реализованы для всех типов и классов отечественных ЭВМ.

Таким образом, созданы предпосылки для того, чтобы пользователь, освоив унифицированное «рулевое управление», а точнее, язык взаимодействия с системой ЮНИКС, мог успешно работать на различных ЭВМ, безболезненно переходя от одной машины к другой.

Однако объяснять феномен системы ЮНИКС только необходимостью стандартизации было бы не совсем верным. Как правило, операционные системы создаются большими коллективами профессиональных программистов, которые далеки от проблем рядовых пользователей ЭВМ, поэтому их в первую очередь заботит, как бы «выжать» максимум возможностей из ЭВМ, а в последнюю — нужны ли эти возможности пользователю и как он эти возможности будет применять.

Удачным исключением из этого правила стала операционная система ЮНИКС, которая с самого начала в отличии от других систем проектировалась с учетом потребностей рядового пользователя. Не последнюю роль я простоте и обозримости системы ЮНИКС сыграло то, что в ее разработке, по сути дела участвовало два человека. Учет накопленного опыта, а также ряд новых и плодотворных идей позволили авторам создать принципиально новую ОС, которая я полной мере отвечает принципу «все гениальное просто». Она стала антиподом операционной системы OS/360 (читай ОС ЕС), которая для многих системных программистов, не говоря уже о рядовых пользователях, осталось «вещью в себе» из-за эклектичности и громоздкости. Несмотря на то что ОС ЮНИКС, как и любая другая ОС, является сложной программной системой, ее часто называют «системой для домохозяек» — настолько прост язык взаимодействия с ней.

ОСНОВНОЙ режим работы системы ЮНИКС — диалог. В отличие от традиционных систем (типа ОС ЕС) в системе ЮНИКС вы не найдете языка управления заданиями, который создавал дополнительные трудности для инженера на его тернистом пути к освоению ЭВМ.

Для использования ОС ЮНИКС в повседневной работе вам не обязательно владеть каким-либо языком программирования, система располагает широким спектром программ общего назначения (утилитами), которые могут оказать вам существенную помощь. Освоив «рулевое управление» системы, вы получите в ее лице хорошего помощника, который даст возможность разрабатывать, редактировать и размножать различные документы; станет вашим электронным секретарем, ничто не забывающим и вовремя напоминающим о текущих делах; поможет в проведении инженерных расчетов и создании банка данных. Имеющиеся средства ОС ЮНИКС позволят вам обмениваться корреспонденцией с другими пользователями и проводить телеконференции. Для того чтобы начать, работу с системой, достаточно освоить 5—10 простых команд.

Однако в эпоху научно-технической революции инженеру не обойтись и без программирования. Те программы, которые сегодня используются при проектировании новых машин, линий метрополитена, жилых кварталов, управляют технологическим процессом, завтра могут оказаться безнадежно устаревшими: появились более точные методы расчета, новые материалы, изменились требования в градостроении или условия прокладки метро, ученые создали новую технологию. Что делать инженеру в этих условиях? Бежать к программисту, у которого своих дел хватает, долго объяснять ему суть проблемы и в итоге получить программу, которая делает совсем не то, что требуется инженеру? И все это притом, что на столе инженера стоит «умная» ПЭВМ, которая поможет ему написать и отладить программу.

СЕГОДНЯ проходит то время, когда программирование было прерогативой профессионалов, когда инженера отделяла от ЭВМ спина программиста. И здесь можно провести аналогию с автомобилем. Представьте себе ситуацию, когда каждый владелец автомобиля нанимает себе профессионального водителя. Вы скажете: «Абсурд!».

image А не абсурд, имея под рукой ЭВМ, зная четко постановку задачи, обращаться к человеку, далекому от вашей проблематики? Система ЮНИКС и здесь окажет неоценимую услугу инженеру. Она включает в свой состав системы программирования на языках Си, Фортран и Паскаль и располагает простыми и удобными средствами подготовки и отладки программ.

Мы надеемся, что курс по изучению ОС ЮНИКС поможет вам углубить знания в области вычислительной техники и успешно применять их на практике. В рамках курса мы будем ориентироваться на отечественную мобильную операционную систему МО С ЕС.

В цикле публикаций планируется рассмотреть вопросы, связанные с организацией взаимодействия пользователя с системой, подготовкой документов, созданием информационно-справочным систем, электронной почтой, программированием на языках Фортран, Паскаль и Си. Предполагается также рассмотреть вопрос переноса ранее разработанных вами программ на языках Фортран и Паскаль для ОС ЕС в систему ЮНИКС для дальнейшего их использования.

В. ОРЛОВ, кандидат технических наук, старший научный сотрудник

Вот и все. Так что же принципиально изменилось в нашем миреза эти 30 лет!
P.S. Небольшой экскурс в историю можно совершить здесь.

Комментарии (1)

  • 15 сентября 2016 в 21:14

    0

    Спасибо за исторический, экскурс, все так и есть.
    А другие материалы этой серии из 'Техника и наука' сохранились?

© Habrahabr.ru