Hi Everyone,

Some years ago NuttX was able to fit in really small MCUs (in fact I got it
running on a chip using less than 2KB RAM).

But a few years ago those options to disable SIGNALS, VFS, etc were
disabled to create a system that was fully POSIX compliant.

Unfortunately we missed the details: POSIX also aims at systems without
resources, as is the case of POSIX PE51 (POSIX PSE51 is a specific, minimal
profile or subset of the full POSIX - Portable Operating System Interface
standard, formally defined in IEEE 1003.13-2003).

Almost two years ago I opened an issue about it:
https://github.com/apache/nuttx/issues/11390

Today Mr Chengdong opened a PR to bring back the possibility to disable
signals:
https://github.com/apache/nuttx/pull/17352

But as Mateusz (raiden00pl) pointed we need to be careful about it to avoid
breaking the Inviolables:

## Strict POSIX compliance

  - Strict conformance to the portable standard OS interface as defined at
    OpenGroup.org.


*  - A deeply embedded system requires some special support.  Special
support must be minimized.*  - The portable interface must never be
compromised only for the sake of
    expediency.
  - Expediency or even improved performance are not justifications for
    violation of the strict POSIX interface.

Fortunately Greg chose well his words: "Special support must be minimized".
It doesn't mean it could exist, we just need to take care to not become
normal or goal and jeopardize the system.

So in this sense I propose to vote a suggestion:

In the configuration where we already add an option to disable posix timer,
pthreads, etc we add an option to "Enable POSIX PE51 subset".

This way someone willing to disable signals will be aware he/she is
creating a system that is not POSIX fully compliant or it is just a subset
of a POSIX OS.

BR,

Alan

Reply via email to