lik173
@lik173
Хацкер

Как внедрить в ядро ОС на Си C++?

Есть у меня ядро на С, а куча библиотек под C++.
Как мне внедрить в написанное ядро поддержку С++?
Код ассемблера(kernel.asm)

bits 32
section .text
        ;multiboot spec
        align 4
        dd 0x1BADB002        
        dd 0x00            
        dd - (0x1BADB002 + 0x00)  

global start
global keyboard_handler
global read_port
global write_port
global load_idt

extern kmain 		
extern keyboard_handler_main

read_port:
	mov edx, [esp + 4]
			
	in al, dx	
	ret

write_port:
	mov   edx, [esp + 4]    
	mov   al, [esp + 4 + 4]  
	out   dx, al  
	ret

load_idt:
	mov edx, [esp + 4]
	lidt [edx]
	sti 				
	ret

keyboard_handler:                 
	call    keyboard_handler_main
	iretd

start:
	cli 			
	mov esp, stack_space
	call kmain
	hlt 		

section .bss
resb 8192; 8KB for stack
stack_space:


Можно ли доделать ядро но уже вместе с С++ и с той же архитектурой(i386)?

Просто про С++ много инфы и псевдо графический интерфейс проще будет делать
  • Вопрос задан
  • 290 просмотров
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега C++
software engineer
C++ это язык программирования. Его поддержки ни в каком ядре нет.

Ядро - это часть операционной системы, которая предоставляет основной интерфейс для работы процессов и системные функции которыми можно пользоваться. Писать ядро можно на чем угодно, и никакой связи с поддерживаемыми языками нет.

А С++ поддерживается в первую очередь компилятором, который к ядру никакого отношения не имеет.

Немного другой вопрос линкер, который создает бинарник или библиотеку, и ваше ядро по идее должно уметь этот бинарник запускать а библиотекой пользоваться.

Итого, прежде чем "подключать С++ к ядру", следует уточнить как работает архитектура ОС и задать правильный вопрос
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы