Skip to content

Tracking Issue for UNIX-style paths

  • Please delay further changes until Release 0.10.0 is complete.

The following is a list of changes to made to complete the implementation of the new path format. We have not followed this process exactly, but the intent has been followed. Please update any info that is no longer valid.

  • Update the documentation to use the new format wherever possible but describe the legacy format and say it is still used
  • Finalize the namespace RFC
  • Decide when /scheme/file should be explicit and when it should be removed/hidden
  • Convert relibc to the new path format (this should have it's own tracking issue)
  • Finish converting the kernel to the new path format everywhere
  • Implement the namespace RFC in the kernel with support for both current and new formats
  • Modify kernel/src/scheme/mod.rs/new_ns to use "namespace" for the name of the root (support empty scheme name also until all work is completed, please use feature guard "scheme_fmt_compat" so we can turn it on/off easily)
  • Implement feature guard "scheme_fmt_warn" in relibc to warn when using the old format
  • Change canonicalize_with_cwd_internal in relibc to use the redox-path crate
  • Add feature guards "scheme_fmt_compat" and "scheme_fmt_warn" to redox-path crate, with backwards-compatibility turned off by disabling "scheme_fmt_compat" and checking for old format turned off by "scheme_fmt_warn"
  • Stablize the redox-scheme crate and redox-event crate and update to the new format for paths and namespace
  • Convert all schemes and drivers to use redox-scheme and redox-event rather than creating sockets directly (this should have its own tracking issue)
  • Fix the libc scheme in relibc to use the new format (const LIBC_SCHEME)
  • Fix the config files that reference the libc scheme to use the new format (config/base.toml, check for others)
  • Decide on Orbital paths and get/set window attributes (may need its own RFC)
  • Convert OrbUtils and other Orbital-compatible programs to use the new Orbital path format
  • Wrap all legacy format support (and conversion between formats) with a feature guard going forward
  • Add the feature guard to the kernel, relibc, RedoxFS and anything else that supports both formats
  • Convert all libraries to the new format (or to handle both formats if appropriate) (this should have its own tracking issue)
  • Convert all programs to the new format (this should have its own tracking issue)
  • Update the documentation to remove all references to the old format
  • Change programs known to use the old scheme format to use the new format (may be in crates or libraries)
    • Config
    • Nushell
    • COSMIC-term, COSMIC-files, possibly COSMIC-edit
  • Disable the legacy format feature guard in each program and test
    • relibc
    • syscall
    • kernel
  • Remove all guarded legacy format support
  • Change all shells to use ":" for path separator instead of ";"
    • Bash
    • Ion
    • Nushell
  • Remove Scheme variant, and all non-Unix path code in Redox's version of Rust stdlib

Schemes

This section tracks the schemes that were updated to use the new path format.

Userspace

  • disk.*
  • disk.live
  • disk.usb-{id}+{port}-scsi
  • logging
  • initfs
  • file
  • network
  • ip
  • tcp
  • udp
  • icmp
  • netcfg
  • dns
  • display.vesa
  • display.virtio-gpu
  • orbital
  • pty
  • audiorw
  • audio
  • usb.*
  • acpi
  • input
  • chan
  • shm
  • log
  • rand
  • zero
  • null

Kernel

  • namespace
  • user
  • debug
  • event
  • irq
  • pipe
  • proc
  • thisproc
  • sys
  • kernel.acpi
  • memory
  • time
  • itimer
  • serio
Edited by Ribbon