GithubHelp home page GithubHelp logo

kiwi's Introduction

Kiwi

Kiwi is an open source operating system. It uses a custom kernel design/API, taking inspiration from both POSIX/UNIX and Windows NT. Some POSIX compatibility is implemented by userspace libraries on top of the native kernel API, which is currently capable of running some UNIX command line software such as Bash.

Terminal

More screenshots in the Screenshot Archive.

Supported platforms:

  • 64-bit x86 PCs
  • ARM64 (work-in-progress)
    • QEMU 'virt' machine
    • Raspberry Pi 3/4

Features:

  • Custom object-oriented kernel API
    • Processes/threads
    • Virtual memory
    • IPC
    • Event polling/waiting
    • Filesystem
    • Device access
  • Partial POSIX compatibility implemented over the native API
  • Multi-core CPU support
  • Shared library support
  • Networking (IPv4, TCP, UDP, DHCP, DNS)

Planned features (in rough priority order):

  • Common hardware support (disk devices, USB input)
  • Finish ARM64 port
  • Port additional software
  • GUI

Building

To build Kiwi you need the following prerequisites:

  • SCons 4.x
  • ncurses
  • xorriso
  • mtools
  • dosfstools
  • e2fsprogs

Kiwi makes use of git submodules to include various pieces of 3rd party software it uses. These must be cloned after this repository has been cloned by running:

$ git submodule update --init

You must then create a build configuration file by running:

$ scons config

In that menu you will at least need to change the "Toolchain directory" option under "Build options", to point to a location in which to install the Kiwi cross-compiler. This location must be writable by your user. You may also wish to change the toolchain build jobs option to e.g. the number of CPU cores in your system to speed up the toolchain build.

After saving the configuration file, build the toolchain (only needs to be done once) by running:

$ scons toolchain

Finally, build the system with:

$ scons

Running

Once the system is built, you can run in QEMU with:

$ scons qemu

The qemu target runs with a persistent disk image that is incrementally updated with changes to the built system, and preserves other user data in the image.

You can also build disk images with:

# Bootable ISO image (BIOS + EFI).
$ scons images/amd64/cdrom.iso

# Bootable disk image (BIOS + EFI).
$ scons images/amd64/disk.img

License

Kiwi is licensed under the terms of the ISC license.

kiwi's People

Contributors

aejsmith avatar

Stargazers

 avatar  avatar Ciprian avatar Anatoly Tverdovsky avatar Vasiliy Bukharev avatar Pedro Pinto avatar  avatar Gil Mendes avatar Claus Herrmann avatar jadon avatar Latent Prion avatar Berkus Decker avatar

Watchers

 avatar Like Xu avatar jadon 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.