Відмінності між версіями «Вбудовані в обладнання OC Linux»
Donserg (Обговорення • внесок) м (Захист на Вбудовані в обладнання OC Linux встановлено ([edit=sysop] (безстроково) [move=sysop] (безстроково))) |
Поточна версія на 23:07, 20 вересня 2012
[ред.] Вбудовані в обладнання OC Linux
Необхідність прискорення випуску нової продукції на ринок і зниження загальної вартості систем спонукає багатьох розробників вбудованих додатків на застосування ОС Linux і інших програмних засобів з відкритими початковими кодами. Подібне рішення обумовлено тим, що, використовуючи відкрите програмне забезпечення, розробники отримують можливість сконцентрувати зусилля на вдосконаленні своєї продукції. Вбудовувані системи володіють унікальним набором вимог і обмежень: малі обсяги пам'яті, завантаження з флеш-пам'яті, бездискового, детермінованість. Використання в таких додатках операційної системи Linux пов'язане з низкою додаткових проблем. У цій статті розглянуті питання, що постають у зв'язку з цим перед розробником вбудованих систем, зроблено спробу визначити місце Linux в даному контексті і пропонуються способи подолання труднощів. Існує Чи операційна система для вашого мікропроцесора?
При виборі операційної системи (ОС) для тієї чи іншої вбудованої системи зазвичай використовується кілька критеріїв, зокрема, доступність на ринку, вимогливість до ресурсів, доступність програмних засобів, багатство функціональних можливостей, надійність і продуктивність. Вирішальним фактором може стати навіть простий факт, що якась операційна система працює на вибраному мікропроцесорі. В умовах потужного тиску термінів виходу на ринок модифікація ОС для нового процесора або процесорного модуля може виявитися занадто довгим справою, наявність ж готової операційної системи веде до істотної економії часу і коштів.
Підтримка вбудованих процесорів в ОС Linux
Самая поширена на сьогодні версія Linux це, безумовно, версія для сумісних з ПК комп'ютерів, створених на базі процесорів з архітектурою х86. Сучасні персональні комп'ютери це недорогі системи, які можуть виступати як в ролі інструментальних, так і цільових платформ. У світі такі машини використовує більша частина Linux-розробників, і саме для цих комп'ютерів перш за все і пишуться різні програми. Процесори сімейства х86 застосовуються не тільки в персональних, але і в багатьох вбудованих системах. В даний час існує безліч моделей х86-процесорів від надзвичайно швидкодіючих до самих економічних. Повністю сумісний з ПК комп'ютер може вміститися сьогодні на один кристал. Для деяких розробників все, що їм потрібно це версія ОС Linux для архітектури х86. Проте в певних випадках процесори х86 можуть бути не найкращим вибором. У тих додатках, де потрібно дуже низький рівень енергоспоживання, більш доречними можуть виявитися процесори типу ARM або Hitachi SH, що мають при істотно меншою потужності, що розсіюється ту ж продуктивність. В інших ситуаціях перевагу слід віддати дешевим мікропроцесорах, що мають ядро PowerPC, співпроцесор і необхідний набір функцій введення/виводу. У передбачають інтенсивну обробку даних системах більш виправданим може бути застосування процесорів типу MIPS, характеризуються кращим, ніж у х86, співвідношенням ціни і продуктивності. Сьогодні ринок вбудованих мікропроцесорів сильно фрагментований. По суті, він завжди був таким, і ніщо не вказує на швидку його консолідацію.
Гарна новина полягає в тому, що модифікації ОС Linux існують для багатьох типів вбудованих мікропроцесорів, у тому числі для архітектури PowerPC, MIPS, ARM, StrongArm і SH. Погана це те, що програмних продуктів для цих модифікацій створено набагато менше, ніж для процесорів х86. Однак тепер оновлені Linux-дистрибутиви для інших, ніж х86, платформ з'являються регулярно, і незабаром ситуація має покращитися. Про підтримку версій операційної системи Linux для різних процесорних платформ заявляє все більше число виробників програмного забезпечення. Втім, основною рушійною силою є тут користувачі. Зростаючий попит на програми, стеки протоколів і власне Linux-версії для різних процесорів істотно прискорює процес створення відповідних модифікацій цієї ОС.
Операційна система RT-Linux ОС RT-Linux це система, в якій Linux-ядро є окремим завданням, виконуваної під управлінням невеликий керуючої програми-диспетчера, що працює в реальному часі. Програми реального часу виконуються під управлінням цієї програми, останні під управлінням ядра Linux. Даний підхід аж ніяк не нове. Багато років тому він був випробуваний для комерційної ОС UNIX; в як більш свіжих прикладів можна назвати спроби організації виконання завдань реального часу в комп'ютерах з операційною системою Windows NT. Одним з переваг цього методу є те, що програма-диспетчер реального часу може мати досить малі розміри і просту структуру, що полегшує перевірку відповідності системи вимогам реального часу. Крім того, та Linux, що виконує звичайні (не real-time) завдання, є в даному випадку звичайнісінької Linux, сумісної з іншими версіями цієї операційної системи і допускає швидке здійснення різних модифікацій/модернізацій. Таке рішення поєднує в собі відкритість з підтримкою додатків жорсткого реального часу, у яких часи реакції на події зобов'язані дотримуватися в абсолютне число випадків.
Ні ніяких сумнівів, що метод, запропонований RT-Linux, може бути використаний для цілого класу додатків реального часу. Контрольно-вимірювальні системи, а також системи управління обладнанням і технологічними процесами, в яких програмні засоби реального часу є лише невеликою частиною всього прикладного ПЗ, будуть чудово себе відчувати під управлінням ОС RT-Linux. У всякому випадку, це рішення набагато краще, ніж просте ігнорування вимог до роботи в реальному часі.
Однак в деяких випадках модель RT-Linux буде не найкращим варіантом. В якості прикладів можна згадати накопичення даних в пристроях масової пам'яті, встановлення телефонних з'єднань та інші програми, які передбачають роботу з базами даних реального часу, а також системи, в яких програми реального часу складають значну частину ПЗ та/або важко віддільна від звичайних Linux-програм. Проблема полягає в тому, що завдання, реклама, яка під управлінням ядра реального часу, не можуть скористатися сервісами ОС Linux, її драйверами і т.д., в той час як працюють у середовищі Linux і мають доступ до відповідних функцій завдання з реальним часом ніяк не пов'язані. Спроба реалізувати модель RT-Linux приводить в таких випадках до значного збільшення розмірів ядра реального часу. Останнє при цьому може не тільки надмірно роздутися і ускладнитися, але і почати виконувати багато невластиві йому функції, у зв'язку з чим у певний момент може виникнути питання про виправданості існування звичайного Linux-ядра.
Сумісне з Linux ядро реального часу
Ще одним рішенням проблеми запуску real-time-додатків у середовищі Linux є заміна ядра Linux сумісним з ним ядром, що володіють характеристиками жорсткого реального часу. Фактично, вже в разі RT-Linux ми маємо справу ні з чим іншим, як з відмовою від спроб виконання завдань реального часу під управлінням звичайного Linux-ядра. Крім того, після появи Загальної Бази Linux (LSB Linux Standard Base), що представляє собою стандарт двійкового інтерфейсу для операційної системи Linux, остання перетворюється з просто технології в повноцінну платформу виконання додатків. Будь-яка ОС, задовольняє вимогам цього стандарту, в змозі підтримувати виконання Linux-додатків. Ядро це лише невелика частина всієї операційної системи. Якщо модернізується лише ядро Linux, бібліотеки ж, утиліти і файлова структура залишаються без змін, забезпечити відповідність цього стандарту і сумісність з іншими Linux-версіями стає ще простіше. Ядро реального часу зобов'язане лише підтримувати всі функції ядра Linux, залишаючись при цьому повністю витісняє і повторно входимо. Воно повинно мати планувальник процесів реального часу і гарантувати не перевищує деякого фіксованого межі тривалість затримок, пов'язаних з обробкою переривань.
Перевага даного підходу полягає у відсутності яких би то не було обмежень на розміри і складність прикладних real-time-програм. Задачі реального часу в цьому випадку мають можливість запускати звичайні, не розраховані на використання в жорсткому оперативному режимі завдання. Програмісти, які мають досвід розробки ПЗ для операційної системи Linux, автоматично стають фахівцями і в області програмування реального часу, оскільки з їх точки зору програмні інтерфейси залишаються без змін.
Інші проблеми, пов'язані з використанням вбудованої ОС Linux
Незважаючи на досить вагомі причини вибору Linux як ОС для вбудованої системи або вбудованого пристрою, в області ліцензування їй властиві певні проблеми. Операційна система Linux це не загальнодоступне ПЗ; її ліцензування здійснюється згідно з вимогами ліцензії GPL (GNU Public License), що встановлює суворий набір правил користування. Юридичні питання Використання Linux підпорядковується принципам GPL загальнодоступної ліцензії. Оригінальний текст будь-якого регульованого даної ліцензією програмного засобу поширюється безкоштовно. Виконувані модулі, що генеруються на основі що підпадають під дію GPL вихідних текстів, також поширюються безкоштовно. Будь-які модифікації ліцензованого за допомогою GPL програмного забезпечення автоматично підпадають під дію цієї ліцензії. Продавати виконувані модулі, на які поширюється дія GPL-ліцензії, дозволяється за ціною, що не перевищує в сукупності вартості носія програмного забезпечення та вартості розповсюдження. У разі поширення виконуваних модулів їх вихідні тексти повинен стати загальнодоступними.
Що значить ліцензія GPL для розробників вбудованих систем, що має справу з ОС Linux? Якщо розробник будь-яким чином модифікує Linux-ядро або утиліту, перенесе їх на іншу платформу чи розширить набір їх функціональних можливостей, він буде зобов'язаний опублікувати ці зміни в мережі Інтернет та надавати їх безкоштовно кожному, хто їх запросить. При не цілком акуратному поведінці можна запросто позбутися прав на власні програмні засоби, і тому з усіх питань, що стосуються охорони авторства в області відкритих вихідних текстів, має сенс радитися з досвідченим юристом.
Включати операційну систему Linux до складу продається апаратури вважається цілком нормальним. У разі будь-яких модифікацій ядра, бібліотек або утиліт Linux відповідні вихідні тексти повинні стати загальнодоступними і розповсюджуватися безкоштовно. Виконуються в середовищі Linux прикладні програми можуть при цьому залишатися запатентованими; необхідно стежити лише за тим, щоб до складу цих програм не входив ніякої підпадає під дію ліцензії GPL (а так само і будь-якої іншої ліцензії) код. Драйвери теж можуть бути запатентованими; при цьому вони повинні бути явно відділені від ядра Linux. Одним із найпростіших способів є написання драйвера як завантаження модуля ядра. Якщо ж драйвер компонується як частина базового ядра, питання про поширення на цю частину дії GPL-ліцензії є дуже непростим, і найкращим рішенням тут буде проконсультуватися з грамотним юристом, які займаються питаннями охорони інтелектуальної власності.
Отже, незважаючи на те, що спочатку ОС Linux не була розрахована на використання у вбудованих пристроях, продумане конфігурування і розробки деяких постачальників, що пропонують її вбудовувані версії, роблять цю операційну систему цілком застосувати і в цьому колі завдань. Поступово ОС Linux переростає рамки просто технології і перетворюється на потужну платформу для вбудованих додатків. Використання цієї операційної системи поки ще пов'язане з певними труднощами в таких галузях, як ліцензування, обмеження на обсяги займаної пам'яті, розробка програмних засобів, функціонування в безоператорном режимі і в бездискових системах, підтримка вбудованих процесорів і режим реального часу. ОС Linux не є загальнодоступним програмним забезпеченням та ліцензовано відповідно до вимогами ліцензії GPL (GNU Public License), що представляє собою строгий набір правил користування. При цьому не викликає сумнівів, що популярність Linux стимулюватиме все більш широке застосування у вбудованих системах різних її версій. З точки зору використовуваних при виборі операційної системи основних критеріїв, таких як наявність апаратних засобів і готового програмного забезпечення, Linux слід визнати одним із головних кандидатів на роль ОС для вбудованих додатків.