Платформа в информационных технологиях. Тестирование скоростных характеристик при финальном рендеринге

22.04.2019

Предварительная подготовка

- Everyone please observe the fasten seat belt and no smoking signs have been turned on. Sit back and enjoy your ride.

Итак, по порядку.
Тестирование осуществляется на всех стадиях жизни аппаратуры. Тестирование бывает первоначальное (bringup), компонентное, функциональное, нагрузочное, производственное, и даже тестирование на заказчиках.

Еще на стадии разработки аппаратуры инженер думает о том, как он будет оживлять свое детище. Платы обсыпаются контрольными точками, отладочными коннекторами, перемычками, посадочными местами для запасных компонентов и прочим подобным. Совокупность возможностей для тестирования, заложенных в аппаратуру, называется DFT (Design for Testability). Плата, выпущенная в DFT фазе, может содержать в два раза больше компонентов, чем плата, вышедшая в тираж. Естественно, следуя принципу «работает – не трогай», потом ее никто не переделывает, и конечный потребитель недоуменно рассматривает пустующие посадочные места на материнской плате из магазина, придумывая различные конспирологические теории по поводу их предназначения.

Итак, забрали с фабрики наш борд – что делать дальше? Ну конечно же – воткнуть в розетку и выпустить из него весь белый дым.


- Everybody falls the first time.

Фотка из интернета, у нас жжёных плат не нашлось, но каюсь – иногда так и делается. На моей памяти есть давняя история, когда любопытный системный архитектор сидел и подбирал наугад, в какие разъёмы нужно воткнуть фазу, нейтраль и землю (ну вот не было у него времени заглянуть в схему), а рядом сидел разработчик и ловил бледного.

Но обычно всё происходит по-другому. Первая фаза тестирования – bringup (в народе «оживляш»).

Оживление Рождение

- Wake up, Neo...

Для bringup обычно изготавливается 3-5 образцов (в расчете на то, что как минимум два будут уничтожены в бреду дебага). Если в составе устройства есть дорогие чипы - на один из образцов они не устанавливаются. Фаб может предложить вам сэкономить на золоте - НИ В КОЕМ СЛУЧАЕ НЕ СОГЛАШАЙТЕСЬ (ну просто паять придется много и часто).

Плата без чипа - это первый кандидат на убой. На ней проверяются последовательность включения питания, сбросы, номиналы напряжений и прочее подобное. Потом такая плата является донором органов и/или полигоном для проверки всяческих гипотез. Также перед тем, как что-то включать, нужно обязательно:

  • прозвонить землю-питание, там частенько есть КЗ;
  • визуально осмотреть плату – там запросто бывает перепутана полярность конденсаторов, чипы стоят вверх ногами, присутствует стружка, с лёгкостью можно найти пассивные компоненты, которые оторвали;
  • отдельно изучить – а не поставили ли вам на плату компоненты, которые вы просили не ставить (лайфхак: не делайте черную маску на первых сэмплах – на ней не видно установлены или нет чип-резисторы).
Наигрались с первой жертвой – идем пускать дым из боевой платы. При этом необходимо запастись пилотом с кнопкой отрубания питания и тепловизором. Пилот надо поставить под ногу, на случай если по рукам будет бить 220 В (ну или просто руки будут заняты), а в тепловизор можно увидеть КЗ.

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

И еще припаять немножко проводов:

Термоклей - наше все, лучший друг разработчика, почти как скотч в обычной жизни.
Сразу после Дремеля:

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

Иногда приходится делать пациенту рентген или томографию. Выглядит это так:


Отсканировать плёнку, оказывается, не очень просто. Сняли телефоном на просвет напротив окна.

Конкретно на этом снимке не видно ничего - не вглядывайтесь. Но вообще на рентгене можно увидеть непропай, трещины и прочее подобное.

Отдельно стоит сказать про bringup материнских плат, потому что делается он по-другому. DFT сэмплов матерей обычно заказывается много – порядка 20 штук. Стоит это дорого, поэтому тут своя стратегия.

Берутся разработчики и отправляются на фабрику. Собирается порядка 5 плат и конвейер останавливается. Далее у разработчиков есть порядка 30 минут, чтобы плату включить (для x86-систем критерий успеха - загрузить BIOS). Если всем повезло - собираются остальные образцы. Если нет - производство отменяется, а разработчики едут домой думать. Деньги затраченные на PCB - потеряны, зато компоненты ждут на складе следующей попытки.

Хорошо - мы запустили нашу плату, и даже запустили другие, которые должны работать вместе с ней. Что дальше? Собираем стенд.
И тут вы, наверное, ожидаете увидеть такое?

Это все показуха для замминистров. Настоящий стенд должен быть собран из палок и желудей, и выглядит так:


- I didn"t say it would be easy, Neo. I just said it would be the truth.
(стакан для противовеса, фломастер - чтоб радиатор внатяг сидел - оно там проводом примотано)

В лабораторию набивается вот такая орда:

И все начинают наперегонки зашивать свои прошивки, программки, и тыкать везде осциллографом.
Иногда в процессе то и дело раздается вежливая просьба «Дорогой коллега, пожалуйста, уберите паяльник от моей руки - уж очень горячо» или «Будьте так добры - больше не включайте источник питания, когда я привинчиваю плату к шасси».

В нашем конкретном случае основная цель проверки совместной работы нескольких устройств - узнать, работает ли PCI Express, соответствует ли он стандарту. Просто без всего остального в принципе можно жить. Обычно функционал, закладываемый в железку, избыточен. Тонны GPIO выводов, I2C/SPI шин, термодатчиков, ледов и прочего, как правило, остаются невостребованными, так как их отладку откладывают на последний момент, который никогда не наступает.

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

Иногда видим опасный прищур:

А иногда ловим кальмаров:

Кальмары - самые опасные. Это нелинейные искажения, и встроенные эквалайзеры с таким бороться особо не умеют. Кальмары означают, что где-то в канале связи есть что-то очень плохое - слишком длинное переходное отверстие, существенный перепад импеданса, попадание какой-то неравномерности в 1/4 или 1/2 длины волны каких-то гармоник в полезной полосе и прочее подобное.

Кто-то, возможно, заметит, что кальмар немного похож на то, что делает с принятым сигналом DFE в эквалайзере приемника PCIe. Но в данном случае это таки кальмар, а не результат работы DFE (просто результат работы DFE используемое нами ПО отображать не умеет).

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

Ну и да - если вы планируете снимать глаза по интерфейсу I2C - забудьте, это будет очень очень очень медленно. Только in-band. Проблема в том, что для съема in-band у вашего устройства должен быть рабочий PCIe линк с компьютером, где работает тестовое ПО, что весьма проблематично, когда ваша железка не устанавливается в стандартный PCIe слот. И что самое забавное - у вас уже должен быть хоть как-то работающий линк на том канале, который вы отлаживаете, причем именно в том режиме (gen2/3) в котором вам нужно (ибо в разных режимах разные глаза и по разному работают эквалайзеры). Нет ножек, нет мультиков линка, нет глаз - вот как хотите, так и выкручивайтесь.

Про то, как выкручиваться с PCIe - я ранее написал отдельную .

Вообще, при разработке сервера, конечно, очень важна поддержка со стороны производителей используемых компонентов, поскольку сегодня сложность даже относительно простых чипов такова, что без использования встроенных в них тестовых вещей полноценно проверить и отладить систему вряд ли получится. Тактовые генераторы, регуляторы напряжений, сетевые контроллеры, коммутаторы PCI Express, редрайверы – все это имеет встроенные средства для настройки, диагностики, и нуждается в определенном наборе программ и кабелей для подключения для полноценной настройки и тестирования, без использования которых разработка становится просто невозможной.

В процессе проведения проверок иногда выясняется, что где-то что-то идет не так. И тогда начинается увлекательный процесс локализации ошибки, чтобы ее можно было исправить в следующей ревизии. И хорошо если это «не так» стабильно повторяется – тогда выяснить, что именно является причиной ошибки, как правило, не составляет труда. Но иногда все гораздо хуже. Например, на некоторых экземплярах плат при длительном прогоне тестов возникают одиночные некорректируемые ошибки на шине (которых быть не должно совсем). И вот здесь зачастую уже приходится применять метод «пристального взгляда» - то есть просто сидеть, гипотетически глядя на схему предполагать, что именно может быть причиной, пробовать эту гипотетическую причину устранить в схеме, и тестами уже проверить – угадали мы или нет.

Мы с подобным сталкивались несколько лет назад, когда тесты NVIDIA (да, многие производители предоставляют специфические наборы тестов, которые позволяют проверить вещи, недоступные программным путем при использовании стандартных утилит) давали редкие одиночные ошибки при длительных (сутки и более) прогонах на некоторых экземплярах плат. Тогда все дело оказалось в неудачной трассировке референсного клока (100 MHz) - хотя прежде чем мы к этому пришли, проверено было много всего, начиная от качества питания и заканчивая глазковыми диаграммами по всем линиям.

И кстати, это хорошо. Самый большой кошмар разработчика - когда все работает сразу. Это значит только одно - где-то закопана мина, которая сработает после отгрузки 100500 единиц оборудования заказчику. Дело в том, что в процессе поиска причины какой-то глобальной проблемы осуществляется проверка нескольких гипотез и как правило выявляется множество мелких неисправностей, никак с возникшей проблемой не связанных. Нет большой проблемы - не найдёте маленьких. Их за вас найдут ваши заказчики.

Проверка по списку

- All I do is what he tells me to do.

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

А… я же не сказал, что функциональное тестирование не означает собранную готовую к бою систему. Тут тоже бывает не все гладко. В какой-то момент оказалось что у нас нет в запасе OcuLink кабелей нужной длины, и у сервера появились кишки.

И почему-то вот в такой вот конфигурации при нагрузочном тесте все начало перегреваться. До сих гадаем - почему. Кабели грелись, наверное.

А два арбуза в каждой руке унести сможешь?

- You"re faster than this. Don"t think you are, know you are…

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

Кроме того, здесь помогают отладочные средства от производителя аппаратной платформы (например, Hardware Tests Executive от IBM). Таким образом можно загнать процессор в совсем предельные режимы, принципиально недостижимые при работе реальных приложений. Основные проблемы, выявляемые при нагрузочном тестировании – перегрев, нестабильность питания или перегрузка по максимальному току, ошибки при активной работе с интерфейсами ввода-вывода.

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

На стадии тестирования мы используем в основном микробенчмарки:
Для процессоров это обычно однопоточные нагрузки, типа spec2006 (сейчас уже speccpu2017 ), parsec , но вообще их огромное количество от сборки ядра linux и компрессии (lzma , gzip ), до перемножения матриц и вычисления быстрого преобразования Фурье (fftw ).
Для памяти много лет ничего не меняется: STREAM , RAMspeed SMP , lmbench .

Для дисков: fio , iozone .

При успешном прохождении всех функциональных и нагрузочных тестов остаются еще ряд вещей, требующих проверки – стабильность работы во всем диапазоне температур, стойкость к вибрации, проверка совместимости с определенным набором стандартных компонентов (память, диски, PCI Express контроллеры).

P.S.: После того как мы на функциональных тестах первой ревизии сервера все проверили и обрадовались, у нас в лаборатории внезапно обвалилось три сервера. Мы начали проверять питание и на линии 1.2В (питание шины PCIe процессоров) увидели вот такое:

Акцентирую ваше внимание - одна клетка 500mV. Номинал 1.2 В. Резистором ошиблись в цепи компенсации одного из VRM. Вот с таким вот питанием были успешно пройдены все нагрузочные тесты, бенчмарки, прожарки и прочее подобное, и дизайн радостно поехал на вторую ревизию.
Так что, когда на Вашем уютном домашнем компьютере именитого бренда внезапно появляется экран смерти - не стоит думать, что это непременно «глючит винда».

Один доцент постоянно талдычит нас одним и тем же: «Вы-аналитки. Вы должны ориентироваться в современных машинных архитектурах. Вам надо научиться выбирать аппаратную платформу, потому что скорость обработки данных и выполнения прикладных программ является ключевым фактором для бизнеса. Поэтому темой сегодняшней лекции будет микрокоманда выборки операндов из памяти в процессорах третьего поколения». Я думаю Вы поняли, насколько глубоко мы изучим современные аппаратные платформы=).

Я задумался(что уже само по себе здорово): «На основе каких критереев , каких подходов стоит выбирать аппаратную платформу? По каким принципам, корпорации выбирают или должны выбирать аппаратную составляющую своей IT-инфраструктуры ?» Конкретных ответов на все вопросы я не нашел, а нашел статью «Оптимизация процесса выбора аппаратной платформы для критических бизнес-приложений» и решил познакомить Вас с самым интересным. И так как ссылка на Elashkin Research при использовании материалов сайта обязательна, с удовольствием ставлю ее - http://www.elashkin.com :

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

Остановимся подробнее на каждой группе тестов. Существует огромное число универсальных тестов (SPECint2000 для операций, ориентированных на целочисленные вычисления, SPECfp2000 для операций с плавающей точкой и т. п.), но наиболее известными из них являются тесты TPC (Transaction Processing Performance Council – Совета по обработке транзакций). TPC является независимой некоммерческой организацией, создан- ной для исследования обработки транзакций и производительности систем управления базами данных (СУБД) и распространения объективной и воспроизводимой информации о производительности в тестах TPC для компь- ютерной индустрии. Наиболее используемые в индустрии тесты этой организации: TPC-C (тесты по обработке транзакций) и TPC-H (запросы к хранилищам данных). Сама процедура проведения тестов включает четкую стан- дартизацию и обязательное проведение аудита независимой сертифицированной компанией. С другой стороны, сами тесты являются исключительно упрощенными и значительно отличаются от реальных систем. С нашей точки зрения, эти тесты дают исключительно важную информацию для сравнения различных аппаратных и программных решений, позволяют сравнивать их между собой, но не применимы для выбора конкретной системы для решения задачи заказчика . Специализированные тесты гораздо более соответствуют действительности. В этих тестах используется программное обеспечение, которое может применяться в проекте. Наиболее известны тесты SAP benchmark . При тестировании по методике SAP происходит тестирование работы всех систем и подсистем: процессоров, вводавывода, сетевого трафика, обработки ошибок и других. Каждый SAP Standard Application Benchmark состоит из набора исполняемых сценариев, симулирующих типичные транзакции и бизнес-процессы, соответствующие обычным сценариям работы с системой. SAP предлагает набор тестовых данных для проведения испытаний. Для того чтобы тесты производительности SAP соответствовали реальным условиям эксплуатации и могли использоваться для сайзинга, в них симулируется поведение клиента, заполняющего стандартные формы. Каждому такому симулированному клиенту задается время задержки в 10 секунд перед выполнением очередного шага в диалогах, что соответствует среднему реальному времени размышления живых опытных операторов. Во время выполнения тестов число одновременно работающих симулированных клиентов непрерывно возрастает до тех пор, пока время отклика системы в диалоговом режиме не превысит установленные спецификацией на тесты 2 секунды. Такая нагрузка намного больше соответствует реальным системам, чем нагрузка в тестах TPC, т. к. учитывает тот факт, что приемлемое время отклика системы более важно для работы, чем общее число проведенных транзакций. Это сравнительно небольшое изменение оказывает решающее влияние на настройки системы и на нагрузку всех ее компонентов, делая ее максимально близкой к реальной работе пользователей. В результате чего специализированные тесты, и особенно SAP benchmark, лучше подходят для оценки производительности серверных платформ. В связи с направленностью тестов на понимание их результатов людьми, принимающими решения и не обязан- ными разбираться в технических деталях и терминах, результатом теста является число полностью обработан- ных бизнес-операций. Такими операциями могут быть: число введенных заказов, число произведенных товаров, число заказов на сборку и т. п. В целом такие тесты гораздо более приближены к реальной жизни, но также обладают рядом недостатков . В первую очередь это небольшое количество приложений, для которых разработаны такие тесты. Кроме SAP benchmark, можно отметить Oracle Applications Standard Benchmark, тесты PeopleSoft, Siebel и ряд других приложений. Если планируется использовать другие приложения или нестандартные аппаратные и программные приложения, то эти тесты также мало информативны. Кроме того, конфигурация аппаратных средств, как и в случае тестов TPC, ориентирована на достижение максимальной производительности и отличается от тех конфигураций, которые будут использованы в реальном проекте.

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

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

«Производительность систем - один из ключевых аспектов функционирования информационной инфраструктуры. Однако это одна из наиболее сложных и комплексных проблем. Многие сложные моменты лежат в области тонкого взаимодействия программных и аппаратных компонентов систем и для их понимания недостаточно опыта работы только с программным или аппаратным слоем. К сожалению, число специалистов, понимающих глубинные процессы в таких системах невелико, притом, что только за счет глубинной оптимизации можно достичь роста производительность в десятки, сотни и даже тысячи процентов. Влияние грамотного выбора платформы и ее оптимизации на экономические параметры функционирования систем и возврат инвестиций трудно переоценить, но сложившаяся в индустрии практика выбора программно-аппаратных платформ и их настройки весьма далека от совершенства. Это тем более удивительно, что в открытом доступе находится огромное количество фактической информации о производительности различных систем и результатов тестов, но для того чтобы ее можно было использовать необходимо понимать условия и принципы тестирования, сущность процессов, происходящих в таких системах, и ограничения и достоинства каждого метода…» Михаил Елашкин, директор компании Elashkin Research

«Особенностью современного подхода к ИТ со стороны бизнеса является то, что ИТ инфрастуктура более не является вспомогательной, затратной. Сегодня она есть часть самого бизнеса. Мы видим, как заказчики перестают относиться к нашим услугам с позиции «сервер с тем или иным количеством процессоров, объёмом оперативной памяти, дисков и т.д». Они ставят нам теперь совсем иные задачи. «Мне нужно обрабатывать 25000 документов в час». «Мне нужно, что бы мы могли запустить 30 обработчиков одновременно». «Мне нужно поддерживать в оперативном режиме 28 отделений» - вот типичные требования современного бизнеса. Как мы можем сказать, что данное оборудование удовлетворяет требованиям заказчика? Разумеется, не из результатов отраслевых тестов. Наиболее точную оценку мы можем получить из результатов проведения нагрузочных испытаний. Это работа для настоящих профессионалов, глубоко разбирающихся в прикладных и системных программных средствах, тонко чувствующих аппаратную часть. В нашей компании существует специализированная экспертная группа, занимающаяся тестированием прикладных программных средств. Только на основании её экспертных оценок мы можем гарантировать заказчику, что предлагаемое решение справится с возложенной на неё задачей…» Вячеслав Елагин, компания Ай-Теко, директор Центра компетенции.

PS: я конечно не знаю как это переводится с французкого, но очень смешно …
________________
Заказывайте вывоз строительного мусора www.grigus.ru . Очень быстро и профессионально работают. Бытовые отходы, отходы по строительству — все увозят грузовыми машинами и КАМАЗами. Вывоз мусорных баков.

This entry was posted on Ноябрь 23, 2006 в 12:52 дп and is filed under .

Критерии оценки информационных технологий

Критериями оценки оптимальности информационных технологий являются своевременность доставки информации пользователям, ее надежность, достоверность и полнота.

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

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

Основная цель информационной технологии достигается за счет:

– интеграции информации;

– обеспечения актуальности и непротиворечивости данных;

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

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

Вопросы для самоконтроля

1. Дайте понятие информационной технологии.

2. Что является средствами информационных технологий.

3. Как разделяются информационные технологии по назначению.

4. Дайте понятие предметной информационных технологий.

5. Как делятся информационные технологии по принципу построения.

6. Дайте понятие функционально-ориентированной ИТ.

7. Дайте понятие объектно-ориентированной ИТ.

8. Назовите критерии оценки информационных технологий.

9. Назовите критерии классификации информационных технологий.

10. Назовите принципиальные отличия ИТ от технологии производства

1.3. Платформа в информационных технологиях

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

В информационных технологиях под термином «платформа» в широком смысле обычно понимается совокупность следую­щих компонентов:

аппаратного решения;

– операционной системы (ОС);

В более узком смысле выделяют следующие виды платформ:


– программная платформа – это совокупность операционной системы, средств разработки прикладных программных решений и прикладных программ, работающих под управлением этой операционной системы;

– прикладная платформа – это средства выполнения и комплекс технологических решений, используемых в качестве основы для построения определенного круга прикладных программ;

– аппаратная платформа (hardware) – это совокупность совместимых аппаратных решений с ориентированной на них операционной

Понятие «аппаратная платформа» связано с решением фирмы IBM о выработке и утверждении единого стандарта на основные комплектующие персонального компьютера. До этого времени фирмы-производители ПК стремились создать собственные, уникальные устройства, чтобы стать монополистом по сборке и обслуживанию собственных персональных компьютеров. Однако в итоге рынок был перенасыщен несовместимыми друг с другом ПК, для каждого из которых нужно было создавать собственное программное обеспечение. В этот период устройство каждого ПК было охраняемой тайной фирмы-производителя, и копирование одной фирмой изделий другой было строго запрещено.

Заслуга фирмы IBM состоит именно и том, что она внедрила принцип «открытой архитектуры», выработала и утвердила единый стандарт на основные части персонального компьютера - комплектующие, оповестила всех об особенностях их конструкции, поощряя при этом производство совместимых с IBM PC компьютеров других фирм. В основу принципа «открытой архитектуры» была заложена возможность усовершенствования его отдельных частей и использования новых устройств. Фирма IBM сделала ПК не единым неразъемным устройством, а обеспечила возможность его сборки из независимо изготовленных частей.

На основной электронной плате компьютера IBM PC (системной или материнской) размещаются только те блоки, которые осуществляют обработку информации. Схемы, управляющие всеми остальными устройствами ПК – монитором, винчестером, принтером и др., реализованы на отдельных платах (контроллерах), которые вставляются в стандартные разъемы на системной плате – слоты. К этим электронным схемам подводится электропитание из единого блока питания, а для удобства и надежности все это заключается в общий корпус – системный блок.

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

Фирма IBM рассчитывала, что открытость архитектуры позволит независимым производителям разрабатывать различные дополнительные устройства, что увеличит популярность персонального компьютера. Действительно, через один-два года на рынке средств вычислительной техники предлагались сотни разных устройств и комплектующих для IBM PC.

Однако при этом фирма IBM быстро лишилась приоритета на рынке средств вычислительной техники, так как конкуренты производили клоны дешевле оригинального IBM PC. Но стандарт прижился как платформа IBM PC-совместимых ПК.

В связи с тем, что в настоящее время фирма IBM – создатель первого в мире массового персонального компьютера – утратила свой приоритет в выпуске ПК, на Западе все реже употребляют термин «IBM-совместимые компьютеры», а используют понятие «платформа Wintel», подразумевая под этим сочетание микропроцессора фирмы Intel с операционной системой Windows. Микропроцессор при этом рассматривается как основа аппаратной платформы, которая определяет архитектуру персонального компьютера, т. е. его тип и характеристики.

Однако термин Wintel не совсем точно определяет понятие платформы, так как открытая архитектура современных IBM-совместимых персональных компьютеров позволяет собирать их из комплектующих, изготавливаемых различными фирмами-производителями, включая и микропроцессоры, которые в настоящее время выпускаются не только фирмой Intel, но и Advanced Micro Devices (AMD), Cyrix Corp. и др. Кроме того, IBM-совместимые ПК могут работать не только под управлением операционной системы Windows, но и под управлением других операционных систем.

Платформа IBM-совместимых компьютеров включает в себя широкий спектр самых различных персональных компьютеров: от простейших домашних до сложных серверов.

Кроме платформы IBM-совместимых ПК в настоящее время достаточно широкое распространение получила платформа Apple, представленная довольно популярными на Западе компьютерами Macintosh.

Специалисты по компьютерной истории отдают приоритет в создании ПК именно компании Apple. С середины 70-х г. эта фирма представила несколько десятков моделей ПК – начиная с Apple I и заканчивая современным iMac, – и уверенно противостояла мощной корпорации IBM.

В середине 80-х гг. компьютеры серии Macintosh стали самыми популярными ПК в мире. В отличие от IBM, компания Apple всегда делала ставку на закрытую архитектуру – комплектующие и программы для этих компьютеров выпускались лишь небольшим числом «авторизированных» производителей. За счет этого компьютеры Macintosh всегда стоили несколько дороже своих IBM-совместимых ПК, что компенсировалось их высокой надежностью и удобством.

Именно на компьютерах Apple впервые появились многие новинки, со временем ставшие неотъемлемой частью персонального компьютера: графический интерфейс и мышь, звуковая подсистема и компьютерное видео и т. д. Кроме того, и интерфейс самой Windows был частично скопирован с одной из ранних операционных систем Apple, созданной для компьютера Lisa.

Работа с графикой и сегодня остается основной областью функционирования персональных компьютеров Apple. Поэтому ПК Macintosh попрежнему незаменимы в таких областях, как издательское дело, подготовка и дизайн полноцветных иллюстраций, аудио- и видеообработка.

В этом качестве компьютеры Apple используются сейчас в России (в США новые модели Apple используются и в качестве домашних ПК).

Несмотря на значительное падение интереса к Apple в начале 90-х г., к концу десятилетия они вновь вернули себе былую славу после выхода моделей с новым, уникальным дизайном (полупрозрачным, голубовато-то оттенка корпусом, мышью или принтером), рассчитанным на домашнего пользователя (настольные модели iMac и портативные iBook).

Они используют свое, особое программное обеспечение, да и комплектующие их существенно отличаются от IBM. В России компьютеры Macintosh достаточно распространены в полиграфической отрасли для подготовки полноцветных иллюстраций и дизайна. В настоящее время они получают распространение и в других профессиональных областях, а также в качестве «домашнего» компьютера.

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

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

Существует два основных варианта решения проблемы совместимости компьютерных платформ:

1. Аппаратные решения – это специальные платы, несущие на себе дополнительные процессор, оперативную память и видеопамять другой аппаратной платформы. Фактически они представляют собой отдельный компьютер, вставленный в существующий ПК. Его, как и обычный компьютер, можно оснастить любой операционной системой по выбору пользователя и соответствующим программным обеспечением. При этом можно легко переключаться между двумя операционными системами, обмениваться между ними файлами и выполнять другие операции, причем производительность обеих систем остается высокой и они не влияют друг на друга, так как практически не имеют разделяемых ресурсов, кроме мыши, клавиатуры и монитора. Основным недостатком таких плат является их высокая стоимость, хотя и несколько меньшая, чем отдельного ПК;

2. Программные решения – это специально написанные программы-эмуляторы, позволяющие запустить программное обеспечение, разработанное для персональных компьютеров одного типа, на другом ПК.

Эмулятор – специальная программа, выполняющая каждую команду исходной программы посредством одной или нескольких команд ПК, на котором происходит эмуляция.

Существует несколько видов эмуляторов:

– эмуляторы-исполнители позволяют запускать программы, написанные для других операционных систем;

– эмуляторы аппаратного обеспечения воспроизводят настоящий персональный компьютер со всеми его аппаратными и программными особенностями. В этом случае пользователь получает абсолютный контроль над своим виртуальным ПК и может выполнять на нем практически все операции, что и с настоящим компьютером. Недостатком этих эмуляторов является некоторая медлительность;

– эмуляторы операционных систем позволяют воспроизвести на ПК операционную систему, которая несовместима с данной аппаратной платформой. Примером такого эмулятора является эмулятор операционной системы Windows, который позволяет на компьютере Macintosh работать с операционной системой, написанной для IBM-совместимых ПК. Работают такие программы несколько быстрее, чем эмуляторы аппаратного обеспечения, но у них есть много ограничений. Например, пользователь не может сам выбрать операционную систему.

Аппаратные платформы

Совместимость по аппаратной платформе означает, что компьютеры состоят из узлов и приборов, которые имеют одинаковую систему команд и кодировки данных, и потому могут быть взаимозаменимы. Хотя это и не обязательно – если устройства сильно отличаются по техническим характеристикам, то одно на другое заменить нельзя. А вот для разных аппаратных платформ все составные части полностью различны и несовместимы.

Для ПК сейчас остались только две конкурентоспособные аппаратные платформы: IBM PC и Apple Macintosh (рисунок 3).Причем IBMPC явно доминирует, свыше 90% компьютеров относится к этой платформе. Одно время Apple Macintosh были более приспособленными для работы с графикой и в издательском деле, но сейчас возможности обеих платформ здесь сравнялись. Тем не менее,


компьютеры Apple не исчезают, а по-прежнему находят применение.


Для высокопроизводительных серверов, или наоборот – примитивных чипов существуют и другие аппаратные платформы: SunMicrosystems, Compaq, HewlettPackard и др.

В аппаратной конфигурации компьютера важную роль играет принцип открытой архитектуры . Это построение компьютера по модульному принципу, когда все однотипные устройства компьютера имеют:

1. взаимно согласованные протоколы (стандарты) передачи данных;

2. стандартные геометрические размеры и унифицированные разъемы для подключения.

Открытая архитектура позволяет совершать Апгрейд (Upgrade), т.е. модернизацию компьютера путем простой замены одних устройств на другие, не затрагивая всего остального.

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

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

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

Платформа IBMPC обладает открытой архитектурой, а Apple – закрытой.

Открытая архитектура ¾ это как раз то, что позволило в свое время платформе IBM занять лидирующее положение в производстве компьютеров и победить конкурентов. И сейчас компьютеры на платформе IBM являются доминирующими в мире.

Однако сама IBM, введя открытую архитектуру своих изделий, успешно решила тактические задачи, но стратегически проиграла. Устройства с открытой архитектурой для компьютеров IBM стали делать сотни компаний во всем мире – в Америке, Европе, Азии. Юридических запретов на это не существует. А технически открытая шинная архитектура позволяет довольно просто это сделать.

В результате IBM перестала быть единоличным лидером в производстве вычислительной техники. Она стала всего лишь одной из крупных корпораций, входящей в первую пятерку производителей.

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

Здесь стоит отметить, что открытые аппаратные платформы не обязаны предлагать бесплатные инструменты разработки. Под «инструментами разработки» понимается широкий спектр средств проектирования и отладки, начиная от измерительных приборов (мультиметры, осциллографы) и интегрированных сред (IDE), и заканчивая веб-утилитами, которые обеспечивают функциональное управление проектами. Важно отметить, что многие из известных открытых платформ, например, Arduino, LaunchPad, BeagleBone и STM Nucleo, предоставляют бесплатные программные библиотеки, примеры кода и даже целые интегрированные среды, такие, как Arduino IDE или mbed.org.

Некоторые инструменты разработки сами являются открытыми платформами, что делает их весьма доступными из-за относительно низкой стоимости. В качестве примера можно привести универсальную измерительную плату Red Pitaya, работающую под управлением Linux. По сути, Red Pitaya является измерительным комплексом, который заменяет собой лабораторное оборудование, недоступное для рядовых пользователей из-за высокой цены. Red Pitaya предлагает к услугам разработчиков аналоговые входы со скоростью измерений до 125 MSPS и выходы со скоростью 100 KSPS. Этот универсальный измерительный прибор может выступать в роли различных стандартных приборов, таких как: как осциллограф с полосой пропускания около 50 МГц, анализатор спектра, LCR-измеритель импеданса, анализатор Боде, тесламетр, функциональный генератор с 14-битным разрешением, в том числе подходящий для аудио, и т.д. Для отображения результатов измерений Red Pitaya подключается к планшету, ПК или смартфону. Добавьте модуль расширения Sensor Extension Module и вы сможете подключить Red Pitaya к платам Arduino и датчикам SEEED Studio Grove sensors , что еще больше расширит функциональность этого измерительного комплекса.

Рис. 1. Универсальная измерительная система Red Pitaya представляет собой пример открытой аппаратной платформы и отличается максимальной доступностью. Red Pitaya обладает функционалом осциллографа, анализатора спектра, измерителя импеданса, анализатора Боде, тесламетра, как функционального генератора и т.д.

Плата Red Pitaya была представлена на интернет-платформе Kickstarter в 2013 году. Она стала побочным продуктом для компании, которая занимается разработкой приборов для ускорителей частиц. Таким образом, Red Pitaya - это инструмент измерения и управления с открытым кодом и программным обеспечением с поддержкой визуального программирования. Red Pitaya поддерживается Matlab, LabView, Python и Scilab. Благодаря открытому программному коду возможности Red Pitaya могут быть расширены за счет дополнительных функций и утилит, создаваемых пользователями.

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

Рассмотрим наиболее распространенные инструменты, используемые при работе с открытыми аппаратными платформами.

  1. Первый инструмент проектирования является, пожалуй, самым важным и наименее «техническим». Это обычный карандаш. Именно карандаш позволяет мгновенно «воплощать» задуманные идеи на бумаге, отмечать результаты испытаний и фиксировать изменения для того, чтобы в дальнейшем восстановить всю картину проекта спустя месяцы или даже годы.
  2. Оборудование. Сюда можно отнести широкий спектр инструментов, начиная от измерительных приборов (мультиметры, осциллографы) и заканчивая органайзерами для хранения электронных компонентов. К сожалению, оборудование является далеко не бесплатными, однако если вы близки к сообществу разработчиков, то одолжить тот или иной измерительный прибор не будет проблемой. Кроме того, сейчас многие инструменты доступны благодаря интернет-магазинам и продаются по весьма низким ценам.
  3. Программировать в машинном коде непросто, поэтому для создания встраиваемого ПО используются компиляторы и интерпретаторы, позволяющие разработчикам писать программы с помощью высокоуровневых языков или даже выполнять графическое программирование.

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

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

Рассмотрим основные типы IDE, используемые для создания встраиваемого ПО:

  1. Бесплатные интегральные среды разработки (IDE), например, Arduino IDE, Energia IDE для TI LaunchPads, которые можно свободно скачать с сайта производителя и установить на своем ПК.
  2. Онлайн IDE, которые не требуют установки на ПК, но нуждаются в доступе к Интернету. Их плюсами является то, что они не требуют обновлений и не занимают места на жестком диске. Примером таких программ является Mbed.org.
  3. Платные среды разработки. Как было сказано выше, компиляторы позволяют работать с определенным типом процессорных ядер, а если быть точным, то с определенным набором конкретных процессоров/ микроконтроллеров. Например, если используется пара процессоров с ядром ARM ® Cortex ® -M4, то вполне реальной может оказаться ситуация, когда один процессор поддерживается IDE, а второй нет. Поэтому прежде чем купить IDE следует проверить, что целевой процессор есть в списке поддерживаемых устройств. Примером, платной среды разработки являются, например, Keil от ARM и IAR Embedded Workbench от IAR Systems.
  4. Бесплатные пробные версии платных сред с ограничением по времени. Многие IDE, например, IAR и Keil, имеют бесплатные пробные версии с ограниченным сроком бесплатной работы. После того как пробный срок заканчивается, программа блокируется и требует приобретения лицензии.
  5. Бесплатные версии платных сред с ограничением функционала. Существуют ограниченные версии платных сред с урезанным функционалом. Примером такой среды может служить сборка Keil для микроконтроллеров STM32L0 с ограничением по размеру кода.
  6. Бесплатные среды с открытым исходным кодом, например, различные GNU-решения. В качестве примера бесплатной среды можно привести Eclipse IDE. Eclipse IDE позволяет добавлять плагины для поддержки различных языков программирования, в частности C ++ или Python. Стоит отметить, что в большинстве случаев бесплатные компиляторы уступают коммерческим собратьям по качеству оптимизации кода. Однако со временем это отставание сокращается.
  7. Микроконтроллеры поступают от производителя в незапрограммированном виде. Для физической «прошивки» программ требуются специальное устройство - программатор. Исключение составляют микроконтроллеры, которые имеют встроенный загрузчик (бутлодер). Загрузчик представляет собой небольшую встроенную программу, которая позволяет программировать микроконтроллеры с помощью одного из популярных интерфейсов USB, UART, CAN и т.д.

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

  • Многие популярные платы (такие как LaunchPad и Nucleo) имеют встроенные программаторы. Это позволяет подключать их к ПК с помощью USB и выполнять программирование.
  • Для плат, в которых нет встроенного программатора, приходится использовать внутрисхемное программирование (In-System Programming, ISP). Для этого требуется внешний программатор. Обычно программатор подключается к ПК через USB или COM-порт, а к микроконтроллеру через специальный интерфейс программирования (SWIM, JTAG, SPI, UART и др.). В качестве примеров можно привести программатор ST-LINK/V2-1 для микроконтроллеров STM32/STM8 от STMicroelectronics, программаторы от Atmel для микроконтроллеров AVR, программаторы от Microchip для микроконтроллеров семейства PIC.

Рис. 2. STM32 Nucleo представляет собой яркий пример открытой платформы. Платы Nucleo поставляются со встроенным отладчиком ST-LINK / V2-1 (выделен красной рамкой)

  1. Отладчики. Отладчик представляет собой набор инструментов, который позволяет программистам отслеживать выполнение программы и выявлять ошибки в коде. Отладчик состоит из трех основных частей: программная часть, выполняемая в среде IDE, аппаратная часть, реализованная в микроконтроллере, аппаратная часть, реализованная в специальном устройстве, которое также называют отладчиком. Здесь стоит отметить, что для всех современных микроконтроллеров программатор и отладчик представляют одно и то же устройство. Поэтому, например, для программирования и отладки STM32/STM8 будет достаточно программатора/ отладчика ST-LINK/V2-1.

Рассмотрим некоторые ключевые элементы и инструменты, применяемые при отладке встраиваемых систем:

  • GDB или GNU Debugger - популярные программные отладчики, которые используются для работы с различными языками программирования. Многие из них поддерживают «удаленный режим», позволяющий контролировать отлаживаемое устройство с помощью приложения, запущенного на ПК.
  • JTAG - интерфейс, который изначально разрабатывался для тестирования встраиваемых систем, но в дальнейшем «де-факто» ставший промышленным стандартом. В настоящее время JTAG широко используется, в том числе в открытых платформах.
  • Точки останова используются для того, чтобы прерывать выполнение программ в нужных местах. Эта функция необходима для детального рассмотрения контекста, например, состояния портов ввода-вывода, содержимого регистров и т.д. Еще одной полезной функцией отладчиков является возможность пошаговой отладки программы.
  • Open OCD (Open On-Chip Debugger) - пакет с открытым исходным кодом, который обеспечивает встроенную отладку, внутрисхемное программирование и тестирование для огромного множества платформ, что делает Open OCD привлекательным для многих производителей микросхем. Open OCD поддерживает множество отладчиков, в том числе и JTAG.
  1. Инструменты для отслеживания ошибок и контроля версий
  • Наличие инструмента для отслеживания ошибок является обязательным требованием для открытых платформ вне зависимости от числа разработчиков и пользователей. Существует множество инструментов отслеживания ошибок. Например, Bugzilla или Mantis BT могут быть загружены и установлены на серверах бесплатно, кроме того, есть сервисы, которые могут предоставить хостинг за символическую плату.
  • Системы контроля версий - еще один инструмент, который имеет решающее значение для открытых платформ, тем более что открытые платформы подразумевают совместную работу множества пользователей и разработчиков. Такие инструменты, как Git и Subversion, являются популярными системами управления версиями и контентом. Сервисы, аналогичные GitHub, обеспечивают хостинг содержимого проектов отслеживание ошибок и совместные обзоры кода.

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

Вместо заключения еще одна мысль вдогонку

Очень часто разработчики ограничиваются тем, что становятся специалистами в рамках какого-то одного процессора или микроконтроллера. Конечно, доскональное изучение всех регистров и особенностей процессорного ядра является большим плюсом для конкретного проекта. Однако, стоит отметить, что технологии не стоят на месте, и умение быстро адаптироваться к различным платформам является гораздо более ценным навыком, чем знание всех тонкостей одного единственного решения. Открытые проекты значительно упрощают такое широкомасштабное обучение за счет уменьшения затрат средств и времени. Попытайтесь получить опыт с Arduino, приложите свои руки к микроконтроллерам PIC, поработайте с внешним программатором! Этот самообразовательный процесс может даже помочь получить работу, например, неопытным студентам, если они «засветятся» на каком-либо форуме. Освоение различных решений и архитектур отточит ваш навык самообучения, что станет залогом долгой и успешной карьеры.

Похожие статьи