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 - GhostCoder

Seiten: [1] 2 3 ... 10
1
Lowlevel-Coding / Re: Multitasking und Timer
« am: 02. April 2007, 19:32 »
Hallo,

du kannst doch einfach nur z.B. alle 10 Aufrufe vom Timer Interrupt nen Taskswitch vornehmen und trotzdem bei jedem Call den Counter hochzählen.

Sowas ala ...
void timer_irq()
{
static int i = 0;

counter++;

if(++i == 10)
{
i = 0;
scheduler();
}
}
MfG
2
Lowlevel-Coding / Problem mit Linken
« am: 05. April 2006, 08:38 »
Heißt es nicht .rodata?
3
Lowlevel-Coding / Division ohne div
« am: 01. April 2006, 08:54 »
Hi,

ne Lösung dafür habe ich jetzt zwar nicht parat, aber guck doch mal nach __divdi3 (Division zweier long long`s) bei Google.

Gruß
4
Lowlevel-Coding / Stack richtig initalisieren
« am: 28. March 2006, 16:27 »
Das SP hoch sein sollte, meinte ich doch damit. Dachte das wäre klar :)

Gruß
5
Lowlevel-Coding / Stack richtig initalisieren
« am: 27. March 2006, 21:51 »
Hallo,

ein Stack "wächst" von oben nach unten. Ich denke mal daran liegt der Fehler.

Das heißt du solltest ss:(e)sp an einer möglichst hohen Adresse initialisieren.
also z.B. auf 0x9000:0xE000. Das sollte so ziemlich das höchste sein was du addressieren kannst.

Gruß, GhostCoder
7
Offtopic / C - printf geht net
« am: 08. March 2006, 23:19 »
Hi,

Komischer Code, sehe aber keinen Fehler irgendwie :)

Hier mal mein kprintf, vielleicht hilft das ja...

void kprintf(char *fmt,...)
{
ushort *vid_buf=(ushort*)0xB8000;
static int pos=1;
char str[256];
va_list ap;
int i;

va_start(ap,fmt);
vsprintf(str,fmt,ap);
va_end(ap);

fmt=str;

while(*fmt)
{
switch(*fmt)
{
case '\n':
pos+=80-(pos%80);
break;

default:
if(pos>=80*25)
{
for(i=1;i<24;i++)
memcpy(&vid_buf[(i-1)*80],&vid_buf[i*80],160);

memset(&vid_buf[80*24],0,160);

pos=-80;
}

vid_buf[pos++]=*fmt | 0x0700;
break;
}

fmt++;
}
}


Gruß GhostCoder
8
Lowlevel-Coding / Virtual-8086-Mode
« am: 26. February 2006, 17:33 »
Hi,


Hast du in deinem aufzurufenden TSS auch Realmode Segmente eingestellt und zeigt ip auf code der im Realmode ausführbar ist?

Gruß
9
tyndur / Flaches Speichermodel?
« am: 13. October 2005, 17:12 »
Hi,

du kannst gut und gerne Paging auslassen, aber nur, wenn du ein extrem kleines schnelles System haben willst. Sowas wie ein PMode DOS :)

Es wird aber nur schneller, wenn du kein TSS benutzt, d.h. pures Software Taskswitching.

Gruß
10
Offtopic / "Beste" Distribution
« am: 13. October 2005, 17:09 »
Hi,

also ich benutze Slackware 10.0 und Arch Linux 0.7.

Beide System sind ziemlich klein(je 1 CD) und bieten keine Konfigurationstools wie yast oder linuxconf oder sowas. Ist also nur was für Leute die sich mit der Konsole auskennen, bzw. es lernen wollen. Kann ich nur empfehlen!

Und Arch Linux hat einen absolut genialen Packet Manager namens pacman... :)

MfG
11
Ja,
aber unter Linux sind und bleiben das Systemcalls...
12
Ob das jetzt Sinnvoll ist oder nicht, eine Lib zu haben, die direkt raw auf Platte schreibt sie dahingestellt...aber schneller ist es in jedem Fall!

Gruß GhostCoder
13
Offtopic / DirectX
« am: 30. June 2005, 17:57 »
Hab zwar keine große Ahnung von D3D, aber musst du nicht erst die Einheitsmatrix laden?
Gut, wird wohl kaum was mit nem Segfault zutun haben,aber naja :)

Gruß GhostCoder
14
Quatsch,

8192*2 Syscalls, einen für read, einen für write...
15
Das kann schon sein,

sagen wir "cp" kopiert mittels read/write eine 8MB große Datei mit nem 1024 Byte Buffer, das macht alleine 8192 Syscalls, die beim Exokernel entfallen. Wobei die wahrscheinlich direkt auf Disk geschrieben haben. Linux muss sich ja noch um's VFS kümmern, die Verwaltung vom Disk Treiber,FS, usw.

Gruß GhostCoder
16
tyndur / API
« am: 29. June 2005, 20:40 »
@Legend:
Und Messaging(IPC) ist genau diese Abstraktion. Eigentlich alle Microkernel basieren auf diesem Prinzip

Zitat

Sowas direkt per Int zu machen -> siehe DOS.

Sorry, wenn das jetzt blöd klingt:  Was meinst du damit?

Gruß GhostCoder
17
Zitat

Im Endeffekt durfte das bestenfalls darauf hinauslaufen das 99% der Programme die selbe Lib benutzen, und vielleicht Web- und Datenbankserver etwas direkter auf Netzwerk und Festplatten zugreifen.


Und genau das ist der Vorteil! Du kannst über die OS libs Unix und Windows (Wenn du die Sourcen hast) Anwendungen auf deinem System laufen lassen. Wenn du aber eine Andwendung laufen lassen willst, die auf Gewschwindigkeit aus ist, nimmst du eine angepasste libos.
Für ein(en) Spiel(er) sind wichtige Faktoren... :)

Gruß GhostCoder
18
tyndur / API
« am: 29. June 2005, 14:10 »
Zitat

Wenn man verschiedene Interrupts nimmt hat man mehr Register für Parameter zur Verfügung

Klar, wenn man für jeden Systemcall einen INT nimmt, sonst net :)

Zitat

weil Assembler deutlich schneller und flexibler als C ist.

Öhm, ja natürlich... :)

Nochwas:
Ich macht doch einen Mikrokernel, oder? Wenn ja, müssen die einzigen Syscalls doch Messaging Funktionen sein.

Gruß, GhostCoder
19
Hi,

ich finde den Exokernel sehr interessant, vorallem da solch ein System extrem schnell ist.
Das Problem ist nur, dass du sehr viel Speicher brauchst, wenn z.B. der ganze POSIX Layer in jedem Addressraum eines Programmes liegt. Selbst mit COW und shared pages ist das beträchtlich...

Wenn du Sicherheit willst, ist der Mikrokernel wohl der beste Ansatz für dich, aber hier hast du ein Problem mit Geschwindigkeit!

Habe das bei mir so gemacht, das ich (jetzt) ein Mikrokernel ähnliches System habe, aber Abstriche mache. D.h. es gibt nurnoch einen virtuellen Addressraum und die Prozesse werden durch Segmentierung getrennt. Das macht Messaging(Das Kernproblem des Mikrokernels) zu einer simplen Addition, beschränkt aber bei vielen Prozessen den privaten Addressraum( und ist außerdem nicht mehr POSIX konform).

Gruß GhostCoder
20
Offtopic / Einige Fragen zu Linux & Windows
« am: 27. June 2005, 15:33 »
Hi,

soweit ich weiß, kannst du Windows doch "geloggt" booten, musste mal F8 beim Booten drücken. Dann sollte alles in einer Datei namens Bootlog.txt stehen, und der letzte Eintrag sagt dir, wo es hakt. Ob das bei XP auch geht, ka.
Btw, es gibt doch so ein Windowseigenes Tool, mit dem du beschädigte oder veränderte Systemdateien von CD wiederherstellen kannst. Ich weiß nurnoch, das es 3 Buchstaben hatte, mehr nicht :)

2.) Bei mir lief das irgendwie genauso gut/schlecht wie Wine, hab's dann auch schnell aufgegeben... Aber mit der neuesten Wine Version kriegst du auch ziemlich viele 3D Spiele zum laufen, z.B. AvP oder Half-Life.
3.) ~/.kde/Autostart?
4.) Passendes Kernelmodul für den Stick laden und iwconfig/ifconfig.
5.) Ich benutze Gnome und Anjuta.

Gruß
Seiten: [1] 2 3 ... 10

Einloggen