Linkowanie asemblera i C


(Himek22) #1

Witam,

Ostatnio postanowiłem stworzyć własny "OS". Cudzysłów nie jest bynajmniej przypadkowy, gdyż jedynym co miał robić mój pseudo-system było wyświetlenie napisu "hello world" po zbootowaniu. Znalazłem ten artykuł: http://sadisblog.wordpress.com/2012/06/24/write-your-own-cool-os/

Skopiowałem kod i skompilowałem w NASM zgodnie z instrukcją, wszytko działało, pojawiło się "hello world"... Jednak postanowiłem dalej rozbudować system. Jako że kod asemblera nie jest zbyt łatwy w pisaniu ani utrzymaniu, zdecydowałem się pisać dalej w C. Ogólny zamysł jest taki, że przy bootowaniu uruchamiany jest kod asma, który przez funkcję extern wywołuje procedurę z pliku z kodem C, a ta wykonuje jakieś bardziej zaawansowane czynności.

Nie wiem jednak jak to wszystko skompilować i zlinkować tak, żeby wyszła binarka, która będzie uruchamiana jako system.

Pracuję na 64-bitowym Linux Mint.

 

Szymon Karpiński

 

 


(kostek135) #2

Kompilujesz oba pliki do object file (*.o), a potem linkujesz tak jakbyś miał wszystko w C napisane, co za problem?

http://stackoverflow.com/a/6755472/1778101


(fedora24x) #3

Poczytaj sobie “Pisanie os od zera do bohatera” i materiały OSDev.