diff --git a/.gitignore b/.gitignore index 7ffa99e3..b9a23701 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ tools/* !tools/*.cpp !tools/*.cfg doxygen-doc +initrd.tar.gz *.log *.img *.iso diff --git a/.vscode/c_boilerplates.code-snippets b/.vscode/c_boilerplates.code-snippets new file mode 100644 index 00000000..1ac15e7c --- /dev/null +++ b/.vscode/c_boilerplates.code-snippets @@ -0,0 +1,20 @@ +{ + "Fennix Kernel Header": { + "scope": "c", + "prefix": [ + "head", + ], + "body": [ + "#ifndef __FENNIX_KERNEL_${2:header}_H__", + "#define __FENNIX_KERNEL_${2:header}_H__", + "", + "#include ", + "", + "$0", + "", + "#endif // !__FENNIX_KERNEL_${2:header}_H__", + "" + ], + "description": "Create kernel header." + } +} \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 00000000..a60142dd --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,39 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/include/**" + ], + "defines": [ + "KERNEL_NAME=\"Fennix\"", + "KERNEL_VERSION=\"1.0\"", + "GIT_COMMIT=\"0000000000000000000000000000000000000000\"", + "GIT_COMMIT_SHORT=\"0000000\"" + ], + "compilerPath": "/usr/bin/gcc", + "cStandard": "c17", + "cppStandard": "c++20", + "intelliSenseMode": "gcc-x64", + "configurationProvider": "ms-vscode.makefile-tools", + "compilerArgs": [ + "-fno-rtti", + "-fexceptions", + "-fno-pic", + "-fno-pie", + "-mno-80387", + "-mno-mmx", + "-mno-3dnow", + "-mno-red-zone", + "-mno-sse", + "-mno-sse2", + "-march=nehalem", + "-pipe", + "-mcmodel=kernel", + "-msoft-float", + "-fno-builtin" + ] + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..29c69baa --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,26 @@ +{ + "C_Cpp.errorSquiggles": "Enabled", + "C_Cpp.autocompleteAddParentheses": true, + "C_Cpp.codeAnalysis.clangTidy.enabled": true, + "C_Cpp.clang_format_style": "Visual Studio", + "C_Cpp.default.intelliSenseMode": "gcc-x64", + "C_Cpp.default.cStandard": "c17", + "C_Cpp.default.cppStandard": "c++20", + "C_Cpp.intelliSenseMemoryLimit": 16384, + "editor.smoothScrolling": true, + "editor.cursorSmoothCaretAnimation": true, + "files.watcherExclude": { + "**/tools/binutils-gdb/**": true, + "**/tools/build-binutilsamd64/**": true, + "**/tools/build-binutilsarm64/**": true, + "**/tools/build-binutilsi686/**": true, + "**/tools/build-gccamd64/**": true, + "**/tools/build-gccarm64/**": true, + "**/tools/build-gcci686/**": true, + "**/tools/cross/**": true, + "**/tools/gcc/**": true, + "**/tools/limine/**": true, + "**/tools/qemu/**": true, + "**/doxygen-doc/**": true, + } +} \ No newline at end of file diff --git a/Fennix.code-workspace b/Fennix.code-workspace index dfde1ef0..14008ce4 100644 --- a/Fennix.code-workspace +++ b/Fennix.code-workspace @@ -5,9 +5,6 @@ } ], "settings": { - "debug.allowBreakpointsEverywhere": true, - "files.associations": { - "ostream": "cpp" - } + "debug.allowBreakpointsEverywhere": true } } \ No newline at end of file diff --git a/Makefile b/Makefile index 8f6c43a7..14b23e08 100644 --- a/Makefile +++ b/Makefile @@ -105,7 +105,7 @@ build_userspace: build_image: mkdir -p iso_tmp_data - tar cf initrd.tar.gz -C Initrd/ ./ --format=ustar + tar cf initrd.tar.gz -C initrd/ ./ --format=ustar cp Kernel/kernel.fsys initrd.tar.gz \ iso_tmp_data/ ifeq ($(BOOTLOADER), lynx) diff --git a/Initrd/Test.txt b/initrd/Test.txt similarity index 100% rename from Initrd/Test.txt rename to initrd/Test.txt diff --git a/tools/limine.cfg b/tools/limine.cfg index 333e722a..46a9136f 100644 --- a/tools/limine.cfg +++ b/tools/limine.cfg @@ -2,10 +2,11 @@ TIMEOUT=0 INTERFACE_BRANDING=Fennix :Fennix (Limine) -# DO NOT EDIT! -COMMENT=Boot Fennix using Limine protocol -RESOLUTION=1280x720 -PROTOCOL=limine -KERNEL_CMDLINE=debug -KERNEL_PATH=boot:///kernel.fsys -MODULE_PATH=boot:///initrd.tar.gz + # DO NOT EDIT! + COMMENT=Boot Fennix using Limine protocol + PROTOCOL=limine + KERNEL_CMDLINE=debug + KERNEL_PATH=boot:///kernel.fsys + + MODULE_PATH=boot:///initrd.tar.gz + MODULE_CMDLINE=initrd diff --git a/tools/website/index.html b/tools/website/index.html index efcc7f2e..8dc0151d 100644 --- a/tools/website/index.html +++ b/tools/website/index.html @@ -79,6 +79,7 @@ If you want to build different architecture, use other QEMU binary or change kernel name you can find in Makefile.conf file.

DEBUG • If it's set to 1, the kernel will be compiled in debug mode.
+ TESTING • Enable unit testing.
OSNAME • The name of the kernel. This can be anything.
OSARCH • The architecture of the kernel. Supported values are: amd64 i686 aarch64.
KERNEL_VERSION • The version of the kernel. This can be anything.
@@ -87,7 +88,6 @@ COMPILER_PATH • The path of the cross compiler. If you want to use your own cross compiler, change it to the path of the compiler.
LIMINE_FOLDER • The path of the Limine bootloader.
QEMU_PATH • Qemu path. If you want to use the one you have installed in your system, change it to /usr/bin/qemu-system- (do not include x86_64 or i386, it will be added automatically)
- UNIT_TESTS • Enable unit testing.
That's all you can change in this file.