Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

README.md: advertise ariel os #21052

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ RIOT provides features including, but not limited to:
* LoRaWAN
* UWB
* Bluetooth (BLE) via [NimBLE](https://github.com/apache/mynewt-nimble)
* Rust support
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the word "support" is unnecessary, otherwise we need to add it to all items in the list.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think just Rust would be misleading, as readers may assume RIOT would be written primarily/purely in Rust.

Probably it would make sense to add some more structure. E.g.

  • Platforms Supported
    • 200+ boards based on AVR, MSP430, ESP8266, ESP32, RISC-V, ARM7, and ARM Cortex-M
    • the native port allows to run RIOT as-is on Linux and BSD.
      Multiple instances of RIOT running on a single machine can also be
      interconnected via a simple virtual Ethernet bridge or via a simulated
      IEEE 802.15.4 network (ZEP)
  • Programming Environment
    • Write native code in C, C++, or Rust
    • Rely upon POSIX APIs, user friendly hardware abstractions, and standard embedded Rust interfaces
    • Integrate dynamic runtimes such as MicroPython, elm (JavaScript), and WASM
  • Network Features and Protocols
    • IPv6
    • 6LoWPAN (RFC4944, RFC6282, and RFC6775)
    • UDP
    • RPL (storing mode, P2P mode)
    • CoAP
    • MQTT
    • Bluetooth (BLE) via NimBLE
    • LoRaWAN
    • UWB
    • CNN-Lite
  • System Features
    • a preemptive, tickless scheduler with priorities
    • flexible memory management
    • high resolution, long-term timers
    • MTD abstraction layer for memory devices
  • Security Features
    • OTA updates via SUIT
    • PSA Cryptographic API
    • DTLS, EDHOC, ...
    • ...
  • Device Drivers
    • SPI, I2C, UART, USB, ...
    • Various sensors: Environmental sensors, IMUs, magnetometers, particulate matter sensors, ...
    • Various actuators: Servos, motors, dimmers, switches, RGB LEDs, ...
    • Displays and touchscreens
    • GNSS modules
    • ...

But as said, I'd rather have this discussion split out.


[Ariel OS](https://github.com/ariel-os/ariel-os) is an offspring of RIOT written
in Rust following RIOT's targets and [vision](https://doc.riot-os.org/vision.html).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this text doesn't reflect reality. Ariel-OS is not an offspring.

a reference to Ariel is better placed in the repo https://github.com/RIOT-OS/awesome-riot-os under "Projects inspired by RIOT".

more details, if necessary, could be discussed in an FAQ entry on the RIOT webpage, similar clarification should then be added to Ariel.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ariel-OS is not an offspring.

When would a project qualify as offspring of another?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this text doesn't reflect reality. Ariel-OS is not an offspring.

The term offspring here is not be understood in a literal, biological meaning but in a metaphorical meaning.

a reference to Ariel is better placed in the repo https://github.com/RIOT-OS/awesome-riot-os under "Projects inspired by RIOT".

The "asesome-" naming has a well established meaning that is rather narrow. Projects making use and resources on RIOT do fit in there, projects inspired by RIOT not.

Ariel OS is a research project started by a sizeable and highly active part of the RIOT community with a shared vision and multiple contributors active in both projects. There is a common understanding that we want to share code between the two OS when this is technically sensible. This makes the relationship between Ariel OS and RIOT special. This special relationship is also reflected by the README in the Ariel OS repo.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this text doesn't reflect reality. Ariel-OS is not an offspring.

The term offspring here is not be understood in a literal, biological meaning but in a metaphorical meaning.

i was writing my comment under the assumption that we are not in the bio sphere, but the wording neither fits in connotation nor denotation.

Ariel OS is a research project started by a sizeable and highly active part of the RIOT community with a shared vision and multiple contributors active in both projects.

Ariel currently counts eleven contributors, seven of them contributed to RIOT (out of these seven only three contributed more >10 commits to Ariel). i'm not in favor of number crunching but "sizeable and highly active part of the RIOT community" might seem a rather optimistic perspective.

This special relationship is also reflected by the README in the Ariel OS repo.

the README says "Rust & RIOT combined for ergonomic embedded development" and "Overall, Ariel OS gives you a 'batteries-included' experience, on par with RIOT."

originally, the Ariel README also included "Ariel OS links with many components of RIOT OS, which is licenced under the terms of LGPLv2.1." but this was removed in a recent PR (luckily, because the crossing out didn't look good ...).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i was writing my comment under the assumption that we are not in the bio sphere, but the wording neither fits in connotation nor denotation.

Given that you seem to disagree strongly with using 'offspring' here, what's required for a project to be offspring of another project? Because the rest of the participants in the discourse here seem to agree on on offspring as a good description

Ariel currently counts eleven contributors, seven of them contributed to RIOT (out of these seven only three contributed more >10 commits to Ariel). i'm not in favor of number crunching but "sizeable and highly active part of the RIOT community" might seem a rather optimistic perspective.

I think we both can agree that basing the level of involvement of different contributers purely on number of commits gives a very skewed and imprecise view. Maybe these numbers that gives you the impression that the statement made above by @maribu is optimistic, but I don't think any counter claims about this can be made purely based on commit history or lines changed.

originally, the Ariel README also included "Ariel OS links with many components of RIOT OS, which is licenced under the terms of LGPLv2.1." but this was removed in a recent PR (luckily, because the crossing out didn't look good ...).

👍

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a suggestion for alternative phrasing for the readme here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am an offspring and have no intention to replace my ancestors living or dead. I got and gave. I learned and taught. I think that my ancestors are family and we share things and help each other. My purpose is not to replace anyone but be me.

The ideas (vison and goals) and learnings (e.g. batteries included) of RIOT are one big part of Ariel-OS the other big one is Rust with its flourishing embedded ecosystem (rather than depending on each individual manufacturer gracefully providing their own library that then has to be adapted).

There is a huge number of developers that like to work with C or that depend on C (manufacturer libraries) and RIOT can work for them Ariel is not able to replace RIOT there.

I don't see Ariel as a replacement for RIOT. I think we should advertise Ariel and welcome every developer that strives to provide to either or both OSes or on time both trough rust libraries that might be used in both.

Also we do not need to change wording if Ariel matures it will never be Riots ancestor or sibling it started from RIOT.

And even if we need to change wording or placement that is what PR are for.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

an offspring finally replaces its parents.

Oh my, I hope not! (Both for RIOT's sake and my own personal life).

More seriously though. I didn't dig through all the literature to reliably state "it's used that way", but as a data point, Silberschatz's Operating Systems Concepts (as used in Operating Systems introduction courses chapter 20) uses ancestry terminology even between operating systems where "communication system and philosophy are derived from" each other. Here we have much more: Beyond the designs and philosophy, which are clearly derived from RIOT OS, the code started out as implementing the very same interfaces. It has moved on from that, because it turned out to be unsuitable to translate words instead of meaning, but there has been a shared code starting point, and there is shared code available once more.

similar text then should also be added to the Arial OS README.

I opened a pull request on that (ariel-os/ariel-os#587) promptly after this one set out, using the terminology Karl suggested:

Ariel OS is an offspring of RIOT OS. It shares many of its goals and visions, such as portability and providing a 'batteries-included' experience.

The current text in Ariel's README is admittedly unclear, to no small part due to the very lineage situation described above; let's update our READMEs to make things better understood.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ancestry terminology even between operating systems where "communication system and philosophy are derived from" each other.

The problem seems: Ariel is not an Ancester of RIOT. It is a different project with this personal overlap of 3 people. Maybe the three feel inspired by the RIOT work, which they may want to state on the Ariel pages---such position statements belong there.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even under that assumption (haven't verified) that doesn't seem to contradict what @chrysn quoted from Silberschatz.


## Getting RIOT

Expand Down
Loading