ОПЕРАЦИОННЫЕ СИСТЕМЫ - Компоненты и технологии

advertisement
Òåõíîëîãèè
Êîìïîíåíòû è òåõíîëîãèè, ¹ 4’2000
ОПЕРАЦИОННЫЕ
СИСТЕМЫ
для встраиваемых
применений
 íàñòîÿùåå âðåìÿ òàêàÿ îáëàñòü ýëåêòðîíèêè, êàê âñòðàèâàåìûå ñèñòåìû,
ðàçâèâàåòñÿ ñòðåìèòåëüíûìè òåìïàìè. Ñâÿçàíî ýòî â ïåðâóþ î÷åðåäü ñî
çíà÷èòåëüíûì ïðîãðåññîì â îáëàñòè òåõíîëîãèé è áûñòðûì óäåøåâëåíèåì
ýëåìåíòíîé áàçû. Åùå íå òàê äàâíî âûðàæåíèå «âñòðàèâàåìàÿ ñèñòåìà»
(embedded system) àññîöèèðîâàëîñü ó ìíîãèõ òîëüêî ñ ñèñòåìàìè, ïîñòðîåííûìè
íà áàçå 8-ðàçðÿäíûõ ìèêðîêîíòðîëëåðîâ. Îäíàêî ñåé÷àñ óæå íèêîãî íå óäèâèò
óïðàâëÿþùàÿ ñèñòåìà, ïîñòðîåííàÿ íà áàçå 32-ðàçðÿäíîãî RISC-ïðîöåññîðà
è èìåþùàÿ 64 Máàéò ïàìÿòè. Òàêîé áûñòðûé ïðîãðåññ ïîçâîëÿåò çíà÷èòåëüíî
ðàñøèðèòü êðóã ïðèìåíåíèÿ âñòðàèâàåìûõ ñèñòåì.
Àëåêñåé Ñèãàåâ
phantom@tversu.ru
ействительно, если раньше в какойлибо
из областей применение встраиваемых си
стем было экономически неоправданным
(или даже просто невозможным в силу их
небольшой вычислительной мощности),
то в настоящее время встраиваемые решения при
обретают все большую привлекательность. Сегодня
практически любое скольконибудь сложное элек
тронное устройство не обходится без применения
микроконтроллерных систем, управляющих его
функционированием.
Быстрое развитие встраиваемых систем естест
венным образом повлекло за собой изменения в
идеологии разработки программного обеспечения
для них. Так, если лет десять назад практически все
ПО для встраиваемых применений писалось на ас
семблере, то сегодня сложно найти серьезный про
ект, в котором код на ассемблере занимает хотя бы
20 % от общего объема. Все чаще при разработке
используются языки высокого уровня (в первую
очередь C). Соответственно, значительно усложня
ются как сами программы, так и процесс их отладки.
Языки высокого уровня обладают, помимо удобства
использования, еще одним огромным преимущест
вом перед ассемблером: программы, написанные на
них, гораздо легче переносятся между платформа
ми. И если ассемблерную программу при переносе
на другое семейство микроконтроллеров приходи
лось полностью переписывать, то в программе на
языке высокого уровня достаточно просто изменить
те участки, которые непосредственно отвечают за
взаимодействие с аппаратным обеспечением.
Д
www.finestreet.ru
Однако необходимость даже таких, казалось бы,
незначительных, изменений может в больших про
ектах представлять собой определенную сложность.
Логичным выходом в такой ситуации может служить
применение какоголибо рода операционной систе
мы, которая будет предоставлять прикладной про
грамме стандартный интерфейс, независимый от
платформы. Идея применения операционных сис
тем не нова, они с успехом используются практичес
ки с момента создания первых компьютеров, однако
встраиваемые операционные системы должны
обладать некоторыми специфическими особеннос
тями, главной из которых является относительно ма
лый объем кода. Действительно, если для операци
онных систем персональных компьютеров компакт
ность является приятным и полезным, но отнюдь не
необходимым качеством, то с операционными сис
темами для встраиваемых применений дело обстоит
иначе. Объем доступной памяти, как правило, доста
точно невелик, а его расширение (если оно вообще
возможно) требует дополнительных материальных
затрат, что далеко не лучшим образом сказывается
на стоимости продукта в целом. Чаще всего ядро
встраиваемой операционной системы занимает по
рядка нескольких килобайт, и еще несколько кило
байт требуется для различных драйверов. В свете
вышесказанного несколько странно звучит назва
ние «Embedded Windows NT» (а такая операционная
система существует).
В целом встраиваемая операционная система по
возлагаемым на нее функциям практически не отли
чается от операционных систем персональных ком
Êîìïîíåíòû è òåõíîëîãèè, ¹ 4’2000
Òåõíîëîãèè
пьютеров и должна предоставлять следую
щие возможности:
· управление памятью (memory manage
ment);
· управление процессами (tasks manage
ment);
· интерфейс с периферийными устройствами
(ввод/вывод, устройства хранения данных
и т. п.);
· поддержка различных коммуникационных
протоколов.
При этом если первые две функции выпол
няются ядром операционной системы, то ин
терфейс с устройствами и поддержку различ
ных протоколов часто выносят в отдельные
модули (своего рода аналоги драйверов), что
повышает гибкость использования операци
онной системы.
К настоящему времени спектр имеющихся
операционных систем чрезвычайно широк.
Условно все операционные системы можно
разделить на три категории по заложенным
в них возможностям:
· системы, обеспечивающие только управле
ние памятью и задачами; подобные опера
ционные системы присутствуют в том или
ином виде практически в каждом устройст
ве и имеют очень малый объем (порядка
двухтрех сотен строк кода); часто такая
операционная система пишется индивиду
ально для каждого проекта (при этом она
может и не выделяться из программного
обеспечения в операционную систему как
таковую); как правило, подобные операци
онные системы используются при созда
нии относительно простых устройств;
· системы, имеющие жестко заложенные в
них средства взаимодействия с внешним
миром; подобные системы, как и предыду
щие, разрабатываются для обеспечения
надобностей конкретного проекта; такой
подход позволяет минимизировать объем
кода и добиться максимальной производи
тельности в ущерб универсальности ис
пользования;
· системы, имеющие четко выраженную мо
дульность; подобные операционные систе
мы чаще всего имеют ядро, которое обес
печивает управление памятью и процесса
ми, а также взаимодействие процессов
между собой; кроме того, имеется набор
драйверов для поддержки различных пе
риферийных устройств, коммуникацион
ных протоколов и т. п.; этот тип операци
онных систем является наиболее универ
сальным, причем, как правило, имеется
несколько реализаций для различных ап
паратных платформ.
Представленная на следующей странице
таблица является результатом продолжитель
ных поисков в сети Интернет информации о
различных операционных системах. В ней
приведена сводная информация о более чем
45 операционных системах различного уров
ня сложности. Вся приведенная информация
была взята с Webсайтов фирмразработчи
ков. Пробелы в таблице означают отсутствие
или неясность информации по данному
пункту.
www.finestreet.ru
63
Òåõíîëîãèè
Êîìïîíåíòû è òåõíîëîãèè, ¹ 4’2000
Продукт
Разработчик
Адрес
Поддерживаемые процессоры
Nucleus PLUS
Accelerated Technology Inc.
www.atinucleus.com
6800, 68HC11, 68HC16, 68K, ARM, C16x, ColdFire, H8, MIPS, MPC8xx, PowerPC, SH, SPARC,
TI DSPs, V800, x86, MCore, CR16A/B, CR32, …
Windows CE
Anasoft
AppForge
AppForge Software Inc.
AvSYS RTOS
Avocet Systems Inc.
e/BSD
Berkley Software Design
www.bsdi.com/esp
SPARC, Intel 386, 486, Pentium
TargetOS
Blunk Microsystems
68K, MPC8xx, PowerPC
CMXRTX
CMX Co.
www.cmx.com
68HC0/08/11/12/16, 68K, 78K, 80196, x51, ARM, C16x, ColdFire, H8, MELPS 7700, MPC8xx,
PIC, PowerPC, SH, TI DSPs, x86, AVR, ST, …
DRDOS
Caldera Thin Clients Inc.
SmartFirmware
CodeGen Inc.
www.codegen.com
Alpha, ARM, i960, MPC8xx, 175PowerPC0A, SH, SPARC, x86
DACS
DDCI
TADS
DDCI
ROMDOS
Datalight
WinLight
Datalight
RTPX
EBS Inc
EMAC RTOS
EMAC Inc.
Echelon RTOS
Echelon Corp.
RTXC
Embedded System Products
Enea RTOS
ThreadX
ARM, MIPS, PowerPC, SH, x86, StrongARM
www.appforge.com
68K, ARM, SH, Motorola MCore
All processors for which an ANSI С compiler is available.
x86 Protected Mode, x86 Real Mode
MIPS, SPARC, x86 Protected Mode, x86 Real Mode, x86 Flat Mode
www.ddci.com
1750A, 68K, i960
www.datalight.com
x86 Protected Mode
x86 Real Mode
68K, PowerPC, x86 Protected Mode, x86 Real Mode
www.emacinc.com
x86
MC3150/3120 Neuron Chip
www.rtxc.com
68HC11/12/16, 68K, 80196, x51, ARM, C16x, ColdFire, H8, MPC8xx, PowerPC, TI DSPs, x86,
DSP56K, StarCore, MCore, M16C
Enea OSE Systems
68K, ARM, MPC8xx, PowerPC
Express Logic Inc
www.expresslogic.com
68HC11, 68HC12, 68HC16, 68K, ARM, ColdFire, H8, i960, MIPS, MPC8xx, PowerPC, SH, SPARC,
TI DSPs, V800, x86, ARC
www.gaio.com
68K, ARM, H8, SH, V800
www.ghx.com
68K, ARM, ColdFire, i960, MIPS, MPC8xx, PowerPC, SH, V800
www.hightecrt.com
68K, C16x, PowerPC, x86 Protected Mode
Eyrx
Eyring Corp.
GOS
GAIO Technology Inc.
Integrity
Green Hills Software
ThreadX
Green Hills Software
SOOM
Hiware
PXROS
HighTec EDV Systeme
Inferno
Inferno Network Software
POSEK
Integrated Systems Inc.
PRISM+
Integrated Systems Inc.
PSOSystem
Integrated Systems Inc.
C Executive
JMI Software Systems Inc.
PSX
JMI Software Systems Inc.
AMX
KADAK Products Ltd.
RTX
Keil Software
LynxOS
Lynx RealTime Systems
VRTX
Mentor Graphics
SMX++
Micro Digital Inc.
x86 Protected Mode
PowerPC
68HC11, 68HC16, 68K, H8
ARM, PowerPC, x86 Protected Mode, x86 Real Mode, StrongARM 110, 1100
www.isi.com
C16x, PowerPC, MCore, M32/R
www.isi.com
ARM, i960, PowerPC, Mitsubishi M3R/R, MCore, V850E, V830
68K, ARM, MIPS, MPC8xx, PowerPC, x86, Mitsubishi M32/R
29K, 68K, ARM, ColdFire, i860, i960, MIPS, MPC8xx, PowerPC, SH, SPARC, TI DSPs, V800, x86,
PARISC, Transputer
www.jmi.com
68K, ARM, ColdFire, i960, MIPS, PowerPC, V800, x86 Protected Mode
29K, 68K, ARM, ColdFire, i960, MIPS, MPC8xx, PowerPC, x86, Z80/Z180
www.keil.com
80251, 8051 and derivatives, C166
MIPS, MPC8xx, PowerPC, SH, x86 Protected Mode, uSPARC, MPC8260
www.mentor.com
68K, ARM, MPC8xx, PowerPC, x86 Protected Mode, x86 Real Mode, MCore
ColdFire, PowerPC, x86 Protected Mode, x86 Real Mode
OS9
Microware Systems Corp.
www.microware.com
68K, StrongARM, PowerPC, SH, x86 Protected Mode
JSCP
NSI Com
www.nsicom.com
68K, ARM, i960, MIPS, PowerPC, SH, SPARC, x86, Philips, TriMedia
OnTime RTOS
On Time Software
www.ontime.com
x86 Protected Mode
www.pharlap.com
x86 Protected Mode
RTKernel
On Time Software
TNT Toolsuite
Phar Lap Software Inc.
Precise/MQX
Precise Software
Technologies Inc.
QNX
QNX Software Systems
ChorusOS
Sun Microsystems Inc.
Precise
Tasking Inc.
SuperTask!
US Software
TronTask!
US Software
Tornado
Wind River Systems
www.finestreet.ru
x86 Real Mode
68K, ARM, ColdFire, MIPS, MPC8xx, PowerPC, TI DSPs, x86, 683xx, ADSP2106x, CPU32, DSP56xxx, MCore
Www.qnx.com
MIPS, PowerPC, x86 Protected Mode, x86 Real Mode
ARM, MPC8xx, PowerPC, SPARC, x86 Real Mode
Www.tasking.com
68K, MIPS, MPC8xx, PowerPC
68HC11, 68HC16, 68K, 80196, x51, ARM, C16x, ColdFire, i960, MIPS, MPC8xx, PowerPC, SH,
SPARC, x86, Z80/Z180, CR16, MCore
Www.ussw.com
ARM, ColdFire, MPC8xx, SH, x86, CR16, MCore
68K, ARM, i960, MIPS, PowerPC, SH, SPARC, ColdFire, x86 Protected Mode, C16x, MCore, CPU32, RAD6K
Òåõíîëîãèè
Êîìïîíåíòû è òåõíîëîãèè, ¹ 4’2000
Требования к памяти
ROM, килобайт
RAM, килобайт
Min
Max
Min
Max
3
45
2
4
256
640
0.8
640
2048
2048000
2048
2048
40
5
32
256
168+Stack
128
0.8
1
Минимальн.
объем RAM Поддержка Поддержка Исходный
на задачу,
TCP/IP
Java
код
байт
4
25
16
16
Да
Да
Нет
Нет
Нет
Нет
Да
Нет
Да
Да
Нет
Нет
Да
Нет
Да
Да
Да
Нет
Да
Да
CodeWarrior
$5.000
0.2
280
Да
Нет
Да
Да
CMX CMXBug, CMXTracker
$1.500
Any DOS;compatible compilers and debuggers
256
0.116
64
1024
Да
Нет
Да
Да
Да
Нет
Да
Нет
270
Нет
Нет
Нет
Нет
6
Нет
Нет
Нет
Да
70
54
80
512
1024
10
10
10
10
4
22
8
32
10
64
1
64
4
12
4
2
15
1
1
1024
200+Stack
Да
Нет
Нет
Нет
Да
Нет
Нет
Да
Да
Нет
Да
Да
64
2048
4
1
12
6
1
2
0.6
5
0.05
$39
$10.000
Any DOS;compatible compilers and debuggers
$7.50/1000
$7.50/1000
Да
Да
Да
Да
GDB
Varies
Да
Нет
Нет
Да
Neuron C, Neuron C Debugger
80
Да
Нет
Да
Да
MetaWorks, Microsoft, Microtec, Borland,
MetaWare, TASKING, IAR, Cosmic, ARM,...
120
Да
Да
Да
Да
SingleStep Debugging Solutions
Да
Green Hills Software, MetaWare, Diab Data, Metrowerks,
GNU, APEX, XRAY, …
$6.000–
$12.000
$495
Да
15
$7.495–
$12.995
Да
Да
1024
128
GNU, ARM, Metaware, Microsoft, Borland, Watcom,
IAR, Hitachi, Tasking, TI, …
Да
Да
48
12
Стоимость
250
470
32
Поддерживаемые компиляторы и отладчики
12
128
512
Наличие
примеров
Да
Да
2048
Нет
Нет
Да
Да
Microsoft Visual C
1024
Да
Нет
Да
Да
GAIO Open Plus
$6.000
512
Да
Нет
Нет
Да
Green Hills Optimizing Compilers
512
Да
Нет
Да
Да
Green Hills Optimizing Compilers
$7.500+
160
Нет
Нет
Нет
Да
200
Да
Нет
Нет
Да
TGDB, Fastview
DM5.900
512
1024
512
1024
Да
Нте
Нет
Да
1
1
1
5
Нет
Нет
Нет
Да
SDS, SearchLight, Tasking, Diab Data
Нет
Нет
Нет
Да
DiabData, CAD;UL, ARM Consortium, XDUS
Да
Да
Нет
Да
DiabData, CAD;UL, ARM Consortium, XDUS
$14.000
5
22
1
2
300
Да
Нет
Нет
Да
Cygnus, Matcom, Green Hills, Borland. SDS,
Diab Data, Intel
$2.500
25
45
2
4
300
Да
Нет
Нет
Да
Diab Data, Cygnus, Green Hills, Matcom,Intel, SDS
$3.750
Да
Нет
Да
Да
Microsoft, Borland, MetaWare, SDS, ARM, …
8
16
11
16
11
Нет
Нет
Нет
Да
dScope
37
263
11
32
8
Да
Да
Нет
Да
TotalView, TimeScan, Insure++, Total/db, gdb
8.7
30.5
12
128
16000
128
8
128
8
16000
Да
Да
Нет
Да
XRAY Debugger
$1.000
1000
Да
Да
Нет
Да
Borland, Diab, High, Visual, Watcom
$3.500–$6.000
2000
Да
Да
Да
Да
UCC + GCC
Да
Да
Нет
Да
Да
Да
Нет
Да
128
512
Microsoft, Watcom, Borland
$1.700
10
16
4
6
512
Да
Нет
Нет
Да
Microsoft, Watcom, Borland
$550
48
600
17
540
10
Да
Нет
Да
Да
Microsoft Visual C/C++ Compiler
$4.995
3
40
1.5
128
Да
Да
Да
Да
Algorithmics, Visual DSP, ARM, Borland, Diab Data,
Green Hills, Mentor Graphics, …
$12.500
32
64
8
200
Да
Да
Нет
Да
GNU GCC C/C++, Watcom C/C++
Да
Да
Нет
Да
Да
Нет
Да
Да
Tasking
4
40
32
5
150
7
25
6
30
1024
Да
Нет
Да
Да
Microsoft, Watcom, MetaWare, Borland, Diab Data,
Cross Code C, Green Hills, MRI, GNU
8
20
6
30
1024
Да
Нет
Да
Да
Diab Data, Green Hills, Borland, Microsoft
Да
Нет
Да
Нет
15
5
$12.500
$16.500
www.finestreet.ru
Download