Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - DDR-RAM

Seiten: 1 [2] 3 4 ... 10
21
OS-Design / Prozessverwaltung
« am: 25. September 2005, 19:49 »
Das widerspricht aber dem Microkernelkonzept aber, da durch vollständige Blockierung anderer Threads die Stabilität des Systems extrem gesenkt wird ;-)

MfG
DDR-RAM
22
OS-Design / Prozessverwaltung
« am: 25. September 2005, 18:07 »
Hm, also eigentlich wollte ich nicht, dass höherpriorisierte Threads niedrigerpriorisierte komplett abwürgen, sondern nur häufiger als andere an die CPU kommen.

Falls ein hochpriosierter Thread gerade aus seiner Blockierung erwacht bekommt er die CPU ja (in den meisten Fällen) sofort.

Beispiel 2 Threads, einer Prio 2, der andere Prio 4.
beide sind sagen wir mal bei 0 und erstmal arbeiten beide sagen wir Zeitscheiben lang.
Dann haben beide Prio 20, der mit Prio zwei war 10 mal, der andere 5 mal dran.
Thread mit prio 2 wird kurz blockiert.
Thread mit prio 4 kommt ran, liegt bei 24.
Thread mit prio 2 wird wieder entblockiert und kommt sofort an die CPU.

auch zum Thema aber nicht auf Legend antwortend:
Bei Synchronisationsmechanismen (Semaphore, Mutex, CriticalSection) sollte, falls ein Thread mit niedriger Prio einen mit hoher Prio blockiert, der mit niedriger vorübergehend in seiner Priorität gesenkt (also schneller abgearbeitet) werden.
Ich werd für LOST bald ein Kernel-Modell vorlegen.

MfG
DDR-RAM
23
OS-Design / Verwaltung von dyn. Speicher
« am: 25. September 2005, 18:00 »
na jungs :D

Also ich muss Roshl rechtgeben, die InfoBereich liegt vor dem jeweiligen Datenblock.
Unter windows z.b. ist der Infoblock 24 Bytes groß, der Datenblock wird auf 8 Byte aligned (standard user allokation mit malloc/HeapAlloc).

Die freien Blöcke würde ich in den freien blöcken selbst organisieren.
Die Blöcke müssten ja (wenn wie unter win auf 8 Byte aligned wird) mindestens 8 Byte groß sein.
Bei meinem Speichermanager habe ich in den Freien Blöcken einen AVL-Baum. Damit sind Zugriffe mit maximal logarithmischer Laufzeit gewährleistet. :-) An einem Festen ort muss dann nur ein Zeiger auf den Rootknoten liegen, bzw. falls man es wie ihr mit Listen macht auf das Head-Element der Liste.

Der WinAPI Heap verwendet übrigens einen Heap, daher der Name.
Auch hier sind Zugriffszeiten maximal logarithmisch.
Bei Allozierung wird immer der größte Block genommen (und meisten geteilt).
In meinem System würde ich vorher noch einbauen, erst einen genau passenden Block zu finden und erst danach den größtmöglichen Block, dies wäre der Algorithmus, der die interne Fragmentierung am geringsten hält, aber halt etwas langsamer (aber trotzdem maximal logarithmisch) als das größte Element zu nehmen.
Ich verwende übrigens alignment von 32 Bytes, was sich ein wenig übertrieben anhört, es aber nicht ist, da unter windows ein block auch mindestens 32 Bytes groß ist (also inclusive InfoHeader).

Go on Coding  8)

MfG
DDR-RAM
24
OS-Design / Prozessverwaltung
« am: 25. September 2005, 11:07 »
Da sind Absätze ;-)
25
OS-Design / Prozessverwaltung
« am: 21. September 2005, 22:44 »
Marktführer windoof hat Threads und Prozesse,
ich bin daran gewöhnt, dieses Konzept ist ziehmlich gut, sehr kompliziert ist es auch nicht.
Ich dachte es würde sich von selbst verstehen, das wir Threads und Prozesse haben. ;-)
Mein eigentliches Anliegen, war wie gesagt die Frage, ob dieses Schedulingverfahren gut oder schlecht ist bzw. was ist gut, was ist schlecht.

MfG
DDR-RAM
26
tyndur / Öh Sorry...
« am: 21. September 2005, 11:34 »
also ich bin mittler weile für einen _gut_ modularisierten Monolithischen Kernel, mitmachen würde ich wahrscheinlich auch wieder.

für nen modularisierten brauchen wir halt nen gutes binary-format, das import und export von Funktionen bzw. sogar klassen unterstüzt.
Klassen sind weniger wichtig, da man virtuelle Funktionen verwenden könnte, die keinen import und export benötigen würden (zum großteil, man könnte darauf ganz verzichten, würde aber unschöner aussehen).

Da C++ als Sprache durchgesetzt hat, könnte man also auch darauf verzichten und anstatt import/export virtuelle Funktionen verwenden.
Mit wäre aber wesentlich eleganter, deshalb Frage von mir, unterstüzt das ELF-Format das?

Toast3r hat ja auch schon ein Format entwickelt, dieses basiert aber auf Interrupts und nicht auf Funktionsaufrufen, was innerhalb des Kernels, Treibern und Modulen auch wieder weniger elegant ist und maximal für die API (wofür es eigentlich auch gedacht ist) gut ist, aber hier würde ich das ein wenig anders regeln, als er es vorschlug.
Wenn er öfter online wäre, hätte ich das mit ihm persönlich besprochen.

Also, es wurde sowas ja schonmal vor nem halben Jahr besprochen, damals war geplant:

Server:irc.euirc.net
channel:#comm-os
(siehe News vom 02.04.2005 Roshl)

Also, idlen kann man da ja die ganze Zeit, wer ne Flat hat und sich beteiligen möchte.

MfG
DDR-RAM
27
OS-Design / Prozessverwaltung
« am: 21. September 2005, 11:20 »
Zitat von: JensFZ
Im großen und ganzen hast du recht dass Threads mit Prozessen gleichzustellen sind aber Threads sind keine kompletten Programme sondern nur teile (ggf. nur einzelne funktionen). Ein Prozess kann mehere Threads beinhalten. Ein thread ist z.B. bei spiele sehr entscheidend, wenn man z.B. die KI, die Physik und die eingaben der Spieler koordinieren muss (sollte ja alles gleichzeitig ablaufen). Somit kann man für solche Zeitkritischen Funktionen einen eigenen Thread erstellen, damit ein Synchrones arbeiten vorgetäuscht wird.

Also nochmal kurz:
Prozess = Programm (bin mir nicht ganz sicher aber beinhaltet glaube mindestens einen Thread)
Thread = Teil eines Programms


Zitat
Es gibt Prozesse und Threads.
Jeder Prozess besitzt mindestens einen Thread.
Der Prozess ist die Umgebung, also der virtuelle Adressraum, bei einem Prozesswechsel muss also das Register CR3 verändert werden.
Jeder Prozess "hat" ein Objekt, das diesen repräsentiert. Mit diesem Objekt wird ein Prozess verwaltet, es beinhaltet Angabe über die Prozess ID, die Basispriorität des Prozesses, sowie die zum Prozess gehörigen Threads.
Ein Thread ist ein Faden im Prozess, der zu dessen Ausführung beiträgt.
Jeder Thread benötigt seinen eigenen Stack und seinen eigenen CPU-Status.
Auch jeder Thread "hat" ein Objekt, das diesen repräsentiert und durch den er verwaltet wird.


Ich stimm dir also voll und ganz zu, da ich nie etwas anderes behauptete ;-)
Bei mir ist ein Prozess kein Thread, er besitzt mindestens einen, maximal soviele, bis der (virtuelle) Speicher platzt.

Ich wollt eigentlich mehr was hören in Bezug auf das Schedulingverfahren,
falls das so in Ordnung ist, könnte ich mich nochmal daran machen, dieses für LOST zu implementieren, da Roshl meinte, dass er seinen Code für sich behält (so ähnlich jedenfalls ;-) )

MfG
DDR-RAM
28
OS-Design / Prozessverwaltung
« am: 20. September 2005, 19:58 »
Wollt ihr nix zu sagen ne?

Also, mein neues Konzept:

Als das Grundgerüst mit Threads und Prozessen habe ich oben schon beschrieben.
Aber und jetzt kommt es:
es soll zwei priorisierte Warteschlangen geben,
die eine ist gerade aktive und die andere ist die wartende.
Für die priorität eines Threads gilt jetzt, je kleiner desto besser, wie man sie sich diese errechnet, ist erstmal egal.
Sie muss aber größer 0 sein, ein Thread mit der Priorität würde bei diesem Konzept in Echtzeit laufen, das heißt der Scheduler würde ihn (sogut wie) niemals "absetzen".
Also jeder Thread erhält wieder eine dynamische Priorität, diese wächst aber und sinkt nicht, dafür werden Threads mit möglichst kleiner Priorität bevorzugt.
Es kommt immer der Thread zum Zuge, der die niedrigste dynamische Priorität hat, seine dynamische Priorität wird dadurch, aber um seine Priorität erhöht (das heißt bei niedriger Prioritätszahl, gelangt man nicht so schnell nach oben, wie mit hoher und damit kriegt man öfter die CPU).
Ist ein Thread bei einem vordefinierten Wert angelangt z.b. 256 kommt er in die wartende Warteschlange und erhält eine dynamische Priorität von 0.
Auch ein neuer Thread oder einer, der aus seiner Blockierung erwacht, kommt in die wartende Warteschlange und erhält eine dynamische Priorität von 0.
Sind in der aktiven Warteschlange keine Threads mehr enthalten, werden beide Warteschlangen vertauscht.
Kriterien für die priorisierung in den Warteschlangen, sind wie schon erwähnt die dynamische Priorität an erster stelle (kleiner ist höher) und die konstante Priorität an zweiter Stelle (auch hier kleiner ist höher).

problematisch bei diesem Modell ist, das Threads, die oft blockiert werden, wie solche, die Eingabedaten empfangen im Nachteil sind, da sie nach einer Blockierung immer wieder in der wartenden Warteliste landen.

Ein Ansatz dafür, wäre falls die Threads noch wieder auf die CPU-wartend werden, bevor die Warteschlangen vertauscht worden, sie mit der dynamischen Priorität unter der sie blockiert wurden (bzw. dem maximum ihrer damaligen dynamischen Priorität und der dynamischen Priorität, des aktuell aktiven Threads, damit sie keinen zu großen Vorteil erhalten), wieder in die Warteliste einfügt, was in den meisten Fällen bewirkt, das die Threads sofort wieder zum Zuge kommen.
Falls die Listen zwischenzeitlich gewechselt wurden, könnten sie mit einer dyn. Priorität des aktiven Threads in die aktive Liste eingefügt werden.
So kämen sie mit einer gerechten Priorität wieder ins Spiel, kämen aber sofort wieder an die Reihe.


Hört sich für mich persönlich ziehmlich gut an, hab noch keine Mängel entdeckt, vielleicht findet ihr welche.

MfG
DDR-RAM
29
Lowlevel-Coding / RAM schreiben und löschen
« am: 19. September 2005, 17:42 »
also UserLevel malloc funktioniert doch mitm Heap oder nicht? ^^
30
OS-Design / Prozessverwaltung
« am: 19. September 2005, 16:22 »
Hi,

ich hab ja schon vor ca. 3 Monaten an der Prozessverwaltung für LOST gearbeitet gehabt und plante ein Verwaltung auf Basis von sich dynamisch verändernden Prioritäten.
Das daraus nichts geworden ist, ist ne andere Sache, ich hab mir jetzt nochmal Gedanken gemacht und habe einige Fragen.

Ich umreiße ersteinmal, was ich mir im Konkreten gedacht habe:

Es gibt Prozesse und Threads.
Jeder Prozess besitzt mindestens einen Thread.
Der Prozess ist die Umgebung, also der virtuelle Adressraum, bei einem Prozesswechsel muss also das Register CR3 verändert werden.
Jeder Prozess "hat" ein Objekt, das diesen repräsentiert. Mit diesem Objekt wird ein Prozess verwaltet, es beinhaltet Angabe über die Prozess ID, die Basispriorität des Prozesses, sowie die zum Prozess gehörigen Threads.
Ein Thread ist ein Faden im Prozess, der zu dessen Ausführung beiträgt.
Jeder Thread benötigt seinen eigenen Stack und seinen eigenen CPU-Status.
Auch jeder Thread "hat" ein Objekt, das diesen repräsentiert und durch den er verwaltet wird.
Dieses beinhaltet Angaben, über die Thread ID, den CPU-Status, den Zustand des Threads (aktiv/blockiert/wartend/etc.), seine Normalpriorität und seine aktuelle Priorität.
Was hat es nun mit den Prioritäten auf sich und wie wird was verwaltet?

Also, durch Normalpriorität und Basispriorität wird durch Addition dem Thread eine Maximalpriorität zugeordnet.
Bei der Verwaltung geht es um die Zuteilung der CPU-Zeit (Systeme mit mehrern Prozessoren, werden fürs erste außen vor gelassen). Die Verwaltung der CPU-Zeit erfolgt auf Thread-Basis, da sie es sind, die CPU-Zeit beanspruchen.
Alle aktiven Threads werden in einer Priority Queue (priorisierte Warteschlange) verwaltet.
Die Priorität, nach der das entschieden wird, ist die aktuelle Priorität, die sich im Laufe verändert und bei Erzeugung des Threads auf die Maximalpriorität gesetzt wird.
Die CPU-Zeit erhält immer der Thread, der in der Warteschlange ganz vorne steht.
Dieser wird der Warteschlange entnommen (und irgendwo zwischengespeichert).
Die CPU-Zeit wird zerteilt, das heißt z.b. jede 1/512 Sekunde kommt der Scheduler zum Einsatz.
Hierbei, wird die aktuelle Priorität des laufenden Threads dekrementiert (um 1 erniedrigt).
Desweiteren wird überprüft, ob nun ein anderer Thread vorne steht oder der aktuelle Thread blockiert ist.
Der Thread wird in die Liste eingefügt (oder nicht, falls blockiert).
Der neue Thread wird aus der Warteschlange genommen und falls nötig ein CR3-switch durchgeführt und der neue CPU-Status geladen.
Wenn ein Thread Priorität von 0 erreicht, wird zu den aktuellen Prioritäten der aktiven Threads die Maximalpriorität addiert, dies hat Leider einen Zeitaufwand von n * log n, da die Queue neu geformt werden muss, gibt es verbesserungsvorschläge?


So, mal bitte Verbesserungsvorschläge:
1.) Also ich würde es noch so machen, das bei aktivierung eines THread, die Quadratwurzel seiner Maximalpriorität zu seiner aktuellen priorität addiert wird.
2.) Das Zurücksetzen der Prioritäten ist sehr unschön, gibs da was besseres?

Eigentlich ist das ganze eher ne Gedankenspiel, funktioniert glaube ich irgendwie nicht ganz, entspricht auch nicht so ganz dem Sinn.

Also wenn ich dynamische Prioritäten habe, dann sollten für mich folgende Bedingungen erfüllt sein.

1) Wenn ich zwei arbeitende Threads mit der gleichen priorität habe, sollten sich diese beide ständig (das heißt immer wenn der Scheduler aktiv wird) abwechseln.
2) Wenn ich zwei arbeitende Thread habe, sollten die Zuteilungen proportional zur Priorität sein.
3) Es soll so oft wie möglich gewechselt werden (Spezialfall davon ist 1)
4) Es sollen Threads des Prozesses des aktiven Threads bevorzugt werden.

Also wenn jemand was hat, was für mich interessant sein könnte, immer her damit.

MfG
DDR-RAM

edit:
ich hab da noch ne Gute Idee gerade unter der Dusche empfangen, ich werde sie morgen posten ;-)
31
tyndur / Öh Sorry...
« am: 18. September 2005, 09:32 »
Also ich meinte IRC, ja. ;-)

Und es muss ja nicht umbedingt regelmäßig sein.

Es reicht ja, wenn wir uns auf ein erstes Treffen einigen und dort dann  den Termin fürs zweite besprechen. auf dem zweiten das fürs dritte ad infinitum :D

MfG
DDR-RAM
32
tyndur / Öh Sorry...
« am: 17. September 2005, 10:18 »
Es ging mir nicht darum, einen Staat zu gründen.
Ich wollte nur einen Weg der Entscheidungsfindung vorschlagen, denn im Moment ist es so, jemand macht irgendetwas und keiner weiß was davon.
Das mit der 2/3 Mehrheit war eher sone Idee.
Mit anderen Worten hätte ich auch sagen können:
alle die was machen wollen oder Intresse haben, treffen sich jede Woche z.b. im IRC und besprechen bei Kaffee und Kuchen, wie es mit LOST weitergeht. Einer von denen leitet die Besprechung.

MfG
DDR-RAM
33
tyndur / Öh Sorry...
« am: 16. September 2005, 22:19 »
Hi,

Das LOST kein Kinderspiel sein soll, damit irgendwer das Alphamännchen(oder weibchen um politisch korrekt zu bleiben ;-) ) markieren kann, sollte klar sein, der Streit scheint sich ja auch zu legen.

Das es schwierig sein würde war auch von Anfang an klar.
Vielleicht sollten wir ein wenig mehr Organisationsstruktur aufweisen, auch wenn wir nur wenige sind.
Hierbei sollte es vor allem um die Struktur des Kernelteams gehen, das GUI-Team ist ja erst einmal zweitrangig (sorry für den Begriff), wie sich im Moment zeigt, da die GUI auf den Kernel aufbauen muss, der Kernel aber noch ziehmlich hinterher hängt.

Also ich würde das ungefähr so organisieren,
Es gibt einen LOST-Rat, in dem "sitzen" die Kernelteammitglieder und jeder der meint, etwas mit LOST zu tun zu haben. Dieser "tagt" am besten per IRC, z.B. wöchentlich.
Tagesordnungspunkte können dann von jedem Mitglied eingebracht werden und Log davon kommt evtl. ins Forum zum mitlesen für alle (die z.B. keine Zeit hatten).
Falls, es irgendwann einmal zu viele werden, kann man die Mitglieder des Rates ja "wählen" oder so, ist aber atm unwichtig.
Der sollte natürlich einen Vorsitzenden haben.
Wer das macht ist eigentlich egal, hauptsache er angagiert sich für LOST.
Die wichtigsten Sachen werden mit 2/3 Mehrheit (der anwesenden), weniger wichtige mit absoluter Mehrheit (der Anwesenden) entschieden.

Ich denke das könnte erstmal wieder ein bisschen Schwung reinbringen.
Auch wenn es sich wenig nach Aktionismus anhört.

Die erste Sitzung sollte dann eine konstituierende "Sitzung" sein, in der wir unsere wenigen Regeln (z.B. zur Entscheidungsfindung) festlegen, die könnten auch ins Forum.
Außerdem sollte ein Vorsitzender gewählt werden.
Wenige Regeln, da wir ja eigentlich nicht den größten Teil mit Bürokratie verbringen wollen ;-)
Sondern das Projekt besprechen wollen (die es denn wollen).

Ist eigentlich mehr sone Idee, um das ganze hier zu organisieren, ich bin atm auch nicht informiert, inwieweit hier schon was geschehen ist, seit dem ich weg war.
Aber eins weiß ich, ich hab nicht viel Zeit zum Coden sorry, falls es irgendwo stecken bleibt, würde ich mich allerdings bereit erklären, was zu tun.

MfG
DDR-RAM
34
tyndur / Das Konzept der LAPI
« am: 07. September 2005, 22:44 »
hallo,

also wenn ihr von dll redet, redet ihr vom pe-file format, da wir dieses nicht verwenden, sollten wir unserem kind einen eigenen namen geben.
Ich spreche fürs erste mal von einer shared library (sl).

also die kernel.dll läuft nicht, wie man dem namen nach fälschlicherweise vermuten würde im kernel-mode(Ring0), sondern im user-mode(Ring3).
Diese mappt nur System Calls für der C-WinAPI (gemeinsam mit ntdll.dll)
Ist also nur eine Schnittstelle zwischen Usermode und Kernelmode
(wenn man sich den quellcode der kernel.dll anguckt findet man viele syscall's/sysenter's)

Desweiteren ist anzumerken, dass die Begriffe Treiber und dll (unter windows) nicht auf der selben Ebene stehen.  Auch Treiber verwenden dll's.

Die "Dienste" unter Windows haben zum Großteil auch nichts mit Hardware zu tun. Diese laufen meines wisssens nach nicht im Ring0.
Die Resourcenverteilung dürfte irgendwo im Kernel erfolgen.

Gegen ein modulariertes Konzept habe ich nichts einzuwenden, die Module sollten dynamisch geladen und entladen werden können.
Außerdem sollten die Module hierarchische und abstrahierend sein.
Treiber sollten möglichst in einen eigenen Prozess.
Ich stell mir das so vor.


                Kernel (Disp, PM, MM)
                          |
   +----+---------- Modulverwaltung (Soft Driver)
   |    |                 |
   |    |         Treiberverwaltung (Hard Driver)
   |    |                 |
   |    |             z.B. HDD/FDD/CD/Monitor/usw. Treiber (als eigene Prozesse, mit Bibliotheken für Entrypoints
   |    |                 |
   |    +------+----------+
   |           |
   |           |
   |    SoftDriver z.b Dateisysteme (FAT/FAT32/usw.)
   |           |
   +-- kernelinterner Teil der API (zugriff aus SoftDriver/Module)
               |
      usermode Teil der API (in der Art wie Kernel32.DLL)
               |
            Programm

So in der Art, stell ich mir das vor, da fehlt natürlich noch ne ganze Menge, ist dadurch auch teilweise inkonsistent.
Oder man verlegt Modul- und Treiberverwaltung mit in den Kernel, da diese eh immer benötigt werden.
Aber alle Module sollten generell austauschbar sein.
Das wiederum heißt nicht, das nicht einige Module bestimmte andere Module brauchen.
Aber wenn die Schnittstellen gleich sind, sollen diese austauschbar sein.

Die Module sind shared libs, Die Treiber sind ausführbare Dateien, in Verbindung mit Libs.

Vielleicht sollten wir auch noch mehr Kernelspace reservieren, als es im Moment der Fall ist (von 1GB auf 2GB erhöhen).
Dann könnten bestimmte Speicherbereiche für Treiber Bibliotheken reserviert werden.

Die IDT wird übrigens im Moment nach den globalen Konstruktoren initialisiert.

MfG
DDR-RAM
35
Offtopic / einige Fragen (linux)
« am: 25. August 2005, 09:27 »
ok, danke.
Werde mir mal beizeiten _alles_ durchlesen :D
/bin/bash ist binary von der bash und in der passwd ist ein eintrag dafür, welche shell verwendet wird. Deshalb die Funde.
ist die bash jetzt nur fürs parsen der eingabe und so verantwortlich oder auch für die ausgabe (man kann die kommandozeile ja in mehreren ansichten haben, z.b. das fenster in der KDE oder die reine kommandozeile), wird bei beiden bin/bash verwendet?

MfG
DDR-RAM
36
Offtopic / einige Fragen (linux)
« am: 25. August 2005, 08:26 »
war ja fast nicht zu erwarten, das jemand so antwortet, wie geplant,
aber trotzdem Danke euch beiden, hilft mir schon weiter :)

Aber die Frage 4 ist noch nicht so ganz geklärt.
was macht /bin/bash bei den Informationen zu den Benutzern?
Die ja/nein-Fragen scheinen ja alle mit ja beantwortet zu sein.

Achso, Linux installier ich heute oder morgen oder am Wochenende ;-)

MfG
DDR-RAM
37
Offtopic / einige Fragen (linux)
« am: 24. August 2005, 21:53 »
hi,
eigentlich nicht mein Stil, aber ich habe noch kein Linux und soll für den
 Informatikunterricht (12.Klasse^^) ein paar sachen herausfinden.

1. Was macht der Befehl?
grep -c /bin/bash /etc/passwd
2. Macht grep eine Volltextsuche?
3. Gibt -c die Anzahl der Funde aus?
4. Was hat es mit den Beiden Verzeichnissen aufsich
5. passwd = passwortdatei mit Zusatzinfos?
6. Was macht der Befehl?
grep -l 'DEFINITION MODULE' /programme/*
7. Was macht der schalter -l (könnte auch nen I sein, bin mir nicht ganz sicher, glaube aber -l)
8. Löscht der nachfolgende Befehl ein Verzeichnis ohne Rückfragen?
rm -Rf <Verzeichnisname>

Habe versucht, möglichst ja/nein Fragen zu formulieren, bzw. zu zeigen das ich schon ein bisschen Ahnung habe.
Über genaue Antworten, wie auch nur Bestätigungen würde ich mich natürlich sehr freuen.
Hier sind ja eigentlich doch ein paar Linuxer und ich werde auch bald einer sein (jedenfalls mindestens nen halber ;) )
Wenn ich Zeit hätte, würde ich _schnell_ Linux installieren, aber brauch ich bis Freitag (vormittag ^^)

Also, danke im Vorraus!

MfG
DDR-RAM
38
tyndur / Warum geht hier verdammt noch mal nichts weiter?
« am: 24. August 2005, 21:35 »
Hi,

ich melde mich auch mal wieder, muss mich beeilen mit schreiben und so.
Würde teiilweise wieder zur Verfügung stehen, allerdings wie gesagt, zeitmäßig sieht es eher düster aus.
Fragen per ICQ oder so, nehme ich gerne entgegen, wenn ich dann mehr Zeit finde, würde ich auch bei der Organisation helfen, bzw. sogar mal was coden. Hat sich ja leider, wie es scheint wirklich ein wenig im Sande verlaufen.
Außerdem wäre mir ein IRC-Channel lieber, da können dann mehrere gleichzeitig kommunizieren und jeder kann nen Beitrag leisten und idlen,  mitloggen und den Status des Projekts beobachten, könnte man auch noch machen.

MfG
DDR-RAM
39
Lowlevel-Coding / RISC CPU
« am: 27. June 2005, 23:32 »
Zitat von: Legend
Okay, mal was ganz anderes, hier ein kleiner Denkansatz (ist eigentlich doch ziemlich verblüffend):

Angenommen ihr habt eine CPU die genau nur eine einzige Instruktion beherrscht, nennen wir sie Substract And Branch On Less Then Zero.
Die nimmt dann 4 Parameter,
Wert A, Wert B, Ergebnisregister und Branchoffset.

Die Werte A oder B können aber immerhin noch Register oder feste Werte sein.

Wie weit denkt ihr würdet ihr kommen so was zu programmieren?


hm, mit dem befehl kann man ja nicht soviele sachen machen -_-
man müsste immer darauf achten, das jetzt nicht irgendwo hinspringt, man muss den vorhergehenden wert des registers/speicherstelle kennen, um einen neuen wert zuzuweisen, hardware kommunikation nur über speicher (ok, eigentlich kein echtes problem ^^)
keine unterscheidung zwischen signed und unsigned, bzw. immer signed
ich hatte schon angefangen, mir den kopf zu zerbrechen, damit was anzufangen, habe es aber wieder aufgegeben :D
(zu spät, keine lust, etc. )
wenn du damit nen simplen algorithmus formulieren kannst, dann schonmal RESPEKT ;-)

MfG
DDR-RAM
40
Offtopic / Kleine Programmierspäße Teil 2 lol
« am: 19. June 2005, 20:24 »
214013 ^ 4294967296 ist definitiv nicht mit dem windows taschen rechner lösbar. es kann sein, das du das einfach nur kopiert hast oder das ^ zeichen eingetippt hast, dann hatter aber ne xor verknüpfung gemacht und keine potentzierung, deshalb auch die krumme zahl, weil es dann nit mehr durch 214012 teilbar ist.

MfG
DDR-RAM
Seiten: 1 [2] 3 4 ... 10

Einloggen