1 Introduction

System X is an experiment what can be done with the Cmajor programming language. The plan is that it will eventually have a virtual operating system kernel, shell and some basic utility programs all implemented using Cmajor. The kernel will be compiled to native code using LLVM tools and it will operate under a real operating system, under Windows for now, but later also under Linux. The kernel will provide multitasking, memory management and file system to user programs. The user programs will be also written in Cmajor but they will be compiled to System X assembly code, that is based on MMIX instruction set. MMIX was chosen because it is so regular, nice and clean. However the author has taken the liberty to extend and modify MMIX assembly language a little bit, so that it will better suit as a target to the Cmajor language. So far first versions of basic tools are ready: assembler, cmsxas, linker, cmsxlink, archiver, cmsxar, binary file inspector, cmsxdump, and rudimentary kernel and virtual machine driver, cmsx. For now the kernel has a very simple round-robin scheduler, virtual memory manager and the first versions of a bare minimum basic system calls have been implemented. In order to compile Cmajor programs to System X assembly language as well as to LLVM intermediate code, the compiler should be modularized so that it will have clean separation of front-end and back-end. This will be the next goal of the project.