vxworks 6 - sourceforgecimsol-mc.sourceforge.net/files/vxworks/vxworks60.pdf · runtime overview...
TRANSCRIPT
Runtime Overview
VxWorks 6.0
Wind River TechDay / Eindhoven6 Okt 04Henk Schouten – Technical Account Manager
© 2004 Wind River 2
Agenda
• VxWorks 6.0 Key Focus
• VxWorks 6.0 Key Goals
• RTOS new Features
VxWorks 6.0
Key Focus
© 2004 Wind River 4
VxWorks 6.0 Key Focus
• Performance, Reliability and Productivity
• Seamless Migration from VxWorks 5.5
• State of the Art Memory Protection
• Error detection and reporting
• Real-Time Processes (RTP)
• Inter-Process Communication (IPC)
• Modular Runtime and IDE
• Innovative Debugger: A System Solution
• Validated by Industry-leading Companies
© 2004 Wind River 5
VxWorks 6.0 Timeline
Apr04 Aug 04 Dec 04
• Protects devices from errant code and malicious attacks
• Strong memory protection• Memory error detection
and reporting
Protect First• Common message
passing IPC• Designed for future multi-
processor, multi-core, multi-OS environments
• Location transparency
Connect• Seamless compatibility
with VxWorks 5.5• Broad processor support• Support for open source• Extensible APIs• Supported by Wind River
Workbench
Leverage
Feb 04
VxWorks 6.0 Pre-
Release 1
VxWorks 6.0 Pre-
Release 2
VxWorks 6.0 Beta
VxWorks 6.0 FCS
VxWorks 6.0
Key Goals
© 2004 Wind River 7
VxWorks 6.0 Key Goals
• Increase customer value by enabling:• Leverage and reuse of existing IP investment• Improved development experience and edit-compile-debug cycle• The ability to create more robust, higher quality end-products
• VxWorks 6.0 delivers on these goals by providing:• Easy migration from VxWorks 5.5• An optional, viable memory protection model• Continued focus on VxWorks key attributes• Best in class IDE (Eclipse based) and debugger (Multi-X) based on
Wind River technology -> Wind River Workbench
© 2004 Wind River 8
VxWorks 6.0 – Seamless Migration
• Seamless compatibility with VxWorks 5.5:à recompile only• Runs existing VxWorks 5.5 BSPs, drivers and
kernel applications
• Easy migration of a user application fromVxWorks 5.5 kernel to an RTP
• Extensive compatibility testing• VxWorks 5.5 test suites• Customer code VxWorks 5.4
• Tornado 2 IDE• Networking Routing• File Systems• Connectivity• Graphics and Java
VxWorks 5.5• Diab Compiler• POSIX pThreads• pSOS-Events
VxWorks 6.0• Memory Protection
• Error Detection • Real-Time Process • IPC Messaging
• Unified MX Debugger• Eclipse-based IDE
VxWorks 5.3.1•wind Kernel / Target Shell•TCP/IP Networking• Distributed Shared Memory
VxWorks 6.0
New Features
© 2004 Wind River 10
VxWorks 5.x Today
Shared Environment:• Single address space• Program code & data• Kernel objects• Heap
• Supervisor privilege tasks• Direct device access• Simple to understand• Straightforward to program VxWorks Kernel Environment
Task1
Driver2
Driver1
SemB
MsgQA
App DCode
App CCode
App BCode
App ACode
Heap
man
ager
Task3
Task2
SemA
VxWorks OS Modules
VxWorks BSP
But this has its challenges too…• Resource reclamation difficult• Symbols collide during integration• App errors are unmanaged and so must be treated as system errors• Software errors/faults can propagate
© 2004 Wind River 11
Technical Goals of VxWorks 6.0
• Reduce problematic error propagation• To help find root causes sooner
• Provide strong memory protection• To contain error propagation paths
• Provide message passing IPC: Wind River Multi Processing Technology
• To facilitate the interaction of software separated by memory protection boundaries
© 2004 Wind River 12
Technical Goals of VxWorks 6.0
• Reduce problematic error propagation• To help find root causes sooner
• Provide strong memory protection• To contain error propagation paths
• Provide message passing IPC: Wind River Multi Processing Technology
• To facilitate the interaction of software separated by memory protection boundaries
© 2004 Wind River 13
Memory Protection –Error Detection & Reporting
• Real-Time error detecting, reporting & handling
• Faster and cheaper development & testing cycles
• Increased robustness & reliability
• Key features• ISR/Task stack overrun detection• Code corruption detection• Null pointer usage detection• Heap block overrun detection• Heap usage tracking & leakage
detection• Persistent storage of error records
Stack Pages Program Pages Address Space
0x0
Readonly
Rawdata
Start
Stop
Stack
Task 1
Task 2
Task 3
Heap Blocks Heap Blocks
© 2004 Wind River 14
Error Detection(Using the MMU)
Stack
Start
End
Stack Pages
Read-Only Code
RW Data
Program Pages Address Space
0x0ISR/Task Stack Overrun Detection
Code Corruption Detection
Null Ptr Usage Detection
© 2004 Wind River 15
Heap Error Detection(MMU not required)
Heap Blocks Heap Blocks
Task1
Task2
Task3
Heap Block Overrun Detection
Heap Usage Tracking & Leakage Detection
© 2004 Wind River 16
• Error records
• Error reporting & handling policy is customizable
• ISR contexts managed -not just tasks
• Persistent memory capability
Error Reporting Features
© 2004 Wind River 17
Technical Goals of VxWorks 6.0
• Reduce problematic error propagation• To help find root causes sooner
• Provide strong memory protection• To contain error propagation paths
• Provide message passing IPC: Wind River Multi Processing Technology
• To facilitate the interaction of software separated by memory protection boundaries
© 2004 Wind River 18
Memory Protection –Real-Time Processes (RTPs)
• Protects kernel from applications and applications from each other
• Familiar UnixTM-style process programming model
• Executing from a main() routine
• Easy integration and testing of legacy or third-party code
• MMU or MMU- less
• User-level objects (code, heap, stack, tasks, semaphores, FDs, etc.)
• Global task scheduler
• Resource reclamationVxWorks Kernel Environment
Task1
Driver2
Driver1
SemB
MsgQA
App DCode
App CCode
App BCode
App 1Code
Heap m
anager
Task3
Task2
SemA
VxWorks OS Modules
VxWorks BSP
RTP 1
RTP1 Code
Task
Heap
TaskTask ...
RTP 2
RTP2 Code
Task
Heap
TaskTask ...
© 2004 Wind River 19
Embedded Shared Library
Kernel
RTP 1
Shared Lib 1Data (RTP1)
RTP 2 RTP 3
Shared Lib 1 Code
RTP 4
RTP 1 StaticCode & Data
Kernel Static Code & Data
RTP 2 StaticCode & Data
RTP 3 StaticCode & Data
RTP 4 StaticCode & Data
Shared Lib 1Data (RTP 2)
Shared Lib 1Data (RTP 3)
RTP 5
RTP 5 StaticCode & Data
Shared Lib 2Data
Shared Lib 2Code
© 2004 Wind River 20
VxWorks 5.5 Compatibility
• Goal is for VxWorks 5.5 BSPs, drivers, projects and kernel code to be directly importable without modification
• Migration story for legacy code is to “just run it in the kernel”
• Re-compilation required – source level compatibility only
• Some work must be done in order to benefit from strong memory protection (i.e. modifications are needed to RTP-izesoftware)
• POSIX PSE 51 + 52
© 2004 Wind River 21
Technical Goals of VxWorks 6.0
• Reduce problematic error propagation• To help find root causes sooner
• Provide strong memory protection• To contain error propagation paths
• Provide message passing IPC: Wind River Multi Processing Technology
• To facilitate the interaction of software separated by memory protection boundaries
© 2004 Wind River 22
Memory Protection –Message Channels
• Common IPC mechanism for runtime integration of all applications and middleware
• New message passing model complements existing function call model
• Location transparency provides design flexibility
• Three messaging modes• Unidirectional send (“fire-and-forget”)• Send with asynchronous reply• Blocking send-receive-reply (RPC
semantics)
• Designed for future multi-core and multi-processor messaging
RTP 1
RTP 2
VxWorks Kernel Environment
Task Task
Fire & Forget
Reply Reply
Async Send Block until Receive
RTP 1
RTP 2
VxWorks Kernel Environment
Task Task
Fire & Forget
Reply Reply
Async Send Block until Receive
© 2004 Wind River 23
VxWorks 6.0 Summary
• Backward compatibility with VxWorks 5.5
• State-of-the-art memory protection
• Memory error detection and reporting mechanisms
• Standard process-based programming model
• Scalable message passing architecture