Giter VIP home page Giter VIP logo

kot's Introduction

Kot

C/C++ CI

Discord

Screenshots

Use alpha build

To get started, simply download the following file (clean-boot-kot.img) and launch QEMU (you will need to install ovmf dependency before) with the command below: qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -rtc base=localtime,clock=host -drive file=clean-boot-kot.img -machine q35 -m 4G -smp cores=4 -serial stdio -device e1000e,netdev=net0 -netdev user,id=net0,hostfwd=tcp::5001-:5000,hostfwd=udp::5001-:5000 -object filter-dump,id=f1,netdev=net0,file=dump.bin -no-reboot -no-shutdown

Use nightly build

To run the nighly build boot-kot.img, you'll need the QEMU emulator and OVMF. You can install it on most Linux distributions using your package manager. Once QEMU is installed, you can run the program using the following command: qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -rtc base=localtime,clock=host -drive file=boot-kot.img -machine q35 -m 4G -smp cores=4 -serial stdio -device e1000e,netdev=net0 -netdev user,id=net0,hostfwd=tcp::5001-:5000,hostfwd=udp::5001-:5000 -object filter-dump,id=f1,netdev=net0,file=dump.bin -no-reboot -no-shutdown

Build it yourself

That's easy! Run make init to install all the required build tools and then run PACKAGE=all make build to start the building process. Right after, make run will start TNK in Qemu.

How to Use the Main Makefile

To effectively use the main Makefile in this project, follow these steps:

  1. Initialization: Before you can build, run, or perform any other actions, you need to initialize the project. Run the following command: make init

  2. Build a Specific Package:

To build a specific package, use the PACKAGE variable. For example, if you want to build the kernel, run: PACKAGE=kernel make build This command will also work to rebuild the specified package if necessary.

  1. Build All Packages:

To build all packages in the project, simply use the following command: PACKAGE=all make build This command will build all packages and also rebuild them if needed.

  1. Configure a Specific Package:

To configure a specific package, again use the PACKAGE variable. For instance, if you want to configure the kernel, run: PACKAGE=kernel make reconfigure This command will also work to reconfigure the specified package if necessary.

  1. Configure All Packages:

To configure all packages in the project, use the following command: PACKAGE=all make reconfigure This command will configure all packages and also reconfigure them if needed. By following these instructions, you can effectively use the main Makefile to build and configure packages in your project.

  1. Use USB key:

⚠️ Kot is alpha software, use it at your own risk. To use a USB key with Kot, please note that this method requires a certain level of knowledge about the Linux system, as improper usage can potentially damage your system's data. To utilize this method, you need to set the BOOT_DEVICE variable with the correct USB device name. Here's an example of how to do it: BOOT_DEVICE=<device> PACKAGE=all make build Replace with the actual device name of your USB key, such as /dev/sdc. Be aware that using the USB key in this way will format it, erasing any existing data. Ensure that you have correctly identified the USB device name, as specifying the wrong device can result in data loss. This command will start Kot in Qemu using the specified USB key as the boot device.

  1. Use your PC:

⚠️ Kot is alpha software, use it at your own risk. To use boot Kot on your PC, please note that this method requires a certain level of knowledge about the BIOS, as improper usage can potentially damage your system's data. First of all you have to run the command INSTALL=true PACKAGE=all make build, and then you can reboot your PC. Then enter into your BIOS and select EFI/limine/BOOTX64.EFI as a boot file.

kot's People

Contributors

0xs3b avatar konect-v avatar moldytzu avatar raphproductions avatar yirasan 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

kot's Issues

rflags missing NT and RES bits

Describe the bug

The rflags_t defined in cpu.h is missing the following fields:

Nested task flag — Controls the chaining of interrupted and called tasks. Set when the
current task is linked to the previously executed task; cleared when the current task is not
linked to another task.

Reserved bit 15

Which might cause alginment issues

Reference

unable to run kot in newer qemu versions

Describe the bug
Newer qemu versions removed the deprecated -soundhw switch.

To Reproduce
Build qemu from latest source code available

Additional context
Also it's unnecessary to run qemu as root.

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.