[riot-notifications] [RIOT-OS/RIOT] doc/rdm: RFC - design goals (#10162)

Emmanuel Baccelli notifications at github.com
Thu May 2 12:15:12 CEST 2019


emmanuelsearch approved this pull request.

@danpetry @tcschmidt @waehlisch @kaspar030 @miri64 @bergzand 
While there is still some room for improvement, I propose we merge this once the last comments (easy to address) are fixed.
We can improve the doc later, with subsequent revisions, as permitted by RDM life-cyle.

> +requirements is neither possible nor welcome).
+
+The first section discusses some of the concrete [use cases](#2-use-cases)
+which RIOT is driven by, to give a broad awareness to the developer where and
+how their features will be used. Based on this bigger picture, the [design
+philosophies](#3-design-philosophies) in the second section provide specific
+guidance for design. These include a focus on constrained devices, a short
+learning curve, and the versatility to support a huge variety of devices and
+functionality.
+
+# 2. Use cases
+
+RIOT is a general purpose IoT operating system for low-end devices, such as
+those described in [1]. These devices have a low memory footprint - kilobytes
+rather than megabytes - and an extremely low memory footprint of a few
+kilobytes in certain applications. As such, RIOT targets separate use cases from

@danpetry seems like a copy/paste issue here (twice mentioning memory in the sentence?).

I propose rephrasing:

```
These devices have an extremely low memory footprint - kilobytes rather than megabytes or gigabytes - and are typically based on low-power microcontrollers lacking hardware features provided on less constrained devices e.g. an MMU. 
```

> +
+The first section discusses some of the concrete [use cases](#2-use-cases)
+which RIOT is driven by, to give a broad awareness to the developer where and
+how their features will be used. Based on this bigger picture, the [design
+philosophies](#3-design-philosophies) in the second section provide specific
+guidance for design. These include a focus on constrained devices, a short
+learning curve, and the versatility to support a huge variety of devices and
+functionality.
+
+# 2. Use cases
+
+RIOT is a general purpose IoT operating system for low-end devices, such as
+those described in [1]. These devices have a low memory footprint - kilobytes
+rather than megabytes - and an extremely low memory footprint of a few
+kilobytes in certain applications. As such, RIOT targets separate use cases from
+embedded Linux. Below is a comprehensive, but non-exclusive list of RIOT use

'non-exhaustive' would be the term here in my opinion.

> +tradeoffs between the philosophies, and where the resolutions typically fall.
+
+## Suitability for constrained devices
+
+"Constrained" means that available memory, energy, and processor cycles are so
+reduced as to become a dominant consideration in design requirements [1]. 
+
+#### Energy efficiency
+
+RIOT nodes sometimes need to last for several years without external power, so
+they need to manage energy carefully. RIOT's tickless scheduler lets devices
+sleep while they aren't active.
+
+Modules outside the core should leverage the benefits and address the
+programming challenges of such a scheduler, without demanding that users do the
+same. An idling device should conserve energy wherever possible, by default.

this sentence is difficult to parse.
How about splitting it in 2 parts? Maybe something like
1. developers of modules should...
2. users should be able to benefit from RIOT's energy efficiency mechanisms without having to cope with scheduler details or setting power modes explicitly.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/10162#pullrequestreview-232926950
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20190502/48287c45/attachment-0001.html>


More information about the notifications mailing list