Update filesystem structure

This commit is contained in:
Alex 2023-05-20 04:31:24 +03:00
parent 6de4f30320
commit 5fb1f96005
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD
83 changed files with 56 additions and 80 deletions

View File

@ -160,7 +160,7 @@ jobs:
sudo apt-get update
sudo apt-get install rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo -y
make --quiet -C tools do_limine
make --quiet -C Drivers prepare
make --quiet -C Modules prepare
make --quiet -C Userspace prepare
make --quiet -C Lynx prepare
make --quiet -C Kernel prepare
@ -204,7 +204,7 @@ jobs:
sudo apt-get update
sudo apt-get install rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y
make --quiet -C tools do_limine
make --quiet -C Drivers prepare
make --quiet -C Modules prepare
make --quiet -C Userspace prepare
make --quiet -C Lynx prepare
make --quiet -C Kernel prepare
@ -261,7 +261,7 @@ jobs:
sudo apt-get update
sudo apt-get install rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y
make --quiet -C tools do_limine
make --quiet -C Drivers prepare
make --quiet -C Modules prepare
make --quiet -C Userspace prepare
make --quiet -C Lynx prepare
make --quiet -C Kernel prepare
@ -318,7 +318,7 @@ jobs:
sudo apt-get update
sudo apt-get install rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y
make --quiet -C tools do_limine
make --quiet -C Drivers prepare
make --quiet -C Modules prepare
make --quiet -C Userspace prepare
make --quiet -C Lynx prepare
make --quiet -C Kernel prepare

11
.gitignore vendored
View File

@ -1,25 +1,19 @@
iso_tmp_data
initrd/system/include/*
initrd/system/*.raw
initrd/system/lib/*.raw
!initrd/system/include/.gitkeep
initrd/usr/include/*
!initrd/usr/include/.gitkeep
tools/*
!tools/ExtMemDbg
!tools/stage2_eltorito
!tools/*.md
!tools/*.css
!tools/README.md
!tools/menu.lst
!tools/website
!tools/Makefile
!tools/*.c
!tools/*.cpp
!tools/*.cfg
!tools/toolchain-binutils-gdb.patch
!tools/toolchain-gcc.patch
doxygen-doc
initrd.tar.gz
bootanim.tar.gz
.dccache
*.log
*.log.*
@ -27,7 +21,6 @@ bootanim.tar.gz
*.iso
*.drv
*.fex
*.elf
*.a
*.so
*.o

View File

@ -83,7 +83,7 @@ build64:
script:
- apt-get update && apt-get install -y rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
- make --quiet -C tools do_limine
- make --quiet -C Drivers prepare
- make --quiet -C Modules prepare
- make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare
@ -107,7 +107,7 @@ build32:
script:
- apt-get update && apt-get install -y rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
- make --quiet -C tools do_limine
- make --quiet -C Drivers prepare
- make --quiet -C Modules prepare
- make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare
@ -130,7 +130,7 @@ buildarm64:
script:
- apt-get update && apt-get install -y rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
- make --quiet -C tools do_limine
- make --quiet -C Drivers prepare
- make --quiet -C Modules prepare
- make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare

6
.gitmodules vendored
View File

@ -7,6 +7,6 @@
[submodule "Userspace"]
path = Userspace
url = https://github.com/Fennix-Project/Userspace.git
[submodule "Drivers"]
path = Drivers
url = https://github.com/Fennix-Project/Drivers.git
[submodule "Modules"]
path = Modules
url = https://github.com/Fennix-Project/Modules.git

@ -1 +0,0 @@
Subproject commit 1e7632657e4f7c107746cafe398cfd019e7733fe

View File

@ -41,6 +41,7 @@
"AABBCC",
"AAFF",
"AAFFAA",
"ABAR",
"ABIVERSION",
"ABSPOINTER",
"ACPI",
@ -91,6 +92,7 @@
"daif",
"daifclr",
"daifset",
"DAPI",
"DEBUGCTL",
"defragment",
"dialup",
@ -235,6 +237,7 @@
"palignr",
"PCIDE",
"pcmpistri",
"PCNET",
"PDBR",
"PDPTE",
"PEBS",

View File

@ -1,7 +1,7 @@
{
"folders": [
{
"path": "./Drivers"
"path": "./Modules"
}
],
"settings": {

2
Kernel

@ -1 +1 @@
Subproject commit f62c8b87f9eacbc67577aae6a87ffca1f10fceab
Subproject commit e8162bc3cbd39780b70afdc59a336482d39e81b9

2
Lynx

@ -1 +1 @@
Subproject commit 64553b5f842b5befe4cc06f6fda2cb55cabf7207
Subproject commit 769b6b523cf930a46abb5569a752c52ea22d4674

View File

@ -75,7 +75,7 @@ doxygen:
doxygen Kernel/Doxyfile
doxygen Lynx/Doxyfile
doxygen Userspace/Doxyfile
doxygen Drivers/Doxyfile
doxygen Modules/Doxyfile
qemu_vdisk:
ifneq (,$(wildcard ./qemu-disk.img))
@ -90,49 +90,52 @@ tools:
make --quiet -C Kernel prepare
make --quiet -C Lynx prepare
make --quiet -C Userspace prepare
make --quiet -C Drivers prepare
make --quiet -C Modules prepare
build: build_lynx build_kernel build_userspace build_drivers build_image
build: build_lynx build_kernel build_userspace build_modules build_image
dump:
make --quiet -C Kernel dump
rebuild: clean build
# Quickly build the operating system (it won't create the ISO file and doxygen documentation)
ifeq ($(QUIET_BUILD), 1)
MAKE_QUIET_FLAG = --quiet
endif
build_lynx:
ifeq ($(BOOTLOADER), lynx)
make --quiet -C Lynx build
make $(MAKE_QUIET_FLAG) -C Lynx build
endif
build_kernel:
ifeq ($(BUILD_KERNEL), 1)
make -j$(shell nproc) --quiet -C Kernel build
make -j$(shell nproc) $(MAKE_QUIET_FLAG) -C Kernel build
endif
build_userspace:
ifeq ($(OSARCH), amd64)
ifeq ($(BUILD_USERSPACE), 1)
make --quiet -C Userspace build
cp -r Userspace/out/* initrd/
endif
make $(MAKE_QUIET_FLAG) -C Userspace build
endif
build_drivers:
ifeq ($(OSARCH), amd64)
ifeq ($(BUILD_DRIVERS), 1)
make --quiet -C Drivers build
cp Drivers/out/* initrd/system/drivers/
endif
build_modules:
ifeq ($(BUILD_MODULES), 1)
make $(MAKE_QUIET_FLAG) -C Modules build
endif
build_image:
mkdir -p iso_tmp_data
# tar czf initrd.tar.gz -C initrd/ ./ --format=ustar
# tar czf bootanim.tar.gz -C bootanim/ ./ --format=ustar
tar cf initrd.tar.gz -C initrd/ ./ --format=ustar
tar cf bootanim.tar.gz -C bootanim/ ./ --format=ustar
cp Kernel/kernel.fsys initrd.tar.gz bootanim.tar.gz \
mkdir -p initrd_tmp_data
cp -r initrd/* initrd_tmp_data/
ifeq ($(BUILD_MODULES), 1)
cp -r Modules/out/* initrd_tmp_data/modules/
endif
ifeq ($(BUILD_USERSPACE), 1)
cp -r Userspace/out/* initrd_tmp_data/
endif
# tar czf initrd.tar.gz -C initrd_tmp_data/ ./ --format=ustar
tar cf initrd.tar.gz -C initrd_tmp_data/ ./ --format=ustar
cp Kernel/kernel.fsys initrd.tar.gz \
iso_tmp_data/
ifeq ($(BOOTLOADER), lynx)
cp tools/lynx.cfg Lynx/loader.bin Lynx/efi-loader.bin iso_tmp_data/
@ -183,7 +186,7 @@ QEMU_SMP_DBG = -smp 4
QEMU_SMP = -smp 4
endif
vscode_debug: build_lynx build_kernel build_userspace build_drivers build_image
vscode_debug: build_lynx build_kernel build_userspace build_modules build_image
rm -f serial.log profiler.log memtrk.dmp serial4.dmp network.dmp
$(QEMU) -S -gdb tcp::1234 -d int -no-reboot -no-shutdown $(QEMU_UEFI_BIOS) -m 1G $(QEMUFLAGS) $(QEMU_SMP_DBG)
@ -198,26 +201,9 @@ qemubios: qemu_vdisk
run: build qemu
clean:
rm -rf doxygen-doc iso_tmp_data
rm -f initrd.tar.gz bootanim.tar.gz $(OSNAME).iso $(OSNAME).img
rm -f initrd/system/drivers/*.fex
rm -f initrd/system/drivers/*.elf
rm -f initrd/system/drivers/*.raw
rm -f initrd/system/*.fex
rm -f initrd/system/*.elf
rm -f initrd/system/*.raw
rm -f initrd/system/*.so
rm -f initrd/system/*.a
rm -f initrd/system/bin/*.elf
rm -f initrd/system/lib/*.a
rm -f initrd/system/lib/*.raw
rm -f initrd/system/lib/*.so
rm -f initrd/system/lib/*.o
rm -f initrd/system/include/*.h
rm -f initrd/system/include/*.hpp
rm -f initrd/system/include/sys/*.h
rm -f initrd/system/include/sys/*.hpp
rm -rf doxygen-doc iso_tmp_data initrd_tmp_data
rm -f initrd.tar.gz $(OSNAME).iso $(OSNAME).img
make -C Kernel clean
make -C Lynx clean
make -C Userspace clean
make -C Drivers clean
make -C Modules clean

View File

@ -22,7 +22,9 @@ BOOTLOADER = limine
BUILD_KERNEL = 1
BUILD_USERSPACE = 1
BUILD_DRIVERS = 1
BUILD_MODULES = 1
QUIET_BUILD = 1
# The path of the cross-compiler.
COMPILER_PATH = tools/cross/bin

1
Modules Submodule

@ -0,0 +1 @@
Subproject commit 23d1442449dc95ab948036955668b3f40b282799

@ -1 +1 @@
Subproject commit 78cfe1774935772d30f2d3a831dd4f47c641381a
Subproject commit d9485978bb08d94d5bc44dc18727c26eb4941b70

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

Before

Width:  |  Height:  |  Size: 625 KiB

After

Width:  |  Height:  |  Size: 625 KiB

View File

@ -1,4 +1,4 @@
[FAKE_DIVER_API_VERSION]
[FAKE_API_VERSION]
Enable=0
Major=0
Minor=0

View File

@ -7,11 +7,9 @@ menuentry "Fennix" {
load_video
clear
echo "Loading kernel"
multiboot2 /kernel.fsys --alloc=xallocv1 --cores=0 --ioapicirq=1 --tasking=multi --drvdir=/system/drivers --init=/system/init.elf --ioc=true --udl=true --simd=false --bootanim=false
multiboot2 /kernel.fsys --alloc=xallocv1 --cores=0 --ioapicirq=1 --tasking=multi --drvdir=/modules --init=/bin/init --ioc=true --udl=true --simd=false --bootanim=false
echo "Loading initrd"
module2 /initrd.tar.gz initrd
echo "Loading bootanim"
module2 /bootanim.tar.gz bootanim
echo "Booting..."
boot
}

View File

@ -5,24 +5,18 @@ INTERFACE_BRANDING=Fennix
# DO NOT EDIT!
COMMENT=Boot Fennix using limine protocol
PROTOCOL=limine
KERNEL_CMDLINE=--alloc=xallocv1 --cores=0 --ioapicirq=1 --tasking=multi --drvdir=/system/drivers --init=/system/init.elf --ioc=true --udl=true --simd=false --bootanim=false
KERNEL_CMDLINE=--alloc=xallocv1 --cores=0 --ioapicirq=1 --tasking=multi --drvdir=/modules --init=/bin/init --ioc=true --udl=true --simd=false --bootanim=false
KERNEL_PATH=boot:///kernel.fsys
MODULE_PATH=boot:///initrd.tar.gz
MODULE_CMDLINE=initrd
MODULE_PATH=boot:///bootanim.tar.gz
MODULE_CMDLINE=bootanim
:Fennix (multiboot2)
# DO NOT EDIT!
COMMENT=Boot Fennix using multiboot2 protocol
PROTOCOL=multiboot2
KERNEL_CMDLINE=--alloc=xallocv1 --cores=0 --ioapicirq=1 --tasking=multi --drvdir=/system/drivers --init=/system/init.elf --ioc=true --udl=true --simd=false --bootanim=false
KERNEL_CMDLINE=--alloc=xallocv1 --cores=0 --ioapicirq=1 --tasking=multi --drvdir=/modules --init=/bin/init --ioc=true --udl=true --simd=false --bootanim=false
KERNEL_PATH=boot:///kernel.fsys
MODULE_PATH=boot:///initrd.tar.gz
MODULE_CMDLINE=initrd
MODULE_PATH=boot:///bootanim.tar.gz
MODULE_CMDLINE=bootanim

View File

@ -25,7 +25,7 @@
<a class="hdrbtn" href="/fulldoc"><i class="fa-solid fa-book-bookmark"></i> Full Documentation</a>
<a class="hdrbtn" href="/lynx"><i class="fa-solid fa-file-code"></i> Lynx Bootloader</a>
<a class="hdrbtn" href="/kernel"><i class="fa-solid fa-file-code"></i> Kernel</a>
<a class="hdrbtn" href="/drivers"><i class="fa-solid fa-file-code"></i> Drivers</a>
<a class="hdrbtn" href="/modules"><i class="fa-solid fa-file-code"></i> Modules</a>
<a class="hdrbtn" href="/userspace"><i class="fa-solid fa-file-code"></i> Userspace</a>
<a class="hdrbtn" style="float:right" href="https://github.com/Fennix-Project/Fennix/releases/latest"><i
class="fa-solid fa-download"></i> Download</a>