A program which does the stack level save and store is ok.
I gave up on the ext2 file system (linux's fs).
I installed OpenBSD, and the ffs (Berkeley Fast File System) works well with flux.
First test program recursively traversed directory tree and printed filenames. Flux had a bug in that 'readdir()' returns a different data structure that what's documented (or in the header file). Using a new data structure fixed the problem.
I started a web server application. This may become the "shell" to the OS.
I looked into what it would take to run tasks in their own address space.
Flux does not support or define:
I've been fighting a strange "crc error" for several days last week. The problem was that after I added more thread scheduling and statistics stuffs into the OSKit scheduler and successfully compiled it, I copied the new kernel onto intel1 and tried to reboot it, the "crc error" came out just after the kernel's memory checking. I tried several means to compiler and copy the kernel but always failed. I also checked various part of the kernel to see which part could incur this problem. The only place OSkit prints this message is in the kernel unzip function. However, after David installed BSD on intel1 and I tried again, the problem surprisingly disappears and all the stuffs ran now.
Now the threading scheduler can print all kinds of stats, including for each thread:
What's next from David:
Now that we have fs support, we can look at loading executable tasks
from disk.
This will require solving many problems since the compiler will need (1) to find reference into the kernel (for making "system call"-ish function calls like 'printf'), (2) to define addresses for tasks statically, (3) we want to be able to dynamically find kernel symbols so that tasks do not need to be recompiled when the kernel is updated.
What's next from Jun:
As my schedule was delayed fighting the strange "crc error", I will do
more for the next step: