Version 0.2 of the Crocos kernel is out and can be downloaded here. It contains the code of the 3 first development phases:
- phase 1: the kernel libc.
- phase 2: the tasks manager.
- phase 3: read only file system.
Next phase (writing into the file system) will come in a few months. As usual, I'll commit in the SVN repository sub-phases as I'll implement them.
Phase 3.5 (/proc file system) of phase 3 (file system) has been committed in the SVN repository. It implements the filesystem system calls (stat/open/read/readdir...) for the /proc file system.
/proc contains one directory per process allocated in the kernel (named with the processes' pid). For each process, /proc/xxx/cmd (command line of the process), /proc/xxx/pid, /proc/xxx/ppid and /proc/xxx/state files are defined.
Phase 3.4 (Reading directories ) of phase 3 (file system) has been committed in the SVN repository. It implements the readdir system calls, allowing to read directories on an ext2 file system.
Phase 3.3 (Reading regular files) of phase 3 (file system) has been committed in the SVN repository. It implements the read an lseek system calls, allowing to read files on an ext2 file system.
Some minor changes have also been done in previous phases (mainly architecture dependent files reorganization).
Phase 3.2 (file descriptors) of phase 3 (file system) has been committed in the SVN repository. It mainly implements the 'open' and 'close' system calls.
Have fun... Guillaume
The SVN repository on Sourceforge has been activated for the Crocos project.
As I intend to release Crocos versions only after the implementation of each main phase, a long time would spend between two successive releases. For people who can't stand waiting for such a long time :), I'll use the SVN repository to commit sub phases as I complete the implementation of each of them. I'll also commit here important changes as I may rewrite entire parts of the sub phases code during the implementation of a main phase.... read more
This release contains minor code updates for Crocos 0.1. It implements the same development phases of the kernel than Crocos 0.1:
- phase 1: kernel libc
- phase 2: tasks manager
I've begun to work on the phase 3 (file system). It should take several months before having something I'll be happy with. Crocos will have support for ext2 file system (well, not all ext2 features will be supported of course, only the basic ones).
Handmade kernels are often implemented by starting with the boot sequence, and then, building and debugging the different kernel components on a "naked" machine or emulator.
I don’t find this approach convenient at all. I agree it is very exciting to boot a small program from an external drive, and print a message on the screen by writing characters directly into the video memory. The main issue with that is that implementing sensitive kernel components require robust and reliable debugging facilities, which one do not have at this point.... read more
CROCOS is a small UNIX-like kernel for x86/x86_64 systems, distributed under the GNU General Public License version 3, designed with simplicity in mind, for educational purposes. It is developed in several steps to allow people to understand how a tiny operating system can be built from scratch.
CROCOS is written in C and assembly language when needed. GNU gcc and make are used for compilation, as well as some others traditional UNIX tools.... read more