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

книги / Микропроцессорные средства автоматизации энергетических систем. Сети автоматизации

.pdf
Скачиваний:
5
Добавлен:
12.11.2023
Размер:
20.13 Mб
Скачать

компьютеров (93,8 %), а также, согласно Linux Foundation, в DATA-

центрах и на предприятиях, занимают половину рынка встраиваемых систем, значительную долю рынка ноутбуков (32 % на 2009 год). Рыночная доля Linux среди электронных устройств составляет около 42 %. С тех пор как ядро Linux было создано для x86-ПК, оно было портировано на множество платформ, включая x86-64, PowerPC и ARM. Linux работает в роутерах, телевизорах и игровых приставках. ОС на ядре продолжают быстро совершенствоваться (например, новая версия ядра выпускается каждые 2–3 месяца, начиная с 2005 года в разработке ядра принимают участие более 7800 разработчиков из более чем 800 различных компаний (за 9 месяцев с мая 2011 года по январь 2012 доля Linux выросла на 64 %)). Наиболее популярными дистрибутивами являются debbased (Debian, Mint, Ubuntu), RPM-based (RedHat, Fedora, Mageia, OpenSUSE), source-based (Slackware, Gentoo), pacman-based Arch Linux. Собственные дистрибутивы Linux выпускаются различными компаниями и энтузиастами со всего мира, в том числе из России и Украины.

MFC (Microsoft Foundation Classes) – библиотека на языке

C++, разработанная MS и призванная облегчить разработку GUIприложений для MS Windows путем использования большого набора библиотечных классов. Библиотека MFC, как и ее основной конкурент BorlandVCL, облегчает работу с GUI путем создания каркаса приложения – «скелетной» программы, автоматически создаваемой по заданному макету интерфейса и полностью берущей на себя рутинные действия по его обслуживанию (отработка оконных событий, пересылка данных между внутренними буферами элементов и переменными программы и т.п.). Программисту после генерации каркаса приложения необходимо только вписать код в места, где требуются специальные действия. Каркас должен иметь вполне определенную структуру, поэтому для его генерации и изменения в VisualC++ предусмотрены мастера. Кроме того, MFC предоставляет объектно-ориентированный слой оберток (wrappers) над множеством функций WindowsAPI, делающий несколько более удоб-

431

ной работу с ними. Этот слой представляет множество встроенных в систему объектов (окна, виджеты, файлы и т.п.) в виде классов

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

ивыделения/освобождения памяти.

Mono – проект по созданию полноценного воплощения системы .NET Framework на базе свободного ПО. Его основной разработчик – корпорация Xamarin, ранее – Novell. Проект возглавляет Мигель де Икаса – известный разработчик, основатель проекта GNOME. Реализации Mono существуют для следующих ОС: Windows, Linux, BSD (FreeBSD, OpenBSD, NetBSD), Solaris, Mac OS X, Apple iOS, Wii. Поддерживаются платформы s390, SPARC, PowerPC, x86/x86-64, IA64, ARM, Alpha, MIPS, HPPA.

MS (Microsoft) – корпорация «Майкрософт», одна из крупнейших транснациональных компаний по производству проприетарного программного обеспечения для различного рода вычислительной техники: ПК, игровых приставок, мобильных телефонов и прочего; разработчик наиболее широкораспространенной на данный момент вмирепрограммнойплатформы– семействаОСWindows.

NetBSD – свободно распространяемая ОС. Первая официальная версия NetBSD-0.8 была выпущена в апреле 1993 года. Согласно своему лозунгу о портируемости коллекция пакетов NetBSD портирована не только на все доступные аппаратные платформы, но и на многие другие ОС (например, Linux, FreeBSD, OpenBSD, QNX, Solaris, Darwin/MacOSX, IRIX и др.).

ODBC (Open Data Base Connectivity) – программный интер-

фейс (API) доступа к БД, разработанный фирмой MS в сотрудниче-

стве с SimbaTechnologies на основе спецификаций Call Level Interface (CLI), который создавался организациями SQL Access Group, X/Open и MS. Впоследствии CLI был стандартизован ISO. Стандарт CLI призван унифицировать программное взаимодействие с СУБД, сделать его не зависимым от поставщика СУБД и программноаппаратной платформы. В начале 1990 года существовало несколько поставщиков БД, каждый из которых имел собственный интерфейс. Если приложению было необходимо общаться с несколькими

432

источниками данных, для взаимодействия с каждой из баз данных было необходимо написать свой код. Для решения возникшей проблемы MS и ряд других компаний создали стандартный интерфейс ODBC для получения и отправки источникам данных различных типов, или открытый механизм взаимодействия с базами данных. C помощью ODBC прикладные программисты могли разрабатывать приложения для использования одного интерфейса доступа к данным, не беспокоясь о тонкостях взаимодействия с несколькими источниками. Это достигается благодаря тому, что поставщики различных баз данных создают драйверы, реализующие конкретное наполнение стандартных функций из ODBC с учетом особенностей их продукта. MFC-библиотека позволила усовершенствовать ODBC для разработчиков приложений. Истинный интерфейс ODBC является обычным процедурным API. Вместо создания простой оболочки процедурного API разработчики MFC создали набор абстрактных классов, представляющих логические сущности в базе данных.

ONC RPC (Open Network Computing Remote Procedure Call) –

система удаленного вызова процедур. RPC основан на соглашениях вызова, используемых в Unix и языке программирования Си. Он сериализует данные при помощи XDR, который также может кодировать и декодировать файлы для поддержки доступа с различных платформ. Затем ONC доставляет данные XDR, используя UDP или TCP. Доступ к сервисам RPC на компьютере предоставляется через отображатель портов, который принимает запросы на известном порту, обычно 111, по UDP и TCP. Реализации ONC RPC существуют в большинстве Unix-подобных систем. Microsoft поставляет реализацию в составе продукта MS Windows Services for UNIX. Кроме того, существуют иные реализации ONC RPC для ОС Windows, в том числе для C/C++, Java, .NET. В 2009 году Sun собирался перелицензировать реализацию ONC RPC под трехусловную BSD license, что позже было сделано Oracle в 2010 году.

POSIX (Portable Operating System Interface for Unix) – пере-

носимый интерфейс ОС Unix; набор стандартов, описывающих интер-

433

фейсы между ОС и прикладной программой. Стандарт создан для обеспечения совместимости различных UNIX-подобных ОС и переносимости прикладных программ на уровне исходного кода, но может быть использован и для неUnix-систем. Серия стандартов POSIX была разработана комитетом 1003 IEEE. ISO совместно с IEC приняли данныйстандарт(POSIX) подназваниемISO/IEC 9945.

QNX – POSIX-совместимая ОСРВ, предназначенная преимущественно для встраиваемых систем. Считается одной из лучших реализаций концепции микроядерных ОС. QNX основана на идее работы основной части своих компонентов как небольших задач, называемых сервисами. Это отличает ее от традиционных монолитных ядер, в которых ядро ОС – одна большая программа, состоящая из большого количества «частей», каждая со своими особенностями. Использование микроядра в QNX позволяет пользователям (разработчикам) отключить любую ненужную им функциональность, не изменяя ядро. Для этого можно просто не запускать определенный процесс. Система достаточно небольшая, чтобы в минимальной комплектации уместиться на одну дискету, вместе с этим она считается очень быстрой и должным образом «законченной» (практически не содержащей ошибок). QNX Neutrino, выпущенная в 2001 году, перенесена на многие платформы и сейчас способна работать практически на любом современном процессоре, используемом на рынке встраиваемых систем. Среди этих платформ присутствуют семейства x86, MIPS, PowerPC, а также специализированные семейства процессоров, такие как SH-4, ARM, StrongARM и xScale. Система платная, при этом для некоммерческого использования и обучения ее использование бесплатно в течение 30 дней.

RPC (Remote Procedure Call) – удаленный вызов процедур

(или вызов удаленных процедур); класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удаленных компьютерах). Обычно реализация RPC-технологии включает в себя два компонента: сетевой протокол для обмена в режиме «клиент – сервер» и язык сериализации объектов (или структур для необъектных RPC).

434

Различные реализации RPC имеют очень отличающуюся друг от друга архитектуру и разнятся в своих возможностях: одни реализуют архитектуру SOA, другие – CORBA или DCOM. На транспортном уровне RPC используют в основном протоколы TCP и UDP, однако некоторые построены на основе HTTP (что нарушает архитектуру ISO/OSI, так как HTTP изначально не транспортный протокол).

RT (Real-Time, Real-Time System) – компьютерная система,

реагирующая на события в приемлемое для управления порождающим их процессом время.

RTLinux – микроядерная проприетарная ОС жесткого РВ, работу над которой фирма Wind River завершила в 2007 году. В RTLinux все прерывания обрабатываются наноядром реального времени, которое включает собственный планировщик задач, обработчик прерываний и библиотечный код. Linux как задача имеет наименьший приоритет. Linux не может выполнять следующие операции: блокировать аппаратные прерывания, предохранять себя от вытеснения другой задачей. Ключ к реализации данной системы – эмулирующий систему управления прерываниями драйвер, к которому обращается Linux при попытке блокировать прерывания. В этом случае драйвер перехватывает запрос, сохраняет его и возвращает управление Linux. Ядро RTLinux спроектировано таким образом, что ядро реального времени никогда не нуждается в ожидании освобождения ресурса, занятого Linux-процессом. Для обмена данными между ОСРВ и Linux предусмотрены следующие средства: разделяемые области памяти, псевдоустройства, которые предоставляют возможность обмена данными с приложениями реального времени. Приложение реального времени с RTLinux, как правило, состоит из двух независимых частей: процесса, исполняемого ядром RTLinux, и обыкновенного Linux-приложения. Такой модульный подход к написанию приложений присущ многим расширениям реального времени для многоцелевых систем, где задача реального времени работает независимо от ОС. Разработчики уже приняли схему, по которой критичные к времени реакции задачи программируются с помощью API-интерфейсов, предусмотренных расширением ре-

435

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

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

ные ОС: OS X, Linux, Solaris, BSD и NeXTSTEP. В настоящее время

UNIX-системы распространены в основном среди серверов, а также как встроенные системы для различного оборудования. Среди ОС для рабочих станций и домашнего применения UNIX и UNIXподобные ОС занимают после MS Windows второе (OS X), третье

(GNU/Linux) места.

VBA (VisualBasic for Applications, VisualBasic для прило-

жений) – немного упрощенная реализация языка программирования VisualBasic, встроенная в линейку продуктов MSOffice (включая версии для MacOS), а также во многие другие программные па-

кеты, такие как AutoCAD, SolidWorks, CorelDRAW, WordPerfect

и ESRIArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макроязыков, таких как WordBasic. VBA является интерпретируемым языком, близким к VisualBasic. Будучи языком, построенным на COM, позволяет использовать все доступные в операционной системе COM объекты и компоненты ActiveX. По сути, возможно создание приложения на основе Microsoft Word VBA, использующего только средства Corel Draw. VBA в 2006 году был заменен на VSTA – инструментарий расширения функциональности приложений, основанный на MS.NET.

436

VisualBasic.NET (VB.NET) – объектно-ориентированный язык программирования – виток эволюцииVisualBasic (VB), реализованный на платформе Microsoft.NET. VB.NET не имеет обратной совместимости с более ранней версией (VisualBasic 6.0). Развитие проектов старых версий (*.vbp) возможно только после предварительной конвертации их в формат VB.NET специальным мастером (MigrationWizard), однако, как правило, после конвертации требуется существенная ручная доработка текстов. Изменения в VB.NET, по сравнению с VB 6.0, следующие:

1)поддержка концепций объектно-ориентированного программирования с конструкторами и деструкторами, наследованием, перекрытием методов (Overrides) и др., есть даже переопределение знаков операций;

2)компиляция в байт-код (intermediate language, IL), испол-

няемый с помощью виртуальной машины CLR;

3)использование всего набора объектных библиотек, входящих

в.NET Framework, включающих мощные средства по работес формами

(Windows Forms), базами данных (ADO.NET), графикой (GDI+), средст-

вамиобеспечениябезопасности, веб-страницами(ASP.NET) ит.п.;

4)поддержка свободной многопоточности;

5)поддержка структурной обработки исключений (structured exception handling, SEH).

С переходом на платформу .NET изменилась сама парадигма программирования.

VSTA (Visual Studio Tools for Applications) – набор инструмен-

тов для приложений на базе .NET Framework 2, который может использоваться для создания настроечных возможностей в приложениях для автоматизации и расширения. Он входит в состав Office 2007 (только в InfoPath). Текущей версией является VSTA 2.0, которая включает в себя такие функции, как динамическое программирование моделии поддержкаWPF, WCF, WF, LINQ иNET 3.5.

VxWorks – ОСРВ, разработанная компанией Wind River Systems для систем жесткого РВ. VxWorks является системой с кросс-средствами разработки прикладного программного обеспе-

437

чения на host и последующего применения его на целевой машине – target. Как и большинство других ОСРВ, VxWorks включает в себя многозадачное ядро с вытесняющим планировщиком и быстрым откликом на прерывания, средства межпроцессного взаимодействия и синхронизации, а также файловую систему и сетевую подсистему (стек протоколов TCP/IP). В комплект поставки входят средства для кросс-компиляции, мониторинга производительности (WindView), удаленной символьной отладки, а также эмуляции различных процессоров. Дополнительно поставляется значительное количество различных стеков протоколов, графических подсистем и другого как от самой Wind River Systems, так и от третьих фирм. Множество поддерживаемых VxWorks встраиваемых платформ являются одними из самых обширных среди ОСРВ. В 2009 году компания Intel

поглотила Wind River Systems и VxWorks.

Windows – семейство проприетарных ОС корпорации MS, ориентированных на применении графического интерфейса при управлении. Изначально Windows была всего лишь графической надстройкой для MS-DOS. По состоянию на май 2013 года под управлением ОС семейства Windows, по данным ресурса Netmarketshare (Net Applications), работает около 91 % РС. Операционные системы

Windows работают на платформах x86, x86, 64, IA-64, ARM. Существовали также версии для DEC Alpha, MIPS, PowerPC и SPARC.

Windows Forms – интерфейс программирования приложений (API), отвечающий за графический интерфейс пользователя и являющийся частью MS.NET Framework. Данный интерфейс упрощает доступ к элементам интерфейса MS Windows за счет создания обертки для существующего Win32 API в управляемом коде. Причем управляемый код – классы, реализующие API для Windows Forms, – не зависят от языка разработки. Иными словами, программист одинаково может использовать Windows Forms как при написании ПО на

C#, С++, так и на VB.Net, J# и др. С одной стороны, Windows Forms

рассматривается как замена более старой и сложной библиотеки MFC, изначально написанной на языке C++. С другой стороны, WF не предлагает парадигму, сравнимую с MVC. Для исправления этой

438

ситуации и реализации данных функций в WF существуют сторонние библиотеки. Одной из наиболее используемых подобных биб-

лиотек является User Interface Process Application Block, выпу-

щенная специальной группой Microsoft, занимающейся примерами и рекомендациями, для бесплатного скачивания. Эта библиотека также содержит исходный код и обучающие примеры для ускорения обучения. Внутри .NET Framework Windows Forms реализуется в рамках пространства имен System.Windows.Forms.

Проект DotGNU – реализация инфраструктуры MS.NET на платформеGNU/Linux. DotGNU 0.1 состоитиз трехосновныхчастей:

1.DotGNU Portable.NET – базовый пакет, включающий в себя runtime среду CLI «ilrun», компиляторы языков C# и ANSI C, библиотеки классов, в том числе System.Windows.Forms. Данная реализация System.Windows.Forms от DotGNU не использует сторонних библиотек вроде Gtk, Qt и не зависит от Wine. Portable.NET поддерживает широкий спектр ОС (GNU/Linux, *BSD, Cygwin/Mingw32, Mac OS X, Solaris, AIX) и аппаратных архитектур (x86, ppc, arm, parisc, s390, ia64, alpha, mips, sparc).

2.phpGroupWare – многопользовательский GroupWare-пакет, содержащий обширный набор веб-сервисов, доступных по протоколу XML-RPC, которые могут быть использованы в приложениях пользователей.

3.DGEE – динамично развивающийся сервер для поддержки веб-сервисов.

DotGNU рекомендуется всем, кто желает работать с приложе-

ниями Microsoft.NET в Linux и других ОС, отличных от Windows.

ОС – операционная система.

2.5. Языки программирования

ActiveX – технология создания апплетов без применения языка Java, используемая в MS Windows. Апплеты ActiveX загружаются дольше эквивалентных Java-апплетов, однако они в большей мере используют возможности OС Windows.

439

ANSI C – стандарт языка Cи, опубликованный ANSI в 1989 году. Следование этому стандарту помогает создавать легкопортируемые программы. На основе языка Си развились другие языки.

Applet – небольшая программа, которая откомпилирована и вставлена в НТМL-страницу.

Byte-code (байт-код) – машинно-независимый код низкого уровня (псевдокод), генерируемый транслятором и исполняемый интерпретатором. Большинство инструкций байт-кода эквивалентны одной или нескольким командам ассемблера. Трансляция в байт-код занимает промежуточное положение между компиляцией в машинный код и интерпретацией. Длина каждого кода операции– один байт, но длина кода команды различна. Каждая инструкция представляет собой однобайтовый код операции от 0 до 255, за которым следуют такие параметры, как регистры или адреса памяти. Это в типичном случае, но спецификация байт-кода значительно различается в разных языках. Преимущество байт-кода – в портируемости, т.е. один и тот же байт-код может исполняться на разных платформах и архитектурах. Примеры языков, компилирующихся в байт-код, – PHP, Lua, Perl, GNU CLISP, Java. Байт-код не является машинным кодом какоголибо компьютера и может переноситься на различные компьютерные архитектуры. Байт-код интерпретируется (исполняется) виртуальной машиной перед исполнением на лету – с помощью JIT-компиляции. В стандарте открытых загрузчиков Open Firmware фирмы Sun Microsystems байт-код представляет операторы языка Forth.

C# (си шарп) – объектно-ориентированный язык программирования. Разработан в 1998–2001 годах компанией Microsoft как язык разработки приложений для платформы .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270. C# относится к семье языков с C-подобным синтаксисом, из которых он наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщенные типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, ис-

440

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