Announcing ELK, An Embedded Little Kernel

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
rdp
Posts: 4
Joined: Sat Apr 25, 2015 6:15 pm
Libera.chat IRC: rdp

Announcing ELK, An Embedded Little Kernel

Post by rdp »

ELK is a run time library that I've been developing to go along with my clang based ELLCC cross development tool chain. The goal of ELK is to provide various levels of bare metal support for a range of processors, but the primary ELK development has been done for ARM so far. ELK (and the entire ELLCC run time) is released under BSD and BSD-like licenses.

One unusual feature of ELK is that it uses the standard Linux libraries supplied by ELLCC (libc++ and the C standard library musl) in both user space and kernel space. This means that ELK is written with POSIX calls like sem_post() and pthread_create(). ELK does this by handling the Linux system calls used by musl directly. Both from user space and kernel space.

ELK is still pretty much in its infancy. As I mentioned most of the development so far has been done for the ARM. Currently implemented:
  • Virtual file system support with RAM and device file systems supported.
As time goes on, I'd like to add loading ELF files from the file system (both kernel modules and user space processes). At that point I'll actually be able to run an executable compiled for Linux under ELK. I think that's kind of cool.

-Rich
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Announcing ELK, An Embedded Little Kernel

Post by AndrewAPrice »

Nice work!
My OS is Perception.
onlyonemac
Member
Member
Posts: 1146
Joined: Sat Mar 01, 2014 2:59 pm

Re: Announcing ELK, An Embedded Little Kernel

Post by onlyonemac »

You might want to think of a different name. Your current name is confusing:

http://elks.sourceforge.net/
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
Post Reply