Giter Site home page Giter Site logo

vesper's People

Contributors

berkus avatar dependabot-preview[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vesper's Issues

Reach parity with old unsorted branch

Steps:

  • cargo build --build-std
  • enable testing infrastructure
    • run qemu semihosting tests on gh actions
  • init BSS
  • switch from EL3/EL2 to EL1
  • bump some obsolete dependencies
  • add license check
  • init MMU
  • init memory types and map correctly
  • init exception handling, handle traps
  • add mailbox interface
    • add BumpAllocator
    • add DMA_ALLOCATOR
  • add FrameBuffer interface
  • add gpio
  • run serial test with probe-rs and merge JTAG configuration before merging UART code - probe not functioning with cortex-a/bcm
  • add UART serial
    • add miniUart
    • add PL011 Uart
  • find out why core::fmt::num::imp::fmt_u64 crashes somewhere in the stack (only before MMU is enabled)
    • this is due to use of ldrh/strh on an unaligned storage (perf optimization in DEC_DIGITS_LUT use)
  • add JTAG debug helpers (see if anything additional for probe-rs support is needed)
    • add SEGGER RTT interface using rtt-target crate -- postponed in feature/add-rtt branch, current situation with RTT support on the host side is pretty bad. - see #35 for follow up.
  • add graphical Display
  • add console with kernel command interface
  • add Power management
  • add working GitPod workspace (at least Edit, Build and Run tests in QEMU)
  • transfer documentation to appropriate places -- see #36 for follow up.

Add kernel syscall API and ABI

  1. Add user-space thread which would call a syscall,
  2. Parse syscall ABI arguments and call kernel API function,
  3. Parse API function result and return appropriate response via ABI to user space.

Evaluate Profile-Guided Optimization (PGO)

Hi!

Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects. The results are here. The most interesting to Vesper results probably are PGO results on operating systems (Linux kernel and Windows): https://github.com/zamazan4ik/awesome-pgo#operating-systems

We need to perform PGO benchmarks on Vesper. And if it shows improvements - add a note about possible improvements in Vesper performance with PGO. Providing an easier way (e.g. a build option) to build scripts with PGO can be useful for the end-users too. I think this kind of optimization can be useful for the project since if PGO will be able to optimize somehow CPU workload of the operating system, we can potentially reduce requirements for the hardware and possibly decrease power consumption.

For the Rust projects, I suggest trying to start with cargo-pgo.

Here you can find different materials about PGO: benchmarks in different software, examples of how PGO is already integrated with different projects, PGO support in multiple compilers, and some PGO-related pieces of advice.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.