ChaOS Source Notes ChaOS Source Index ChaOS Downloads Diary CTPP Home
ChaOS is an organic operating system. It is not a linux derivative. 14k VESA 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 19/3/2011: Added home-grown encryption to ChaOS FTP and TELNET, to protect data transfers to the ChaOS server.
Recently: Experimental ChaOS Server hosting this website, as well as Pedley Family/Middleton Website and Long Street Church Website now settling down. Issues resolved include HTTP/1.1 multiple hosting on one IP address, javascript on the older browsers, and reactive counter-measures in the TCP/IP layer to avoid the workload of servicing connections to internet abusers. ChaOS pages now hosted exclusively on native ChaOS server. DEC2011 ISO released. Partial mirror of the ChaOS help is here. Some links will not work, as ChaOS uses custom HTML attributes to access the operating system itself. VESA support improved, embedded in bootstrap, with mode select on CTL|ALT'v' hotkey. Device service handlers now re-entrant. Debugger now properly VESA-aware, supports multiple cores/threads and 64-bit mode. VESA bootstrap now capable of instant-on graphics. VESA Protected mode BIOS support. DEC2009.ISO revised again. CC5 development compiler now bootstrapped. Win7/ChaOS dual boot running on HP G62 notebook and Toshiba Satellite L300. ChaOS compiler CC in final revision to be included in the the next ISO download. SATA.DRV for AHCI mode. CFS filesystem with binary index now stable, and hosting all ChaOS development including the experimental servers. 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.
ChaOS development is continual and broad-based, running at v1.02 32-bit on the servers and public downloads, and v1.03 for in-house projects with multi-processor and 64-bit enhancements.
Operational ChaOS Servers: (1/3/2012)
Platform: ChaOS v1.02 on Intel D525MW 1.8GHz Atom Mini-ITX PC behind Vigor 2800G router
These servers are experimental, and not always online
TELSRV:
TELNET chaos.ctpp.co.uk (82.68.176.217)
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 server now hosting...
FTPSRV:
Private multi-user FTP server at ftp://subdomain.ctpp.co.uk, for
uploads to the web servers. A public FTP by anonymous login
will one day reside at ftp://chaos.ctpp.co.uk
ChaOS Projects (last update 1/3/2012):
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, messages in UDP wrapper
transmitted over IPv4 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.27976
CFS ChaOS File System, originally designed in 2000 to overcome the 2Gb partition
size limitation of FAT16. Recently revived 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. Directory tree structures exist only in memory, with a binary
index returning filenames and directory names always in alphabetical order. No physical disk access is required to locate file details, so disk
clatter (disk heads oscillating between file allocation
tables and file data sectors) is non-existent. 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.27976 ChaOS MULTIXEC containing operating system with read-write support for BIOS
disk devices. Also includes compiler, linker, editor, bootstrap and hard disk
installation (ChaOS Setup) implemented via a simplistic HTML browser ht.
Source code is present for all but the compiler and linker, self-extracted
during setup. F1 key invokes ht, to access help screens embedded with
the source code for each project. Help is a work-in-progress, so this download
will be updated with further help screens as they become available.
ChaOS Setup creates a 4-way bootable hard disk installation, each containing
a copy of this download, and source code extracted into a working subdirectory
tree. Each partition is in effect a self-contained development system.
As above, and needs 128Mb memory Download available
dec2011.iso
1.02.27951 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.27160 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/1.1 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.27976 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 Ported to ChaOS Autumn 2010 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 was 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. May 2008: completed my JAR Commercial Pilot License. September 2008: began building this website. October/November 2008: posted the first ChaOS ISO CD downloads. December 2009: released the first self-compiling ChaOS demo, again in
ISO CD format. June 2010: completed JAR Flight Instructor Rating. December 2011: released ChaOS ISO CD with hard disk installation routine.
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
http://chaos.ctpp.co.uk
http://bob.ctpp.co.uk
http://longstreet.co.uk