Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LINUX / KOZLOV2_1

.pdf
Скачиваний:
86
Добавлен:
27.03.2016
Размер:
4.3 Mб
Скачать

Министерство образования и науки Российской Федерации Национальный исследовательский университет «МИЭТ»

В.В. Ермак, А.В. Козлов, В.Ю. Савченко

ОС LINUX для разработчиков и пользователей ПО САПР БИС

Учебное пособие

Утверждено редакционно-издательским советом университета

Москва 2011

PDF created with pdfFactory Pro trial version www.pdffactory.com

УДК 004.45 E72

Рецензенты: канд. техн. наук А.С. Ключников; канд. техн. наук А.В. Швец

Ермак В.В., Козлов А.В., Савченко В.Ю.

E72 ОС LINUX для разработчиков и пользователей ПО САПР БИС: учеб.

пособие. – М. МИЭТ, 2011. – 220 с.: ил.

ISBN 978-5-7256-0615-7

Рассматриваются основные задачи разработчиков ИС в САПР в среде OC Linux, а также использование средств, полезных при командной разработке программного обеспечения в среде ОС Linux.

Предназначено для студентов 3-го курса факультета ЭКТ, обучающихся по специальностям «Электроника и микроэлектроника», «Информатика и вычислительная техника», а также для магистрантов первого года обучения, обучающихся по программам

Cadence и Synopsys.

ISBN 978-5-7256-0615-7

© МИЭТ, 2011

2

PDF created with pdfFactory Pro trial version www.pdffactory.com

Учебное пособие

Ермак Владимир Викторович Козлов Антон Викторович Савченко Валентин Юрьевич

ОС Linux для разработчиков и пользователей ПО САПР БИС

Редактор Е. Г. Кузнецова. Технический редактор Л.Г. Лосякова. Верстка авторов.

Подписано в печать с оригинал-макета 11.11.2011. Формат 60× 84 1/16. Печать офсетная. Бумага офсетная. Гарнитура Times New Roman. Усл. печ. л. 12,76.

Уч.-изд. л. 11,0. Тираж 150 экз. Заказ 160. Отпечатано в типографии ИПК МИЭТ.

124498, Москва, Зеленоград, проезд 4806, д. 5, МИЭТ.

3

PDF created with pdfFactory Pro trial version www.pdffactory.com

Введение

В настоящее время проектирование интегральных микросхем (ИМС) просто

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

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

Операционная система это программа, которая управляет аппаратными и программными средствами компьютера, предназначенными для выполнения задач пользователя, и является посредником» между средством разработки САПР СБИС и аппаратно-вычислительным комплексом электронно-вычислительной системы. Она

выполняет важную функцию по координации распределения аппаратных ресурсов между разными программными приложениями и пользователями САПР. Функциями ОС являются также назначение прав доступа на объекты файловой системы (ОФС), включающие файлы и каталоги проектов пользователя; повышение общей производительности программно-аппаратного комплекса, увеличивающей быстроту работы программ САПР и снижающей время на разработку СБИС. Это лишь небольшой перечень всех функций операционной системы. Таким образом, выбор операционной

системы является очень важным критерием надежности работы САПР любого производителя. При сравнении существующих сегодня коммерческих и свободно

распространяемых операционных систем все больше производителей САПР отдают свое предпочтение операционным платформам семейства UNIX.

Высококвалифицированные разработчики СБИС должны иметь навыки программирования, создания программных приложений с использованием языка высокого уровня С++, поскольку, с одной стороны, нужно понимать алгоритмы и принципы функционирования данных приложений, с другой стороны, требуется создавать

4

PDF created with pdfFactory Pro trial version www.pdffactory.com

дополнительные модули программных приложений или иметь возможность исправить существующий код под собственные задачи или нужды группы разработчиков.

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

Теперь о содержании пособия. В главе 1 приведены общие сведения о ОС Linux, перечислены основные задачи разработчиков ИС в САПР, приведен пример организации ЭВМ в Дизайн-центрах. В главе 2 приводятся сведения о работе в командном интерпретаторе BASH. В главах 3 – 7 даны сведения о файловой системе в Linux, о поиске, сортировке, фильтрации и архивировании данных, о чтении и редактировании файлов, о работе с ситемными процессами. В главах 8 – 11 рассмотрены принципы программирования на языках shell, awk, perl, tcl. Глава 12 посвящена внутреннему средству контроля версий ОС Linux, позволяющему пользователям и разработчикам СБИС работать с большим числом проектов. Описаны принципы разбиения исходного проекта на множество отдельных файлов, получение структурной зависимости позволяет упростить работу с проектами. Уделено внимание существующим стандартным библиотекам Linux, приведен пример формирования новых библиотек. В главе 13 показаны принципы программирования на языке C (создание кода, сборка проекта, отладка). На примере небольших программ, написанных на языке С++, рассмотрены: основные операции с cvs-репозиторием; способы построения системы сборки на основе языка make; создание статических и динамических библиотек; вопросы отладки: использование отладчика, профилировщика, утилит по контролю над использованием динамически выделенной памяти, утилиты по контролю над системными вызовами.

Предполагается, что читатель будет воспроизводить действия, описанные в пособии, на своем компьютере, поэтому исходные коды примеров доступны широкому кругу пользователей в Internet.

5

PDF created with pdfFactory Pro trial version www.pdffactory.com

1. Проектирование ИС в ОС Linux

1.1. Общие сведения об OC Linux

Операционные системы UNIX-семейства удовлетворяют всем требованиям, предъявляемым к ним средствами разработки СБИС: это возможность обеспечения одновременного доступа к средствам разработки множеству пользователей; высокая скорость обработки информации; наличие набора текстовых, графических редакторов, средств чтения файлов помощи и внутренней документации САПР; набор программ для сетевого доступа в Internet и в другие сети; набор средств для удаленной работы с САПР; большое разнообразие полезных программ и утилит для работы с аудио-, видео- и фотообъектами, а также многое другое. Кроме того, важным компонентом операционных систем этого семейства является командный интерпретатор, способный обрабатывать

командные запросы пользователя и выдавать полученную информацию на экран монитора, в файл или на устройство.

Разработка ОС UNIX осуществлялась компьютерными профессионалами, работающими в научной среде. По мере своего развития UNIX дала основу разным операционным системам, среди которых наиболее известными являются Linux, Solaris и FreeBSD. Каждая из этих систем начала развиваться индивидуально, но сохранила все достоинства UNIX.

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

гибкость;

мощность;

стабильность;

многозадачный режим;

многопользовательский режим;

высокий уровень безопасности;

удобный графический интерфейс;

большое количество текстовых и графических программ;

набор клиентских и серверных приложений;

наличие «открытой лицензии».

6

PDF created with pdfFactory Pro trial version www.pdffactory.com

ОС Linux удобно сочетает в себе высокую производительность работы и возможность точной настройки элементов под нужды конкретного разработчика. Квалифицированная

настройка функций позволяет операционной системе круглосуточно на протяжении длительного времени работать без перебоев. Наличие многопользовательского и

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

Не менее важным преимуществом Linux является наличие так называемой «открытой лицензии» на большинство дистрибутивов. Несмотря на то, что исходные коды ряда программных обеспечений распространяются открыто и бесплатно, они защищены общедоступными лицензиями, которые исключают право коммерческих компаний незначительно модифицировать их и объявлять авторские права на эти изменения, а затем брать программный продукт под собственный контроль и продавать его как свой. Наиболее популярной является общедоступная лицензия GNU Public License, предоставляемая Фондом бесплатного программного обеспечения (Free Software Foundation). Операционная система Linux распространяется по этой лицензии. Обще- доступная лицензия GNU оставляет авторские права за разработчиком, но гарантирует бесплатное использование программного обеспечения при условии, что само программное

обеспечение и все дополнения и изменения к нему всегда будут оставаться свободно распространяемыми.

При работе с Linux разработчик СБИС имеет возможность осуществлять запуск программ как с основного компьютера, за которым он непосредственно находится, так и с удаленного компьютера, работая с ним через свой терминал. В Linux имеется возможность настроить по своему желанию требуемые тип, размер и цвет шрифтов; фоновый цвет терминального окна; форму отображения командного приглашения; установить нужные переменные и псевдонимы. Разработчик может контролировать процессы, по мере необходимости менять между ними приоритеты, а некоторые снимать.

1.2. Основные задачи разработчика САПР СБИС

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

Взаимодействие пользователя с САПР обычно заключается не только в запуске

7

PDF created with pdfFactory Pro trial version www.pdffactory.com

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

Рабочий день разработчика СБИС обычно состоит из привычных типовых действий, которые можно и даже необходимо автоматизировать, чтобы существенно сократить время разработки проекта.

Модель рабочего дня разработчика можно представить следующим образом. В

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

Разработчик, придя на работу и включив компьютер под управлением ОС Linux, должен зарегистрироваться на своей рабочей станции (local host), затем при необходимости подключиться к удаленной системе Linux (remote host), если средства проектирования находятся не на собственной рабочей станции, а на центральном сервере. Зарегистрировавшись и попав в свою локальную home-директорию, разработчику надо создать новую папку, например с именем день_месяц_год, куда нужно скопировать выложенные менеджером имеющиеся файлы для дальнейшей работы с ними. Кроме того, в этой новой папке надо создать пустой файл с именем день_месяц_год_report , куда заносятся данные-комментарии в течение дня.

При работе с ОС Windows с сетевым соединением к серверу Linux / UNIX разработчику требуется на своей рабочей станции запустить X-клиент, который

необходим для отображения графического интерфейса САПР с сервера на рабочей станции. Установление сетевого соединения с удаленным компьютером, на котором находится САПР, обычно происходит путем связи локальной машины (local host) с

8

PDF created with pdfFactory Pro trial version www.pdffactory.com

удаленной с помощью одной из следующих программ: telnet, ssh, rlogin, putty или некоторых других. При этом пользователь (разработчик САПР СБИС) указывает IP-адрес или доменное имя удаленной системы для связи с ней. После чего пользователю предлагается зарегистрироваться на удаленной системе, т.е. в окне программы сетевого соединения ввести login и password. После успешной регистрации пользователя загружается командный интерпретатор shell, установленный по умолчанию.

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

Чаще всего информационная поддержка пользователя при работе с операционной системой ограничивается man-страницами, info-инструкциями, командной системой help, а также Internet-ресурсами к модулям операционной системы. Что касается информации о средствах разработки САПР, то обычно, помимо указанных инструкций, описание к программам можно найти в файлах-инструкциях в форматах pdf, htm или html, находящихся в специальных директориях установленной САПР.

Пользователю также необходимо уметь выполнять основные действия с объектами файловой системы, а именно, проводить копирование, переименование, перемещение, удаление файлов и каталогов, создание ссылок на файлы и каталоги, назначение прав доступа на объекты файловой системы Linux.

Проектирование на САПР требует от пользователя определенных навыков работы со средствами программирования. В распоряжении проектировщика в составе операционной системы Linux имеется встроенный высокоуровневый язык программирования shell, а также трансляторы некоторых других высокоуровневых языков. Например, зачастую при работе с САПР требуется написать файлы входных воздействий программ, некоторые инструкции к программам, представленные в виде файлов-сценариев. Таким образом,

пользователю требуется не только умение владеть примитивными командами текущего командного интерпретатора, но также знание программирования на языке shell для написания новых модулей САПР или расчета сложных интегральных схем, состоящих, например, из десятков тысяч узлов. Ввиду своей сложности и высоких временных затрат

данная задача не может быть выполнена разработчиком в ручном режиме и требует автоматизации процесса. Пользователю требуется написать файл-сценарий для обработки всех узлов сложной СБИС. Процесс создания файла-сценария существенно сократит

9

PDF created with pdfFactory Pro trial version www.pdffactory.com

время на разработку нового проекта и по возможности позволит перенести алгоритм обработки схемы на последующие СБИС.

Написание файлов входных воздействий средствами Linux требует от разработчика САПР СБИС умения работать с текстовыми редакторами. Обычно в составе Linux имеется достаточно много различных текстовых редакторов, отличающихся друг от друга техническими возможностями, внешним графическим или текстовым интерфейсом, способами работы с большими файлами. Однако разработчик отдает предпочтение какому-то одному редактору, элементы управления которым ему наиболее понятны.

Разработчику СБИС требуется сохранять не только текстовую, но и графическую информацию по работе САПР, например, построение средствами САПР электрических параметров приборов; построение двумерных и трехмерных распределений с градиентом цвета выбранного электрофизического параметра прибора.

Разработчик должен уметь назначать права доступа на созданный проект для совместного использования в составе группы разработчиков. По мере выполнения проекта разработчикам требуется объединяться в группы. Каждая группа выполняет свою часть проекта. Например, при проектировании сложной смешанной СБИС одна группа занимается разработкой аналоговой части схемы, другая цифровыми блоками, третья группа готовит схему обрамления и/или проектирует схемы фильтрации и преобразования выходного сигнала. При разработке новых средств многофункциональной САПР одна группа может заниматься алгоритмической частью проекта, другая писать графический интерфейс оболочки, а третья разрабатывать сетевые интерфейсы клиентской и серверной частей. Таких групп может быть достаточно много. Внутри каждой группы пользователи должны иметь доступ к файлам и каталогам, предназначенным для совместного пользования. Вообще разделение пользователей на группы является задачей системного администратора, однако порой пользователю требуется предоставлять свои файлы другим пользователям для совместного пользования, и он должен уметь это делать. Кроме того, при работе группы разработчиков требуется средствами операционной

системы поддерживать связь между участниками проекта для уточнения деталей или получения технического задания от менеджера проекта. Обычно для этих целей используются программы сетевого общения, которые позволяют разработчикам САПР СБИС общаться между собой средствами операционной системы Linux. Большинство программ, встроенных в Linux, используют сетевой интерфейс TCP/IP, дающий возможность пользователям общаться как внутри своей интрасети, так и с помощью

Internet.

10

PDF created with pdfFactory Pro trial version www.pdffactory.com

Соседние файлы в папке LINUX