summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2026-07-02Reproduction cmake run command fileAlexey Gavrilov1-0/+54
Generates file contains command line cmake run to reproduce previous cmake pass through. CI service use this run file to start pipeline with needs cmake configuration that developer was make. Following code pushing workflow: Commit pushed to a code review system (`CMakeReplication.txt` required) -> CI service intercepts changes -> Pipeline start using passed in commit cmake replication command -> CI submit pipeline finished status Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-07-02Write configuring features into output fileAlexey Gavrilov1-20/+53
Implements a new feature module function `outFeaturesToFile` to output all available features into 'CMakeFeatureOut.txt' file. Format of that file is set of FEATURE_<feature>_<property> variables like defines in `CMakeCache.txt`. Will to use as proxy between cmake and configuration tools. Those utilities read features out file to build configuration kernel tree. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-06-25Add feature cmake moduleAlexey Gavrilov2-2/+169
Feature is abstraction around cmake build target used to contains descriptive information in target properties as name, dependencies, tags and etc.. Feature creation divided by three processes: start creation process, fields filling and stop creation process. Start creation process means passed target is handle now, and stop process is finish to handle a current feature. Using this way helps to construct correct features hierarchy and simplify kernel configuration process. This will use in standalone automating kernel configuration tools: 1. Cmake generate a features file with information about them all. 2. Tool read this file and display features tree. 3. User start to configuring his kernel. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-06-09Apply the GPLv3 licenseAlexey Gavrilov60-3/+1704
Copyright disclaimer and copyright note are prepending to a every source file. Add license section in the `README.md` file. Create the LICENSE` file with license information. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-06-09Root project documentation updateAlexey Gavrilov4-63/+293
`README.md` is rework. Describe project concept description and mention links. The old readme file build section move to the separate file `BUILD.md`. It helps to fast read the corresponding file instead of viewing a `README.md` table of content. 'CONTRIBUTING.md' file contents information to makes gain experience and contribute in project easier. 'CHANGELOG.md' provide a detailed, chronological history of change releases. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-06-09Following release directionsAlexey Gavrilov2-0/+63
RELEASE.md contains following release goals and them execution status. TODO.md contains more detailed information about release goals. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-04-02Correct CRTXBUNDLE static targets into separate objectscmakeAlexey Gavrilov2-17/+18
This correct refers to a wrong order of linking CRT objects. When targets are separates into 4: CRTI, CRTBEGIN, CRTEND, CRTN the order became a little bit correct. TODO - Image with grub bootloader creation - Build under window platform (optional) Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-03-30Move to CHECK_START messagesAlexey Gavrilov2-10/+20
More convenient requirements checks way by CHECK_START message argument. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-03-30Cmake status information outputAlexey Gavrilov5-13/+51
Reinforce of compiler, C runtime, architecture checks at cmake configuration. Compiler check means continue building at the cmake configure stage only for supported compilers. Use unsupported compiler involves immediate build process stopping. C runtime check means finding of runtime objects. Especially for *crtbegin.o* and *crtend.o* files. Architecture means *ObjectiveProject_ARCHITECTURE* variable is set. That variable configure at toolchain file by default and cannot override if toolchain file is passed. TODO - Image creation - Build under window platform (optional) Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-03-28Set architecture bitness in nasm filesAlexey Gavrilov3-0/+3
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-03-28Cmake build type at the generation stageAlexey Gavrilov8-13/+36
Fix in *nasm* files - set architecture bitness. Move compiler flags from *toolchain* file to *requirements target* considering cmake files. This solution allows available of multi-configurations generators to pass compiler options without affecting on single-configuration generators. TODO - Debug information - Image creation - Build under window platform (optional) Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-03-28Cmake build generator support: toolchain fileAlexey Gavrilov5-21/+20
Two toolchain files for clang and gcc compilers under x86 platform. Debug flags also passed at the configure time. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-03-27Cmake build generator support: build stageAlexey Gavrilov39-84/+415
Multi-target architecture implementation: each root source code directory presents the one *INTERFACE* target to it's subdirectory subtargets that link only as *STATIC* library. For instance, *arch* directory presents *Architecture* target then *Architecture* target has *CPUID*, *IO*, *PORT* and etc. dependencies Exact order of linking targets is: boot.o CRTIBUNDLE <TARGETS> CRTNBUNDLE. Sequence destruction cause to UB. Please to pay attention to this. TODO - Debug information - Build type - Toolchain file - Image creation - Build by WinGW compiler on Windows platform (optional) Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-20Global variables initialization implementationlinker_scriptAlexey Gavrilov4-6/+27
User implementation of C runtime library objects (`crti.s` and `crtn.s`) for initialization (termination functionality are ignored). Changing files order passed to the linker. Rough order is: boot.s crti.o crtbegin.o other-link-objects.o crtend.o crtn.o Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-20Linker script refactorAlexey Gavrilov1-10/+18
In general this update touching sections for initialization and destruction of global variables. DISCARD sections added (.fini and .comment) and particular sections (.ctors, .dtors, .init, .fini) moved into more common sections (.rodata and .text) accordingly. This decision allows to save a some RAM. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-20Linker script reworkAlexey Gavrilov4-59/+77
`memory.ld` is a architecture-dependent ld config provides some general symbols which every `memory.ld` config must assign and memory regions associated with each output section. 'linker.ld' config file presents segments configuration. Multiboot section filling move in the 'linker.ld' file. Recommendation for further patches: controlled logic implementation for multiboot version and header/entries in build configuration tool (CMake or make). For instance, multiboot version and video mode selection through variable passing in build system: `cmake ... -DMULTIBOOT_VERSION=2 -DMULTIBOOT_VIDEO_MODE=TEXT_VIDEO_MODE` or 'export MULTIBOOT_VERSION=2; export MULTIBOOT_VIDEO_MODE=TEXT_VIDEO_MODE'. Then build system do proper filling of `.multiboot` section depends on passing variables. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-11Defines refactoring in msr modulecpuid_refactorAlexey Gavrilov2-16/+26
New cpuid model uses instead of old in some msr definitions. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-11Put in cpuid some definitions and declarationsAlexey Gavrilov2-311/+110
Declarations: `acquireInformation` for two extended cpuid commands. Overloading `operator&` for enum classes in `VersionInfo` structure to get proper bit value. All declarations from ==Cpuid.h== file are define in the corresponding cpp file. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-01Refactoring cpuid model interactionAlexey Gavrilov6-365/+286
Patch for support CPU identification feature. Model smash on two pieces: platform-independent and dependent accordingly. The first obtains architecture details from CPU by special registers or execute instruction and filling proper structure. The second piece needs for more universality to use in independent code. Currently, platform-independent part supports only x86 cpuid(0h,01h) leafs. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-05-10Kheap section + metadataAlexey Gavrilov4-7/+36
2024-05-27delete arch fileAlexey Gavrilov3-9/+2
2024-05-24Merge pull request #9 from rebovas/interrupts_picHEADmainAlexey Gavrilov15-169/+948
Pic + Tuple + refactor PrimaryInitialization class
2024-05-24Pic + Tuple + refactor PrimaryInitialization classAlexey Gavrilov15-169/+948
2024-04-10Merge pull request #8 from rebovas/msrAlexey Gavrilov10-14/+490
Msr + interrupts implement + crude implementation of IDT filling
2024-04-10VGADisplay some updatesAlexey Gavrilov2-3/+0
2024-04-10MSR + IDT + test ISRsAlexey Gavrilov10-13/+492
2024-03-31Merge pull request #7 from rebovas/makefile_updateAlexey Gavrilov2-6/+11
Makefile updates
2024-03-31Makefile updatesAlexey Gavrilov2-6/+11
2024-03-31Merge pull request #6 from rebovas/idtAlexey Gavrilov10-44/+266
IDT + uintptr update
2024-03-31IDT + uintptr updateAlexey Gavrilov10-44/+266
2024-03-27Merge pull request #5 from rebovas/acpi_madtAlexey Gavrilov11-35/+350
Acpi madt + some updates
2024-03-27Some updates: rename memAddr, define architectureAlexey Gavrilov9-26/+49
2024-03-26Implement MADT tableAlexey Gavrilov5-12/+304
2024-03-25Merge pull request #4 from rebovas/acpi_classesAlexey Gavrilov7-2/+329
Implementation ACPI tables through classes
2024-03-25Acpi classes + string operationsAlexey Gavrilov6-115/+271
2024-03-19Remove unnecessary fileAlexey Gavrilov1-0/+0
2024-03-19Implementation acpi tables through structsAlexey Gavrilov4-1/+172
2024-03-08Update README.mdAlexey Gavrilov1-5/+6
2024-03-08Merge pull request #3 from rebovas/cpuinfo_refactorAlexey Gavrilov3-30/+11
Cpuinfo refactor
2024-03-08Cpuinfo refactorAlexey Gavrilov3-30/+11
2024-03-07Merge pull request #2 from rebovas/mem_operationsAlexey Gavrilov2-0/+49
Memory operations: copy and set
2024-03-07Merge pull request #1 from rebovas/init_procAlexey Gavrilov18-68/+76
Mechanism of initialization
2024-03-07Memory operations: copy and setAlexey Gavrilov2-0/+49
2024-03-06Initialization mechanismAlexey Gavrilov16-77/+68
2024-03-05GDT rename procedure + edit .gitignoreAlexey Gavrilov4-2/+19
2024-02-22Some updatesAlexey Gavrilov2-1/+0
2024-02-22Update README.mdAlexey Gavrilov1-2/+8
2024-02-22Merge branch 'main' of github.com:objectiveOS/objectiveAlexey Gavrilov1-0/+1
2024-02-22Implement support of cpuid instruction + include folder + some updatesAlexey Gavrilov19-86/+884
2023-11-07Fix makefileAlexey Gavrilov1-0/+1