MCPcopy Index your code
hub / github.com/BartolelliL/os-template

github.com/BartolelliL/os-template @v0.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.1 ↗ · + Follow
368 symbols 489 edges 75 files 98 documented · 27% updated 3y agov0.1.1 · 2023-05-08★ 373 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

os-template

OS Template This is a template for a simple operating system (OS) built from scratch using Rust programming language. The goal of this project is to provide a basic skeleton that you can build upon to create your own OS or experiment with operating system concepts.

Features

The OS Template provides a number of features out-of-the-box, including:

  • Kernel: A simple kernel that manages memory, interrupts, and basic system calls.
  • File System: Support for multiple file systems, including FAT and EXT2.
  • Networking: Basic networking support with TCP, UDP, and IP protocols.
  • GUI: A simple GUI toolkit with support for basic widgets and layouts.
  • Drivers: Support for common drivers, including keyboard, network, and storage.
  • Security: Basic security features, including authentication and firewall.
  • Testing: A suite of tests for different components of the OS.

Clone this project

All the files are in the src folder.

screenshot

Tree

.: arch boot core crypto db drivers fs gui kernel lib main.rs mm net process securety storage tests util

./arch:\ armv7.rs mips.rs x86_64.rs

./boot:\ bios.rs grub.rs uefi.rs

./core:\ config.rs error.rs init.rs

./crypto:\ cipher.rs hash.rs hmac.rs

./db:\ postgres.rs redis.rs sqlite.rs

./drivers:\ gpu.rs keyboard.rs network.rs storage.rs

./fs:\ ext2.rs fat.rs nfts.rs vfs.rs

./gui:\ button.rs components event.rs images label.rs layouts menu.rs textbox.rs theme.rs themes utils widget.rs window.rs

./gui/components:\ button.rs label.rs menu.rs textbox.rs

./gui/images:\

You have to insert the images

./gui/layouts:\ flex.rs grid.rs stack.rs

./gui/themes:\ dark.rs light.rs

./gui/utils:\ color.rs font.rs image.rs input.rs

./kernel:\ interrupts.rs memory.rs scheduler.rs syscall.rs

./lib:\ collections.rs io.rs math.rs sync.rs

./mm:\ allocator.rs paging.rs virtual.rs

./net:\ dns.rs ip.rs tcp.rs udp.rs

./process:\ ipc.rs process.rs thread.rs

./securety:\ auth.rs firewall.rs tls.rs

./storage:\ block.rs inode.rs journal.rs

./tests:\ keyboard_test.rs network_test.rs unit_test.rs

./util:\ config.rs logging.rs time.rs

Installation

To clone this project, open the terminal and type:

git clone https://github.com/INeddHelp/os-template.git

Contributing

As a template project, it is not meant to be a complete or fully-functional operating system, but rather a starting point for building your own OS. However, contributions to improve the template, fix bugs, or add new features are always welcome!

To contribute, please follow these steps:

  • Fork the repository and create a new branch with a descriptive name.
  • Make your changes and ensure they pass all tests.
  • Commit your changes with a clear and concise commit message.
  • Push your changes to your fork.
  • Submit a pull request to the main repository. We appreciate all contributions, and will review pull requests as quickly as possible. However, please note that we are a small team and may not be able to address every issue immediately. If you would like to discuss a potential contribution before starting work, please open an issue and we'll be happy to chat with you!

License

This project is under MIT license.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 216
Class 84
Function 48
Enum 15
Interface 5

Languages

Rust100%

Modules by API surface

src/gui/window.rs18 symbols
src/net/udp.rs13 symbols
src/fs/ext2.rs13 symbols
src/gui/layouts/flex.rs12 symbols
src/net/tcp.rs11 symbols
src/process/thread.rs10 symbols
src/gui/components/textbox.rs10 symbols
src/util/logging.rs9 symbols
src/storage/block.rs9 symbols
src/gui/layouts/grid.rs9 symbols
src/db/redis.rs9 symbols
src/securety/firewall.rs8 symbols

For agents

$ claude mcp add os-template \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page