Commit Graph

36 Commits

Author SHA1 Message Date
Vincent Ollivier 5d0451e379
Improve http timeout (#397) 2022-08-28 17:26:13 +02:00
Vincent Ollivier 62097d8e97 Update changelog 2022-07-02 07:16:58 +02:00
Vincent Ollivier 8293413dbb Update readme 2022-06-16 19:42:10 +02:00
Vincent Ollivier a7cb32a5c2
Rewrite network interface (#334)
* Rewrite network interface

* Fix issue when cloning RLT8139 device

* Add Interface struct wrapping smoltcp iface

* Revert "Add Interface struct wrapping smoltcp iface"

This reverts commit ede7d5d0c9.

* Add back device stats

* Move stats code

* Rename eth_addr field to mac

* Add device config struct

* Fix usage of config and stats

* Make device init private

* Remove InnerStats and use Arc<Stats> directly

* Remove nic feature
2022-05-05 23:05:39 +02:00
Vincent Ollivier e785942792
Update rust toolchain (#320)
* Update rust-toolchain file

* Remove stable features

* Update bootloader crate

* Remove toolchain from GitHub Actions

* Avoid running installer interactively

* Remove rustup component add commands
2022-04-05 12:03:31 +02:00
Vincent Ollivier 1959b31f62
Improve documentation (#294)
* Add calc doc

* Link doc from readme

* Rename stdnil to stdnull

* Add items to the TODO list in the README

* Update instructions in the README

* Improve feature list in README

* Add link to doc in README

* Disable unused show command

* Add colors to chess perf command
2021-12-29 22:56:08 +01:00
Vincent Ollivier 591a54e348
Add website (#261)
* Add www dir for the website

* Update html

* Add website

* Refactor CSS

* Fix image path

* Update assets

* Update doc and readme description

* Reorder badges

* Update doc index title
2021-11-01 08:58:22 +01:00
Vincent Ollivier 07ff76991a
Add basic userspace (#228)
* 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
2021-09-24 18:19:37 +02:00
Vincent Ollivier 89458a732c Add index page to the doc 2021-08-01 13:03:29 +02:00
Vincent Ollivier 445d40fd69 Update changelog 2021-07-25 01:13:45 +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 4d2ddd18e8 Update readme 2021-06-27 16:32:47 +02:00
Vincent Ollivier b9ccfb894b Add badges to readme 2020-11-14 22:09:08 +01:00
Vincent Ollivier d2f277fa01 Update readme 2020-11-14 22:05:05 +01:00
Vincent Ollivier 3fd02db036
Add ACPI shutdown (#111)
* Implement ACPI poweroff

* Rename poweroff to shutdown

* Improve logging

* Add phys_to_virt and virt_to_phys functions

* Update docs

* Refactor code

* Use hardcoded slp_typa in VirtualBox

* Fix typo
2020-11-08 18:51:09 +01:00
Vincent Ollivier 07b58189aa
Add pcnet driver (#82)
* Update crates

* Move kernel::rtl8139 to kernel::net::rtl8139

* Refactor rtl8139 driver

* Add draft PCNET driver

* Add compilation option nic

* Add module file

* Move State to net

* Add draft implementation of smoltcp::phy::Device

* Rewrite RTL8139 to be shared between threads

* Copy buffer for RxToken

* Use only Device inside TxToken

* Fix error in packet transmission

* Update driver code

* Refactor driver

* Fix transmit packet length

* Fix number of descriptor entries setup

* Loop through owned receiver buffers

* Add ip set subcommand

* Fix MTU

* Refactor drivers

* Update readme
2020-10-31 23:20:41 +01:00
Vincent Ollivier f97191b272
Remove cargo xbuild (#83)
* Add nanowait based on calibrated rdtsc

* Add spin_loop_hint

* Update dependencies

* Update cargo config

* Add rlibc dependency to fix compilation bug

* Remove cargo xbuild

* Update crates

* Update readme
2020-07-31 10:31:59 +02:00
Vincent Ollivier fd0ffd0ed9 Rename screenshot 2020-07-27 07:23:23 +02:00
Vincent Ollivier c9d56e6889
Improve installation and documentation (#73)
* Add kernel::fs::mount

* Check if fs is mounted before opening dir

* Save password hash during user creation

* Create home directory during user creation

* Improve path checking in mkfs

* Improve mkfs output

* Add install command

* Check presence of username and password during user creation

* Update documentation

* Check if user already exists before creation

* Split hashed_password

* Add save_hashed_password

* Rename login command to user

* Display MOROS version in a consistent way

* Use ctrl+d instead of ctrl+c to exit shell

* Rename mkfs to disk format

* Add disk list command

* Change prompt color if last command errored

* Improve installer

* Use $ and > prompts in doc

Use $ and > prompts in doc to indicate commands outside and inside
of MOROS respectively.
2020-07-05 13:31:49 +02:00
Vincent Ollivier 3b638486a3 Use hard drive instead of disk in doc 2020-02-15 10:52:49 +01:00
Vincent Ollivier 17be8ef85b Update readme 2020-02-15 10:49:30 +01:00
Vincent Ollivier 2360da0a66 Add screenshot to readme 2020-02-14 21:01:30 +01:00
Vincent Ollivier 0a4b26a8bb
Improve filesystem (#24)
* Add doc about fs

* Add console on diskless boot

* Enumerate all disks

* Avoid hardcoded allocation of root dir

* Refactor ATA code

* Add BlockDevice

* Add mkfs command

* Update readme

* Add warning in the readme about disk modifications

* Use all bits inside BlockBitmap data

* Add makefile

* Overwrite only bootloader and kernel in disk image

* Update readme

* Add doc about mkfs

* Update mkfs command
2020-02-13 09:42:22 +01:00
Vincent Ollivier 1cca81ff68 Add config for using Bochs 2020-02-03 21:18:06 +01: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 f4ba1949bc Update readme 2020-02-02 19:25:25 +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 2bdb71d5fa Redefine acronym 2020-01-29 23:16:15 +01:00
Vincent Ollivier 2d294ebe72
Add basic filesystem (#5)
* Add basic filesystem

* Fix duplicate call to shell in main loop

* Add file type and size to dir entry

* Add sleep after write to avoid failures

* Add list command

* Add dir creation

* Add comment to write dir command

* Move File struct

* Update readme

* Sort files by name in list command

* Create some default dirs

* Avoid opening dirs with File::open

* Create default dirs on the filesystem

* Update read command to mirror list for dirs

* Add delete command
2020-01-17 19:52:48 +01:00
Vincent Ollivier 4d96d8e790 Update readme 2020-01-15 22:33:48 +01:00
Vincent Ollivier cfaecf81aa
Add basic visual editor (#4)
* Start over with a full screen editor

* Add line editing

* Add ctrl commands to save and/or quit

* Prevent screen overflow

* Add missing rustup component
2020-01-14 23:54:46 +01:00
Vincent Ollivier 35673c2f09 Add meaning to binary logo 2020-01-06 22:47:20 +01:00
Vincent Ollivier df13dd757a Add logo to readme 2020-01-04 18:21:16 +01:00
Vincent Ollivier e07d81b041 Add license 2019-12-29 11:19:29 +01:00
Vincent Ollivier d969386bbd Move banner and prompt to shell 2019-12-29 08:28:19 +01:00
Vincent Ollivier a6fd3d8a4e Start MOROS project 2019-12-28 18:37:49 +01:00