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ì?
Trả lời
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.
- 1. Sự khác nhau giữa spin_lock và raw_spin_lock() là gì?
- 2. sự khác biệt giữa lệnh linux và unix là gì?
- 3. Sự khác biệt giữa Linux và Unix là gì?
- 4. Sự khác nhau giữa .NET Core và PCL là gì?
- 5. Sự khác nhau giữa dnxcore50 trên Windows và Linux là gì?
- 6. Sự khác nhau giữa một nhà tù chroot Linux và một nhà tù FreeBSD là gì?
- 7. Sự khác nhau giữa dm và md trong hạt nhân Linux là gì?
- 8. - Sự khác biệt giữa Embedded và Topology trong Graph là gì?
- 9. Sự khác nhau giữa WPF và WinForms là gì?
- 10. Sự khác nhau giữa JavaScript và Java là gì?
- 11. Sự khác nhau giữa ODBC và OleDB là gì?
- 12. Sự khác nhau giữa SGML và XML là gì?
- 13. Sự khác nhau giữa DefaultSelenium và RemoteWebDriver là gì?
- 14. Sự khác nhau giữa RMI và Corba là gì?
- 15. Sự khác nhau giữa scgi và wsgi là gì?
- 16. Sự khác nhau giữa wsHttpBinding và ws2007HttpBinding là gì?
- 17. Sự khác nhau giữa Pingback và Trackback là gì?
- 18. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 19. Sự khác nhau giữa AxInterop và Interop là gì?
- 20. Sự khác nhau giữa CellClick và CellMouseClick là gì?
- 21. Sự khác nhau giữa .bashrc, .bash_profile và .environment là gì?
- 22. Sự khác nhau giữa JSP và Facelets là gì?
- 23. Sự khác nhau giữa hg quên và hg là gì?
- 24. Sự khác nhau giữa GDI và GDI + là gì?
- 25. Sự khác nhau giữa đá quý và plugin là gì?
- 26. Sự khác nhau giữa metaClass.methods và metaClass.metaMethods là gì?
- 27. Sự khác nhau giữa kEND và $ end là gì?
- 28. Sự khác nhau giữa java và jsp là gì?
- 29. Sự khác nhau giữa Application.Run() và Form.ShowDialog() là gì?
- 30. Sự khác nhau giữa -0 và 0 là gì?
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. –
http://unix.stackexchange.com/questions/41133/what-are-the-main-differences-between-those-linux-distro-vs-general-daily-linux –
"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