Cake #003 - Installing Clicker

Hello Everybody !

This is the first "nearly-official" document about how to install & use the new Operating System CLICKER. If you plan to become a member of the developer team or if you plan to recompile the system from its sources, i suggest you read these lines firs.

Actually, CLICKER is still on a very early developement stage. Because our team is still small, we've not yet hardware/network/filesystem support. I hope we will "accelerate" soon and that Clicker will become a usable OS. For now, it's just a microkernel that supports multitasking and has a few demonstrations module that allow the user to interact, asking for some testcase or checking memory content.

Please refer to the RELEASE.TXT file for further informations about your current version 's abilities.

How to install Clicker from sources ?

Unlike Linux or other open OS projects, Clicker is not yet a full featured operating system. This means, for instance, that there's still no boot loader or filesystem. This also mean you won't be able to compile Clicker under Clicker !! So, we still have to cross- compile the microkernel and existing modules under another OS.

So far, it's the ancient MS-DOS (or maybe a clone like FREEDOS) that will perform the compilation and launch the system. MS-DOS has been chosen because it's wide-spreaded on the hardware supported by C32 (the i486+ processors and compatibles), and because it's so old that it still allows a program to take over the hardware, including CPU control, as far as you don't turn it in VIRTUAL mode.

In other words, don't expect C32 to be runnable from a MS-DOS COMMAND box under Windows, from DOSEMU, or even from a MS-DOS session where the EMS memory manager would have been engaged. In such configurations, the system will immediately exit with a "UNKNOWN HOST" message.

What you need is a CLEAN MS-DOS SESSION, with nothing more than real mode drivers and XMS/SMARTDRV memory extensions. You can turn into this mode if you own a Windows9x and you run it into 'command line' mode at startup. A rescue disk from WindowsME can also be ok.

What do i need to compile Clicker ?

  • the DJGPP suite, including make, binutils, gcc, gas and ld. this can be freely downloaded from Deejay Delorie's software suite
  • NASM assembler, at least version 0.98 Note there's a bug in the early releases of Nasm0.98, i don't know whether it has been fixed or not, but if you experiment hangs using Nasm, i've posted a fix to this bug in the forums: there's only one single line to be changed ;)
  • Clicker32 miscellaneous tools. Those tools are held in the miscx_x.zip package of Clicker available from sourceforge's Clicker project I don't release misc package for every sources version, so check the webpage to know which one meets the reqs. In doubt, just take the most recent ;-)
  • Turbo Linker. This is a part of the Borland C++ suite (very old version, 4.5 for Dos/Win3.11). In fact, you just need TLINK to create the .EXE file that will launch the kernel. If you can't find TLINK on the web, just use the SOS.EXE launcher from a binary release ;)
  • Slang and ModMaker Those tools are also available on sourceforge repository. I suggest you always download their last version when you get a source release. There are minors changes i make when i need a new kind of command to be supported (for instance the last was _thread_ and _queue_ support in servers)
  • What do i have to do then

    note: i've used %C32MISC% and %CLICKER% to denote the two directory you choose for installing Clicker-related packages. I think they could be installed in the same directory, but i've never tried it ;)
    1) Install all those tools. Slang and modmakers have to be located in %C32MISC%\slang2 and %C32MISC%\modmaker respectively if you want to avoid heavy makefile modifications. Create a directory for your Clicker sources (%CLICKER%) and install miscellaneous tools in %CLICKER%\misc.

    2) Unzip the sources package into %CLICKER%

    3) set your shell variable OSTYPE to DOS. This variable will be used by your makefiles to locate station-specific options like tools locations.

    4) edit %CLICKER%\CONFIG.DOS so that it reflects your installation. Set srcpath to %CLICKER% and toolpath to %C32MISC%. Also check the GNU-related variables match your system (gcc, ld ...)

    5) perform the same operations on %CLICKER%\SRC\MAKEFILE.DOS. If you followed my instructions for miscellaneous tools, you shouldn't have to modify all the commands from "filter=" %CLICKER%\SRC\MODS\MAKEMOD.DOS normally needn't to be modified.

    6) go to %C32MISC% and run MAKE in slang2 and modmaker subdirectories

    7) go back to %CLICKER% and run MAKE. It should recompile the misc tools, then SOS, then the microkernel, and at least, the modules. The full compile process may take from a few minutes to a cup of coffee depending on your CPU speed, system memory and the debug level you selected for SLANG at runtime.
    note: because GNU tools are in 32 bits mode in a 16 bits OS, the compilation is far longer than it would have been under a full 32 bits OS like linux. So don't be afraid of the slowliness of the compilation process. On a K6-II 300MHZ, it takes roughly 10' for a complete compile.
    tip: DO install the SMARTDRV before you start compiling, or i'm afraid you will have to go on a trip to buy new coffee...
    8) finally launch TL.BAT to create SOS.EXE using TLINK.

    How are files organized ??

    All the sources code are located in a directory tree starting at %CLICKER%. This directory has subdirectories where temporaries binaries are created. EAch object file from the microkernel (.o files) is created in the %%/bin directory. This makes 'makefile's a bit more tricky to write, but it means you just have to "del bin\*.*" to remove temporary files and free space ;)

    Most of the kernx_yy.zip content goes to %%/src directory. There, you'll find subdirectories for different subsystems like %%/src/core wich hold kernel ASM portion, %%/src/init containing SOS code, %%/src/kernel, storing C files of the microkernel, %%/src/head that holds the include files and %%/src/mods where modules rest.

    When making the kernel, MAKE will automatically detect if dependencies changes are needed (so, there's no "make dep" ;) and will re-generate dependencies files (*.d) from their sources. If you really want to clean it up (for instance before moving Clicker to another directory), just do a "make clean" from %CLICKER% or a "make cleaner". If you encounter some weird errors when compiling, try to remove manually *.d files (they may contain outdated references and then ask MAKE to generate files to locations that doesn't exist on your disk ;(


    Nasm locks when compiling ...

    If you have to wait more than 5 minutes for a NASM run, then something went wrong. Check the version (displayed at start of the make process): if it's before 0.98, upgrade. If you have 0.98, remember the bug report, download our patched version instead

    Thanks to Girish for this report

    Unable to open output file

    Agyani has reported some compile problem from the regular .zip distributions You should know that every binary file produced by the MAKE process for the microkernel is put in a %CLICKER%/bin directory. Unfortunately, that directory is omitted when creating archives. So check first if you have such /bin directory. If not, create it and try again ... If it still doesn't work then you really have a problem

    Well, this is all for now, i did not have further questions. Send me direct e-mail to pype_1999.geo@yahoo.com for support, and this section will grow up (would be helpfull for future users)

    I'm greedy of any kind of feedback: please let me know what you think about Clicker;)