Commit Graph

348 Commits

Author SHA1 Message Date
dependabot[bot] 0036d06d7e
Bump aml from 0.15.0 to 0.16.0 (#241) 2021-08-31 07:51:13 +00:00
dependabot[bot] b651cd6cd2
Bump pic8259 from 0.10.1 to 0.10.2 (#235) 2021-08-30 11:23:12 +00:00
dependabot[bot] af7e48ebaa
Bump aml from 0.14.0 to 0.15.0 (#236) 2021-08-30 09:18:13 +00:00
dependabot[bot] 32baff2556
Bump pbkdf2 from 0.8.0 to 0.9.0 (#239) 2021-08-30 09:15:15 +00:00
dependabot[bot] 14d6e6a8a6
Bump sha2 from 0.9.5 to 0.9.6 (#240) 2021-08-30 09:13:34 +00:00
Vincent Ollivier b8ee316240 Publish version 0.6.0 2021-08-21 11:21:34 +02:00
Vincent Ollivier 7724936400 Update changelog 2021-08-21 11:00:30 +02:00
Vincent Ollivier e55ff2446e
Add beep command (#234)
* Add beep command

* Add pc speaker to qemu

* Add source to beep musics

* Use beep -l instead of beep -t

* Reuse PIT manipulation from time module
2021-08-21 10:57:39 +02:00
Vincent Ollivier f10c3db1ac
Improve baremetal experience (#232)
* Fix rtc bug during update

* Fix panic in hex command

* Add erroneous commands to shell history

* Fix hex command
2021-08-21 10:55:02 +02:00
Vincent Ollivier 97bdd26e02 Update changelog 2021-08-12 23:20:19 +02:00
Vincent Ollivier e5a7b63bc2
Add chess game (#230)
* Add chess game

* Add missing file

* Add moves parsing

* Add autocompletion

* Add perft command to chess

* Update Cargo.lock

* Add undo and time commands

* Improve output of commands

* Add endgame support

* Split main into multiple methods of a Chess struct

* Update littlewing

* Use chess prelude

* Add show board command

* Add help

* Update docs

* Fix url syntax in doc

* Add commands to doc index

* Update doc/index.md

* Fix typos
2021-08-12 23:15:28 +02:00
dependabot[bot] 54b52ee05c
Bump bootloader from 0.9.18 to 0.9.19 (#233) 2021-08-11 06:52:12 +00:00
dependabot[bot] 5fe44aa980
Bump raw-cpuid from 10.0.0 to 10.2.0 (#224) 2021-08-07 15:42:36 +00:00
dependabot[bot] f520f1e860
Bump aml from 0.13.0 to 0.14.0 (#227) 2021-08-07 15:42:12 +00:00
Vincent Ollivier d706e973aa
Refactor filesystem (#225)
* 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
2021-08-07 11:29:45 +02:00
Vincent Ollivier 8f103f6b0b
Add keyboard layout change at runtime (#226)
* Change keyboard layout at runtime

* Add keyboard command

* Add env var to makefile

* Add azerty layout

* Fix tests

* Fix CI
2021-08-04 22:07:26 +02:00
Vincent Ollivier 40a97aa12a Update Prompt#input when receiving ^C
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.
2021-08-02 04:50:41 +02:00
Vincent Ollivier 41cc200375 Add network screenshot 2021-08-01 13:14:49 +02:00
Vincent Ollivier 89458a732c Add index page to the doc 2021-08-01 13:03:29 +02:00
Vincent Ollivier fe298bb71c Update changelog 2021-08-01 11:52:13 +02:00
Vincent Ollivier de48c87e0c
Add a regular expression engine (#222)
* 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
2021-08-01 11:35:24 +02:00
Vincent Ollivier 72f9baae6c
Refactor editor (#221)
* 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
2021-07-29 22:28:57 +02:00
Vincent Ollivier 79bc679c23
Update raw-cpuid from v9.0.0 to v10.0.0 (#220) 2021-07-27 10:35:19 +02:00
Vincent Ollivier 334fcff978
Remove volatile crate (#219)
* Remove volatile crate

* Fix whitespace

* Remove mut in read
2021-07-27 10:20:13 +02:00
Vincent Ollivier 68b34e16b0
Update acpi crate from v2.3.1 to v3.1.0 (#218) 2021-07-27 09:32:47 +02:00
Vincent Ollivier 03583d3e93
Remove deprecation warnings (#217) 2021-07-27 00:31:31 +02:00
Vincent Ollivier 1ece87b00d Add missing console drain 2021-07-26 23:37:00 +02:00
dependabot[bot] 3d3ef82a10
Bump x86_64 from 0.14.3 to 0.14.4 (#209) 2021-07-26 21:34:42 +00:00
Vincent Ollivier d7883aa240
Update crypto crates (#216)
* Update crypto crates

* Avoid updating rand_chacha

* Update Cargo.lock
2021-07-26 23:34:04 +02:00
Vincent Ollivier 5581a6d5a7 Update changelog 2021-07-26 22:37:33 +02:00
Vincent Ollivier bbcfc66e18
Add time to dir entry (#215)
* Add creation time to dir entry

* Update and publish fuse script

* Change boot offset in doc

* Change creation time into last modified time

* Add sort parameter to list command

* Add error for missing sort key

* Add shortcut params for sort
2021-07-26 22:35:32 +02:00
Vincent Ollivier 1575b40f9c Validate completion with tab when only one entry 2021-07-25 12:52:43 +02:00
Vincent Ollivier 5e115ced6c
Fix clippy warnings (#214)
* 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
2021-07-25 12:41:44 +02:00
Vincent Ollivier c426a04822
Fix floating point comparisons (#213)
* Fix floating point comparisons

* Use float-cmp crate
2021-07-25 09:35:43 +02:00
Vincent Ollivier 445d40fd69 Update changelog 2021-07-25 01:13:45 +02:00
Vincent Ollivier f1084bfd62
Refactor line editing (#212)
* 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
2021-07-25 01:07:12 +02:00
Vincent Ollivier b7eeb25dc9
Use CSI for key events (#210)
* Use CSI code for key events

* Merge matches
2021-07-21 23:25:53 +02:00
Vincent Ollivier 8af428beab
Add Lisp interpreter (#207)
* Add lisp interpreter

* Refactor lisp code

* Add copyright notice

* Add multiplication

* Shorten type names

* Remove print import

* Add tests

* Add tests for def and fn

* Add print builtin

* Add file eval

* Add fib.ls

* Use define and lambda instead of def and fn

* Rewrite the primitive operators

* Update fibonacci example

* Add syntactic sugar for quote

* Rename console::abort to console::end_of_text

* Add console::end_of_transmission

* Remove auto parenthesis

* Fix parsing quotes

* Refactor quote primitive

* Add empty list comparison to eq primitive

* Add defun primitive

* Rename example

* Fix install path

* Add doc

* Add eq? and atom? aliases
2021-07-21 09:40:40 +02:00
Vincent Ollivier 6826a9701d
Refactor print macros (#208) 2021-07-17 20:58:04 +02:00
Vincent Ollivier 0b06084dec
Add file offset (#206) 2021-07-17 20:48:01 +02:00
Vincent Ollivier 6b8de261ca
Move kernel code to api (#204)
* 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
2021-07-16 10:19:18 +02:00
dependabot[bot] 04afe534e3
Bump spin from 0.9.1 to 0.9.2 (#202) 2021-07-16 07:11:58 +00:00
Vincent Ollivier 1da43f4e2d Update changelog 2021-07-14 01:04:33 +02:00
Vincent Ollivier 46de84801b
Add VGA palette loader (#203)
* Add VGA palette loader

* Update screenshot
2021-07-14 01:01:43 +02:00
Vincent Ollivier 9ca14297c5
Change vga font (#201)
* Add vga crate

* Rename vga option to screen

* Add fonts

* Add bold font weight

* Revert "Add bold font weight"

This reverts commit aa76cc9800.

* Rename screen output to video output

* Print extended ascii chars

* Fix http empty lines printing

* Add PSF fonts support

* Replace vga crate by internal method to set the font

* Add vga command

* Add psf font files
2021-07-13 22:10:02 +02:00
Vincent Ollivier f35ca06346
Add syscalls (#196)
* Add syscall handler

* Add syscall macro

* Add sleep syscall

* Remove unimplemented syscall numbers

* Add syscalls to MOROS API

* Refactor idt

* Add return value to syscalls

* Add uptime syscall

* Use match instead of table in dispatcher

* Remove syscall4

* Use naked function for syscall

* Enable interrupts while sleeping

* Use sysv64 calling convention

* Add realtime syscall

* Add basic documentation

* Update changelog
2021-07-03 15:47:20 +02:00
dependabot[bot] f78389ef7e
Bump smoltcp from 0.7.4 to 0.7.5 (#197) 2021-06-30 06:53:39 +00:00
Vincent Ollivier a07d09fdc5 Bump version to 0.5.1 2021-06-27 16:58:42 +02:00
Vincent Ollivier 25d5428e66 Add virtualbox script 2021-06-27 16:56:24 +02:00
Vincent Ollivier 4d2ddd18e8 Update readme 2021-06-27 16:32:47 +02:00