OVERVIEW OF RTLINUX & FEATURES Dr. C. SARITHA Lecturer in Electronics SSBN Degree & PG College Anantapur
OVERVIEW• What is operating system?• Real time operating system• Overview of Unix/Linux• Features of Linux• RTLinux
What is an operating system?• An operating system is a set of programs that manage computer hardware resources and provide common services for application software.• The operating system is the most important type of system software in a computer system.• A user cannot run an application program on the computer without an operating system.
Types of Operating Systems Different types of operating systems are• Real time• Multi user• Multi-tasking vs -Single-tasking• Distributed• Embedded
Real-time Operating System• A Real-time operating system is a multitasking operating system intended for applications with fixed deadlines.• Applications include some small embedded systems, automobiles engine controllers, industrial robots, spacecraft, industrial control, and some large-scale computing devices.
Most widely deployed Real-time operating system are• Linux• OSE• QNX• RTLinux• VxWorks• Windows CE
Categories Of Real-time Systems There are two flavors of real-time systems.• Hard Real-time System• Soft Real-time system.
• Hard real-time system is hardware or software that must operate within the confines of a stringent deadline.• The application may be considered to have failed if it does not completes its function within the allotted time span.• Hard real time systems include aircraft control systems.• In soft real-time systems, meeting the deadline is important but missing the deadline will not lead to a catastrophe.
Overview of Unix/Linux• Unix stands for UNiplexed Information and Computing • Unix was developed by Ken Thomson and Dennis Ritchie beginning 1969.It became the popular operating system in the academic community during 1970’s.• It was commercialized in and since then ,its use in both academic and commercial world has grown tremendously.
• Unix operating systems are widely used in servers, workstation, and mobile devices.• Unix was designed to be portable, multi- tasking and multi-user in a time- sharing configuration.• Unix operating systems are not open source operrting systems.
The main attractions of Unix are:• Most of the operating system was developed in a high level languages. This was revolutionary during those days because before advent of UNIX ,operating system were developed in assembly languages.• The main attraction of Unix is that provide a large number of utilities for software debuggers, source code control systems.
Unix has some popular myths:• It is a complicated operating system.• Too many options for each command.• Too many commands and utilities.• Unix was not free and open source it is commercial operating system.
• In April 1991, Linus Torvards, a 21-year- old student at the University of Helsinki, Finland started working on some simple ideas for an operating system.• Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution.• Linux is the kernel of the operating system.
• Linux was originally developed as a free operating system for Intel x86-based personnel computers.• Linux since has been ported to more computed hardware platforms than any other operating systems.• Linux also run on embedded systems. Such as mobile phones, network routers, televisions.
Features of Linux• Linux is a multi-user operating system. Every user is given a username or login name.• The heading system is organized hierarchically. At the topmost level is the root directory denoted by / under which there will be sub-directories. Under each subdirectory there can be directories or files.
Important directories are• /bin contains commonly used commands• /usr/bin contains less commonly used commands• /etc contains the system administration commands• /dev contains device files• /usr /spool/mail contains mail files.
A variety of user interfaces are available.• The command user interfaces are shell, k- shell, and C shell. X-windows provide the graphical user interface.• To provide security for user’s files, a user will have a password.• Every file is given protections read, write and execute permissions are given to the owner, group and others.
KERNEL:• Kernel manages the tasks to achieve the desired performance of the system .• To manage the tasks, the important requirements are to schedule the tasks and to provide inter-task communication facilities• to achieve these two requirements, kernel objects are defined such as
• Tasks• Mutexes• ISR’s• Events• Message boxes• Mailboxes• Pipes and timers• Kernel provide the memory management service, time management services, interrupt handling services and device management services.
LINUX KERNEL Users Users Users Users processors processors processors processors System libraries Device drivers Unix/Linux kernel hardware
RTLINUX• RTLinux is a hard real-time RTOS microkernel that runs the entire Linux operating system as a fully preemptive process.• It was developed by Victor Yodaiken, Michael Barabanov and others at the New Mexico Institute of Mining and Technology and then as a commercial product at FSMLabs.• FSMLabs has two editions of RTLinux.
• RTLinux pro and RTLinux free. RTLinux pro is the priced edition and RTLinux is the open source release.• RTLinux support hard real time applications, the Linux kernel has been modified by adding a layer of software between the hardware and the Linux kernel. This additional layer is called “virtual machine”.• A foot print of 4MB is required RTLinux.
• The new layer, RTLinux layer has a separate task scheduler. This task scheduler assigns lowest priority to the standard Linux kernel. Any task that has to met real-time constraints will run under RTLinux.• Interrupts from Linux are disabled to achieve real-time performance.
DIFFERENCESS BETWEENTHELINUX AND RTLINUX:Linux RTLinux• Linux is not a hard real time system. • RTLinux supports hard real-time• The tasks, which applications. do not have any time constraints. • Any task that has real-time constraints will run under RTLinux.
In RTLinux location of the various files are:• RTLinux will be installed in the directory /usr/rtlinux-xxx, where xxx is the version name.• /usr/rtlinux/include contains all the include files necessary for development project.• /usr/doc/rtlinux/man contains the manual pages for the RTLinux.• /usr/rtlinux/modules contains the core RTLinux modules
The two important aspects while doing programming in RTLinux are:• By default, the RTLinux tasks do not have access to the computer’s floating points unit. Hence need to explicitly set the permissions for every RTLinux task.• Cannot pass arguments from the command prompt.
RTLINUX MODULES• RTLinux programs are not created as stand-alone units, they are created as modules, which are loaded into the Linux kernel space.• The C source files are compiled into objects files using the gcc command with the argument –c flag. In the C file, the main() function gets replaced with the fallowing lines:
• Int init_module();• Void cleanup_module();• Init_module is called when the module is first loaded into the kernel.• This function returns 0 if the module is successfully loaded. It returns a negative value in case of failure. When the module is loaded is to be unloaded , the cleanup_module() is called.
EXECUTING THE RTLINUXMODULES• In RTLinux load and stop user modules using the RTLinux command. Using this command we can obtain status information about RTLinux modules.• The command syntax is:• $rtlinux start my_program• $rtlinux stop my_program• $rtlinux status my_program
CREATING RTLINUX POSIXTHREADS• A real-time program generally consists of a number of threads.• Each thread share a common address space .• Pthread_create() function is used to create a new real-time thread. The corresponding header file is #include <pthread.h>
• To achieve real-time performance. The various POSIX compliant API function calls are used. These function calls are related to create and cancel semaphores.• To implement mutex, we have to include the header file <rtl_mutex.h> in the C program.• To cancel a thread, the system call is pthread_cancel.
TIMER MANAGEMENT• A number of internal clocks are available in RTLinux to manage the timers.• To obtain the current clock reading using command is: clock-set time() function clock_id gives the identification of the clock to be read.