ChaOS Source Notes ChaOS Source Index ChaOS Downloads Diary CTPP Home
ChaOS is an organic operating system. It is not a linux derivative. 12k bootstrap + 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 on the ChaOS download page
The ChaOS kernel is a 32-bit unsegmented executable image, relocatable anywhere in 4Gb linear memory. Device drivers and application programs are also 32-bit unsegmented images, all running at ring 0 to allow free access to the kernel without call gates or task switches. System integrity is preserved by type-safe dynamic linkage enforced at load-time.
Latest 22/7/2010: DEC2009.ISO download updated. CFS filesystem with binary index now stable, and hosting all ChaOS development including the experimental servers.
Recently: JetDirect network printer support. CFS filesystem stable with binary index, device driver mechanism and native bootstrap. D10 C02 laser engraving program ported to ChaOS. NJOB ported to ChaOS, including PCL macros, soft fonts, with background print spooling provided by PRNSRV. Improved BIOS drive support, to run compilers even if no disk device drivers are present. FAT16 superseded by native ChaOS filesystem (CFS). MP utility to launch ChaOS .XECs on APs. FAT16 longfilenames on by default. 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.
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 connected to the internet in 2006, then became aware that ChaOS is not a unique choice of name for an operating system. Most are Linux flavours as it is 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 is 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: (10/7/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 anon and password pass.
Only four user commands are running:
? displays list of valid commands
ver displays the version of ChaOS over which the server is running
time displays server time of day and uptime
quit 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 private FTP server at ftp://chaos.ctpp.co.uk. Access is password protected during the current test phase. Public FTP will be by anonymous login to this address.
ChaOS Projects (last update 22/7/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, with embedded device drivers and applications if desired. MULTIXECs need no filesystem. 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 processores, but there are few procesor-specific features, AMD machines will also boot the ChaOS demo CDs. |
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 SMTP, POP3 and FTP login. 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 per 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. NJOB accounts, order processing and ink shop management ported from DOS4GW HP JetDirect support |
1.02.26967 |
|
CFS |
ChaOS File System, originally designed in 2000 to overcome the 2Gb partition size limitation of FAT16. Recently revised following US patent law reversal (May 2009) in favour of Microsoft and their desire to extract a tax on memory sticks which use FAT 8:3/longfilenames. CFS is radical, has no physical directories, inodes or file allocation tables on the disk, so is potentially more secure in the event of media failure. Directories exist only in memory, with a binary index to ensure file searches return results in alphabetical order. No disk access is required to find a file in the binary index. |
As above |
Working since 2000. Revised April 2010, adding binary index. EDD bootstrap and device driver mechanism added, to boot CFS partitions anywhere up to 2 Terabyte disk address Jul 2010 added CTPPNET network redirector to CFS. |
1.02.26967 |
|
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.26977 |
|
|
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 Pilots 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 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 FTP support |
Realtek 8029 (NE1000/NE2000) Realtek 8139 Realtek 8100/1E |
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 Experimental Public HTTP server running 82.68.176.217:80 == http://chaos.ctpp.co.uk Experimental Public TELNET server running anon:pass@82.68.176.217:23 Experimental Private FTP server running 82.68.176.217:21 == ftp://chaos.ctpp.co.uk UDP encapsulation for CTPPNET IPX packets |
1.02.26967 |
|
Map |
Amateur Pilot 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 will not 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 15/3/2010):
|
Project |
Description |
Platform |
Status |
Version |
|
JOB; |
Order Processing and Accounting package |
Intel 8088/8086/80286 Microfocus Cobol/2 |
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 |
|
|
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 |
| |
|
Order Processing and Accounting package with fast memory-residentindexed 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 Prototype indexed databases now running over ChaOS (15/3/2010) NJOB accounts and order-processing now running over ChaOS, with PCL laser printed documents |
1.02.26867 | |
|
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 Runs a 600kHz timing loop (that is 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 Prototype now running over ChaOS (29/3/1010) |
1.02.26258 |
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 Tomorrows 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 expensive and technically challenging, through 8086,80286 80386, to 80486 and Pentium. Major work was required to take advantage of each step change in processor architecture. I needed a system which would remain stable for years rather than months, with real-time capability, and so dropped out of 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 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 ran 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 APIs). 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 designed a custom flat 32-bit executable format and a loader called DBG to single-step the compiler output. Soon I added source files to the executable for source-level debugging of a project, followed by a processor bootstrap and DOS launcher developed by combining elements of the MMURTL loader with the protected mode switches used to store and display repeating designs in the Lotti program of 1990.
It was a natural step to attempt a native bootstrap for ChaOS, and soon I had 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. ChaOS has booted up on workday mornings now for thirteen 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 I have tasted the freedom of complete control over my computers, and there is no going back.
In 2003 I began 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 kneeboard.
In 2005 I posted a floppy disk download of ChaOS on the internet.
In September 2008 I began building this website.
In November 2008 I posted the first ChaOS ISO CD download.
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 will probably scrap them soon. Or you may wish to contact us