Releases: redox-os/redox
0.5.0
0.3.5 - New Network Stack
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 Week in Redox 31
- This Week in Redox 32
- This Week in Redox 33
- This Week in Redox 34
- This Week in Redox 35
- This Week in Redox 36
This was posted in the following places:
0.3.4 - Filesystem UUID
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.
0.3.3 - Lower Memory Usage
This release brings much lower memory usage with ISO - 480 MB instead of 1300 MB. There are also other bug fixes, features, and improvements.
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
0.3.2
0.3.1 - POSIXLY_CORRECT
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:
- https://redox-os.org/news/this-week-in-redox-25/
- https://redox-os.org/news/this-week-in-redox-26/
- https://redox-os.org/news/gsoc-self-hosting-3/
- https://redox-os.org/news/this-week-in-redox-27/
- https://redox-os.org/news/this-week-in-redox-28/
- https://redox-os.org/news/gsoc-self-hosting-4/
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
0.3.0 - The Return of the Redox
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:
0.2.0 - 2 Years of Redox
🎉 🍰 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
- 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
to2017-04-22
nightly - Increase default size of filesystem to 128 MB
- Update Rust submodule
- Implement
fcntl
inptyd
- Implement
fpath
inrandd
Kernel
- Add
__rust_allocate_zeroed
inalloc_kernel
- Fix
initfs
generation listing bug - Remove
Copy
implementation fromcontext::File
- Add
flags
tocontext::File
- Increase performance of
memcpy
,memmove
,memset
, andmemcmp
- 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 thatO_NONBLOCK
andfcntl
can be used - Implement
fcntl
andfpath
fordebug:
,env:
,event:
,initfs:
,irq:
,live:
,memory:
,null:
,pipe:
,root:
,time:
, andzero:
- Create a
sys:iostat
that can be used to inspect all open file descriptors - Implement
O_CLOEXEC
in the kernel - Implement
#!
interpreted scripts inexec
- 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
- Add
uniq
command - Use buffered output in
ls
- Add
-f
,-F
, and-s
totail
- Fix issue with
-a
intee
not creating files - Calculate characters with UTF-8 in
wc
- Cleanup
coreutils
library inlib.rs
- Add a UTF-8 test file
Drivers
- Implement
fpath
inahcid
ande1000d
- Switch
vesad
to use handles and support per-handle flags, likeO_NONBLOCK
- Fix bug in port layout in
xhcid
Extrautils
- Add
keymap
utility (not yet functional) - Human readable format for
screenfetch
uptime - Move
tar
intoextrautils
Init
- Open stdio without O_CLOEXEC
- Cleanup
run.d
Ion
- Add script arguments
$0
,$1
,$2
, ... - Improve syntax and performance
- Implement piping for built-ins
- Add
echo
,calc
,test
, andtime
as built-ins - Add description to all built-ins
- Refactor modules
- Update
README.md
Netutils
- Exit wget with error when remote server returns an error status
Orbutils
- Implement URL dialog in
browser
(press enter to open) - Implement resizing for
character_map
,editor
, andfile_manager
- Implement scrolling in
editor
- Refactor
launcher
- Add time to
launcher
- Remove
O_CLOEXEC
from stdio interminal
- Reduce redraws in
terminal
- Close
terminal
afterexit
Orbdata
- Convert orbital configuration to TOML
Orbital
- Use TOML for configuration
- Refactor to use
fevent
, rather than using two blocking threads
Pkgutils
- Implement install of local packages
- Use
io:copy
to reduce memory usage for package downloads
RedoxFS
- Fix
seek
bug - Implement
O_APPEND
0.1.5
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
andgames
by default, they can be installed withpkg
- Remove
cookbook
submodule, it must be out-of-tree due toCargo.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 incontain
- Add read and write timeouts to
tcp:
andudp:
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
andBEPO
keymap tops2d
- 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
andkernel
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
- Updated to newest master
- Fix linker warning messages
Coreutils
- Updated to newest master
- Fix typo in
ls
- Add
--unique
option tosort
Extrautils
- Updated to newest master
- Added
gunzip
,gzip
, andresize
Ion
- Updated to newest master
- Massive improvements to syntax
- Update
README.md
- More examples
- Bug fixes
- Update dependencies
Netutils
- Updated to newest master
- Use timeouts in
dhcpd
andwget
- Improve
wget
errors
Orbital
- Updated to newest master
- Implement screen resizing
- Add unclosable flag
- Fix maximize bug
Orbutils
- Updated to newest master
- Add timeouts to
browser
- Flow
browser
based on window size - Implement
Open
ineditor
- Use
mime
andmime_guess
to cleanup icon logic infile_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 withRepo
abstraction - Make it possible to install with a prefix
Smith
- Updated to newest master
- Update
termion
- Refactor state machine
- Update
README.md
Userutils
- Updated to newest master
- Ask for password in
sudo
, if it exists - Fail
sudo
after 3 attempts
Rust
0.1.4
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
andcli
toyield_now
without anycli
- Added link detection to
e1000d
CLI
- Updated
coreutils
andion
- Fixed
head
andtail
GUI
- Changed algorithm for automatic window placement in
orbital
- Set sane sizes for all
orbutils
programs, they will fit screen size on smaller screens