Tôi thích câu hỏi này khi tôi đọc nó. "Nó đưa tôi trở lại", như những người greybeards nói :) TinyOS "công khai" vào năm 2000 - khoảng một năm sau khi cụm từ "Internet of Things" được đặt ra, theo Wikipedia. Cách đây rất lâu, trong một thiên hà xa, rất xa ... OK, xuống kinh doanh:
Tôi tin rằng câu trả lời cho câu hỏi của bạn là liệu có hay không, TinyOS, NesC, v.v ... là "những lựa chọn tốt hiện nay", là một "Có" không đủ tiêu chuẩn . Tôi sẽ giải thích tại sao.
Tôi đã học về TinyOS năm 2003; lúc đó nó đã là một hệ thống khá trưởng thành và được sử dụng trong một số ứng dụng thú vị."Motes" là một thuật ngữ cho phần cứng, như trong "cảm biến từ xa". Mỗi vi xử lý có một bộ xử lý, pin, radio ( không phải WiFi) và một loại cảm biến nào đó. Ba thành phần đầu tiên là phổ biến trên nhiều loại khác nhau, trong khi cảm biến thường đặc biệt với ứng dụng; ánh sáng, nhiệt, từ trường, v.v ... Nếu bạn quan tâm đến chi tiết, nhiều bài báo (chủ yếu là học thuật và từ ngữ) đã được xuất bản tài liệu thiết kế của TinyOS ... đây là thứ tôi thích.
Là một hệ thống, TinyOS và vi trần được thiết kế để hoàn thành một mục tiêu với các tài nguyên cực kỳ ít ỏi. Ví dụ:
- TinyOS chiếm khoảng 400 byte bộ nhớ; một ứng dụng điển hình 12-16 kB.
- TinyOS chạy trên bộ vi điều khiển 8 bit cực nhỏ; ví dụ: Atmel's AT-90L, TI's MSP430 và ATtiny9 hiện đại hơn từ Microchip .
- Mã NesC giống như một phần của 'kernel' hơn là một ứng dụng truyền thống; hiệu quả hệ thống đòi hỏi cách tiếp cận này.
- Chu kỳ nhiệm vụ thấp và kiến trúc hệ thống phục vụ bảo tồn năng lượng cho phép pin tồn tại trong một năm hoặc hơn (tất nhiên phụ thuộc vào ứng dụng).
Cung cấp dữ liệu cảm biến đến đích cuối cùng của nó từ các vảy phân tán rộng có thể được thả từ máy bay, kiểu rơi tự do, vào một môi trường hoạt động cực kỳ thù địch đòi hỏi các thuật toán định tuyến thông minh. "Tính linh hoạt" do đó là trình điều khiển chính trong thiết kế ngăn xếp truyền thông của TinyOS. Do đó, không có cơ sở hạ tầng truyền thông hiện tại là cần thiết. Điều này là tất nhiên cả trao quyền và thách thức. Một số giao thức định tuyến đã được phát triển và việc cấp phép nguồn mở khuyến khích việc áp dụng và sửa đổi các giao thức này.
Theo như TinyOS bị bỏ rơi, hoặc trì trệ, tôi không cảm thấy như vậy. Các TinyOS GitHub repo chương trình hoạt động gần đây, và cho thấy rằng nó được duy trì và chăm sóc sau . Điều đó nói rằng, TinyOS sẽ không bao giờ thu hút đám đông "điện tử và phần mềm như một sở thích"; một đám đông không thực sự tồn tại cho đến gần đây khi Arduino và Raspberry Pi trở nên phổ biến.
Và điều đó đưa tôi đến điểm trong "câu trả lời" công phu này cho câu hỏi kích thích tư duy của bạn. Tôi không nghĩ rằng có một câu trả lời thực tế và khô khan. Tôi nghĩ rằng các câu trả lời đi xuống đến này: Con người chúng ta là giống như cừu hoặc lemmings hơn chúng ta muốn tin. Raspberry Pi, Arduino, v.v. là những sản phẩm đã thu hút lượng lớn người theo dõi và tò mò về doanh thu cho những người sử dụng các tiện ích, nhưng điều đó ít hoặc không liên quan gì đến sự phù hợp của họ đối với một ứng dụng cụ thể. Tôi không đề xuất rằng một người phát minh lại bánh xe cho mỗi vấn đề mới, nhưng đồng thời, một (hoặc hai) kích thước không phù hợp với tất cả. Sử dụng các công cụ thích hợp cho công việc.
Tôi biết từ câu hỏi của bạn rằng bạn hiểu điều này, nhưng có lẽ chưa nghĩ đến nó theo cách này. Thành thật mà nói, tôi đã không cho đến khi câu hỏi của bạn làm hỏng một số tảng đá lỏng lẻo. Vì vậy, vâng, tôi nghĩ bạn vẫn có thể xây dựng một số thứ rất thanh lịch với TinyOS, nhưng bạn có thể phải làm điều đó với ít tài nguyên hỗ trợ hơn. Hoặc, có thể sẽ có một "Trao đổi ngăn xếp TinyOS" trong tương lai? Ha ha - đừng nín thở :)
Tôi sẽ kết thúc với điều này: Sự thật thường là những gì chúng ta tạo ra; bạn đã nghe những gì bạn muốn nghe, tin những gì bạn muốn tin.
Phụ lục:
Khi bạn nghĩ về cách xây dựng các thiết bị của mình và tổng hợp chúng thành các hệ thống, Phil Levis cung cấp một số thực phẩm để suy nghĩ trong video ngắn này.
Và theo như các tài nguyên để hỗ trợ phát triển TinyOS, đây là một số ít mà tôi tìm thấy khi nghiên cứu "câu trả lời" của mình ở đây: