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

Seiten: 1 [2] 3 4 ... 15
21
Das dachte ich auch und zumindest erkenne ich auch die PCI-Geräte, die sich auf einem Bus befinden, der von einer PCI-PCI-Bridge verwaltet wird. Also denke ich hat das andere Ursachen.

Kann das sein, dass die zusätzliche Karte den onboard Controller "verdrängt"?
Andererseits auf einem anderen Computer wird der Controller auch nicht gefunden und dort befinden sich keine zusätzlichen Steckkarten ausser der Grafikkarte.
22
Wenn ich es auf IDE umstelle erkennt mein OS ein PCI-Gerät mehr, aber es ist kein Massenspeichergerät mehr. Ich weiss nicht genau, was es zusätzlich erkennt.

Es also in beiden Modi nicht.

Edit: Das zusätzliche PCI-Gerät das gesehen wird wenn ich auf IDE umschalte ist eine zusätzliche Funktion bei einem Gerät der Klasse 6 und der Unterklasse 1 also eine PCI-ISA-Bridge.
23
Hallo zusammen,
ich habe seit langem mal wieder mein OS auf realer Hardware laufen lassen. Dabei habe ich bemerkt, dass mein OS nicht alle PCI-Geräte findet. Es findet nämlich den/die S-ATA-Controller des Motherboards nicht. Mein System hat zusätzlich noch eine S-ATA/IDE PCIe Karte eingebaut, da meine CD-ROM Laufwerke über IDE angeschlossen sind, aber das Motherboard keine entsprechenden Anschlüsse besitzt. Diese S-ATA Karte wird erkannt. Wieso werden den die anderen S-ATA Controller nicht erkannt?
Insgesamt erkennt mein OS 21 PCI Geräte darunter fallen, Grafikkarte, Netzwerkkarte, PCI-PCI Bridges, die S-ATA Erweiterungskarte, USB2+3 und PCI-ISA Bridges.
Kann das sein, dass sich die Controller hinter den PCI-ISA Bridges verstecken? Wie und für was verwendet man die?

Ich hoffe jemand kann meine Fragen beantworten.
24
Offtopic / Rutsch ins 2016
« am: 31. December 2015, 14:25 »
Ichwünsche allen einen guten Rutsch ins Jahr 2016.
25
Offtopic / Re: Frohe Weihnacht
« am: 24. December 2015, 17:22 »
Ich wünsche ebenfalls ein frohes Fest und noch alles Gute weiterhin.
26
Das Wiki / Re: Das Wiki und https
« am: 09. December 2015, 23:41 »
Der Effekt ist reproduzierbar, wenn man auf "zufällige Seite" klickt.
27
Das Wiki / Re: Das Wiki und https
« am: 09. December 2015, 16:13 »
Für den Server ist Toni (FreakyPenguin) zuständig, siehe auch https://www.lowlevel.eu/wiki/Lowlevel:Impressum (passenderweise gleich mal ein s in den Link reingebastelt ;))
Danke für den Hinweis.

Ich weiss es eben auch nicht woher dieses :80 kommt. Es ist mir auch schon passiert, dass ich in der Suche etwas eingeben habe und dann war das :80 da.
28
Das Wiki / Das Wiki und https
« am: 09. December 2015, 09:52 »
Hallo zusammen,
ich habe vor kurzem bemerkt, dass das lowlevel-Wiki und das Forum auch über verschlüsseltes http (https) erreichbar ist. Jetzt ist aber immer das Problem, dass es manchmal passiert, dass man immer auf die Addresse Umgeleitet wird, in der der Port 80 hinter der Domain angeben wird (z.B.: https://www.lowlevel.eu:80/wiki/Ausgabe_7), was natürlich nicht funktioniert.
Ausserdem ist es so, dass wenn man https://lowlevel.eu eingibt wird man auf die unverschlüsselte Seite umgeleitet.
Sowieso wäre ich dafür, dass das Lowlevel-Wiki und Lowlevel-Forum nur über https erreichbar sein sollte.

Was denkt ihr dazu?

P.S.: Wer ist eigentlich für die Serververwaltung zuständig?
29
Bit 0 sagt aus, dass die Page aktiv ist, denn das Bit ist gesetzt. Allerdings ist mir aufgefallen, dass dein Programm versucht auf eine virtuelle Adresse zuzugreifen, auf welche der Userspace keine Berechtigungen hat (das Userflag in der Pagetable ist nicht gesetzt). Vielleicht solltest du da mal schauen, ob du den Stack des Programms richtig initialisierst.
30
Naja ein General Protection Fault kann viele Ursachen haben. Was auf jeden Fall schon mal helfen würde wäre der Errorcode, den die CPU auf den Stack schreibt.
Was ich allerdings bei dir Vermute ist, dass du das Limit und/oder die Basis der Stacksegmentsregister falsch gesetzt hast.
31
tyndur / Bugs in Programmen von Tyndur
« am: 17. November 2015, 09:29 »
Hallo,
ich habe mal eine der neueren Nightlies (16.11.2015) von Tyndur in VMWare Workstation 12 ausprobiert (die Live-Version, d.h. das iso).
Es sind bei mir dabei verschiedene Bugs aufgetaucht. Einer davon ist beim Booten zu sehen, wo bei mir die Fehlermeldung auftritt "Fehler beim Ausführen von 'config/keyboard.lsh'. Eine weitere Fehlermeldung kommt vom Programm setup. Wenn ich in setup auf den Eintrag "Netzwerk" gehe, dann bekomme ich folgenden Fehler:
Runtime error 2  at $40001516
$40001516
$0251bc00
Das selber passiert wenn ich bei den LPT-Quellen irgendein Eintrag auswähle:
Runtime error 2 at $40000AB5
$40000AB5
$0251FC00
Das Programm "pong" macht glaube ich auch nicht das was es soll. Man kann es starten und dann passiert einfach gar nichts mehr. Ist das normal?

Ich hoffe ich konnte euch ein bisschen Helfen.
32
Lowlevel-Coding / Re: anfängerfrage: problem mit tutorial
« am: 06. November 2015, 17:36 »
Hallo OdinX,
ich vermute einer der Fehler liegt an dieser Stelle:
for (i = 0; i < 256; i++) {
       createIDTEntry(i, &interrupt_handler_1);
}
Du musst nämlich die Addresse vom Assembler Interrupthandler hineinschreiben und nicht den C-Handler das kann böse enden.

Oh, da gab es wohl jemand, der schneller war als ich :-o.
33
Softwareentwicklung / Filedeskriptoren und Buffers
« am: 03. November 2015, 23:44 »
Hallo zusammen,

Da jedes Unterprogramm die Filedeskriptoren des Vaterprozesses erbt, was passiert denn, wenn jetzt beide Prozesse gleichzeitig in die gleiche Datei schreiben (Z.B. stdin)?

Ich dachte nämlich, dass ich Dateien einfach in den virtuellen Addressraum "mounte" (mit Shared Memory), so dass ich das auch gleich als Buffer verwenden würde. Ist das möglich oder gibt es da bestimmte Regeln?
34
OS-Design / Re: Streamids
« am: 18. October 2015, 17:04 »
Ich danke euch für die Antwort und für die interressante Diskussion. Ich habe eigentlich schon vor irgendwann mal den POSIX-Standard zu übernehmen, also werde ich das von Anfang an die FD immer von vorne vergeben obwohl ich ehrlich gesagt noch nicht genau weiss wie ich das implementiere.
35
OS-Design / Streamids
« am: 11. October 2015, 22:32 »
Hallo zusammen,
mir ist aufgefallen, das in allen mir bekannten Systemen (Windows, Mac und Linux) die Stream IDs von jedem Prozess immer von vorne vergeben werden. D.h. wenn ein Prozess eine Datei öffnet, dann bekommt er die ID 3 für den Filedescriptor. Wenn nun ein 2. Prozess eine andere (oder die selbe) Datei öffnet, bekommt er für diese auch wieder die ID 3 zurück.
Ist das irgendwo definiert, dass das so sein soll/muss oder machen diese Systeme das einfach?
Ich gebe nämlich jedem Stream eine andere ID, so dass die IDs eines Prozesses nicht immer mit der 3 anfangen. Ist das ein Sicherheitsrisiko?
36
Softwareentwicklung / Re: ld und hohe Startadresse
« am: 29. September 2015, 11:09 »
Ah. Ok jetzt verstehe ich das. Mit -mcmodel=large funktioniert es auch. Welches der beiden ist denn zu bevorzugen?
37
Softwareentwicklung / ld und hohe Startadresse
« am: 19. September 2015, 19:38 »
Hallo,
ich habe mein Speicher so konzipiert, dass die unteren 512GiB und die oberen 512GiB Kernelspace sind. Der obere Speicherbereich wird allerdings nur zur Verwaltung der Pagingtabellen verwendet. Der Userspace sitzt dazwischen. Programme werden an die Adresse 0x8000000000 geladen und dann ausgeführt. Jetzt habe ich das Problem, dass mir ld immer folgende Fehlermeldung ausgibt:
main.c:(.text+0x30): relocation truncated to fit: R_X86_64_32 against `.rodata'
Es wurde zwar schon hier vermutet, dass 0x8000000000 nicht in 32-bit passt und deshalb diese Meldung ausgegeben wird, aber das macht für mich keinen Sinn, denn diese Meldung wird ja nur für Symbole, also (globale) Variablen oder Funktionen, ausgegeben. Diese werden ja relativ addressiert. Aber eigentlich sollte diese relative Addresse in 32-bit reinpassen, denn das Programm ist sicher kleiner als 4 GiB.

Meine aktuelle Konfiguration für mein Cross-gcc seht ihr hier.

Ich hoffe ihr wisst eine Antwort auf mein Problem.
38
Softwareentwicklung / Re: GCC für OS compilieren
« am: 26. July 2015, 23:48 »
-fpic könnte aber evtl auch helfen.
So funktioniert es. Es gibt auf jeden Fall keine Fehlermeldung mehr. Wo muss ich das Einstellen, dass der gcc dieses Flag automatisch einsetzt?

Danke für eure Hilfe.
39
Softwareentwicklung / Re: GCC für OS compilieren
« am: 26. July 2015, 02:54 »
Ich dachte das muss so sein. Ich habe folgende Anleitung verwendet:
http://wiki.osdev.org/OS_Specific_Toolchain
40
Softwareentwicklung / Re: GCC für OS compilieren
« am: 26. July 2015, 00:26 »
Hilft ein '-m64' ?
Nein.

Also meine Emulparams/elf_x86_64_youros.em sieht so aus:
. ${srcdir}/emulparams/elf_x86_64.sh
TEXT_START_ADDR=0x8000000000
Und die elf_x86_64.sh sieht so aus:
. ${srcdir}/emulparams/plt_unwind.sh
SCRIPT_NAME=elf
ELFSIZE=64
OUTPUT_FORMAT="elf64-x86-64"
NO_REL_RELOCS=yes
TEXT_START_ADDR=0x400000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ARCH="i386:x86-64"
MACHINE=
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
LARGE_SECTIONS=yes
LARGE_BSS_AFTER_BSS=
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
IREL_IN_PLT=
# Reuse TINY_READONLY_SECTION which is placed right after .plt section.
TINY_READONLY_SECTION=".plt.bnd      ${RELOCATING-0} : { *(.plt.bnd) }"

if [ "x${host}" = "x${target}" ]; then
  case " $EMULATION_LIBPATH " in
    *" ${EMULATION_NAME} "*)
      NATIVE=yes
  esac
fi

# Linux/Solaris modify the default library search path to first include
# a 64-bit specific directory.
case "$target" in
  x86_64*-linux*|i[3-7]86-*-linux-*)
    case "$EMULATION_NAME" in
      *64*)
        LIBPATH_SUFFIX=64
        BNDPLT=yes
        ;;
    esac
    ;;
  *-*-solaris2*)
    LIBPATH_SUFFIX=/amd64
    ELF_INTERPRETER_NAME=\"/lib/amd64/ld.so.1\"
  ;;
esac

Alle Objekt Dateien sind 64-bit.

Produziert youros-gcc 64-Bit elf (beim compiliren / linken)?
Ich vermute eher, dass die Sektionen zu weit ausseinander liegen, so dass eine 32-bit relative Addresse nicht mehr ausreicht.
Seiten: 1 [2] 3 4 ... 15

Einloggen