Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
General release notes
- Fixed the bootup sequence to actually load
cluidoproperly, from the ramdisk using the
initial_ramdiskservers together. This item itself is worthy of its own story; I have blogged about it at great length here: http://perlun.eu.org/en/2017/12/30/chaos-why-is-the-boot-server-unable-to-read-the-startup-script
- Changed bootloader from
grub-legacyto GRUB 2, the current version of GNU GRUB. This helped in supporting the next bulletpoint, namely:
- Make it possible to boot from a USB pen device. Just use
cp(on Linux) or Rufus (on Windows) to write the
.isoto the proper device and you should be able to boot it. Please, give it a try and share any feedback about this here in our GitHub repo!
- Added CI building of Docker images on each push to
master. Our image can be found here, and you should be able to run it by simply executing
docker run -it chaosdev/chaos.
- c9c40c0 Release 0.2.0
- fabf54c [servers/console] Add new activation flag (#137)
- 8c2955f [ci] Remove gcc 4.9 in the Travis runs
- f017684 [build] Add support for building Docker images (#136)
- eab58d6 [servers/pci] Disable PCI setup for 0x8086/0x9d23
- 4273e7a [servers/pci] Fix for #2
- f9529cd [servers/fat] Fix support for case flag (#130)
- c4374db [grub] Increase timeout
- 0a01202 [servers/fat] #2: Shorten line lengths
- 8c1b1bf [programs/cluido] Add aliases for list
- 123afcc [programs/cluido] Minor improvements to wording
- 55d06d2 [programs/cluido] #2: Fix copyright notices
- bfa89f4 qemu.sh: Run in non-curses mode
- 813dfa0 [servers/console] Fix console switching bug
- b4877f8 [grub] Change from grub-legacy to grub-2 (#127)
- 60ec03f [storm/mailbox] Add reader_thread_id field
- 0c6040a [servers/video] Fix font setting (#126)
- b2e6e1a [servers/console] Fix reentrancy issues (#124)
- acb8b52 process_init: Ensure kernel_tss is zeroed out
- b5727a4 Bug fix: thread_create should use PL3 stack for thread entry point (#122)
- ccd3967 virtual-memory.md: Add more details about PL0 stack
- 01b373d Add GRUB 2 config file
- 7c965a1 Add support for building on amd64 host (#119)
- 1ada4b8 Refactored boot server & made it work (#117)
- 726202c console server: Always activate new consoles being created.
- ee7a250 cluido: Start at fixed VM address
- 14cfb0c libraries/execute_elf: Fixed formatting. (#114)
- e53a022 mutex.h: Invert MUTEX_LOCKED and MUTEX_UNLOCKED values
- 19f7fd8 Upgrade Rubocop version (#113)
- 6694090 Map process page tables using magic PD entry (#112)
- f950f70 qemu.sh: qemu-system-i386 should be used
- 61592c3 debug_crash_screen: Fixed typo.
- 065c304 Bug fix: The FAT server should handle modern FAT16 volumes (#111)
- 44a89f9 Misc copyright fixes (#110)
- efca151 Rake: Recreate the ramdisk image on each rake install (#109)
- f23b0d1 virtual-memory.md: Fixed typo
- 452416f docs: Converted the virtual-memory document to Markdown (#108)
- 0bcbda5 memory_virtual.c: Fixes for #2
- 936fc4e log server: Disable DEBUG messages by default
- 3fbcca6 Vagrantfile: Added psmisc
- 177957d Linker scripts: made it possible to override PROCESS_VM_BASE
- 0906af6 Vagrantfile: Increased timeout.
- 5d1cbb5 mailbox.c: Improve on 5f41833
- 4c5dd1f VFS server: Better error handling, more logging.
- 3632577 libraries/file: Improved error handling
- 5f41833 mailbox_receive: Improved debug message when attempting to read message that does not fit.
- b2bb3f4 menu.lst: Need to start the fat server after the log server.
- f252bed Workaround for menu.lst caching
- 3293f21 Re-enable stack growth
- 5b53db6 libraries/ipc: Cleanups (#98)
General release notes
- Started using Semantic Versioning for our version numbers. New releases will hereafter be 0.2.0, 0.3.0 until we eventually reach 1.0.0.
- Many small improvements. The biggest single improvements are:
- First steps toward a Raspberry Pi port.
- The code is now compilable with gcc 6 and 7. Caveat: The resulting binaries have not been tested. Use at your own risk!
stdint.hinstead of declaring our own u32, i32 etc. types.
- The full details can as usual be found below.
- 2d78ea4 Release 0.1.0
- 57d5b82 Travis: Support newer gcc versions (#96)
- 9d492dc Removed network library (#94)
- fa48865 Removed math library (#93)
- dca316b Removed empty ipv6 library
- 7dd7a62 libraries/string: Minor cleanups (#92)
- 10c5979 Vagrantfile: Default the ARCH to x86
- c39f8a2 Vagrantfile: Fixed broken comment.
- 3f300e3 README.md: Improve compilation instructions
- 529fd70 README.md: Fixed markdown, updated copyright year
- 38b1609 First very rudimentary bootable build on Raspberry Pi (#88)
- 0d0eb1c Implemented basic compilation support for raspberrypi (#87)
- 00d1029 Rakefile: Use sh instead of system
- 54cfe96 Use stdint.h (#86)
- c73cc7f Removed makefile.template files (#85)
- 94aa98d Renamed ia32 references to x86 (#84)
- 6f0f1d1 Added arm toolchain. (#81)
- 826514b Disable the Rust toolchain for now (#82)
- 9f7ce32 Adjusted copyrights #2.
- 30cd8f1 Updated copyright.
- 3f2677b Use US keyboard by default (#78)
- 20088bc Maintenance: reformatted keyboard server (#77)
- fc78828 Updated copyright year (#76)
- 201475c Removed outdated docs
- 8e37331 Removed the dead nibbles code
- dc9a835 Fixed cluido to not make VFS calls when the VFS service is unavailable.
- b966b7b Reformatted file library.
- b8e9de8 Updated email address
- aca89fa Let the dispatcher yield CPU when no thread is currently active.
General release notes
No major changes or improvements; mostly a "small improvements" release. The single biggest improvements are:
- Updated the Vagrant & Travis settings to use
gccversion 5 (instead of version 4.7 which was the previously assumed version).
- Added support for building servers in Rust. Rust is still a quite "new" language in terms of stabilization and feature support; the first "stable" version 1.0 was released in May 2015. Still, it has interesting features and is a much more "modern" systems programming language than C/C++ which means it should be quite useful for writing parts of chaos with it. Don't expect a full system rewrite in Rust within any near future though...
Vagrantfile: Added gdb package and .gdbinit config
- #56: Added very basic support for Rust compilation
- #58: Added Rust
- #60: Simplified grub stage2 copying as a result of #52
rakelib/common_rules.rake: Minor lint fixes.
- #62: Updated to
- #63: Use rust nightly from last night.
- #64: Re-enabled code that downloads and unpacks
- #65: Recompiled the
- #66: Linter fixes, to be Rubocop clean.
- #67: Removed
General release notes
This version brings in some of the stuff that was missing in the previous release (most notably, the
pci servers). Apart from that, there is really no "new" stuff. Let's see what 0.0.4 has in store...
- #43: Parameterized the Vagrantfile to support both VirtualBox and Parallels
- #44: Fixed network servers (ipv4 and loopback)
- #46: cluido: Adjusted version and fixed license
- #47: cluido: Wait for
ipv4to become available
- #48: cluido: Wait for
vfsto be available
- #49: cluido: Fixed the
topcommand to display the correct process name
- #50: cluido: Made
topdisplay times in percentage
- #51: Removed old GPL-licensed network drivers
- #52: Vagrantfile: Changed to 32 bit Debian box
- #53: Made the
pciserver work again
- #54: Fixed
cpu_resetto not cause a warning in VirtualBox
General release notes
- First release of chaos in more than 10 years.
- Brings much of the existing code base into shape, making it work with recent versions of e.g.
gcc. Custom build tool (
autochaos) has been mostly superseded with a set of Rake-based files instead (#3).
- Floppy image has been superseded with an
.isoimage, which should give us loads more space for servers and programs. As a consequence of this, the release is distributed both as source code and an easily usable
.isofile which can be used with any VM software (VirtualBox, Parallels, VMware, etc.). In other words: you do not need to compile chaos yourself to be able to test it, which is kind of cool.
- Some servers (like the
ipv4servers) are still not updated to the new Rake-based build. They are not included in compiled form in this release. We hope to provide an updated 0.0.3 release within the reasonably near future, where more servers are included.
- #9: The vga server cannot be started (ELF sections issue)
- #10: System hangs in
- #11: Illegal page fault when starting the
- #12: Kernel tried to lock a mutex in a situation where tss_tree_mutex was already locked
- #13: Enabled Travis CI builds
- #14: Console library tries to resolve IPC service with empty name
- #16: [KERNEL BUG] mailbox_receive: Mailbox was NULL in vga server
- #17: Vagrant now installs
- #18: Fixed logo: now available as SVG and the old PNG version greatly improved
- #19: Removed
- #20: Updated
- #21: [KERNEL BUG] update_data: tss_list == NULL (dispatch.c:94, process = console (1), thread = unnamed (3)
- #22: Removed
- #24: Added unit test infrastructure
- #25: Some kernel variables have the wrong values on startup
- #26: Misc cleanups and closed #25
- #27: Rewrite system_calls.pl in Ruby
- #30: Changed
thread_create()to take the new thread entry point as parameter
- #31: Make chaos bootable again (umbrella issue)
- #33: Made the boot server work again
- #34: Made the VFS server work again
- #36: Create ISO image on build
- #37: Support larger servers than a few megabytes (don't hardwire physical AVL tree location)
- #38: Made the FAT server work again
- #39: Added .gitattributes to force LF line endings
- #41: Made cluido work again
- #42: Make some of the remaining libraries compile again
- 4a5deca: Fixed bug that caused the wrong process name to be printed in debug_crash_screen().
- b686d54: Fixed bug that would prevent the kernel from being re-linked when a file in the generic/ folder was being updated.
(and probably a bunch of other smaller improvements as well)