Coder Social home page Coder Social logo

davxy / beeos Goto Github PK

View Code? Open in Web Editor NEW
130.0 7.0 12.0 726 KB

A simple "Unix-like" kernel trying to be POSIX compliant

License: GNU Lesser General Public License v3.0

Makefile 1.35% C 95.90% Assembly 2.27% Shell 0.48%
osdev posix os kernel operating-system

beeos's Introduction

BeeOS

A simple and minimal "Unix-like" kernel trying to be POSIX compliant.

The kernel is NOT STABLE and is a discontinuous work mainly used as a didactical tool for operating systems and low level programming.

Because of it's simplicity it can be used as a trampoline to start digging with common operating system problems. Once you've mastered the BeeOS sources it will be a lot easier to start hacking with more complex OS projects.

Building

Prerequisites

  • gcc
  • binutils
  • make
  • qemu (qemu-system)

Quickstart

  1. make all

    This command will build the kernel, standard library (libc), user utility library (libu) and user applications.

  2. (cd misc && sudo ./mkfs.sh)

    Creates the root filesystem ramdisk with the user applications.

  3. (cd misc && ./qemu.sh)

    Starts qemu and BeeOS.

Implemented Milestones

Supported Architectures

  • x86

Core

  • Multitasking
  • Syscalls
  • Virtual Memory
  • Virtual File System: ext2, devfs
  • SLAB allocator
  • Buddy allocator
  • Timer queues

IPC

  • Signals
  • Pipes

Synchronization

  • Spinlocks
  • Wait queues

Drivers

  • TTY
  • Screen
  • Ramdisk
  • Keyboard
  • PRNG

Other

  • Multi TTY console

Contributions

All contributions to the project will be listed in the AUTHORS file.

Licensing

BeeOS is free software. See the file COPYING for licensing conditions.

Content

  • ChangeLog: Version history
  • COPYING: Distribution and modification conditions and terms.
  • kernel/: BeeOS kernel sources.
  • libc/: BeeOS standard C library.
  • libu/: Common userland functions.
  • user/: Various user applications and test programs.

beeos's People

Contributors

davxy avatar informer2016 avatar malbx avatar mcpg 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  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  avatar  avatar

beeos's Issues

Memory limit

with more than 466mb of memory beeos crashes at startup

Why not build a community in this project?

I think this project is very good. At least it is a lightweight kernel, which is very conducive to learning and research. Why doesn't the author plan to set up an open source community for this project?

*** kernel panic: init exiting

I have tried building this kernel on a few different machines but seem to have an issue getting a build to run in QEMU.

I didn't make any changes to the source code, and simply ran the following commands:
make all && (cd misc; sudo ./mkfs.sh; ./qemu.sh)

From some preliminary println debugging, it seems that the execve syscall is throwing an error, since named(path) ends up being NULL. This is due to !S_ISDIR(dent->inod->mode) in named() returning false on the first iteration.

I am testing on a very clean version of Ubuntu 20.04.2 LTS.

I would love if you could give some insight as to why the first build might not be succeeding. I have attached the disk.img file below.

Thanks!

disk.zip

Could BeeOS fit on a floppy?

Good day @davxy ! Please tell, could BeeOS fit inside a floppy? Even today the floppies are still being used, for example - as virtual floppies inside the coreboot open source BIOS. Just imagine: your wonderful OS could be a part of someone's BIOS build! (for coreboot supported motherboard, maybe you have or could get one - see https://www.coreboot.org/Supported_Motherboards ) It seems that BeeOS size is less than 1.44MB, but I would like to make sure

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.