Commit graph

7 commits

Author SHA1 Message Date
8f73c64324
Some more optimizations, replacing stb with scalable-font2 2024-01-09 21:59:18 +01:00
90a3fc18e2
Updated toolchain and implemented basic C library functions
Switched the makefile to use `clang` as the default compiler, enhancing portability and potentially optimizing the build process. New implementations of `abs`, `strcpy`, and `strcmp` provide foundational C library support. Enhanced text and line rendering in the graphics subsystem with the inclusion of STB's easy font printing library, facilitating on-screen debug message display. Memory management functions `malloc` and `free` have been introduced, paving the way for dynamic memory allocation. Accompanying test cases for memory operations validate basic functionality and robustness of the new implementations. The adjustment and enablement of compiler flags further tailor the compilation process to the system's requirements.
2024-01-09 16:29:07 +01:00
afe216263e
Add STB submodule and implement text rendering
Introduced the STB (Sean Barrett's libraries) submodule to handle different utilities such as image loading and text rendering. The necessary makefile adjustments have been made to include this third-party library. Separated memory management functions into a new `memory.c` file to clean up `kernel.c`. Defined a basic `draw_text` function as a placeholder in `fonts.c` to set up the text rendering functionality. This change lays the groundwork for enhanced graphical capabilities in the console, utilizing STB for fonts and other graphical tasks.

Included are forward declarations and initial integration into the build system, as well as function stubs and associated header files. This refactor promotes modular code organization and paves the way for future graphical feature implementations, although the `draw_text` function is currently non-operative and serves as a template for future development.

Note: SSE and SSE2 optimizations have been re-commented out within the makefile, suggesting a decision to possibly defer or revisit this optimization approach.
2024-01-09 10:57:16 +01:00
877dcc247d
Update Limine as submodule and refactor build system
Migrated Limine bootloader to a git submodule, ensuring consistent and easy updates alongside source versioning. Removed explicit bootloader files from version control in favor of submodule structure. Cleaned up makefile targets to integrate submodule initialization and limine build process, stepping towards better build reproducibility. In the build system, 'submodules' target is added to ensure submodules are properly initialized, which is now a prerequisite for 'bin/$(KERNEL)' target, as well as for ISO and HDD image creation.

Additionally, streamlined the gitignore file to retain the iso_root directory while excluding generated image files and the previously tracked 'limine' directory. Minor whitespace cleanup in GNUmakefile enhances readability and maintains consistency. Included fonts module directly in source files to support future graphics handling and replaced a placeholder hang function with a framebuffer write operation in the kernel startup code, setting the foundation for further development of graphics rendering.
2024-01-08 20:43:35 +01:00
8b16798b54
Updated boot entries for KumiOS
Renamed boot menu entries and updated kernel paths to reflect the new operating system name: KumiOS. This change ensures consistency across the boot configuration, paving the way for a smoother branding transition. Users will now see "KumiOS" instead of "myOS" at boot time, matching the updated kernel naming.
2024-01-08 16:42:11 +01:00
76a8cf5083
Add HDD build step to CI pipeline
Extended the CI pipeline to include a new job for building the hard disk drive (HDD) image alongside the existing ISO build, leveraging parallel processing with available CPU cores to optimize build time. This ensures automated packaging of the HDD format for broader deployment compatibility.
2024-01-08 16:29:34 +01:00
9c6a26e03b
Initial commit 2024-01-08 16:27:04 +01:00