Skip to content

0.2.0 - 2 Years of Redox

Compare
Choose a tag to compare
@jackpot51 jackpot51 released this 23 Apr 03:24
· 2485 commits to master since this release

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