2014-09-16 15 views
25

RTOS và Embedded Linux được sử dụng để lập trình hệ thống nhúng. Là bản thân Linux nhúng một RTOS? Bất cứ ai có thể liệt kê các so sánh hoặc sự khác biệt xin vui lòng?Sự khác nhau giữa RTOS và Embedded Linux là gì?

+1

RTOS (hệ điều hành thời gian thực) là phần mềm có hành vi xác định. Các sự kiện được xử lý trong một ràng buộc thời gian. Embedded Linux không phải là một RTOS như các sự kiện/ngắt thường được xử lý bởi các thủ tục hoãn lại hoặc mã 'nửa dưới' mà không thể đảm bảo độ trễ. Tuy nhiên, đã có RTOS triển khai Linux cho Linux nhúng. Tôi nghĩ rằng Wind River (Intel) giao một phiên bản này. –

+0

http://unix.stackexchange.com/questions/41133/what-are-the-main-differences-between-those-linux-distro-vs-general-daily-linux –

+0

"Nhân Linux thời gian thực được sử dụng. Kernel phản ứng là trong thời gian thực hoặc là xác định. " http://embeddedcraft.org/embedlinuxdesktoplinux.html – thePiGrepper

Trả lời

38

Linux là một hệ điều hành có mục đích chung (GPOS); ứng dụng của nó cho các hệ thống nhúng thường được thúc đẩy bởi sự hỗ trợ thiết bị, các hệ thống tệp, kết nối mạng và hỗ trợ giao diện người dùng. Tất cả những điều này có thể có sẵn trong một RTOS, nhưng thường với sự hỗ trợ ít rộng hơn, hoặc với chi phí bổ sung hoặc nỗ lực tích hợp.

Nhiều RTOS không phải là hệ điều hành đầy đủ theo nghĩa là Linux bao gồm một thư viện liên kết tĩnh chỉ cung cấp lịch biểu tác vụ, IPC, thời gian đồng bộ hóa và dịch vụ ngắt và ít hơn nữa - về cơ bản là hạt nhân lập lịch biểu. Thư viện như vậy được liên kết với mã ứng dụng của bạn để tạo ra một tệp thực thi duy nhất mà hệ thống của bạn khởi động trực tiếp (hoặc thông qua bộ nạp khởi động). Hầu hết RTOS không hỗ trợ trực tiếp việc tải và giải mã động từ một hệ thống tệp như bạn làm với Linux - tất cả đều có lúc khởi động và chạy cho đến khi tắt nguồn.

Linux cực kỳ không có khả năng thời gian thực. RTOS cung cấp bảo đảm lập lịch để đảm bảo hành vi xác định và các sự kiện phản hồi kịp thời và gián đoạn. Trong hầu hết các trường hợp, thuật toán này là thông qua một thuật toán lập lịch trình ưu tiên dựa trên ưu tiên, trong đó nhiệm vụ ưu tiên cao nhất sẵn sàng chạy luôn chạy - ngay lập tức - làm trống trước bất kỳ tác vụ ưu tiên thấp nào mà không có năng suất cụ thể hoặc từ bỏ CPU hoặc hoàn thành một thời gian -slice.

Linux có một số tùy chọn lập lịch, bao gồm bộ lập lịch thời gian thực, nhưng đây là thời gian thực "mềm" tốt nhất - thuật ngữ tôi không thích vì nó không được xác định, và về cơ bản có nghĩa là thời gian thực thời gian, nhưng đôi khi không. Nếu ứng dụng của bạn không cần thời gian thực "cứng", thì tốt, nhưng độ trễ điển hình trong Linux thời gian thực sẽ theo thứ tự hàng chục hoặc hàng trăm micro giây, trong khi hạt nhân thời gian thực RTOS điển hình có thể đạt được từ độ trễ từ không đến vài micro giây.

Một vấn đề khác với Linux nhúng là cần tài nguyên CPU đáng kể, có lẽ> 200MIPS, bộ xử lý 32 bit, lý tưởng với MMU, 4Mb ROM và 16MB RAM để khởi động (có thể mất vài giây). Mặt khác, RTOS có thể lên tới mili giây, chạy dưới 10Kb, trên vi điều khiển từ 8 bit trở lên. Điều này có thể có một tác động đáng kể đến chi phí hệ thống cho sản xuất khối lượng mặc dù có vẻ bề ngoài "tự do". Có các sản phẩm RTOS lớn hơn thể hiện một số tính năng của GPOS như tải động, hệ thống tập tin, mạng, GUI (ví dụ, trong QNX), và nhiều RTOS cung cấp API POSIX (thường là thứ yếu cho thực tế gốc của chúng) -time API) ví dụ VxWorks và một lần nữa QNX, do đó, rất nhiều mã được phát triển cho Linux và Unix có thể được chuyển tương đối dễ dàng. Các sản phẩm RTOS toàn diện hơn lớn hơn này vẫn có thể mở rộng, do đó chức năng không bắt buộc không được bao gồm. Linux trong so sánh có khả năng mở rộng hạn chế hơn rất nhiều.

Các vấn đề liên quan