diff --git a/.github/workflows/vulcanos.yml b/.github/workflows/vulcanos.yml new file mode 100644 index 0000000..7e60452 --- /dev/null +++ b/.github/workflows/vulcanos.yml @@ -0,0 +1,18 @@ +name: vulcanos +on: + push: + branches: [master] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: checkout repo + uses: actions/checkout@main + - name: Build vulcanos + run: | + sudo apt update && sudo apt install -y nasm grub-pc-bin mtools + sudo ln -s /usr/bin/gcc /usr/bin/i686-elf-gcc + sudo ln -s /usr/bin/ld /usr/bin/i686-elf-ld + make clean all diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2e3cbc7..0000000 --- a/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: C - -before_install: - - sudo apt-get update - - sudo apt-get install -y nasm grub-pc-bin - - sudo ln -s /usr/bin/gcc /usr/bin/i686-elf-gcc - - sudo ln -s /usr/bin/ld /usr/bin/i686-elf-ld - -script: make clean all diff --git a/README.md b/README.md index b6f1072..ede01ae 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# VulcanOS [![Build Status](https://travis-ci.com/ice-bit/vulcanos.svg?branch=master)](https://travis-ci.com/ice-bit/vulcanos) +# VulcanOS ![](https://github.com/ceticamarco/vulcanos/actions/workflows/vulcanos.yml/badge.svg) **VulcanOS** is a x86 monolithic kernel written in C from scratch following the UNIX philosophy. This project is just a student learning tool to know more about operating systems, do not expect nothing more than a toy.
diff --git a/kernel/kernel_main.c b/kernel/kernel_main.c index 9f15868..aeba269 100644 --- a/kernel/kernel_main.c +++ b/kernel/kernel_main.c @@ -10,7 +10,6 @@ #include "drivers/idt.h" #include "drivers/timer.h" #include "drivers/keyboard.h" -#include "drivers/initrd.h" #include "mem/paging.h" #include "mem/kheap.h" #include "mem/multiboot.h" @@ -24,22 +23,7 @@ #define PRTAT printf("\n["); printf_color(" ** ", LIGHT_BROWN, BLACK); printf("]"); // Ugly hack to print "[ * ]" #define PRTER printf("\n["); printf_color(" ERR ", LIGHT_RED, BLACK); printf("]"); // Ugly hack to print "[ ER ]" -uint32_t initrd_setup( struct multiboot *mboot_ptr) { - if(mboot_ptr->mods_count < 0) { // Assert that initrd image is available - PRTER - puts(" - initrd not found!"); - PANIC("Cannot find initrd"); - } - - extern uint32_t placement_addr; - uint32_t initrd_location = *((uint32_t*)mboot_ptr->mods_addr); - uint32_t initrd_end = *(uint32_t*)(mboot_ptr->mods_addr+4); - placement_addr = initrd_end; - - return initrd_location; -} - -void kernel_main(unsigned long magic, uint32_t addr, struct multiboot *mboot_ptr) { +void kernel_main(uint32_t magic, uint32_t addr) { // First of all, check if we're booted by a Multiboot-compliant boot loader if(magic != MULTIBOOT2_BOOTLOADER_MAGIC) { PRTER @@ -72,16 +56,9 @@ void kernel_main(unsigned long magic, uint32_t addr, struct multiboot *mboot_ptr PRTOK printf(" - Loaded PS/2 driver"); - uint32_t loc = initrd_setup(mboot_ptr); // Setup initial ramdisk - init_paging(); // Initialize paging PRTOK printf(" - Loaded Paging"); - - // Now we can start initrd - fs_root = init_ramdisk(loc); - PRTOK - printf(" - Loaded Initrd"); PRTAT printf(" - Testing heap...\t");