250 likes | 478 Views
FYS 4220 / 9220 – 2012 / # Real Time and Embedded Data Systems and Computing Linux for Embedded / Real-time systems. What is Linux ?.
E N D
FYS 4220 / 9220 – 2012 / #Real Time and Embedded Data Systems and ComputingLinux for Embedded / Real-time systems
What is Linux ? Linux is a clone of the operating system Unix, written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX and Single UNIX Specification compliance. It has all the features you would expect in a modern fully-fledged Unix, including true multitasking, virtual memory, shared libraries, demand loading, shared copy-on-write executables, proper memory management, and multistack networking including IPv4 and IPv6. Although originally developed first for 32-bit x86-based PCs (386 or higher), today Linux also runs on (at least) the Alpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa, and Analog Devices Blackfin architectures; for many of these architectures in both 32- and 64-bit variants. Linux is easily portable to most general-purpose 32- or 64-bit architectures as long as they have a paged memory management unit (PMMU) and a port of the GNU C compiler (gcc) (part of GNU Compiler Collection, GCC). Linux has also been ported to a number of architectures without a PMMU, although functionality is then obviously somewhat limited. FYS 4220 / 9220 - 2012 - Lecture #11
Why linux for Embedded / Real-time? • To start with, it is generally agreed that linux is not an OS for hard Real-time. However, most embedded /Real-time applications are soft: from mobile phones to web servers; • Has a large and very active user community; • Cheap, if you build the system yourself; • However, if you want to avoid this hassle there are ready cooked implementations, for instance from Wind River (that are probably not cheap!); • POSIX API; • Probably fewer Single Board target architectures supported by linux than by VxWorks; • Not the same repetoire of RT systems calls as VxWorks • Advantages and Disadvantages • The advantages of embedded Linux over proprietary embedded operating systems include multiple suppliers for software, development and support; no royalties or licensing fees; a stable kernel; and the ability to read, modify and redistribute the source code. The disadvantages include a comparatively large memory footprint (kernel and root file system); complexities of user mode and kernel mode memory access; and a complex device drivers framework. (Wikipedia) FYS 4220 / 9220 - 2012 - Lecture #11
Take a walk: File: 2012-11_Linux_is_not_an_RTOS-Chris_Simmonds http://www.embedded-linux.co.uk/downloads/ESC-linux-is-not-an-rtos-slides.pdf FYS 4220 / 9220 - 2012 - Lecture #11
Click on: https://rt.wiki.kernel.org/index.php/Main_Page … and have a walk-through FYS 4220 / 9220 - 2012 - Lecture #11
Wind River Linux FYS 4220 / 9220 - 2012 - Lecture #11
«RTLinux» From http://en.wikipedia.org/wiki/RTLinux RTLinux is a hard realtime RTOS microkernel that runs the entire Linux operating system as a fully preemptive process. It is the hard realtime variant of Linux that makes it possible to control robots, data acquisition systems, manufacturing plants, and other time-sensitive instruments and machines. It was developed by Victor Yodaiken, Michael Barabanov, Cort Dougan and others at the New Mexico Institute of Mining and Technology and then as a commercial product at FSMLabs. Wind River Systems acquired FSMLabs embedded technology in February 2007 and made a version available as Wind River Real-Time Core for Wind River Linux. As of August 2011, Wind River has discontinued the Wind River Real-Time Core product line, effectively ending commercial support for RTLinux. FYS 4220 / 9220 - 2012 - Lecture #11
Take a quick look at «New Product Overview» FYS 4220 / 9220 - 2012 - Lecture #11
GETTING STARTED: Workbench Also: have a look at the White Paper «The Real Costs of Roll-Your-Own Linux» FYS 4220 / 9220 - 2012 - Lecture #11
LinuxandPOSIX • POSIX API : a key asset for embedded / Real-time software design. • Note, a web search will display some areas of incompatibility between linux and POSIX. However, what was true yesterday is not necessarily true today, as Linux continues to develop; • Another answer to the question «What is Linux missing to reach POSIX compatibilty?» is 15000 USD! This is probably the fee for a certification process. FYS 4220 / 9220 - 2012 - Lecture #11
linux real-time library - POSIX message queue API FYS 4220 / 9220 - 2012 - Lecture #11
Test case: porting robot.c from VxWorks to Linux • Step 1: Get an Integrated Development System (IDE) • Step 2: Replace or emulate VxWorks specific system calls • Step 3: Modify VxWorks POSIX stuff if incompatibility with Linux FYS 4220 / 9220 - 2012 - Lecture #11
eclipse under linux on bus.uio.no FYS 4220 / 9220 - 2012 - Lecture #11
Setting up a new C project FYS 4220 / 9220 - 2012 - Lecture #11
Setting up a new C project FYS 4220 / 9220 - 2012 - Lecture #11
Porting the cutting edge «robot» program to linux FYS 4220 / 9220 - 2012 - Lecture #11
Linux message queues - mounting FYS 4220 / 9220 - 2012 - Lecture #11
Linux message queues - naming FYS 4220 / 9220 - 2012 - Lecture #11
A section of the ported code FYS 4220 / 9220 - 2012 - Lecture #11
Setup FYS 4220 / 9220 - 2012 - Lecture #11
Cool Linux sites Maintained by people with lots of free time Linux Documentation Projectmirrors.kernel.org/LDP/ The canonical set of Linux online and printed documentation. Linux Onlinewww.linux.org Linux information. linux.org.ukwww.linux.org.uk Linux information from Great Britain (very good!) Linux Internationalwww.li.org An organization for promoting the use of Linux. The linux-kernel mailing list FAQhttp://www.tux.org/lkml/ Answers to frequently-asked questions about the Linux kernel (including how to submit patches) "A small trail through the Linux kernel“http://www.win.tue.nl/~aeb/linux/vfs/trail.html A walk-through of what the kernel does when it runs a small demonstration program. Linux kernel source finder http://www.treblig.org/Linux_kernel_source_finder.html A list of where to get architecture-specific kernel sources and patches. FYS 4220 / 9220 - 2012 - Lecture #11