Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 356891
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T12:09:15+00:00 2026-05-12T12:09:15+00:00

I am looking at moving my product from an RTOS to embedded Linux. I

  • 0

I am looking at moving my product from an RTOS to embedded Linux. I don’t have many real-time requirements, and the few RT requirements I have are on the order of 10s of milliseconds.

Can someone point me to a reference that will tell me how Real-Time the current version of Linux is?

Are there any other gotchas from moving to a commercial RTOS to Linux?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T12:09:16+00:00Added an answer on May 12, 2026 at 12:09 pm

    You can get most of your answers from the Real Time Linux wiki and FAQ

    What are real-time capabilities of the stock 2.6 linux kernel?

    Traditionally, the Linux kernel will only allow one process to preempt another only under certain circumstances:

    • When the CPU is running user-mode code
    • When kernel code returns from a system call or an interrupt back to user space
    • When kernel code code blocks on a mutex, or explicitly yields control to another process

    If kernel code is executing when some event takes place that requires a high priority thread to start executing, the high priority thread can not preempt the running kernel code, until the kernel code explicitly yields control. In the worst case, the latency could potentially be hundreds milliseconds or more.

    The Linux 2.6 configuration option CONFIG_PREEMPT_VOLUNTARY introduces checks to the most common causes of long latencies, so that the kernel can voluntarily yield control to a higher priority task waiting to execute. This can be helpful, but while it reduces the occurences of long latencies (hundreds of milliseconds to potentially seconds or more), it does not eliminate them. However unlike CONFIG_PREEMPT (discussed below), CONFIG_PREEMPT_VOLUNTARY has a much lower impact on the overall throughput of the system. (As always, there is a classical tradeoff between throughput — the overall efficiency of the system — and latency. With the faster CPU’s of modern-day systems, it often makes sense to trade off throughput for lower latencies, but server class systems that do not need minimum latency guarantees may very well chose to use either CONFIG_PREEMPT_VOLUNTARY, or to stick with the traditional non-preemptible kernel design.)

    The 2.6 Linux kernel has an additional configuration option, CONFIG_PREEMPT, which causes all kernel code outside of spinlock-protected regions and interrupt handlers to be eligible for non-voluntary preemption by higher priority kernel threads. With this option, worst case latency drops to (around) single digit milliseconds, although some device drivers can have interrupt handlers that will introduce latency much worse than that. If a real-time Linux application requires latencies smaller than single-digit milliseconds, use of the CONFIG_PREEMPT_RT patch is highly recommended.

    They also have a list of "Gotcha’s" as you called them in the FAQ.

    What are important things to keep in
    mind while writing realtime
    applications?

    Taking care of the following during
    the initial startup phase:

    • Call mlockall() as soon as possible from main().
    • Create all threads at startup time of the application, and touch each page of the entire stack of each thread. Never start threads dynamically during RT show time, this will ruin RT behavior.
    • Never use system calls that are known to generate page faults, such as
      fopen(). (Opening of files does the
      mmap() system call, which generates a
      page-fault).
    • If you use ‘compile time global variables’ and/or ‘compile time global
      arrays’, then use mlockall() to
      prevent page faults when accessing
      them.

    more information: HOWTO: Build an
    RT-application

    They also have a large publications page you might want to checkout.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

We're looking at moving from a check-out/edit/check-in style of version control system to Subversion,
We are looking at moving from Visual Studio 2008 Professional to Visual Studio Team
I am looking at moving my company's internal business app from VB.NET to PHP.
I'm looking at moving my application from using active directory membership provider to using
So I'm looking at moving from MVC 1.0 to MVC 2.0 RTM . One
I'm looking at maybe moving from an older AMD64 to a new Intel dual-core
We're looking into moving our application from VS2008 to VS2010. We generate some COM
I am looking at moving from NUnit to MbUnit for my unit testing framework
I am looking at moving a web app from pylons to pyramid (formally repoze.bfg)
I'm looking at moving from Delphi 2007 (purchased by my employer) to Delphi XE

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.