A try to create an operating system from scratch using C and Assembly.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
foobar d88191217a added the print command to the interrupt 0x80 19 hours ago
bin These directories are a little important 2 months ago
build Working on kernel commands and bug fix 1 week ago
kfs Added FAT16 `fseek' function 1 month ago
programs added the print command to the interrupt 0x80 19 hours ago
src added the print command to the interrupt 0x80 19 hours ago
.clang_format Updated clang-format and makefiles 3 days ago
.gitignore Errors fixed 1 month ago
ChangeLog.1 added the print command to the interrupt 0x80 19 hours ago
LICENSE Added a license file 2 months ago
Makefile added the print command to the interrupt 0x80 19 hours ago
build.sh Added kilex 6 days ago
compile_flags.txt added the print command to the interrupt 0x80 19 hours ago
readme.md Now we can read a task's stack 2 days ago

readme.md

Kinl

Kinl is an operating system developed from scratch in C and Assembly. This is not a project that serious, it is not aimed to replace OSes like Linux, some of the BSD collection or any stuff like that, I just wanted to learn about Operating systems and... The only way to learn about something, is doing that thing.

The development started a little time ago (June 1st, 2021) so there are a lot of things left to do. In this document you will find more information about it.

Index

  • TODO
    • Kernel
  • Other projects
    • Klang
    • Klibc
    • Kcc
    • Knet
  • Contributing
    • Contributing changes
    • Contributing with donations

TODO

  • KINL logo
  • Documentation?
  • More comments?
  • Start the other projects

Kernel

  • PS2 Keyboard driver
  • Improve IDT design
  • Elf loader
  • You can also search for "// TODO:" through all the code to see some more specific TODOs.
  • Network Stack
  • Cryptography
  • Change the processes array for a linked list, so there can be infinite process (?)
  • Multi-core processing
  • Not use "task_current" when getting items from their stack, as in a future there will be several tasks running at a time.

Other projects

Klang

Klang is a programming language based in Scheme, C and Assembly. I have planned to use it in a lot of stuff (as I have designed it, I could even rewrite Kinl in it).

Klibc

Klibc is the standard C library that will be used on Kinl, as it is a complete OS, I want to make everything by myself and not use glibc or musl.

Kcc

Kcc (Kinl Compiler Collection) is a collection of compilers. For now, I have only planned to write a compiler for Klang and C.

Kixer

Kixer is a library and cli tool for string lexing.

Kinit

A simple a lightweight system and services initialiser.

Knet

Knet is a freenet/i2p like project, peer-to-peer network that will be used by default on Kinl. This network will be completely free and all the content there I hope will also be.

I have a lot of plains for Knet, those won't fit a single text document, so I will write a paper later so all of you can understand what I want to do with it and, hopefully, contribute to it.

Contributing

Contributing changes

You can contribute through this repository by forking it, making changes and opening pull requests.

Contributing with donations

You can also contribute to the Kinl development through donations, you can use Liberapay (https://liberapay.com/zealovesc/donate) or cryptocurrencies:

Bitcoin: 3DwjBsBFPqvXZzxZcRVHFHi37v9XP45yiz

Ethereum: 0xf8E14f5d216c711A7abf1C35077625ad4A71AE81