[OSDev]Pamięć fizyczna

0

Witam.
Pisze OS'a i napotkałem sie na taki problem:
W pewnym momencie kernel alokuje strone dla aplikacji (stos), mapuje ją (poprawnie) i teraz:

  1. Na bochs'u wszystko jest OK
  2. Na moim kompie: page fault przy probie zapisu do tej strony
  3. Na innym kompie: page fault przy probie zapisu do tej strony
  4. Na qemu: wszytsko ok
  5. Na VMWare: page fault ale w innym miejscu
  6. Na starym kompie page fault ale w innym miejscu

Teraz mnie to zastatanawia: czy w tym miejscu może być jakaś dziura w pamięci danego kompa?? Jak tak to jak sporządzić mape tych "dziur" Co wy o tym sądzicie???
W sytuacji 2 i 3 kompy mają ten sam chipset płyty gł. (nForce 2)

*EDIT: kody OS'a mam na domowym serwerze: http:*cvs.milyges.homelinux.net komp nie zawsze jest wlaczony.

0

Raczej ciezko bedzie cos tutaj doradzic, po prostu musisz wyklepac tyle kodu debugujacego ile sie da (moze nawet warto bedzie zrzucic pamiec, wydrukowac i poswiecic pol dnia na analize)

BTWm ty dalej w tym siedzisz? OSy to ogolnie fajna sprawa o ile robi sie cos nowatorskiego - ja np ostatnio mialem w glowie projekt systemu ktorego oprogramowanie bedzie kodem zarzadzanym (cos jak Singularity), bardzo fajna sprawa ale brak mi czasu na cos takiego :)

0

Siedze, poza tym bugiem jajko praktycznie gotowe, napisałem już pare driverów, A co do kodu debującego to mialem zrzucane page dir i pgtaby i wsyztsko jest OK. Wartośc są takie same w Bochs'u, na prawdziwym PC'cie i na VMWare. I skąd sie bierze non-present page write skoro tam jest zamapowany 0x00500000, pamięci w kompie mam więcej nic 4MB :] A jeszcze mnie dziwi ze na innej plycie głównej sypie się w innym miejscu :/
Dletego stawiam na jakąś "dziurę" w RAM'ie.
Acha, na prawdziwym PC'cie sam kernel (bez modułów) nie sypie się :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1