Commit Graph

18 Commits

Author SHA1 Message Date
Vincent Ollivier e07663a19c Update dependencies 2020-07-11 00:42:57 +02:00
Vincent Ollivier 5828c7f4d3
Improve console (#74)
* Move keyboard key decoding to keyboard interrupt handler

* Read keys from serial

* Disable cursor in shell for serial

* Trim cpu brand string

* Use array for writer position

* Add Serial struct

* Add console::clear_row()

* Update autocomplete commands

* Parse ANSI color code

* Add colors to banner

* Remove newline before diskless mode

* Use lighter colors in banner

* Fix ansi color code parsing

* Use ansi colors in logger

* Rewrite colors command

* Add color to halt command

* Rewrite help command

* Use yellow color for titles

* User kernel::console::color() in shell

* Update screenshot

* Fix execute state in vte parser

* Fix typo

* Add colors to serial logger

* Fix banner colors

* Add some randomnly darker colors to banner

* Autocomplete devices path

* Create /ini/version.txt during install
2020-07-10 08:18:34 +02:00
Vincent Ollivier 92e46ed4c3 Bump version number 2020-07-03 23:46:25 +02:00
Vincent Ollivier e61552f5c2
Upgrade dependencies (#70) 2020-06-30 00:16:41 +02:00
Vincent Ollivier 090466bd8e
Update dependencies (#42)
* Reorder dependencies

* Update x86 dependencies
2020-04-13 13:14:04 +02:00
Vincent Ollivier 1b6f519e67
Add geotime command (#14)
* Add libm crate

* Add geotime command

* Rename kernel::clock::clock_monotonic to kernel::clock::uptime

* Rename kernel::clock::clock_realtime to kernel::clock::realtime

* Use utc for rtc

* Fix clock in log
2020-02-03 09:45:53 +01:00
Vincent Ollivier 4fd7d68a63
Add network stack (#12)
* Display MAC address

* Add kernel::pci::find_device

* Mask lower bits of 16-bit Memory Space BAR

* Use array instead of vector for MAC address

* Split interrupts module

* Use IRQ constants instead of InterruptIndex enum

* Replace kernel::sleep by kernel::time

* Add kernel::idt::set_irq_handler

* Add interrupt handler for RTL8139

* Enable bus mastering for RTL8139

* Setup NIC

* Add features for vga/serial and qwerty/dvorak

* Add smoltcp crate

* Use EthernetAddress from smoltcp

* Add RTL8139 struct to implement smoltcp Device

* Save detected device

* Add kernel::mem::translate_addr

* Use physical address of rx_buffer

* Add command to read raw network data

* Parse packet header and length

* Fix missing ascii on last line

* Take CRC into account for packet length

* Fix compilation error

* Move buffer pointers after packet received

* Use buffer slice instead of clone in RxToken

* Add packet transmission and dhcp client

* Configure network interface with DHCP client

* Add debug mode to network interface

* Clean dhcp command output

* Add ip command

* Clean up commands output

* Count number of packets transmitted and received

* Add route command

* Add kernel::random::rand16

* Handle carriage return char

* Add HTTP client

* Improve http command output

* Add DNS resolver command

* Parse DNS responses to A IN queries

* Resolve http host

* Check if interface is ready before operations

* Add timeout to polling loops

* Fix sleep during polling

* Add verbose arg to http command

* Add State struct to Device struct

* Add subcommand config and dump to net command

* Add MTU to RX_BUFFER_LEN when using WRAP

* Fix first transmission index

* Refactor TxToken implementation

* Add user agent to http requests

* Add more comments to code

* Add llvm-tools-preview component to readme

* Add method to translate IRQ into system interrupt

* Clear IRQ mask in set_irq_handler

* Refactor driver code

* Sleep less rather than more

* Add rand32

* Disable RTL8139 interrupts

* Use arrays instead of vectors for buffers

* Add minimum sleep duration

* Add phy_addr to dry init

* Use CAPR and CBR to compute rx buffer offset

* Add debug for alloc issue with continuous physical memory

* Fix timeout in loops

* Add unused buffer to push the rx buffer into contiguous memory

* Add doc about network

* Update readme

* Add read /net/<proto>/<host>/<path> subcommand
2020-02-02 18:55:20 +01:00
Vincent Ollivier e1a3ec9064 Use upstream git repo for pc-keyboard 2020-01-23 08:57:38 +01:00
Vincent Ollivier b9f6e5c985
Remove heapless and use alloc (#7)
* Remove heapless

* Use sort from alloc Vec

* Update comments
2020-01-20 10:44:59 +01:00
Vincent Ollivier e761f26db4
Add heap allocation (#6)
* Add alloc

* Move allocator init to moros::init()

* Rename kernel::mem::init to mapper

* Add new kernel::mem::init

* Print version on boot
2020-01-18 20:48:01 +01:00
Vincent Ollivier fea20455dc Add serial output 2020-01-10 09:04:25 +01:00
Vincent Ollivier 0f7e6bf686 Add CPU detection 2020-01-10 00:03:08 +01:00
Vincent Ollivier d903ce5180 Use bit_field crate to read PCI data 2020-01-09 23:41:04 +01:00
Vincent Ollivier 0b59c0d310 Add password hashing 2020-01-03 22:01:48 +01:00
Vincent Ollivier e87b485a86 Move dvorak layout to fork of pc-keyboard crate 2020-01-03 20:43:18 +01:00
Vincent Ollivier a2208aa20d Remove serial 2019-12-29 11:00:01 +01:00
Vincent Ollivier 2640520836 Add shell history 2019-12-29 10:34:08 +01:00
Vincent Ollivier a6fd3d8a4e Start MOROS project 2019-12-28 18:37:49 +01:00