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:
Zitat von Linux T. Just for Fun S. 62-63
Dann gibt es das Konzept des fork, das den grundlegenden Unix-Operationen angehört. Wenn ein Prozess einen fork ausführt, legt er eine komplette Kopie seiner selbst an. Auf diese Weise bekommst du identische Kopien. Die Kind-Kopie wird meistens dazu benutzt, einen anderen Prozess auszuführen - sich selbst durch ein neues Programm zu ersetzen. Das ist die zweite elementare Funktion.
...
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...
__________________
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)
Das sich Linux erstaunlich gut (besser als Windows) über Assembler programmieren lässt durfte ich herausfinden.
...
Ansichtssache.
Zitat von Crash-Override
Was zur Hölle soll der Aufruf "fork'" Nr. 002?
...
AFAIK wird fork generell häufig benutzt um einfach neue Prozesse zu erstellen (Elternprozess arbeitet halt normal weiter - Kind macht was anderes). Kannst dir dazu ja mal das hier durchlesen. Normalerweise sucht man sich aber die Calls zusammen, die man braucht und nicht umgekehrt.
Zitat von Crash-Override
Desweiteren hat jemand noch ein paar Links zum Thema Assembler unter Linux? Viel hab ich nicht gefunden...
...
Hm, außer http://asm.sourceforge.net/ kenn' ich auch nicht sehr viele Seiten dazu. Aber warum sollte es da auch viele Tutorials zu geben? Wenn man Assembler kann und eine Liste der System-Calls hat, steht einem doch nichts mehr im Weg. Und os-unabhängige Assembler-Tutorials gibt's im Internet eigentlich recht viele.
Hm, naja ich wollte auch mal 'ne Linux-Asm Seite machen, wurde aber aus Faulheitsgründen auf unbestimmte Zeit verschoben. Kannst ja selbst mal eine Seite dazu machen ..
Zu spät, die Admins waren schneller. So lob ich mir das. Wenn sie doch nur bei d*d*e (Zensiert, aber ich denk, ihr wisst, wen ich mein) auch so schnell wären.
Ach ja, Sunny heißt jetzt Ynnus, nicht Yannus. Schau dir die beiden Namen mal genau an
Schön dass der Typ gleich gebannt wurde. Aber zu dem Thread kann ich leider nichts sagen, so schlau wie mein Double, der ja scheinbar die Lösung hatte, bin ich da nicht .
Du musst den Pointer per Nerd_Get() auf die Zeile 569 lenken!
...
Tz, denk doch mal nach Junge. Das gäbe doch voll den Overflow auf dem Kiddie-Heap. Da würde nur noch ein Aufruf der Modmethode über die Nerdpointer helfen, was wohl den Konstruktor der Bannklasse aufrufen würde (über *pAdmin) oder eventuell sogar den multitalking Thread beenden würde. Und dann könntest du nur noch als Zombieprozess durch's Forum geistern ..
Du kennst dich aber gut aus. Machst du das professionell??
...
Nein.
Aber so eine Seite wäre wirklich nicht schlecht. Da scheint es doch Mangel zu geben. Wenn man mit Google nach 'Assembler' und 'EOF' auf deutschen Seiten sucht, ist dieser Thread schon auf der ersten Seite. Und für 'Assembler', 'Linux' und 'fork' auch. Gut, auf diesem Forum sind rund um die Uhr Google-Bots online, aber trotzdem sollte es nicht so schwer sein, mit einer Linux Assembler Seite gute Ergebnisse zu erzielen.
Die POSIX Spezifikation beschreibt alle Funktionsaufrufe, die ein unix Betriebssystem bereitstellen muss. Jedoch variirt die Implementation der Funktionen zwischen den Systemen, unter Linux verwendest du also evt. einen anderen Interrupt als in FreeBSD usw.