Alfeiks Kaanoken | 21 Dec 2010 13:14

Development progress and plans

Hi all,
It's a big silence in maillist last months.
However (instead of mails here) the development isn't stalled.
For those who interested the list below:
 - fixed few bugs in microkernel related to ipc (extra data ops)
 - microkernel has a very basic namespaces support
 - memory objects has been modified to handle file mapping correctly
 - IDL is working now, it supports an extended IPC (forwarding, extra
data manipulation)
 - Architecture documentation was updated (docs/book)

We are planning to do the next tasks:
 - Modify current architecture
 - Moves all services to the IDL
 - Moves all drivers to the new driver model
 - Add support of Jari OS platform to the binutils/gcc
 - Port uclibc as a libc 
This changes will affect many parts of the system.

Well, the first - vfsv2 service will be transformed into libobjresolv, 
libv2 will be renamed to libvfs, also libfs will be added - this new 
library will contain a well designed filesystem logical structure 
that will be used by the special filesystems such as devfs/tmpfs and so
on. Libvfs will offer the same as libv2 provides but it will be extended
with the following stuff:
 - ventry cache (directory entries cache)
 - vnode will be more flexible
 - vnotify - notification layer will be added

Going next, nsv2 will be extended and will becomes name space carrier, 
i.e. carrier will provide the following functions:
 - resolving nodes (objects) that vfsv2 made
 - keep a tree of file system (vfsv2)
 - keep track and manage of running tasks and it resources
 - keep/manage tasks limits
 - offer a system bus interface
 - spawn a processes (not like it made now, while uclibc will be ported
carrier will maps ld.so only)
That mean that the following services will be deprecated:
 - nsv2
 - vfsv2
 - fslinker (now filesystem will handle all mounting process)
 - procmgr
 - btsdv2 (we will redesign this service, btw any other init system may
be used)
So, grub will loads a minimal set of the modules i.e.
 kernel, initfs image, namespace carrier, init.fs 
Carrier itself will reads the namespace config and run appropriate
loader/init service that will continue initialization.
In addition I want to make some words about new scheme for resources
resolving - instead of current scheme, the new one will be more complex,
but it will be more faster, instead of sending and resolving names by 
the vfsv2, all requests will be forwarded to the appropriate file
system/file system driven service. To keep resources consistently
resolve transactions will be used, that will keeps information about
current resolve processes.

Another good point - since project has IDL - it's not so difficult to
extend support of many POSIX functions, because one of the problem (and
source of the very ugly, dirty, buggy ... code) was RPC interfaces
implementation.

I'm not sure that we can celebrate new year (christmas for sure) with
the couple of this new quite positive changes, but I guess it will be
implemented soon.

Any comments ? yep, write it here.

Thanks,


Gmane