Відмінності між версіями «Вбудовані в обладнання OC Linux»

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
Рядок 24: Рядок 24:
 
Проблему бездискового можна вирішити кількома способами. Існують модулі флеш-пам'яті, здатні емулювати IDE-дисководи. Як правило, ці модулі дуже компактні і не перевищують за своїми розмірами звичайних IDE-роз'ємів. Крім того, в склад Linux входить драйвер електронного диска використовується для імітації дискового накопичувача певної частини системної пам'яті. Такий диск може використовуватися для зберігання файлів, які не будуть потрібні після перезавантаження системи. Драйвер електронного диска застосовний і для звернень до файлової системі, реалізованої в ПЗУ. Якщо у вбудованій системі є флеш-пам'ять, яка нездатна емулювати IDE-дисковод, то для роботи з цією пам'яттю як з диском можна скористатися засобами файлової системи. Гарна система управління що зберігаються у флеш-пам'яті файлами зобов'язана мати механізм контролю зносу, що зводить число операцій стирання флеш-блоків до розумного мінімуму.  
 
Проблему бездискового можна вирішити кількома способами. Існують модулі флеш-пам'яті, здатні емулювати IDE-дисководи. Як правило, ці модулі дуже компактні і не перевищують за своїми розмірами звичайних IDE-роз'ємів. Крім того, в склад Linux входить драйвер електронного диска використовується для імітації дискового накопичувача певної частини системної пам'яті. Такий диск може використовуватися для зберігання файлів, які не будуть потрібні після перезавантаження системи. Драйвер електронного диска застосовний і для звернень до файлової системі, реалізованої в ПЗУ. Якщо у вбудованій системі є флеш-пам'ять, яка нездатна емулювати IDE-дисковод, то для роботи з цією пам'яттю як з диском можна скористатися засобами файлової системи. Гарна система управління що зберігаються у флеш-пам'яті файлами зобов'язана мати механізм контролю зносу, що зводить число операцій стирання флеш-блоків до розумного мінімуму.  
  
Здатна Чи ОС працювати в системах з обмеженою пам'яттю?
 
 
Для нормальної роботи будь-якої операційної системи потрібні певні ресурси, головним з яких є пам'ять комп'ютера. Одним ОС необхідно більше пам'яті, іншим менше. Застосування операційних систем з підвищеними вимогами до пам'яті у вбудованих додатках, де і ПЗУ, і ОЗУ на вагу золота, слід уникати.
 
 
'''Вимоги до пам'яті з боку ОС Linux'''
 
 
За замовчуванням Linux необхідні досить значні обсяги пам'яті, що неприйнятно для більшості вбудованих систем. Як правило, дистрибутив ОС Linux займає кілька сотень мегабайтів. У стислому стані стандартне Linux-ядро займає близько півтора мегабайтів, а потрібний цим ядром обсяг пам'яті складає більше 4 Мбайт. Крім того, потрібна ще й пам'ять для підтримки файлової системи, а якщо система працює в бездискових режимі і пам'ять для електронних дисків.
 
 
Рішення проблеми необхідної для операційної системи Linux пам'яті полягає в ретельної настройки ядра ОС. Ядро має модульну структуру, що дозволяє маніпулювати невикористовуваними в конкретних програмах функціональними можливостями. Крім того, є можливість грати з деякими параметрами ядра, такими як Максимальна кількість процесів або одночасно відкритих файлів. Вибір відповідних модулів і їх конфігурування дозволяє значно знизити потребу операційної системи в ОЗУ і ПЗУ. Можна, наприклад, побудувати цілком працездатний Linux-ядро для архітектури х86 об'ємом всього 259 Кбайт. Мінімальний розмір ПЗУ-диска, що дозволяє підтримувати необхідну для такого ядра файлову систему, становить 102 Кбайт; обсяг використовуваної при це оперативної пам'яті може бути менше 4 Мбайт. ОС Linux з підтримкою TCP/IP вимагає великих ресурсів. Ядро з мережевими засобами може займати 370 Кбайт, а потрібний у цьому випадку обсяг ПЗУ-диска буде близько 740 Кбайт (у стислому стані). Потреба в ОЗУ не перевищує для цієї конфігурації 8 Мбайт. Звичайно, це все ще досить далеко від тих наднизьких показників, які здатні забезпечити традиційні ОСРВ, але вже цілком прийнятно для багатьох вбудованих пристроїв.
 
 
Є Чи для вбудованої ОС інструментальні засоби? Чи буде операційна система з іншим необхідним програмним забезпеченням?
 
 
В процесі створення вбудованих додатків розробникам доводиться застосовувати різні програмні засоби типу компіляторів і відладчиком, причому, як правило, через нестачу пам'яті виконання цього ПЗ на цільовій платформі виявляється неможливим. Розробка вбудованих додатків припускає використання компілятора, асемблера і компонувальника в інструментальній системі з наступною їх завантаженням у цільовий комп'ютер для виконання. Інструментальна і цільова платформи можуть мати процесори різних типів. У таких випадках розраховані тільки на інструментальну систему компілятор і асемблер на ролі кросс-компілятора/кросс-ассемблера не підходять: необхідне створення власного або придбання існуючого кросс-компілятора, який зміг би працювати в інструментальній системі і створювати машинні коди для цільової системи.
 
 
Як і у випадку ОС для настільних комп'ютерів і серверів, при виборі вбудованих операційних систем нерідко вирішальну роль відіграють не надані ними функціональні можливості, а наявність готових програмних засобів. Багато тримають на своїх персональних комп'ютерах операційні системи Windows лише тому, що необхідні цим людям текстові процесори й електронні таблиці створені саме для Windows. Дійсно, крім ОС проектувальникам вбудованих систем потрібні і інше програмне забезпечення: стеки протоколів, сполучна програмне забезпечення, драйвери нестандартних пристроїв, а іноді і готові прикладні програми. Наявність для вбудованої операційної системи подібного ПО усуває проблему переносу програмних засобів на іншу платформу і може стати вирішальним аргументом при виборі тієї чи іншої ОС. Функціональні характеристики операційної системи набувають особливого значення в тому випадку, коли у зв'язку з відсутністю готового прикладного ПЗ його необхідно створювати. Існування потрібної функціональної можливості здатне забезпечити скорочення як термінів розробки, так і портування. Справа в тому, що підлягають перенесенню на іншу платформу програми писалися в розрахунку на наявність у цільової операційної системи певного набору функцій, у разі відсутності яких портування забере багато сил і коштів.
 
  
 
'''Інструментальні засоби для ОС Linux'''  
 
'''Інструментальні засоби для ОС Linux'''  
Рядок 52: Рядок 37:
 
Зрозуміло, налагодження Linux-ядра та драйверів пристроїв не може здійснюватися так само, як і налагодження користувацького програми. Установка контрольної точки в ядрі чи інша зупинка виконується в ядрі процесу здатна призвести до зупинки і самого агента. Більша частина настільних дистрибутивів Linux не забезпечує функцій, необхідних для налагодження ядра і драйверів. Однак розраховані на вбудовувані системи дистрибутиви такими функціями володіють. Зазвичай відладчик GDB взаємодіє з агентом налагодження ядра по низкорівневому послідовному з'єднанню. Таке рішення дозволяє здійснювати послідовне виконання ядра або драйвера і навіть ставити контрольні точки у процедурах обслуговування переривань. Єдиною річчю, яку не вдається налагоджувати подібним чином, є сам агент налагодження.  
 
Зрозуміло, налагодження Linux-ядра та драйверів пристроїв не може здійснюватися так само, як і налагодження користувацького програми. Установка контрольної точки в ядрі чи інша зупинка виконується в ядрі процесу здатна призвести до зупинки і самого агента. Більша частина настільних дистрибутивів Linux не забезпечує функцій, необхідних для налагодження ядра і драйверів. Однак розраховані на вбудовувані системи дистрибутиви такими функціями володіють. Зазвичай відладчик GDB взаємодіє з агентом налагодження ядра по низкорівневому послідовному з'єднанню. Таке рішення дозволяє здійснювати послідовне виконання ядра або драйвера і навіть ставити контрольні точки у процедурах обслуговування переривань. Єдиною річчю, яку не вдається налагоджувати подібним чином, є сам агент налагодження.  
  
'''Наявність для ОС Linux програм сторонніх розробників'''
+
'''Операційна система RT-Linux '''
 
+
Для операційної системи Linux з'являється все більше різних програмних засобів, серед яких не лише ПЗ з відкритими вихідними текстами, але й розробляються незалежними постачальниками програми, але стеки протоколів. Число Linux-драйверів постійно зростає, і в більшості случАЕВ ці драйвери надаються разом з вихідними текстами. ОС Linux заслужила добру репутацію завдяки високій надійності роботи Linux-серверів, а також особливостей своєї файлової системи і мережевим характеристиками.
+
 
+
Безкоштовно поширюються не тільки початкові Linux-коди, а й виконувані образи. Для масового виробництва вбудованих систем, що припускає дуже жорсткі обмеження на собівартість продукту, відсутність виплат за вбудовану ОС є значною перевагою, що дозволяє заощадити гроші і усуває необхідність контролю числа поставлених копій.
+
 
+
З програмної точки зору Linux є UNIX-подібної операційної системи. Одне з основних пояснень великої кількості Linux-програм такі ж, як і в UNIX, API-інтерфейси, а також формати об'єктних і виконуваних файлів. Значна частина написаного за останні два десятки років для ОС UNIX загальнодоступного програмного забезпечення може без будь-яких змін використовуватися і в Linux. Крім того, було створено чимало програм і для інших UNIX-версій: для AIX компанії IBM, для Solaris компанії Sun Microsystems, для HP/UX компанії Hewlett-Packard. Змінити своє ПЗ для операційної системи Linux не складає розробникам даних програм ніяких труднощів. Іншими словами, величезний досвід, накопичений в процесі створення програмного забезпечення для UNIX, без будь-яких застережень може бути використаний і при розробці Linux-програм.
+
 
+
Завдяки популярності ОС Linux вже з'явилося кілька постачальників програмних засобів, що спеціалізуються на версіях цієї ОС для вбудованих систем. Як правило, ці постачальники пропонують також і проблемно-орієнтовану технічну підтримку, що включає виправлення помилок у застарілих Linux-версіях і допомогу в питаннях перенесення ПЗ на вбудовувані платформи.
+
 
+
'''Досить Чи операційна система надійна і продуктивна?'''
+
 
+
Надійність і продуктивність дві дуже важливі характеристики операційної системи, які, як правило, неможливо поліпшити ні прикладними, ні бібліотечними програмами. Надійна програма в ненадійною операційній системі сама стає ненадійною. Надійність ОС визначається що лежать в її основі базовими принципами, а також особливостями архітектури та програмування. Багато вбудовувані програми характеризуються набагато більш високими вимогами до безвідмовності роботи операційної системи, ніж настільні комп'ютери, і вибір дійсно надійною ОС набуває в зв'язку з цим величезне значення. Зрозуміло, кожен поважаючий себе постачальник операційних систем заявляє про найвищого ступеня стабільності своєї продукції, і тому для отримання об'єктивної інформації доводиться проводити випробування ОС на надійність. Що стосується продуктивності, то її також можна тестувати. Як правило, перевірити відповідність операційної системи вимогам того чи іншого вбудованого додатки в плані продуктивності не становить великої праці. Набагато складніше буває встановити те, наскільки розглянута в конкретному контексті ОС відповідає вимогам режиму реального часу. Проблема полягає не в самому тестуванні, а у визначенні цих вимог. Крім того, в залежності від навантаження оперативність реагування працює в реальних умовах операційної системи може змінюватися в досить широких межах. Буває так, що помилковість вибору ОС виявляється в самому кінці періоду розробки продукту, коли виявляються ті пов'язані з режимом реального часу вимоги, які не були визначені на більш ранніх стадіях і яких належить ця операційна система не в змозі задовольнити.
+
 
+
'''Надійність і продуктивність ОС Linux'''
+
 
+
Операційна система Linux не є ОС реального часу. У Linux реалізований механізм планування процесів, який називається режимом рівноправності і який призначений для систем із розділенням часу. Інших, більш підходящих для в режимі реального часу механізмів (таких як витіснення на основі пріоритетів та ін), в Linux немає. Але це ще не найсерйозніша проблема. Для призначених для користувача процесів Linux-ядро не є ні витісняється, ні повторно входимо. Якщо який-небудь з процесів звернеться до функції ядра, ніякі інші процеси не зможуть виконуватися до тих пір, поки першим не завершиться або не перейде в режим очікування. Звідси випливає, що максимальна затримка відгуку будь-яка працює під управлінням ядра Linux завдання реального часу перевищує що не піддається оцінці час, що потрібно для виконання найдовшою кодової послідовності ядра до переходу в режим очікування. Крім того, на швидкість реакції системи впливають обслуговування переривань і операції прямого доступу до пам'яті. В ОС Linux відсутні обмеження на захоплення процесора процедурами обслуговування переривань; при цьому пріоритет таких процедур перевищує пріоритет будь-якої для користувача завдання. Іншими словами, навіть у надзвичайно швидких системах з потужними процесорами типу Pentium час відгуку призначених для користувача процесів в умовах перевантаження може досягати сотень мілісекунд і навіть секунд.
+
 
+
До існуючої в Linux проблеми режиму реального часу можна підійти кількома різними способами: ігнорувати її, запускати програми реального часу в ОСРВ, в якій сама Linux виконується в якості окремої завдання (як це, наприклад, має місце у випадку RT-Linux), або використовувати замість ядра Linux ядро будь-якої сумісної з Linux операційної системи реального часу. Найбільш поширений підхід це перше. Як правило, визначення real-time-вимог на ранніх стадіях реалізації проекту є досить важким завданням (таке визначення може бути простою справою лише в тому випадку, коли програма пред'являє до режиму реального часу вельми слабкі вимоги). Якщо в ході відповідних досліджень буде виявлено, що з точки зору реального часу застосування Linux є недоцільним, розробники зможуть скористатися іншими методами.
+
 
+
'''Операційна система RT-Linux  
+
'''
+
 
ОС RT-Linux це система, в якій Linux-ядро є окремим завданням, виконуваної під управлінням невеликий керуючої програми-диспетчера, що працює в реальному часі. Програми реального часу виконуються під управлінням цієї програми, останні під управлінням ядра Linux. Даний підхід аж ніяк не нове. Багато років тому він був випробуваний для комерційної ОС UNIX; в як більш свіжих прикладів можна назвати спроби організації виконання завдань реального часу в комп'ютерах з операційною системою Windows NT. Одним з переваг цього методу є те, що програма-диспетчер реального часу може мати досить малі розміри і просту структуру, що полегшує перевірку відповідності системи вимогам реального часу. Крім того, та Linux, що виконує звичайні (не real-time) завдання, є в даному випадку звичайнісінької Linux, сумісної з іншими версіями цієї операційної системи і допускає швидке здійснення різних модифікацій/модернізацій. Таке рішення поєднує в собі відкритість з підтримкою додатків жорсткого реального часу, у яких часи реакції на події зобов'язані дотримуватися в абсолютне число випадків.  
 
ОС RT-Linux це система, в якій Linux-ядро є окремим завданням, виконуваної під управлінням невеликий керуючої програми-диспетчера, що працює в реальному часі. Програми реального часу виконуються під управлінням цієї програми, останні під управлінням ядра Linux. Даний підхід аж ніяк не нове. Багато років тому він був випробуваний для комерційної ОС UNIX; в як більш свіжих прикладів можна назвати спроби організації виконання завдань реального часу в комп'ютерах з операційною системою Windows NT. Одним з переваг цього методу є те, що програма-диспетчер реального часу може мати досить малі розміри і просту структуру, що полегшує перевірку відповідності системи вимогам реального часу. Крім того, та Linux, що виконує звичайні (не real-time) завдання, є в даному випадку звичайнісінької Linux, сумісної з іншими версіями цієї операційної системи і допускає швидке здійснення різних модифікацій/модернізацій. Таке рішення поєднує в собі відкритість з підтримкою додатків жорсткого реального часу, у яких часи реакції на події зобов'язані дотримуватися в абсолютне число випадків.  
  

Версія за 01:23, 7 грудня 2011

Вбудовані в обладнання 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-версії для різних процесорів істотно прискорює процес створення відповідних модифікацій цієї ОС.

Може Чи операційна система працювати в безоператорном і бездискових режимах?

Як правило, що вбудовуються системи працюють в безоператорном режимі. Це означає, що для їх запуску та нормальної роботи участь оператора не потрібно.

ОС Linux в безоператорних і бездискових варіантах

Операційна система Linux розроблялася на основі моделі UNIX і замислювалася як ОС для настільних комп'ютерів. У традиційних версіях Linux для взаємодії з оператором є алфавітно-цифрова консоль, що дозволяє керувати завантаженням операційної системи, здійснювати введення команд і контролювати роботу ОС. Однак вбудованим системам оператор, як правило, не потрібен, і тому під вбудовуваної Linux подібна взаємодія передбачатися не повинно. Як і у всіх версіях ОС UNIX, зберігання та пошук постійних даних і виконуваних програм здійснюється в Linux засобами файлової системи. Різні пристрої також представляються у вигляді спеціальних файлів. Реалізована на дискових накопичувачах файлова система є невід'ємною частиною виконавчої середовища Linux.

Створення безоператорной версії операційної системи Linux не складає особливих труднощів: досить замінити пристрій консоль фіктивним пристроєм. Якщо замість виконання процедури реєстрації стартовий скрипт буде відразу здійснювати запуск прикладних програм, то і взаємодії з оператором вдасться уникнути. Моніторинг при необхідності можна виконувати віддалено, що забезпечується можливістю дистанційного входу в систему і призначенням псевдоустройству TTY ролі консолі. Операційні системи сімейства Linux підтримують різні графічні інтерфейси користувача (X-windows і ін), проте останні є опциональнимі і для нормальної роботи ОС не потрібні.

Проблему бездискового можна вирішити кількома способами. Існують модулі флеш-пам'яті, здатні емулювати IDE-дисководи. Як правило, ці модулі дуже компактні і не перевищують за своїми розмірами звичайних IDE-роз'ємів. Крім того, в склад Linux входить драйвер електронного диска використовується для імітації дискового накопичувача певної частини системної пам'яті. Такий диск може використовуватися для зберігання файлів, які не будуть потрібні після перезавантаження системи. Драйвер електронного диска застосовний і для звернень до файлової системі, реалізованої в ПЗУ. Якщо у вбудованій системі є флеш-пам'ять, яка нездатна емулювати IDE-дисковод, то для роботи з цією пам'яттю як з диском можна скористатися засобами файлової системи. Гарна система управління що зберігаються у флеш-пам'яті файлами зобов'язана мати механізм контролю зносу, що зводить число операцій стирання флеш-блоків до розумного мінімуму.


Інструментальні засоби для ОС Linux

Більшість Linux-програм пишеться, запускається та налагоджували в одній і тій же Linux-системі. Після того, як програма буде повністю налагоджена, її працездатний виконуваний образ (чи містить такий образ пакет) може бути скопійований в інші Linux-машини. Аналогічним чином можна створювати і програмне забезпечення для вбудованої системи за тієї умови, що в цій системі є оперативна і дискова пам'ять достатнього для роботи інструментальних коштів обсягу. На практиці, втім, така ситуація досить рідкісна, і тому в програміста виникає необхідність використання засобів крос-розробки.

Для крос-розробки цілком підійдуть шірокораспространенние GNU-компілятори. Однак відмінність порядків адресації байтів в інструментальної та цільової системах (як це має місце, наприклад, в системах з процесорами типу х86 і PowerPC) може приводити до помилок. Необхідно також визначити формат вивантаження образу ядра з інструментальної системи в цільову. Якщо цільова система здатна працювати з яких-небудь дисковим накопичувачем (і завантажуватись з цього диску), можна підключити цей диск до інструментальної машині, записати на нього образ ядра і файлову систему, потім підключити його до цільової платформі і здійснити завантаження. У тому випадку, коли завантаження ОС в цільову систему може здійснюватися по мережі, на інструментальному комп'ютері достатньо запустити сервер завантаження і файловий сервер. Якщо ж для завантаження цільової платформи повинні використовуватися тільки ПЗУ або флеш-пам'ять, може знадобитися застосування спеціальної утиліти, що створює з Linux-ядра і файлової системи єдиний завантажувальний образ.

В випадку ОС Linux одним з найпростіших способів побудови зручною середовища крос-розробки є використання будь-якого розрахованого на вбудовувані системи Linux-дистрибутива. У такий дистрибутив вже входять крос-засоби для вбудованих процесорів різних типів. Всі проблеми, пов'язані з різною адресацією байтів у слові, як правило, вже вирішені. Зазвичай подібні дистрибутиви мають у своєму складі програми початкового завантаження цільової системи, а також засоби створення і конфігурації Linux-образів, передбачають завантаження по мережі або з флеш-пам'яті.

Крос-розробка передбачає підтримку і крос-налагодження. У середовищі крос-розробки відладчик виповнюється на інструментальній системі. У Linux-дистрибутиви входить GNU-відладчик GDB, який може використовуватися для налагодження програм, написаних як у кодах інструментальної платформи, так і в кодах цільового комп'ютера. У першому випадку відладчик виконує програму сам або підключається до працюючої програмі; при цьому за допомогою інтерфейсу/proc здійснюється контроль структур даних і змінних програми. Крім того, відладчик може виконувати трасування програми, перехоплювати посилають виконуваній програмі сигнали, а також генерувати власні сигнали. Усунення несправностей зчитує з виконуваного файлу символьну інформацію і здатний забезпечувати висновок вихідного тексту програми на екран. У середовищі крос-розробки відладчик виконується на інструментальної платформі, а прикладна програма на цільовий. Оригінальний текст і таблицю символів відладчик читає з файлів інструментальної системи. Контроль що мають відношення до налагоджують програму процесів, структур даних і значень змінних здійснюється за допомогою працює на цільовій машині агента. Останній є GDB-сервер і займає набагато менше пам'яті, ніж сам відладчик. Усунення несправностей GDB взаємодіє зі своїм агентом з TCP/IP-каналу або за допомогою простого послідовного з'єднання.

Зрозуміло, налагодження Linux-ядра та драйверів пристроїв не може здійснюватися так само, як і налагодження користувацького програми. Установка контрольної точки в ядрі чи інша зупинка виконується в ядрі процесу здатна призвести до зупинки і самого агента. Більша частина настільних дистрибутивів Linux не забезпечує функцій, необхідних для налагодження ядра і драйверів. Однак розраховані на вбудовувані системи дистрибутиви такими функціями володіють. Зазвичай відладчик GDB взаємодіє з агентом налагодження ядра по низкорівневому послідовному з'єднанню. Таке рішення дозволяє здійснювати послідовне виконання ядра або драйвера і навіть ставити контрольні точки у процедурах обслуговування переривань. Єдиною річчю, яку не вдається налагоджувати подібним чином, є сам агент налагодження.

Операційна система 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 слід визнати одним із головних кандидатів на роль ОС для вбудованих додатків.

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти