ChaOS

ChaOS Downloads    ChaOS Source Notes     ChaOS Source Index     Diary   CTPP Home

ChaOS is an organic operating system. It is not a linux derivative. One boostrap file + one OS image file, any BIOS boot device, including USB.

Details of ChaOS demos are below

Instructions for downloading and making a ChaOS boot CD are here

ChaOS is a 32-bit unsegmented executable image, relocatable anywhere in 4Gb linear memory. Processes are also 32-bit unsegmented images, with type-safe dynamic linkage enforced at run-time, preserving system integrity when critical operating system structures are revised.

Latest: MP utility to launch ChaOS .XECs on APs. Longfilenames switched on. December 2009 Demo now uploaded. November 2009 Demo with graphics and native VESA debugger. Development moving to 64-bit, on i7-920 Quad-core Nehalem. ChaOS running on Atom N270 and 330. EDD partition table, boot sector and bootstrap, so ChaOS can boot from anywhere on a hard disk. ChaOS running on Intel Atom 330 with RTL8102E lan. ChaOS uses GUID/EFI partition tables, multiboot can handle 128 bootable systems (partitions) on one hard disk. SATA drive support using PATA legacy mode. UDMA default hard disk mode. Multiple processor capability established.

It’s capable bootstrap supports 128 partitions per boot drive, with independent filesystems if required. Rebuilding a bootable image from scratch takes less than 30 seconds (3GHz processor). Since 2005 ChaOS has been refined using a native compiler with inline assembler, and so is independent of bulky mainstream operating systems and compilers. As a result, changes to the operating system are incremental. Programs are linked using a global type space, so all function calls (including dynamic links, operating system calls) are type-safe at run-time. Incremental changes to the operating system which impact older software will cause a type-safe link failure, thus preventing unsafe software from loading. (Usually all that is required is to recompile the affected module - MAKE <project>). Code and data about 1Mb, source code about 4Mb (around 80 source files plus around 80 header files).

I didn’t get broadband until 2006, then became aware that ChaOS isn’t a unique choice of name for an operating system. Most are Linux flavours as it’s a neat name. Still my ChaOS has been around for longer than most - but not as long as Ethertype 0x804, and IP protocol 16, both of which bear the name Chaos and have been around since the dawn of the internet. Still what’s in an acronym? My company has been CTPP since 1986, but recently someone decided to call their CTalk preprocessor CTPP too. 

Current ChaOS development is leaning towards the internet, I am experimenting with simple native ChaOS servers. 

Operational ChaOS Servers:  (18/01/2010)     These servers are experimental, and not always online

TELSRV:     TELNET chaos.ctpp.co.uk (82.68.176.217)  experimental TELNET server, on IBM Thinkcentre running ChaOS behind a Vigor 2800G router. Logon with user anonymous and password password. At present only three user commands are running, ? <enter> displays list of valid commands, ver <enter> display the version of ChaOS over which the server is running, quit <enter> to end the session.

HTPSRV:    http://chaos.ctpp.co.uk  (working partial mirror of ctpp.co.uk, running on the IBM Thinkcentre alongside TELSRV)

FTPSRV:    Native ChaOS FTP server to run from 1/12/2009. All access is password protected until testing is complete. Public FTP will be at ftp://chaos.ctpp.co.uk.

 

ChaOS Projects (last update 18/01/2010):                                   Other Projects                Brief History  

Project

Description

 Platform

Status

 Version

ChaOS

A self-compiling PC Operating System

Features: A text-based system  with embedded source code, inbuilt source level debugger, compiler, linker editor, source extractor (recreate all original source from any compiled executable), FAT and FAT32 read/write file system, EXT2 (Read-only), Custom re-enterable bootstrap with multiple bootable partitions, ISO CD backup (bootable).

Load-on-detect device drivers. Unique  MULTIXEC OS file format to launch OS, device drivers and applications without reference to a filesystem. (Suitable for secure terminals).

Flat 4Gb linear application space with no segmentation. Global type space providing type-safe dynamic linking between applications, device drivers and operating system.

Datagram-based network with remote file, memory and port access, remote reboot etc. Compatible with IPX over Netware Lite to mesh with NJOB.

Chaos ISO CD Demo downloads now on website.

Intel processors: 386, 486, Pentium-II, Pentium-III, Pentium-4, Pentium-D, Xeon, Atom-330, Atom N270, i7-920

Chipsets: Intel 440, 845, 860, E7505, 945, X58 express

Multiple processor capability

Note: ChaOS has been developed on Intel machines - but AMD machines will also boot the ChaOS demos

Working since 1995

VESA GUI for MAP5 (GPS on tablet PC)

Multi-processor support dictates an overhaul of ChaOS interrupt handling. Currently developing ACPI browser to view, and decode motherboard PCI IRQ routing. Then reliable algorithms to assign interrupts to the APICs will be possible.

Improving TCP/IP capability, with a view to running a native ChaOS internet server. Simple TELNET server (TELSRV) now running at chaos.ctpp.co.uk.

Simple TELNET capable of conversing with SMTP, POP3 and HTTP servers.

Simple HTTP server (HTPSRV) demonstrated, capable of multiple hosts on one IP.

Simple TELNET server (TELSRV) 

GUID EFI_PART partition support added, to allow up to 128 partitions on each hard disk

Simple FTP server (FTPSRV)

Simple Multiprocessor support. MP launcher for ChaOS .XECs, to run processes on APs. APs can be stopped by hard or user breakpoints for source-level debugging.

 1.02.25994

ChaOS Dec 2009 Demo

ChaOS demo with full operating system source code, self-extracting into development RAMdisk. Includes compiler, linker and editor to make and run programs on the RAMdisk.

Operating system can be rebuilt and launched from RAM.

VESA graphics mode on CTRL|ALT|‘v’

As above, and needs 128Mb memory

Download available dec2009.iso

1.02.25938

ChaOS Nov 2009 Demo 

Improved download with VESA graphics

As above

Download available nov2009.iso

1.01.25721

ChaOS Nov 2008 Demo 

Improved download with bootstrap reentry demonstration

ISO CD image

As above

Download available nov2008test.iso

1.01.24382

ChaOS Oct 2008 Demo

Reworked version of 2005 floppy disk download.

Most of source code left in the bootable image, viewable in the debugger

ISO CD image

As above

Download available oct2008.iso

1.01.24286

Map5

Porting Map4 to VESA graphics and Stylistic ST4110 

Custom PCI IRQ routing to make Cardbus slot work

Fujitsu Stylistic ST4110 Tablet  PC

1GB CF Flash as boot drive

CF GPS in PCMCIA slot

VESA graphics running fine

95% complete

VESA graphics debugging using dual monitor debugger

 

 

1.01.24722 

Map4

Amateur Pilot’s kneeboard with GPS, running over ChaOS

Fujitsu Stylistic 2300 Tablet  PC

Working since 2004

Superceded by MAP5 Jan 2009

1.01.23998 

Cobden

Cobden Chadwick Flexographic Printing Press sequencer and operator’s radio remote control

Intel Pentium II

Working since 1997

Major update 31/8/2009

1.01.24890

VESA/WND  

GUI for ChaOS 

Intel 386/Pentium Intel 440 and 845 chipset

Prototype working with several VESA graphics modes, debug break with mode switch for source code stepping on single-monitor system

Multiple monitor support

1.01.24548 

IP  (Internet Protocols)

ARP support

DHCP support

TCP/IP support

DNS support

HTTP support

TELNET support

 

 

PCI NE2000 (Realtek 8029)

Realtek 8139

Making good progress

ARP broadcast and reply, to establish a network presence

DHCP negotiation with router

DNS query and response decode working, now have usable getdomainipaddress( ) function to locate website IPs for HTTP sessions

TCP passive listen, and negotiate connection request from remote (this is more of server-side thing)

TCP start client session working

ICMP Ping, and Traceroute by successive PING with deprecated ttl count

Get WAN IP now available on ChaOS server by UDP packet exchange at 82.68.176.217:51717

TELNET server now running at 82.38.176.217:23

 

1.01.24895

Map

 

Amateur Pilot’s kneeboard operated by touchscreen with GPS moving map, DR navigator with wind vector corrections, running over ChaOS 

Fujitsu Stylistic 1200 Tablet  PC

 

Working since 2002  

 

ChaOS 2005 release 

First ChaOS internet download

1.44Mb floppy disk image

 

Superceded by ISO CD demo

MF.COM, written for Windows98 to create a ChaOS boot floppy won’t work on Windows XP

This is the age-old problem with Microsoft, continually having to relearn their system to keep things current. Reminds me of why I started the ChaOS project

1.01.22999

 

DOS/Windows Projects (last update 2/9/08):  

Project

Description

 Platform

Status

 Version

JOB   

Order Processing and Accounting package 

Intel 8088/8086/80286

 Microfocus Cobol 

Superceded by NJOB 

 

STEP       

Stepper motor drive program using PC as a sophisticated programmable microcontroller 

Intel 8088/8086/80286

8086 Assembly language  

Step is the foundation of the CNC in D10

 

 

LOTTI

Repeating design image processor to scan, edit and output repeating textile designs to Sharp piezo inkjet printers using sublimation dyestuffs. Featured on BBC's Tomorrow's World programme Christmas edition 1990.  

Intel 286/386 

Zorland C++ and 80286/386 assembly language

Project abandoned in 1995 after Sharp UK dropped inkjets. Project lives on in D10, and our Laser CNC 

 

SHARPSCAN100    

Windows 3.1 driver for Sharp JX100 handy scanner. Written for, and distributed by Sharp (UK) Ltd

Intel 368/486 

Windows 3.1

Still works I guess, not many of those scanners around though 

 

NJOB     

Order Processing and Accounting package with fast memory-resident indexed databases. Includes INKS suite for recording recursive reused recipes for print jobs

Custom network using IPX over Netware Lite, compatible with ChaOS network

Previously JOB (1986 onwards) hosted on MicroFocus COBOL/2

Intel Pentium II 350MHz

Watcom DOS4GW

Working since 1995

 

 

L4       

Image preprocessor for D10

Previously Lotti (1989) L1,L2,L3 etc

Intel Pentium II 350MHz

Watcom DOS4GW

Working since1995

 

D10

CO2 Laser CNC for engraving rubber print rollers using PC as a sophisticated microcontroller to control three CNC axes dynamically using by a 600kHz timing loop (that’s as fast as PC I/O bus cycles allow, irrespective of processor speed)

Previously D1,D2 etc

Intel Pentium II 350MHz

Watcom DOS4GW

Working since Nov 1998

 

 

 

ChaOS - A brief history

ChaOS is a result of frustration with the Microsoft thread of operating system design, a frustration which built during the period 1985 to 1995, when PC hardware and software development was frenetic. During that time, I first wrote accounting and order processing software for my small textile business, based in the North of England. Then some software for creating and editing repeating patterns for continuous textile prints. By 1990, I was shoving our dyestuffs through reluctant piezo-electric inkjet printers to create textile transfers, mimicking our bulk continuous transfer prints. At the time Sharp Electronics(UK) took some interest, and a brief appearance of the Lotti Design System on the BBC Tomorrow&rsqou;s World programme (Christmas 1990) rounded off that year. Sharp Electronics asked me to write a Windows driver for their JX-100 handy scanner. This was completed (SharpScan100) by March 1991, but I found Windows programming to be expensive - several hundred pounds at the time for the development kits needed.

Keeping a custom software package working through those years was a nightmare, through 8086,80286 80386, to 80486 and Pentium, upgrade your PC and every time my software needed a rewrite. Things began to stabilise around 1995, with 80486 processors now including a maths chip, but by this time I was thoroughly cheesed off with the DOS/Windows rat-race.

By 1995 I had bought a factory for the textile business, and had two more software projects in mind. First, a radio-frequency remote control system for our main Cobden Chadwick print machine, and a CO2 laser CNC to cut rollers for the Cobden Chadwick.. My Windows experience had taught me that this was an unsuitable operating system for real-time interaction with the outside world. In a bookshop I found Richard Burgess’ book &lsqou;Developing Your Own 32-bit Operating System’, and thought I might be able to modify the system described in the book (MMURTL) to run the print machine.

I soon had MMURTL running, and was astonished by the speed at which things could happen on a computer in native 32-bit linear mode. But programming MMURTL was not easy, as it required a deep understanding of PC hardware, something which I lacked (having been protected from the hardware by BIOS, DOS and Windows programmers’ interfaces). Furthermore, the compilers supplied to build MMURTL were creaky. But Richard Burgess did include the source code to the compilers in his distribution disk. I recompiled these using my now favourite Watcom ‘C++’ v10.0 into 32-bit DOS4GW programs, decided I could do better, and wrote a one-pass ‘C’ compiler from scratch with inline assembler and floating point support. I started inventing my own flat 32-bit executable format to play around with on a DOS4GW loader program which I called DBG.

With a bootstrap loader drawn from studying the MMURTL loader, I created my first, home-grown bootable floppy disk. ChaOS was born.

By 1997, ChaOS was running the RF remote control system on the Cobden Chadwick print machine, and has now booted up each workday morning from the same hard disk for eleven years.

Since then I have built my laser CNC, then learnt to fly aeroplanes, which caused me to forget about ChaOS for while. I have been a bit slow to embrace the internet, discovering Linux in 2004 - had I explored Linux sooner maybe ChaOS would never have been written. But having started ChaOS, and enjoyed the freedom of complete control over my computers, I find Linux too restrictive.

In 2003 I started playing around installling ChaOS on portable PCs, Toshiba Librettos and then Fujitsu Stylistic pen tablets. It has been great fun writing the GPS software for my electronic amateur pilot’s kneeboard.

In 2005 I posted a floppy disk download of ChaOS on the internet.

In September 2008 I began building this website.

 Back to CTPP              Back to Top of page                                                                                                               

All trademarks acknowledged as the copyright of their respective owners  

The old ChaOS2001 webpages are here, looking a bit dated, I'll probably scrap them soon. Or you may wish to contact us