Thanks to all the guys that have contributed to the project up to the point they once deserved the status of "project members". Since it's been over 1 year that the project is idle and because of new default member access rights, i have to do some clean-up to keep things manageable.
Anyway, thanks flies to beyondinfinity, coolhad, lemasson, muaddib-coder, nowan, prad33p, rolandandriese, saem, stained_eagle and whyme_t.... read more
That's one of the most ancient piece of code from the Clicker project that goes obsoleted. The next release will no longer be using wiki://SmallOperatingSystem, but instead, it will be loaded by GRUB thanks to the new interfacing layer called "Kicker" (wiki://KickLoad).
This doesn't only allow easier support for wide range of booting medium, but it is also the first step towards a tighter controlled and better organized booting sequence, by making the microkernel split apart from initialization code and 'support services' such as modules loading.
Finally took the time to reconstruct the wiki ;)
Finally you get it. The video server shipped with disk image "0.9.2-nvidia" is able to ask the VESA driver about available modes and will launch a mouse demonstration in either 800x600x24bpp or 800x600x32bpp depending on what's available.
I guess our next priority is to be able to load much data (either from a FAT32 partition or from a CDROM)
In a flash, the idea to make feasible efficient console programs rushed to my mind (http://clicker.sourceforge.net/wiclicker/index.php/ConsoleRenderer). Together with the port of OSLib's vm86 code, this has enabled Clicker to enter graphic mode. Thanks to the contributions of SANiK, Candy and Whyme_t we're about to have the first video server for clicker (which will barely display version and animate a mouse cursor, actually)... read more
Thanks to whyme_t, we now have a PCI enumeration plugin fully KDS-drivers compliant. I'm currently busy on the 'client' plugin that will use the newly established "code monkey" to provide easier-to-use SLANG with GCC3.x compatibility :)
As an attempt to unify the documentation of Clicker, a Wiki has been started to collect all the existing documents (and the yet-to-come documents). I hope that wiki to have the required ease-of-publishing and access so that i can stick my "objects/ feature IDcards" and keep them up to date, while offering pretty-print tutorials and things... Any help regarding this topic is of course welcome ;)
Finally got a new release ... offering the address space creation in the new paging environment.
Check out the wiki for details on new features ...
Well, licenses have always have something confusing ...
- the KoLIB should allow development of any kernel component, be it open-source or not. Therefore, it seems natural to put both src/kolib and src/head/kolib under the LGPL.
- the tools needn't to be 'linked against', therefore GPL should be fine for them. The output of a tool applied on some source may retain the licensing of the input files.... read more
the conversion of space.c makes nice progresses. The 'private persistent objects' have been reforged and are now easier to understand and to use. "kds://local" is the first one to have been converted to that feature (so that in each address space, kds://local.*" appears at the same address but has different content), and we can expect things like events trees, etc. to be converted in the same way in a near future ...
whyme_t has offered a nice installation tool on http://www.invalidsoftware.net/clicker/ . Integrated DJGPP installation is under heavy development :)
:: quote from http://clicker.sourceforge.net/news.html ::
Whyme_t has created a sources installer for windows XP, applying patches required to 0-8-11 eXPerimental release ... Make sure you have a correct DjGPP installation (or get our homemade djgpp tools release :)
Note that whyme_t's installer *do* include the whole source (so you needn't to download 0.8.11 tarball) and assumes %PATH% contains c:\djgpp\bin, etc. If you're installing both clicker-djgpp.zip and install.exe at once, it may fail invoking make. In that case, open a new command box and type... read more
The 'core' memory management is now rewritten around the new 'moclass' framework (see http://cvs.sourceforge.net/viewcvs.py/clicker/c32-lxsdk/kernel/src/kernel/mem/moclass.nfo\) and a new simplified 'paging core' service.
Now i'm attacking pager2, and trying to offer copy-on-write and address space creation ...
The long road of rewriting the memory management is almost walked ... the new paging management is ready as well as the new memory classes infrastructure. You can find info about these new infrastructures at http://cvs.sourceforge.net/viewcvs.py/clicker/c32-lxsdk/kernel/src/kernel/mem/moclass.nfo
http://cvs.sourceforge.net/viewcvs.py/clicker/c32-lxsdk/kernel/src/kernel/mem/pvheap.nfo... read more
the whole memory object/classes framework is being rewriting, the paging services will be updated, based on a three-core components (memmap: the physical allocator, pgarea: the virtual regions allocator and pgmap: the virtual-to-physical mapping controller)
Do not expect cvs code to compile for a while ...
I'll try hard to have something functionnal for xmas. But it'll depend on how tired i'll be when i'll come back from http://www.iwan2003.org ...
Unfortunately enough, it appears that the current paging services are useless when trying to create execution environment. The inherent "4MB" barrier for objects, the special way page directories are used, etc. make it hard to use for things other than the 'demonstrations' work.
I'm coming with a new design that should make things more clear, moving the "Zone" feature as a external service rather than belonging to the microkernel core and abstracting "virtual regions" and "physical frames list" ...... read more
So, we have basic infrastructure for device drivers, including the so long awaited disk driver. What's next ?
Lots of drivers could now be provided like keyboard, mouse, video (still requiring VM86, though), sound, etc. A PCI enumeration would be a good thing too.
Beside this what is to be changed to the *microkernel* itself ? probably the most missing thing is a real and comprehensive support for user-level programs, including KDS namespaces lookup and modifications, userlevel KDS clients and server and finally userlevel delivery of events. ... read more
finally, i have it all : the source distribution and the disk image. This is the first 'full' release of Clicker with the disk driver, so i would be very interrested by reports you could submit ... but remember it's still a bit experimental ... if you have no crash machine, you should better keep it in the BOCHS for now...
the proposed test sequence is:
quick advance with [SHIFT+SPACE]
confirm initialization completion with [ESC]
move to module manager with [SHIFT+F4] [CTRL+F5]
load 'ioman' module
move to KDS browser with [CTRL+F2]
informations about detected disks is in system.device.disk.* check everything is fine before going further.
go back to module manager
move to the testio page with [CTRL+F6]
run the "readMBR" test
check the hex bytes correspond to the partition types on your system.
i don't know what's happenning with the "activity status" ... i mean. i'm more busy on Clicker than when it had 70% and it only have 3% by now... wtf ?
CVS adds and commits seems not to be logged anymore, but the CVS tree is still updated ... well.
don't worry too much thus: we're still up and running ...
major Linux distributors (SuSE, among them) have decided to turn to GCC 3.x rather than gcc 126.96.36.199 ... Gcc 3.x has certainly a lot of cool features, but it has a major drawback for Clicker development: it isn't fully retro-compatible with the 2.x serie.
More precisely, some subtle arrays/structures initialisation are no longer supported -- and those initializations were critical for Clicker sources (i.e. some of the slang-generated code is no longer compilable).
This made me feel the urge to rewrite some makefiles so that we can use an alternate version of GCC (188.8.131.52) installed somewhere in /opt/gnu/usr ...
This means that
- if you have gcc 3.x on your penguin box and want to use clicker, you need gcc 184.108.40.206 in addition (available through archives -- for instance in SuSE 8.0 and SuSE 8.1, iirc)
- regardless of the gcc version you have, you *must* set up $CC environment variable so that it points to your gcc installation (to be checked)
with the versions 0.8.6 w of the tools, we can finally build up the disk image under both Linux and Windows host systems. It can then be used with tools like rawcopy (which i haven't tested so far) or as a disk image for BOCHS (the run.bat and bochs.rc files are included, but may need modifications for your system)
As you have noticed, the old forum at Interactive-Eyecandy is down ... now it's time for something new (probably based on YabbSE) that will be (probably aswell ;) hosted directly on SourceForge ...
I'm currently having problems with my Internet connection as well as with my main computer... please forgive me if you're waiting for an e-mail or if Clicker activity goes down to the first floor ... I'll be back as soon as my hardware is back
-- typed in a rush on my sister's computer :-/
Y34h! we have it ! Bochs IDE disk detected and registered in KDS as system.device.disk.ide0.master :-D
The latest CVS snapshot is now able to receive events even if the receiver thread is KT_SLEEPing and has the ability to resume operations on that thread.
A lot of extra LOG entries have been added for the debug purpose and will be removed before a clean release is made.
Stay tuned :)
i've been pretty busy these last weeks ...
Here's the newest addition to the CVS directory:
-- mtask/events.c, mtask/evtclass.c, mtask/evtapi.c : the kernel now has the Event Processing Engine.
-- mods/io/manager : this module allows resources management from system.io.* ...
-- kds/modload.c & slang : now supports for OBJEXP(symbol)
-- mods/io/basics : will hold default IO components & stuff, including (for now) the services.timing default server.
-- mods/test/testio : a nice front-end to test IO components. Actually able to submit a request to the timer system.