Das sich Linux erstaunlich gut (besser als Windows) über Assembler programmieren lässt durfte ich herausfinden. Das es "anders" (wie so oft) ist wahr klar, aber das bekomm ich schon hin, dachte ich mir, und hab auch fast alles hinbekommen. Jetzt sitz ich aber grad an einem 300 Seiten Datenblatt über die Linux-System aufrufe und zieh mir die wichtigsten rein. Was zur Hölle soll der Aufruf "fork'" Nr. 002?
Linus geht in seinem Buch kurz auf die wichtigsten 6 Aufrufe ein, und Fork beschreibt er wie folgt:
Nun frag ich mich wozu ein neues Programm dafür ausführen, warum kann ich das nicht einfach aus dem aktuellen Programm? Linux/Unix kennt doch afaik keinen exklusiven Zugriff auf Dateien, deshalb kann man doch Dateien verändern auch wenn sie gerade ausgeführt werden...Zitat:
Zitat von Linux T. Just for Fun S. 62-63
__________________
Desweiteren hat jemand noch ein paar Links zum Thema Assembler unter Linux? Viel hab ich nicht gefunden...
Assembler ist einfach coll: Hello World very easy... (NASM-Code)Code:;###################################;
;# Hello World from ASM [Linux] #;
;###################################;
section .text
global _start
;###################################;
;# Variablen #;
;###################################;
msg_hello db 'Hello world',0x0A ; Text incl. Zeilenumbruch LF (0x0A)
len_hello equ $ - msg_hello ; Länge des Textes berechnen (12 Bytes)
;###################################;
;# START #;
;###################################;
_start: ; Jear, hier fängt's an...
mov eax,4 ; Systemaufruf Nr. 4 (sys_write) zur Textausgabe
mov ebx,1 ; Ausgabekanal Nr.1 = stdout
mov ecx,msg_hello ; Adresse des Textes im Speicher
mov edx,len_hello ; Länge des Textes in Bytes
int 0x80 ; Jetzt ausführen!
mov eax,1 ; Systemaufruf Nr. 1 (sys_exit) um Programmende hervorzurufen
int 0x80 ; Und ab damit...