Apr 1, 2018
Update cookbook

@jackpot51 jackpot51 released this Mar 21, 2018 · 186 commits to master since this release

Assets 5

ISO Downloads Travis Build Log

Please discuss this release on our Discourse Forum

Notable changes include:

  • New network stack
  • More available packages
  • Improved security
  • Netsurf web browser
  • Alpha blended terminal
  • Terminal ANSI improvements
  • Rename system call
  • Kernel ACPI improvements
  • Graphical kernel debugging during ACPI initialization

Known issues:

  • The calendar application is not rendering due to a regression in OrbTK
  • Netsurf has no icon, run netsurf-fb from the terminal

More detail can be found in the following news articles:

This was posted in the following places:

Pre-release

@jackpot51 jackpot51 released this Oct 12, 2017 · 325 commits to master since this release

Assets 5

ISO Downloads

This release focuses on changes to RedoxFS, the bootloader, and the kernel to enable filesystem UUIDs.

The basic logic is this:

  • The bootloader loads the kernel from RedoxFS on the disk it is present on
  • The bootloader passes the UUID as an environmental variable to the kernel
  • The kernel passes the environmental variables to the init process
  • The init script for the init filesystem passes this UUID as an argument to RedoxFS
  • RedoxFS searches all available disks for a filesystem matching this UUID, and mounts it as the root filesystem

This was particularly important for the installation of Redox.

@jackpot51 jackpot51 released this Sep 20, 2017 · 367 commits to master since this release

Assets 5

ISO Downloads Travis Build Log

This release brings much lower memory usage with ISO - 480 MB instead of 1300 MB. There are also other bug fixes, features, and improvements.

Download the ISO here.

VirtualBox with Intel PRO/1000 Ethernet will be the most feature-complete experience. Only 64-bit x86 systems are supported. Give the VM at least 1 GB of RAM for the best results. The default username is user with an empty password. There is also a root user with a password of password.

Please post your questions and comments here:
Discussion on Hacker News
Discussion on Reddit /r/redox
Discussion on Reddit /r/rust

If you are interested in joining our chat, send an email to info at redox-os.org.

If you would like to donate, you can do so here

kernel

  • Improve live filesystem implementation
  • Fix TLS mapping by page aligning end of TLS
  • Implement pipe events
  • More verbose crash dumps
  • Improve debugging code

coreutils

  • Fix directory handling in mv

ion

  • Add support for app-dirs
  • Fix handling of foreground processes

netstack

  • Send events on connect, improve C socket implementation

orbtk

  • Fix scrolling in textbox
  • Add borders to menu entries

termion

  • Fix issue with piping into less

@jackpot51 jackpot51 released this Sep 9, 2017 · 386 commits to master since this release

Assets 6

ISO Downloads Travis Build Log

Discussion on Reddit
Torrent

  • Updates to ion
  • Much better login screen
  • Added open dialog for Editor
  • Implemented all file menu items in Editor
  • Improved ACPI implementation
  • Better window ordering in Orbital

@jackpot51 jackpot51 released this Aug 22, 2017 · 412 commits to master since this release

Assets 5

ISO Downloads Travis Build Log

Discussion on Reddit

As many of the changes are related to self hosting, by @ids1024, I have named this release POSIXLY_CORRECT. Most changes are managed independently from this repository, making it difficult to track them all. More detailed information can be found in news articles since the last release:

This release runs best if you can meet the following requirements:

  • 2 GB RAM
  • 32 MB VRAM
  • PS/2 Mouse and Keyboard
  • Intel 8254x Ethernet
  • Intel HDA audio
  • XHCI USB

@jackpot51 jackpot51 released this Jul 13, 2017 · 520 commits to master since this release

Assets 5

ISO Downloads Travis Build Log

Discussion on Reddit

Summary

It has been a while since our last release, on April 22! I cannot possible represent all of the changes to Redox OS since then, so the best way to experience them is to try it out yourself! I have listed the changes I think are biggest below. Here are the changes to our distribution repository since 0.2.0

This release was particularly challenging. The build process has been switched over to using the cookbook, and a cross compiler is now used instead of a gcc wrapper script located here. These two changes required a large amount effort to make the system compile correctly and easily again, and to get Travis builds to work. Improvements have been made to the kernel, ion, newlib, and many other projects.

Cookbook

However, due to this effort, we can now produce Redox installations from the same recipes that produce package builds, meaning that every file in a default Redox install has been installed by a package, and can be managed by the package manager. Due to a change in the bootloader allowing the kernel to be loaded from RedoxFS, this will also include the kernel soon.

To view all of the currently available packages, view the repository listing, or the repository description file

Self-hosting

Also, due to using a real cross compiler for the build, we have been able to significantly improve support for C software. Massive steps have been made in the direction of self-hosting, with the porting of binutils, newlib, gcc, nasm, llvm, and rustc to Redox. Work, mostly by @ids1024, is currently focusing on porting git. This has also identified and fixed many problems with our POSIX support, and improved the overall functionality of Redox.

Posts from @ids1024 about self-hosting can be found here:

ACPI

In addition to these two changes, the kernel has been improved. @CWood1 has written a shiny, new ACPI stack that includes an AML parser. This allows shutdown on Redox to be done correctly on nearly all systems. Support for the HPET has also been added, with a fallback to the PIT when it is not present. Eventually I hope that we will be able to correctly suspend and resume Redox by running the parsed AML.

Ion

Ion has gone through a huge amount of development, mostly by @mmstick, who has been maintaining it. There have been 139 commits to ion since the last release, adding new syntax, improving bugs, and adding new features. View them here

TWiRx

In addition, This Week in Redox has been restarted by @goyox86. Here are the articles since the last release:

@jackpot51 jackpot51 released this Apr 23, 2017 · 680 commits to master since this release

Assets 7

ISO Downloads Travis Build Log

πŸŽ‰ 🍰 As of 2017-04-20, Redox OS has been on GitHub for two years! 🍰 πŸŽ‰

Due to the number of positive changes that have happened, the version has been bumped to 0.2!

Please discuss this release on Reddit.

The most major changes are an increase in kernel performance, a complete implementation of frame allocation (and deallocation) in the kernel, a new sys:iostat to inspect all open file handles, resizing and scrolling in the editor, and more ion shell features.

This list of changes came from a line-by-line review of all changes since 0.1.5, which was released 13 days before this release.

Redox Distribution

View changes here

  • Add Cargo.lock, to track dependencies in GIT
  • Add the following as submodules, to track changes: event, extra, jpeg-decoder, mio, orbclient, orbfont, orbimage, orbtk, pager, ralloc, ransid, same-file, syscall, tar, termion
  • Readd binutils, games, and sodium as submodules
  • Update recommended rustc to 2017-04-22 nightly
  • Increase default size of filesystem to 128 MB
  • Update Rust submodule
  • Implement fcntl in ptyd
  • Implement fpath in randd

Kernel

View changes here

  • Add __rust_allocate_zeroed in alloc_kernel
  • Fix initfs generation listing bug
  • Remove Copy implementation from context::File
  • Add flags to context::File
  • Increase performance of memcpy, memmove, memset, and memcmp
  • Implement kernel closest-fit page frame allocator (removes memory leak from the old bump allocator)
  • Free page frames recursively, to free all empty tables
  • Implement handles in debug:, so that O_NONBLOCK and fcntl can be used
  • Implement fcntl and fpath for debug:, env:, event:, initfs:, irq:, live:, memory:, null:, pipe:, root:, time:, and zero:
  • Create a sys:iostat that can be used to inspect all open file descriptors
  • Implement O_CLOEXEC in the kernel
  • Implement #! interpreted scripts in exec
  • Fix bug causing grandparents of exited parents of exited children to not receive the error status of exited children
  • Add linker-flavor to targets

Coreutils

View changes here

  • Add uniq command
  • Use buffered output in ls
  • Add -f, -F, and -s to tail
  • Fix issue with -a in tee not creating files
  • Calculate characters with UTF-8 in wc
  • Cleanup coreutils library in lib.rs
  • Add a UTF-8 test file

Drivers

View changes here

  • Implement fpath in ahcid and e1000d
  • Switch vesad to use handles and support per-handle flags, like O_NONBLOCK
  • Fix bug in port layout in xhcid

Extrautils

View changes here

  • Add keymap utility (not yet functional)
  • Human readable format for screenfetch uptime
  • Move tar into extrautils

Init

View changes here

  • Open stdio without O_CLOEXEC
  • Cleanup run.d

Ion

View changes here

  • Add script arguments $0, $1, $2, ...
  • Improve syntax and performance
  • Implement piping for built-ins
  • Add echo, calc, test, and time as built-ins
  • Add description to all built-ins
  • Refactor modules
  • Update README.md

Netutils

View changes here

  • Exit wget with error when remote server returns an error status

Orbutils

View changes here

  • Implement URL dialog in browser (press enter to open)
  • Implement resizing for character_map, editor, and file_manager
  • Implement scrolling in editor
  • Refactor launcher
  • Add time to launcher
  • Remove O_CLOEXEC from stdio in terminal
  • Reduce redraws in terminal
  • Close terminal after exit

Orbdata

View changes here

  • Convert orbital configuration to TOML

Orbital

View changes here

  • Use TOML for configuration
  • Refactor to use fevent, rather than using two blocking threads

Pkgutils

View changes here

  • Implement install of local packages
  • Use io:copy to reduce memory usage for package downloads

RedoxFS

View changes here

  • Fix seek bug
  • Implement O_APPEND

@jackpot51 jackpot51 released this Apr 9, 2017 · 736 commits to master since this release

Assets 6

ISO Downloads Travis Build Log

This list of changes came from a line-by-line review of all changes since 0.1.4. Some changes outside of the redox repository, and its submodules, have not been captured.

This implements terminal resizing, and VirtualBox screen resizing. If you resize the terminal, run:

eval $(resize)

This will fix the COLUMNS and LINES variables.

Redox (Distribution)

  • Remove binutils and games by default, they can be installed with pkg
  • Remove cookbook submodule, it must be out-of-tree due to Cargo.toml
  • Add timeout example
  • Remove liner replacement
  • Add termion replacement
  • Update README.md
  • Improve example installer file /etc/installer.toml
  • Add pkg remote repository configuration in /etc/pkg.d
  • Remove display passthrough in contain
  • Use login by default as the starting program in contain
  • Add read and write timeouts to tcp: and udp:

Drivers

  • Updated to newest master
  • Added alxd driver for Atheros ethernet, still WIP
  • Updated pcid to enable PCI memory and I/O spaces by default
  • Added AZERTY and BEPO keymap to ps2d
  • Add VirtualBox screen resizing features
  • Implement resizing in vesad
  • Fix off-by-one panics in vesad
  • Implement cursor position queries in vesad

Installer

  • Updated to newest master
  • Ability to install from source using cookbook
  • Cleanup of package installation by using pkgutils directly

Kernel

  • Updated to newest master
  • Combine arch and kernel to simplify design
  • Fix typos in README.md
  • Implement timeouts with time: scheme
  • Fix serial interrupt handling
  • Cleanup allocations to use new API

Libc Artifacts

Coreutils

Extrautils

Ion

Netutils

Orbital

Orbutils

  • Updated to newest master
  • Add timeouts to browser
  • Flow browser based on window size
  • Implement Open in editor
  • Use mime and mime_guess to cleanup icon logic in file_manager
  • Resize launcher when screen resizes
  • Cleanup orblogin with variables
  • Make orblogin unclosable
  • Implement resizing in terminal
  • Implement ANSI mouse encoding in terminal
  • Implement alternate screen in terminal
  • Fix scrolling in terminal
  • Fix Linux support for terminal

Pkgutils

  • Updated to newest master
  • Add configurable remote repositories in /etc/pkg.d
  • Use timeouts in pkg
  • Cleanup pkgutils library with Repo abstraction
  • Make it possible to install with a prefix

Smith

Userutils

Rust

@jackpot51 jackpot51 released this Mar 24, 2017 · 784 commits to master since this release

Assets 5

ISO Downloads Travis Build Log

This release improves VirtualBox networking, fixes bugs, and improves user experience

Kernels and Drivers

  • Fixed kernel issue causing infinite wakeups after nanosleep
  • Switched drivers from using pause and cli to yield_now without any cli
  • Added link detection to e1000d

CLI

  • Updated coreutils and ion
  • Fixed head and tail

GUI

  • Changed algorithm for automatic window placement in orbital
  • Set sane sizes for all orbutils programs, they will fit screen size on smaller screens