| Zeile 1: | Zeile 1: | ||
{{Tutorial | {{Tutorial | ||
|Titel=Portieren von Programmen und Bibliotheken | |Titel=Portieren von Programmen und Bibliotheken | ||
| − | |Schwierigkeit= | + | |Schwierigkeit=1 |
|Vorwissen= | |Vorwissen= | ||
|Sprache= [[Assembler]], [[C]],[[C++]] | |Sprache= [[Assembler]], [[C]],[[C++]] | ||
}} | }} | ||
| − | |||
== Worum geht es in diesem Tutorial? == | == Worum geht es in diesem Tutorial? == | ||
| − | In diesem Tutorial geht es um | + | In diesem Tutorial geht es um das Portieren von Programmen und Bibliotheken aufs eigene Betriebssystem. |
| − | Es macht wenig Sinn alle Programme | + | Es macht wenig Sinn, alle Programme neu zu schreiben, weil es diese schon zu hunderten gibt. |
== Vorbereitung == | == Vorbereitung == | ||
| − | + | Als erstes solltest du dir einen Crosscompiler für dein OS aufsetzten und ein paar Funktionen in deiner libc implementiert haben. | |
| − | Als erstes solltest du dir einen Crosscompiler für dein OS aufsetzten und ein paar Funktionen in deiner | ||
== Portieren == | == Portieren == | ||
=== Programme === | === Programme === | ||
| − | |||
Hier werde ich einige Programme auflisten, welche sich recht einfach portieren lassen und werde zu jedem Programm erklären welche Schritte notwendig sind. | Hier werde ich einige Programme auflisten, welche sich recht einfach portieren lassen und werde zu jedem Programm erklären welche Schritte notwendig sind. | ||
==== FASM ==== | ==== FASM ==== | ||
Ich verwende als Beispiel die Version 1.69.14. | Ich verwende als Beispiel die Version 1.69.14. | ||
| + | |||
===== Benötigte Funktionen ===== | ===== Benötigte Funktionen ===== | ||
| − | |||
<sys/time.h> | <sys/time.h> | ||
<c> | <c> | ||
| Zeile 60: | Zeile 57: | ||
===== Bauen ===== | ===== Bauen ===== | ||
| − | |||
Du brauchst FASM, LD und deine libc als .a Datei. | Du brauchst FASM, LD und deine libc als .a Datei. | ||
| − | + | Zuerst assemblierst du FASM mit <tt>fasm fasm.asm fasm.o</tt>. | |
| − | + | Danach linkst du die <tt>fasm.o</tt> gegen deine <tt>libc.a</tt>. | |
=== Bibliotheken === | === Bibliotheken === | ||
| − | + | Hier werde ich einige Bibliotheken auflisten, welche sich recht einfach portieren lassen, und werde zu jedem Programm erklären, welche Schritte notwendig sind. | |
| − | Hier werde ich einige Bibliotheken auflisten, welche sich recht einfach portieren lassen und werde zu jedem Programm erklären welche Schritte notwendig sind. | ||
==== zlib ==== | ==== zlib ==== | ||
Ich verwende als Beispiel die Version 1.2.5. | Ich verwende als Beispiel die Version 1.2.5. | ||
| + | |||
===== Benötigte Funktionen ===== | ===== Benötigte Funktionen ===== | ||
[[Kategorie:Tutorials]] | [[Kategorie:Tutorials]] | ||