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

Seiten: [1] 2 3 ... 8
1
Moin,
ich habe eine Idee für dich: Du kannst ja dein OS so schreiben, dass es deinen Raspberry Pi in eine Lisp-Machine verwandelt.

Also dein OS interpretiert Lisp-Code und führt ihn direkt aus. Dann kannst du deine Berechnungen oder was du auch immer machen willst schnell machen. Oder wenn du auch garnichts wirklich sinnvolles damit anfangen willst, so ein Lisp-Pi fände ich cool ;)

Viele Grüße
Micha


Edit: Ich habe mich jetzt nicht informiert, ob es soetwas schon gibt, aber es wäre trotzdem ein umsetzenswertes Projekt. War gerade so ein spontaner Einfall.
2
Softwareentwicklung / Re: GCC für OS compilieren
« am: 22. April 2015, 00:23 »
Nö, du kannst mit dem gcc auch programme ohne libc compilieren. Oder mit einer beliebigen.
Der gcc selber braucht natürlich auch eine lib, die er benutzt bzw. mit der er gebaut wird. Wichtig ist, dass diese mit deinem System funktioniert.
3
OS-Design / Re: Konsolen
« am: 07. April 2015, 16:28 »
Moin,
die programme öffnen ja nicht eine konsole.
Wenn du ein "terminal-programm" startest, wird standardmäßig darin bestimmt eine shell ausgeführt. Beim fork der shell wird dann das steuerterminal vererbt und das programm, das du aus der shell startest, läuft im gleichen terminal d.h. /dev/tty ist für die shell und dein programm gleich. Dein terminal-programm nimmt einfach den text, der dort steht und zeigt ihn evtl. in einem fenster an.
Wechselst du mit Ctrl+Alt+Fn zu einem "fullscreen"-terminal passiert da das gleiche. Dann ist das für das programm, dass du z.B. in tty2 startest, /dev/tty eine umleitung zu /dev/tty2.
Was ich nicht weiß, ob die tty's auch von einem programm bzw. von welchem programm angezeigt/ das umschalten verwaltet werden. (von init?)

4
OS-Design / Re: Konsolen
« am: 03. March 2015, 00:08 »
Moin,
eigentlich musst du den Programmen darüber nichts sagen. Bei linux schreibt ein Programm (ls z.B.) einfach auf seine stdout pipe. Was dann mit den Daten in der stdout pipe gemacht wird und ob es irgendwo angezeigt wird, regeln andere Programme. Das könnten ein Terminalprogramm und der Videotreiber übernehmen.
5
Offtopic / Re: Welche Sprache kann man nach C++ nehmen und GEM
« am: 13. November 2013, 20:38 »
X-Window-manager sollte bekannt sein. Ansonsten könntest du, wenn du lust und zeit hast, dein komplett eigenes system entwickeln. Das hat auch einen Reiz. Aber dafür braucht man eine sichere OS-Grundlage. (Um die es in diesem Forum hauptsächlich geht)
Wie und was du machst ist natürlich dir überlassen. Das buch von Andrew S. Tannenbaum ist auf jeden Fall eine gute Hilfe für das OS-Design
6
Offtopic / Re: Welche Sprache kann man nach C++ nehmen und GEM
« am: 13. November 2013, 20:09 »
Hi!
Im Prinzip kannst du jede Sprache verwenden (auch für den Kernel), solange du daraus deine Binärdateien erzeugen kannst, die du haben willst (z.b.: ELF)
Und ja du könntest GEM verwenden. Dazu musst du aber alle funktionen bzw. libs implementieren, die GEM braucht. Deshalb könnte es einfacher sein, eine eigene GUI zu schreiben, da man sich nicht in fremden Code einarbeiten muss und den ganzen Kram portieren. Also ich stell mir das schwierig vor, da das ganze für Windows geschrieben ist, aber ich weiß ja nicht, was du da für Ziele hast :)
7
Lowlevel-Coding / Re: FASM-Portierung
« am: 29. August 2013, 14:53 »
hat sich alles geklärt. danke
8
Lowlevel-Coding / Re: FASM-Portierung
« am: 28. August 2013, 19:07 »
Nein mit dem entrypoint meine ich die adresse, an die das programm gelinkt wird.
http://de.wikipedia.org/wiki/Einsprungspunkt
9
Lowlevel-Coding / Re: FASM-Portierung
« am: 28. August 2013, 16:25 »
ok danke, die probleme sind erstmal gelöst.
aber noch eine frage: wie kann ich im fasm code den entrypoint verstellen?
10
Lowlevel-Coding / FASM-Portierung
« am: 27. August 2013, 17:19 »
Moin.
ich bin grad dabei, fasm zu portieren. An sich läuft das ganze schon, aber ich hab da ein paar kleine probleme, die vielleicht durch den screenshot ganz deutlich werden.
Nach dem er den Versionsstring ausgegeben hat, assembliert er und gibt dann die etwas komische ausgabe. Zwischen jedem Buchstaben stehen noch andere Zeichen (unter anderem der dateiname). Wo die herkommen würde ich gern wissen. Wenn ich aber die eigentlichen Buchstaben entziffere, dann steht da folgendes:
3 passes, 157 bytes.Also das gleiche ergebnis wie unter Linux.

Zweites Problem: die neue-programm datei wird korrekt angelegt und beschrieben. (siehe den cat aufruf). Aber wenn ich versuche, hello auszuführen, hat es angeblich nicht die richtige magic.

 :?

Der code ist auf https://github.com/michamimosa/FruityOrange zu finden.
Ich hoffe, dass mir jemand da auf die sprünge helfen kann.
11
Softwareentwicklung / Re: OS ausführen/brennen/installieren?
« am: 05. August 2013, 11:18 »
Fehlt ja nur noch Wasser, Salz und Energie  :-D.

Wobei ich Energie noch mehr auf Thermische Energie spezialisieren würde ;) (wenn deine kartoffeln potentielle energie besitzen bringt dir das nicht wirklich was)

</sinnlospost>
12
Lowlevel-Coding / Re: unbeschreibbare phyische pages
« am: 03. August 2013, 12:07 »
Ich denke, das problem hat sich jetzt geklärt. ich hatte in pmm_alloc() einen fehler drin.
13
Lowlevel-Coding / Re: unbeschreibbare phyische pages
« am: 03. August 2013, 10:15 »
Also wenn ich hier: http://www.lowlevel.eu/wiki/VGA richtig gelesen habe, dann sind das 64000 bytes, also ~16 pages, die ich reservieren muss?
14
Lowlevel-Coding / unbeschreibbare phyische pages
« am: 02. August 2013, 21:51 »
Moin,
ich hab ein kleines problem, dass mein OS sehr schnell abstürtzt, weil es auf physiche adressen schreibt, die wahrscheinlich garnicht beschreibbar sind. Egal, was ich in solche pages schreibe, es steht immer 0xfffff… drin.
ich hab dazu mal einen test gemacht.
nach der initalisierung des kernels wird dieser code ausgeführt:
  while(1) {
    int *a = vmm_find(current_context, 1, VADDR_KERNEL_HEAP_START, VADDR_KERNEL_HEAP_END);
    vmm_map_page(current_context, a, pmm_alloc(), VMM_KERNEL_FLAGS);
    *a = 10;
    printf("a = 0x%x, %d\n", a, *a);
  }

Das ergebnis:
Er bleibt beim 254 mal pmm_alloc() hängen. Die erste adresse, bei der -1 statt 10 (die ich dort hingeschrieben habe) steht ist 0xA0000.
Ich bin mir eigentlich ziemlich sicher, dass ich den pmm richtig initalisiere. (aber wahrscheinlich doch nicht ;) )
Hier der code: https://github.com/michamimosa/FruityOrange/blob/master/kernel/mm/pmm.c

ich hoffe jemand kann mir helfen!
LG, micha
15
Lowlevel-Coding / Re: kbc hilfe
« am: 12. July 2013, 22:01 »
einen Switch bräuchtest du nicht. einfach ein Array, bei dem der Index der Einträge dem Keycode entspricht und das ASCII -zeichen als Wert drin steht.
16
Lowlevel-Coding / Re: kbc hilfe
« am: 12. July 2013, 18:04 »
Meine Frage war nur noch, muss ich den Keycode auch noch weiter verarbeiten,oder ist er das zeichen oder der modifikator den ich ausgeben b.z.w prüfen will?

Ja, wenn du die Scancodes nicht direkt in ASCII umwandelst, sondern erst in Keycodes. (was sinnvoller ist).
Der Scancode ist bloß eine Nummer, die die Tastatur sendet. Diesen wandelst du dann um in einen Keycode, welcher dazu dient, eine Taste (z.b.: 'A', 'B', F1) zu identifizieren. Diese keycodes kannst du dann (falls es überhaupt ein buchstabe ist) in ASCII-Zeichen umwandeln und ausgeben.
17
OS-Design / Re: Wo soll der Kernel hin im Ram
« am: 07. July 2013, 20:47 »
Dafür hast du ja den virtuellen speicher, um dir das selbst auszusuchen. Welche adresse das genau ist, kannst du dem gerät normalerweise über IO-Ports mitteilen. (Wenn du das gerät nicht sowieso schon nur über ports steuerst)
18
OS-Design / Re: Wo soll der Kernel hin im Ram
« am: 07. July 2013, 16:19 »
Bevor du in deine Init-Funktion springst muss du paging aktivieren und die ersten 4MB (am besten gleich in einer page) nach 3GB mappen. In dem Code, der vor der initalisierung deines eigentlichen Pagedirectory liegt, muss du um physische in virtuelle adressen zu wandeln, 0xc0000000 (3GB) addieren und um virtuelle in physische zu wandeln 0xc0000000 (3GB) abziehen.
19
OS-Design / Re: Wo soll der Kenel hin im Ram
« am: 07. July 2013, 12:59 »
Normalerweise ist es egal, wo dein Kernel physisch liegt. Deshalb würde ich ihn auch an 0x100000 lassen. Denn was ist, wenn ein Computer nur sehr wenig RAM hat?
In den 4GB virtuellen Speicher ist es dir überlassen, wo du deinen Kernel mapst.
http://www.lowlevel.eu/wiki/Teil_9_-_Paging
http://www.lowlevel.eu/wiki/Paging

Grundsätzlich gibt es da zwei Varianten: higherhalf & lowerhalf
Higherhalf bietet ein paar Vorteile, weil du dann problemlos Virtual 8086 Prozesse laufen lassen kannst, da diese immer in 0-1 MB laufen müssen.
http://www.lowlevel.eu/wiki/Virtual_8086_Mode
http://www.lowlevel.eu/wiki/Teil_9_-_Paging#Aufteilung_des_Adressraums
20
Das Wiki / Re: Forum-Chat
« am: 26. June 2013, 19:23 »
Dafür gibt es schon einen IRC channel: #lost auf irc.euirc.net
Seiten: [1] 2 3 ... 8

Einloggen