Welcome, Guest. Please login or register.

Author Topic: Amiga's kernel  (Read 5066 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline krashan

  • Sr. Member
  • ****
  • Join Date: Jan 2003
  • Posts: 254
  • Country: pl
  • Thanked: 1 times
  • Gender: Male
  • Hardware designer and programmer
    • Show all replies
    • Personal homepage
Re: Amiga's kernel
« on: July 19, 2009, 08:24:06 AM »
Quote from: obscurepanic;516071
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.