diff --git a/.gitignore b/.gitignore index 44423cc..f11f210 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,11 @@ kernel.elf -mseos.hdd -mseos.iso +bmosp.hdd +bmosp.iso *.0 bin/ limine/ ovmf/ -modules/helloworld/helloworld.elf -modules/com/com.elf +iso_root/ +modules/helloworld/helloworld.elf +modules/com/com.elf diff --git a/API.md b/API.md index ea9fbcd..a7ff10d 100644 --- a/API.md +++ b/API.md @@ -47,7 +47,7 @@ ## sys::get_info() -Получает информацию о текущей системе. Возвращает структуру `sys::info_t` содержащую информацию о системе. +Получает информацию о текущей системе. Возвращает структуру `sys_info_t` содержащую информацию о системе. ## sys::get_module(uid_t module_id) diff --git a/build.py b/build.py index 2026728..3b26349 100644 --- a/build.py +++ b/build.py @@ -158,9 +158,9 @@ if __name__ == "__main__": check_limine() check_tools() + major, minor, build = version_build() compile_all() create_iso("bmosp") create_hdd("bmosp") - major, minor, build = version_build() print(f"Не забудьте сохранить изменения! Номер сборки: {major}.{minor}, {build}") \ No newline at end of file diff --git a/include/version.h b/include/version.h index ff6a4b1..aeb37da 100644 --- a/include/version.h +++ b/include/version.h @@ -1,3 +1,3 @@ #define VERSION_MAJOR 0 #define VERSION_MINOR 1 -#define VERSION_BUILD 2 +#define VERSION_BUILD 17 diff --git a/kernel/start.cpp b/kernel/start.cpp index 4ecb86b..452e53a 100644 --- a/kernel/start.cpp +++ b/kernel/start.cpp @@ -9,10 +9,10 @@ extern "C" void main( ); -void pause( ) { +static inline void pause( ) { for (uint64_t i = 0; i < 1024; i++) { for (uint64_t j = 0; j < 1024; j++) { - // for (uint64_t q = 0; q < 1; q++) { asm volatile("pause"); } + for (uint64_t q = 0; q < 1; q++) { asm volatile("pause"); } } } } @@ -22,17 +22,14 @@ extern "C" void _start( ) { asm volatile("cli"); fb::init( ); - pause( ); arch::init( ); - pause( ); cpu::init( ); - pause( ); mem::init( ); - fb::printf("\t\t\t\t *** БМПОС %u.%u.%u.%u ***\n", VERSION_MAJOR, - VERSION_MINOR, VERSION_BUILD); + fb::printf("\t\t\t\t *** Базовая Модульная Платформа Операционных Систем " + "версии %u.%u, %u ***\n", + VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD); fb::printf("\t\t\t\t *** Дата сборки: %s %s ***\n", __DATE__, __TIME__); mod::init( ); - pause( ); asm volatile("int $0"); diff --git a/kernel/sys.cpp b/kernel/sys.cpp index e69de29..7925c6d 100644 --- a/kernel/sys.cpp +++ b/kernel/sys.cpp @@ -0,0 +1,69 @@ +#include + +typedef struct { + int reserved; +} framebuffer_t; + +typedef struct { + int reserved; +} sys_info_t; + +typedef struct { + int reserved; +} module_info_t; + +typedef struct { + int reserved; +} func_t; + +typedef struct { + uint8_t a[4]; + uint8_t b[4]; + uint8_t c[4]; + uint8_t d[4]; +} uid_t; + +typedef struct { + uint16_t year; + uint8_t month; + uint8_t day; + uint8_t second; +} time_t; + +namespace sys { +void init( ) {} + +framebuffer_t *alloc_framebuffer( ) { + return (framebuffer_t *)0; +} + +void free_framebuffer(framebuffer_t *frame) {} + +void exit(int code) {} + +int get_error( ) { + return 0; +} + +sys_info_t *get_info( ) { + return (sys_info_t *)0; +} + +module_info_t *get_module(uid_t module_id) { + return (module_info_t *)0; +} + +uid_t new_thread(func_t func) { + return { 0, 0, 0, 0 }; +} + +int delete_thread(uid_t thread_id) { + return 0; +} + +time_t get_time( ) { + return { 0, 0, 0, 0 }; +} + +void set_alarm(time_t time, func_t func) {} +} // namespace sys diff --git a/kernel/task.cpp b/kernel/task.cpp new file mode 100644 index 0000000..e69de29