Coder Social home page Coder Social logo

praveenmunagapati / fudge Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jezze/fudge

0.0 2.0 0.0 16.09 MB

An event-driven operating system. Simplicity, clarity and speed.

Home Page: http://www.fudgeos.com/

License: MIT License

Makefile 5.04% C++ 0.44% C 88.94% Assembly 5.49% Objective-C 0.10%

fudge's Introduction

# FUDGE OPERATING SYSTEM

http://www.fudgeos.com/

## OVERVIEW

Fudge is a small and elegant operating system. It started as a project to see if
it would be possible to create an operating system that came as close as
possible to be fully deterministic. Today, operating systems often show
unpredictable behaviour because they implement technical solutions that are not
determinstic in nature such as task scheduling, caching and dynamic memory
allocation. Fudge tries to find alternative solutions to these problems and has
so far been found to work quite well.

Determinism in the term of computers could mean many different things. It could
mean that a program, given input, should always return a conclusive result.
However unlikely that sounds it is actually quite common because of unwanted
side-effects such as time delays or incorrectly handled input. Determinism could
also mean that every time you execute a program it will always take the same
amount of time to complete given the same input and the same environment in
which it operates.

Fudge focus is on the latter where each programs should complete in the same
amount of time or as close as possible. This is not to be confused with a
real-time operating system that is only concerned about making sure each task is
guaranteed a certain amount of time. Here instead we are concerned with the
actual execution time. In order to achieve this Fudge will only run one task at
a time and will not interrupt the running task unless an interrupt occurs from
hardware or software. This does not mean that Fudge is limited to only run one
task at a time because tasks can delay there own execution until such an
interrupt occurs and take presedence if the interrupt is of the type it was
waiting for. While Fudge operates in kernel mode it can not be interrupted at
all so the kernel in that sense is fully deterministic. The kernel also does not
keep track of things in a dynamic fashion so each interrupt of the same type
should always take the exact same time as any previous. The kernel is not even
aware of the fact there can be many tasks running because it can only see the
current running one.

## BUILDING FUDGE

Please see the building instructions on the website.

## LICENCE

Please see the LICENCE file included in the source.

## COMMUNITY

Come talk to us on irc.

Server: irc.freenode.net
Channel: #fudge

fudge's People

Contributors

jezze avatar max-might avatar

Watchers

James Cloos avatar  avatar

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.