How AmigaOS' architecture and kernel really works. I'm not too familiar with Amiga, so I was curious. Even the previous example quote was a wee bit to understand.
The thing is rather simple. From unix point of view the whole AmigaOS including all running applications, is a
single process. Every application and all asynchronous system services are threads of this process. Then all these share a single address space. That is why there is no separation between so called "kernel" and "userland".
Advantages of this approach are speed and low demand for system resources (CPU time, memory). The main disadvantage is that one badly coded (or intentionally malicious) application can drag down the whole system.
Another difference is very high modularity. The "real" kernel is very small, below 50 kB for 68k machines. Then all higher layer system services including all device drivers, filesystems etc. are external modules. For classic Amigas a few most important service modules have been placed in ROM memory (so called Kickstart), modern ones (+ clones) load all from disk. These modules, called libraries use specific form of runtime linking, different than *.so or *.dll, they use jumptables to defined API vectors, so no symol resolving happens at module load.