* Read command line args from userspace programs
* Use Stop syscall to debug pointers from userpace
* Fix address translation system
* Update binaries
* Move print to bin
* Add hardcoded alias system
* Strip debug from binaries
* Build userspace binaries before running tests
* Save all the args in args including the command invocation name
* Move sleep command to /bin
* Rebuild binaries
* Add header to binary
* Add result to spawn
* Use spawn result to display error message
* Use info result to change directory
* Fix binary detection
* Fix lock issue
* Change debug color
* Rewrite net command
* Update doc
* Add dhcp --verbose
* Remove ip and route commands
* Align command outputs
* Adjust colors
* Use system dns if available with host command
* Add error macro
* Display network error
* Use error macro
* Fix broken test
* Update dir listing color
* Update syscall doc
* Use error macro in more commands
* Create dirs from userspace
* Add delete syscall
* Add name to FileStat
* Add offset to Dir
* Add dynamic size to dir
* Add FileStat (de)serializer
* Add ReadDir#block_index
* Add FileStat::root
* Implement FileIO#read for Dir
* Add api::fs::read_dir
* Use read_dir for list command
* Allow read /path/to/dir/ commands
* Save dir size to dir entry
* Fix return value of api::fs::create_device
* Read dir from userspace
* Add proc command
* Close file handle when creating dir
* Add /dev/null
* Remove path restriction
* Allow listing of singular file
* Update doc
* Re-export fs struc in API
* Use read_dir in shell autocomplete
* Use fs::delete in httpd
* Rename stat to info
* Update doc
* Rename attributes
* Improve identify data parsing
* Read status from alternate status register
* Update identify command
* Fix overflow in disk size printing
* Rewrite ATA PIO driver according to ATA-4 spec
* Add 'disk erase' command
* Fix issue with shell redirection in diskless mode
* Check for existence of passwords file during login
* Add IdentifyResponse enum
* Refactor lba match
* Disable debug output on command aborted
* Refactor code
* Pin specific compiler version
* Add spec in comment
* Add process table
* Add exit syscall
* Update binaries
* Make pid mutable
* Use RW lock for the process table
* Change pid atomic ordering
* Fix return code
* Fix lock issue
* Add debug print
* Add exit to sleep binary
* Enable asm_sym feature
* Use the end of code area for stack area
* Add debug macro
* Use array instead of vec for process
* Refactor process data clone
* Increase max file handles to 32
* Increase sleep to 5 seconds
* Fix MAX_PID calculation
* Revert max file handle value to fix crash
* Close file handle after dup syscall
* Remove init
* Run the test in release mode
* Refactor debug
* Refactor debug output of syscall
* Remove NULL syscall
* Save and restore stack frame
* Fix install
* Save only scratch registers to the stack
* Add write volatile to registers
* Overwrite rax register on exit
* Set pid back to 0 after exit
* Add alloc_page function
* Remove debug output
* Unmap pages after exit
* Allocate memory after kernel heap
* Hide unmap error
* Add ELF loader
* Add elf reader
* Fix jump to entry point
* Update mapping code
* Update kernel data segment in GDT
* Refactor wrap macro
* Remove debug from process
* Remove jump to entry point
* Update hello binary
* Improve comments on asm code
* Rename Process#entry to Process#entry_point
* Use cli directly
* Add pic::init()
* Disable again interrupts after halt if needed
* Allow keyboard and serial events during memory init
* Update changelog
* Testing userspace code
* Update program example
* Refactor code
* Read bin from dsk/bin at compile time
* Create mapper and frame allocator during process creation
* Read bin from disk at runtime
* Add missing file
* Add missing bin
* Add src bin
* Replace debug output by a test syscall+binary
* Remove comments from asm files
* Rewrite sleep
* Replace test by hello
* Refactor hello example
* Translate address from user code segment
* Rename entry label
* Update readme and changelog
* Use entry_name for DirEntry
* Increase stack size
* Add file syscalls
* Change syscalls return type
* Add stat syscall
* Add file creation
* Use api::fs::read_to_string in more user programs
* Use syscalls in fs api
* Move some functions from sys::fs to api::fs
* Add FileIO for generic read and write
* Write to stdout
* Add stdout test
* Disable output
* Move FileIO to API
* Add io::stdin and io::stdout to API
* Add a real /dev/random
* Fix test
* Add missing device file
* Refactor stdin read
* Truncate read_line result if larger than buf
* Use fs::read and fs::write to copy files
* Use fs::read for user password database
* Use fs::read for vga command
* Use api::syscall::stat instead of sys::fs::File::open
* Use fs::read and fs::write in httpd
* Add RNG to API
* Add fs::open_dir and fs::create_dir
* Add fs::exists
* Split fs file into multiple files
* Use DirEntry#into
* Reorganize dir entry creation prior to refactoring
* Refactor Block
* Refactor bits manipulation in Dir#create_entry
* Refactor ReadDir
* Truncate filename to 255 chars at most
* Refactor Dir#update_entry
* Refactor new block alloc
* Allow different kinds of block devices
* Display disk usage
* Add fs::read to API
* Add command to mount fs in memory
* Add tests
When `Prompt#input` received a `^C` or `^D` it would return `None`.
It is used in a `while let` loop so in the shell and the lisp
interpreter it translated to exiting. This is good for `^D` but `^C`
should just cancel the current line.
So now in the latter case it returns `Some(String::new())` instead and
let the application deal with the empty string, which is fine for the
shell and the lisp interpreter.
* Add a regular expression engine
* Fix off by one error
* Add + quantifier
* Add more tests
* Use assert_eq instead of assert in tests
* Rewrite tests with an array
* Fix bug in is_match_star
* Use the same do while equivalent in is_match_plus
* Add ? quantifier
* Refactor engine code
* Add backslash char
* Group ifs in match
* Add special escaped chars
* Add doc
* Add find command
* Add Match#find
* Show multiple matches in the same line
* Dry Regex
* Change matches color
* Add greedy version of matching by default
* Add MetaChar enum to fix matching escaped chars
* Change function signatures
* Remove macro_export
* Add TODO
* Find matching lines recursively
* Handle special patterns
* Replace sys::vga::clear_screen() by csi code
* Replace all remaining calls of vga functions by csi code
* Remove dead code
* Add some guard clauses
* Add TODO on partially implemented CSI codes
* Fix inverted params on cursor position
* Print newline char between lines
* Add a TODO to load a palette via ANSI OSC commands
* Move cursor after clear screen
* Simplify line insert
* Fix old bug when scrolling twice the screen width
* Simplify backspace code
* Disable interrupts when printing in serial
* Refactor status line
* Hide cursor during printing
* Avoid printing status line over saving status
* Use 1-indexed rows and cols in the user interface
* Fix slow zero-filled vector initialization
* Fix warnings in user command
* Fix clippy error in httpd command
* Fix warnings about using print instead println
* Fix length comparison to zero
* Fix some clippy warnings
* Fix length comparison to zero
* Fix some clippy warnings
* Fix some clippy warnings
* Fix bug introduced by clippy
* Rename height and width to rows and cols
* Refactor line editing
* Add partial support of delete key
* Use parser from vte crate to strip csi
* Use parser from vte crate to read input chars
* Add suppor of delete key in serial
* Move keys handling into separate functions
* Add history navigation
* Add autocompletion
* Use Prompt for shell
* Fix shell exiting
* Leave more space for kernel on disk
* Move code to api
* Add palette::from_csv
* Refactor palette::from_str with tests
* Add tests to api::font::from_bytes
* Add TODO comments to fs code
* Rename kernel and user dirs to sys and usr
* Add missing files from migration
* Move console::Style to api
* Add more missing changes