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 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 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 tools do_limine
make --quiet -C Drivers prepare make --quiet -C Modules prepare
make --quiet -C Userspace prepare make --quiet -C Userspace prepare
make --quiet -C Lynx prepare make --quiet -C Lynx prepare
make --quiet -C Kernel prepare make --quiet -C Kernel prepare
@ -204,7 +204,7 @@ jobs:
sudo apt-get update 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 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 tools do_limine
make --quiet -C Drivers prepare make --quiet -C Modules prepare
make --quiet -C Userspace prepare make --quiet -C Userspace prepare
make --quiet -C Lynx prepare make --quiet -C Lynx prepare
make --quiet -C Kernel prepare make --quiet -C Kernel prepare
@ -261,7 +261,7 @@ jobs:
sudo apt-get update 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 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 tools do_limine
make --quiet -C Drivers prepare make --quiet -C Modules prepare
make --quiet -C Userspace prepare make --quiet -C Userspace prepare
make --quiet -C Lynx prepare make --quiet -C Lynx prepare
make --quiet -C Kernel prepare make --quiet -C Kernel prepare
@ -318,7 +318,7 @@ jobs:
sudo apt-get update 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 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 tools do_limine
make --quiet -C Drivers prepare make --quiet -C Modules prepare
make --quiet -C Userspace prepare make --quiet -C Userspace prepare
make --quiet -C Lynx prepare make --quiet -C Lynx prepare
make --quiet -C Kernel prepare make --quiet -C Kernel prepare

11
.gitignore vendored
View File

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

View File

@ -83,7 +83,7 @@ build64:
script: 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 - 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 tools do_limine
- make --quiet -C Drivers prepare - make --quiet -C Modules prepare
- make --quiet -C Userspace prepare - make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare - make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare - make --quiet -C Kernel prepare
@ -107,7 +107,7 @@ build32:
script: 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 - 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 tools do_limine
- make --quiet -C Drivers prepare - make --quiet -C Modules prepare
- make --quiet -C Userspace prepare - make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare - make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare - make --quiet -C Kernel prepare
@ -130,7 +130,7 @@ buildarm64:
script: 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 - 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 tools do_limine
- make --quiet -C Drivers prepare - make --quiet -C Modules prepare
- make --quiet -C Userspace prepare - make --quiet -C Userspace prepare
- make --quiet -C Lynx prepare - make --quiet -C Lynx prepare
- make --quiet -C Kernel prepare - make --quiet -C Kernel prepare

6
.gitmodules vendored
View File

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

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

View File

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

View File

@ -1,7 +1,7 @@
{ {
"folders": [ "folders": [
{ {
"path": "./Drivers" "path": "./Modules"
} }
], ],
"settings": { "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 Kernel/Doxyfile
doxygen Lynx/Doxyfile doxygen Lynx/Doxyfile
doxygen Userspace/Doxyfile doxygen Userspace/Doxyfile
doxygen Drivers/Doxyfile doxygen Modules/Doxyfile
qemu_vdisk: qemu_vdisk:
ifneq (,$(wildcard ./qemu-disk.img)) ifneq (,$(wildcard ./qemu-disk.img))
@ -90,49 +90,52 @@ tools:
make --quiet -C Kernel prepare make --quiet -C Kernel prepare
make --quiet -C Lynx prepare make --quiet -C Lynx prepare
make --quiet -C Userspace 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: dump:
make --quiet -C Kernel dump make --quiet -C Kernel dump
rebuild: clean build 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: build_lynx:
ifeq ($(BOOTLOADER), lynx) ifeq ($(BOOTLOADER), lynx)
make --quiet -C Lynx build make $(MAKE_QUIET_FLAG) -C Lynx build
endif endif
build_kernel: build_kernel:
ifeq ($(BUILD_KERNEL), 1) ifeq ($(BUILD_KERNEL), 1)
make -j$(shell nproc) --quiet -C Kernel build make -j$(shell nproc) $(MAKE_QUIET_FLAG) -C Kernel build
endif endif
build_userspace: build_userspace:
ifeq ($(OSARCH), amd64)
ifeq ($(BUILD_USERSPACE), 1) ifeq ($(BUILD_USERSPACE), 1)
make --quiet -C Userspace build make $(MAKE_QUIET_FLAG) -C Userspace build
cp -r Userspace/out/* initrd/
endif
endif endif
build_drivers: build_modules:
ifeq ($(OSARCH), amd64) ifeq ($(BUILD_MODULES), 1)
ifeq ($(BUILD_DRIVERS), 1) make $(MAKE_QUIET_FLAG) -C Modules build
make --quiet -C Drivers build
cp Drivers/out/* initrd/system/drivers/
endif
endif endif
build_image: build_image:
mkdir -p iso_tmp_data mkdir -p iso_tmp_data
# tar czf initrd.tar.gz -C initrd/ ./ --format=ustar mkdir -p initrd_tmp_data
# tar czf bootanim.tar.gz -C bootanim/ ./ --format=ustar cp -r initrd/* initrd_tmp_data/
tar cf initrd.tar.gz -C initrd/ ./ --format=ustar ifeq ($(BUILD_MODULES), 1)
tar cf bootanim.tar.gz -C bootanim/ ./ --format=ustar cp -r Modules/out/* initrd_tmp_data/modules/
cp Kernel/kernel.fsys initrd.tar.gz bootanim.tar.gz \ 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/ iso_tmp_data/
ifeq ($(BOOTLOADER), lynx) ifeq ($(BOOTLOADER), lynx)
cp tools/lynx.cfg Lynx/loader.bin Lynx/efi-loader.bin iso_tmp_data/ 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 QEMU_SMP = -smp 4
endif 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 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) $(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 run: build qemu
clean: clean:
rm -rf doxygen-doc iso_tmp_data rm -rf doxygen-doc iso_tmp_data initrd_tmp_data
rm -f initrd.tar.gz bootanim.tar.gz $(OSNAME).iso $(OSNAME).img rm -f initrd.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
make -C Kernel clean make -C Kernel clean
make -C Lynx clean make -C Lynx clean
make -C Userspace 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_KERNEL = 1
BUILD_USERSPACE = 1 BUILD_USERSPACE = 1
BUILD_DRIVERS = 1 BUILD_MODULES = 1
QUIET_BUILD = 1
# The path of the cross-compiler. # The path of the cross-compiler.
COMPILER_PATH = tools/cross/bin 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 Enable=0
Major=0 Major=0
Minor=0 Minor=0

View File

@ -7,11 +7,9 @@ menuentry "Fennix" {
load_video load_video
clear clear
echo "Loading kernel" 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" echo "Loading initrd"
module2 /initrd.tar.gz initrd module2 /initrd.tar.gz initrd
echo "Loading bootanim"
module2 /bootanim.tar.gz bootanim
echo "Booting..." echo "Booting..."
boot boot
} }

View File

@ -5,24 +5,18 @@ INTERFACE_BRANDING=Fennix
# DO NOT EDIT! # DO NOT EDIT!
COMMENT=Boot Fennix using limine protocol COMMENT=Boot Fennix using limine protocol
PROTOCOL=limine 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 KERNEL_PATH=boot:///kernel.fsys
MODULE_PATH=boot:///initrd.tar.gz MODULE_PATH=boot:///initrd.tar.gz
MODULE_CMDLINE=initrd MODULE_CMDLINE=initrd
MODULE_PATH=boot:///bootanim.tar.gz
MODULE_CMDLINE=bootanim
:Fennix (multiboot2) :Fennix (multiboot2)
# DO NOT EDIT! # DO NOT EDIT!
COMMENT=Boot Fennix using multiboot2 protocol COMMENT=Boot Fennix using multiboot2 protocol
PROTOCOL=multiboot2 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 KERNEL_PATH=boot:///kernel.fsys
MODULE_PATH=boot:///initrd.tar.gz MODULE_PATH=boot:///initrd.tar.gz
MODULE_CMDLINE=initrd 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="/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="/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="/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" 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 <a class="hdrbtn" style="float:right" href="https://github.com/Fennix-Project/Fennix/releases/latest"><i
class="fa-solid fa-download"></i> Download</a> class="fa-solid fa-download"></i> Download</a>