That's a flavor of non-profit which is not a charitable organization.
Disclaimer: I am in no way a member of the legal profession nor am I trained in law.
My truename appears in the list of "Multicians". I still have my copy of The Design of the Multics Operating System.
One of the things that Multics did better than anything since was a feature called dynamic linking. In Multics, linking to a DLL was done via a symbolic reference resolved at runtime, rather than a reference to an ordinal (as in Windows). The Multics file system allowed you to have multiple names on the same file. The combination of those two features resulted in the ability to hot-plug DLLs. Here's how:
1. You have a program which wants to take a sine function. It's got a link to "fortran.lib:sin" (no, the Multics syntax for the entry point was different, but you get the idea).
2. The fortran guru decides he wants to upgrade the fortran library while your program is running.
3. When your program first invoked the sin() function, the symbolic link is resolved to the existing fortran.lib DLL and it's loaded into your pdd (process space).
4. The fortran guru adds the name "fortran.lib_bak" to the existing library file.
5. The fortran guru creates his library as "fortran.lib_new".
6. The fortran guru moves the name "fortran.lib" from the old library to the new one.
7. Immediately, user programs which have not already linked to the old DLL will now link to the new one as symbolic references are encountered and resolved.
8. The fortran guru removes the name "fortran.lib_new" from his new library, which has no effect except to free up that name for use in a future upgrade.
9. Eventually, all user programs which referenced the old library finish and the old library can be deleted. Everyone now uses the new library,
When I first learned about this, I thought is was really cool. 35 years later, I still do.
"Atomic batteries to power, turbines to speed." -- Robin, The Boy Wonder