mirror of https://github.com/0Nera/BMOSP.git
Добавление инструкций по сборке и запуску
This commit is contained in:
parent
976513b034
commit
94dca214ca
29
README.md
29
README.md
|
@ -56,6 +56,35 @@
|
||||||
|
|
||||||
- ООО "НПО ТЕ-ОН"
|
- ООО "НПО ТЕ-ОН"
|
||||||
|
|
||||||
|
## Сборка из исходного кода
|
||||||
|
|
||||||
|
### Ubuntu 18+
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install clang-format python3 git qemu-system-x86
|
||||||
|
git clone https://git.synapseos.ru/Aren/BMOSP.git
|
||||||
|
cd BMOSP/
|
||||||
|
chmod +x build.sh
|
||||||
|
./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Запук
|
||||||
|
|
||||||
|
### Qemu
|
||||||
|
|
||||||
|
Стандартная конфигурация
|
||||||
|
|
||||||
|
```bash
|
||||||
|
qemu-system-x86_64 -cpu max -m 1G -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd -name "БМПОС"
|
||||||
|
```
|
||||||
|
|
||||||
|
Или
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x run.sh
|
||||||
|
./run.sh
|
||||||
|
```
|
||||||
|
|
||||||
## Предупреждение
|
## Предупреждение
|
||||||
|
|
||||||
Использовать на свой страх и риск. Система расчитана на работу в эмулируемой среде Qemu под процессоры x86_64.
|
Использовать на свой страх и риск. Система расчитана на работу в эмулируемой среде Qemu под процессоры x86_64.
|
||||||
|
|
|
@ -6,7 +6,9 @@ typedef struct {
|
||||||
} lock_t;
|
} lock_t;
|
||||||
|
|
||||||
#define LOCK_INIT \
|
#define LOCK_INIT \
|
||||||
(lock_t) { 0, __FILE__ }
|
(lock_t) { \
|
||||||
|
0, __FILE__ \
|
||||||
|
}
|
||||||
|
|
||||||
namespace lock {
|
namespace lock {
|
||||||
int swap(lock_t* lock);
|
int swap(lock_t* lock);
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 1
|
#define VERSION_MINOR 1
|
||||||
#define VERSION_BUILD 227
|
#define VERSION_BUILD 231
|
||||||
|
|
|
@ -70,12 +70,12 @@ static volatile struct limine_module_request module_request = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct limine_module_response *module_response;
|
struct limine_module_response *module_response;
|
||||||
static uint64_t module_count = 0;
|
static uint64_t modules_count = 0;
|
||||||
|
|
||||||
void init( ) {
|
void init( ) {
|
||||||
main_env.fb_printf = &fb::printf;
|
main_env.fb_printf = &fb::printf;
|
||||||
module_response = module_request.response;
|
module_response = module_request.response;
|
||||||
module_count = module_response->module_count;
|
uint64_t module_count = module_response->module_count;
|
||||||
struct limine_file *module_ptr = (struct limine_file *)0;
|
struct limine_file *module_ptr = (struct limine_file *)0;
|
||||||
|
|
||||||
for (uint64_t i = 0; i < module_count; i++) {
|
for (uint64_t i = 0; i < module_count; i++) {
|
||||||
|
@ -94,11 +94,10 @@ void init( ) {
|
||||||
fb::printf("\t\t[BOOTIMG]\n");
|
fb::printf("\t\t[BOOTIMG]\n");
|
||||||
bootpng_ptr = module_ptr->address;
|
bootpng_ptr = module_ptr->address;
|
||||||
bootpng_size = module_ptr->size;
|
bootpng_size = module_ptr->size;
|
||||||
main( );
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!tool::starts_with(module_ptr->cmdline, "[MOD]")) { continue; }
|
if (!tool::starts_with(module_ptr->cmdline, "[MOD]")) { continue; }
|
||||||
|
modules_count++;
|
||||||
module_info_t *(*module_init)(env_t * env) =
|
module_info_t *(*module_init)(env_t * env) =
|
||||||
(module_info_t * (*)(env_t * env))
|
(module_info_t * (*)(env_t * env))
|
||||||
elf_entry(module_ptr->address, module_ptr->size);
|
elf_entry(module_ptr->address, module_ptr->size);
|
||||||
|
@ -110,5 +109,6 @@ void init( ) {
|
||||||
// fb::printf("Инициализированно с кодом: %u\n", ret->err_code);
|
// fb::printf("Инициализированно с кодом: %u\n", ret->err_code);
|
||||||
// fb::printf("Сообщение из модуля: %s\n\n", ret->message);
|
// fb::printf("Сообщение из модуля: %s\n\n", ret->message);
|
||||||
}
|
}
|
||||||
|
fb::printf("Модулей обработано: %u\n", modules_count);
|
||||||
}
|
}
|
||||||
} // namespace mod
|
} // namespace mod
|
7
run.sh
7
run.sh
|
@ -1,4 +1,5 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#qemu-system-x86_64 -cpu max -m 1G -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd -d int --no-reboot
|
qemu-system-x86_64 -name "БМПОС" -cpu max -m 1G -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd --no-reboot
|
||||||
#qemu-system-x86_64 -cpu host -m 1G -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd
|
#qemu-system-x86_64 -name "БМПОС" -cpu max -m 1G -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd -d int --no-reboot
|
||||||
qemu-system-x86_64 -enable-kvm -cpu host -m 6G -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd -d int --no-reboot
|
#qemu-system-x86_64 -name "БМПОС" -cpu host -m 1G -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd
|
||||||
|
#qemu-system-x86_64 -name "БМПОС" -enable-kvm -cpu host -m 6G -smp 1 -bios ovmf/OVMF.fd -hda bmosp.hdd -d int --no-reboot
|
Loading…
Reference in New Issue