2010-04-20 28 views
10

Một cách để xem xét nó - Linux nhúng bắt đầu với máy tính để bàn Linux & bỏ các phần không cần thiết cho các hệ thống nhúng (điều này thực sự đúng không?), Trong khi eCos được thiết kế từ đầu cho các hệ thống nhúng.Nhúng Linux hoặc eCos?

Bây giờ, giả sử một bộ xử lý ARM, có lẽ ARM 7 - có hiệu suất làm cho một sự khác biệt? Trên thực tế, chúng tôi nói một hệ thống tải rất thấp, tối đa 500 giao dịch mỗi ngày.

Bất kỳ ưu điểm nào của cái này so với cái khác (hoặc FreeRTOS, v.v ...)? Tính ổn định, độ chín, hiệu suất, công cụ phát triển, bất kỳ thứ gì khác?

Tất cả những gì tôi có thể nghĩ là nếu tôi nhất định rằng tôi sẽ không bao giờ chuyển sang một o/s khác, thì nếu tôi đi với Linux nhúng, tôi không cần lớp trừu tượng o/s để cho phép tôi làm thử nghiệm đơn vị trên máy chủ (hộp Linux trên máy tính để bàn).

Bất kỳ suy nghĩ hoặc nhận xét nào? Cảm ơn.

+3

Nếu bạn đang sử dụng ARM7 thì có thể nó không có MMU. Vì vậy, bạn sẽ cần ucLinux là Linux trừ đi sự hỗ trợ bộ nhớ ảo. –

+0

Bỏ phiếu để đóng quá rộng. Liên quan: http://stackoverflow.com/questions/25871579/what-is-the-difference-between-rtos-and-embedded-linux –

Trả lời

9

Mọi thiết bị tôi đã đặt Linux bắt đầu từ đầu và không phải là phiên bản rút gọn của một số phân phối.

eCos và Linux có các mục tiêu khác nhau. Linux được dự định là một hệ thống giống như Unix đầy đủ tính năng và do đó không quan tâm đến các yêu cầu hệ thống tối thiểu. eCos là hệ điều hành thời gian thực được thiết kế cho các hệ thống thường bị ràng buộc về tài nguyên. Có rất nhiều sự chồng chéo giữa hai hệ điều hành và trong nhiều tình huống cả hai sẽ hoạt động tốt như nhau.

Theo kinh nghiệm của tôi, nếu hệ thống của bạn có tài nguyên và yêu cầu của bạn không quan trọng, việc phát triển sẽ nhanh hơn với Linux. Tìm kiếm các nhà phát triển Linux có thẩm quyền dễ dàng hơn các nhà phát triển RTOS, các công cụ rẻ hơn, các quy trình được bảo vệ khỏi nhau, bạn có xu hướng có khả năng hiển thị tốt hơn vào hệ thống đang chạy, v.v.

Một thay thế (tốt hơn, IMHO) cho eCos là RTEMS (http://www.rtems.com). Đó là khoảng thời gian dài hơn và lần cuối cùng tôi kiểm tra, hỗ trợ nhiều kiến ​​trúc hơn eCos. Nó cũng có PC BSP và chạy dưới qemu để mô phỏng.

4

Embedded Linux == Linux trong 99% của tất cả các trường hợp. Bạn chỉ cần cấu hình hạt nhân khác nhau.

Sự khác biệt lớn nhất về hiệu suất là với eCos bạn có thể, tùy thuộc vào việc triển khai/cấu hình của bạn, có thời gian phản hồi dự kiến ​​trong khi với Linux bạn đang ở lòng thương xót của bộ điều khiển ngắt.

Linux có cơ sở người hâm mộ lớn hơn nhiều so với eCos do đó giúp đỡ nhiều hơn cho sự phát triển và hỗ trợ nhiều mảng CPU. Cũng tùy thuộc vào trình điều khiển bạn muốn, bạn có thể biên dịch và chạy chương trình của bạn trên PC chạy Linux.

Linux có thể phát hiện khóa/deadlocks và gửi phản hồi/khởi động lại tự động để duy trì tính sẵn sàng cao của hệ thống.

9

Không có lợi ích thực sự khi đặt Linux trên IMO ARM7; ARM7 không có MMU và bảo vệ bộ nhớ là một lý do chính để sử dụng một hệ điều hành như Linux. uClinux sẽ chạy trên các mục tiêu không có MMU, nhưng bạn đã mất một trong những lý do thuyết phục nhất để sử dụng Linux, và vẫn cần nguồn tài nguyên bộ nhớ khổng lồ (đèn flash 4M, RAM 16M sẽ là mức tối thiểu hợp lý).

Nhiều thiết bị ARM7 không có bộ nhớ ngoài để gắn nhiều bộ nhớ, và trên chip flash và RAM thường có dạng 32K đến 1M tùy thuộc vào thiết bị.

Linux thực chất không phải là "thời gian thực".Đối với khả năng thời gian thực, nó thường được kết hợp với một hạt nhân thời gian thực, nơi Linux cơ bản chạy như là nhiệm vụ nhàn rỗi, hoặc trên các mục tiêu với khả năng như một máy ảo riêng biệt. Vì vậy, nếu đáp ứng xác định và nhanh chóng cho các sự kiện bên ngoài là một yêu cầu, bạn sẽ cần một RTOS như eCOS.

eCOS tuyệt vời ở chỗ nó có hệ sinh thái lớn gồm các tính năng bổ sung và hỗ trợ thiết bị cạnh tranh với hầu hết các dịch vụ thương mại. Tuy nhiên một cái gì đó như FreeRTOS có thể dễ dàng hơn để 'đưa lên' nhưng không cung cấp nhiều hơn một bộ lập lịch trình và các cơ chế truyền thông liên tiến trình. Các công cụ như hệ thống tập tin hoặc TCP/IP cần phải được lấy từ các bên thứ ba (mặc dù có các giải pháp nhỏ và miễn phí tương thích cho các hệ thống nhúng cho điều đó).

Nếu bạn sử dụng một hạt nhân đơn giản như FreeRTOS hoặc uC/OS-III, bạn sẽ không lãng phí quá nhiều thời gian, vì vậy khoản đầu tư không phải là một chất ức chế để sử dụng cái gì khác vào lần sau. Mặt khác, Linux có thể ngăn cản bạn sử dụng thứ gì đó nhỏ hơn và nhắm mục tiêu hẹp hơn vào lần tới, và tham quan các dự án tiếp theo có thể tốn kém đáng kể so với những gì họ cần để hỗ trợ hệ điều hành của bạn.

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