Karol \"Zal\" Zalewski
6/12/2007 7:57:00 PM
Witam serdecznie!
Na wstepie chcia3bym zaznaczya, i? pytanie (jest to cel przewodni tej
wiadomo?ci - patrz czwarty akapit) moje kieruje do osób, które maj? ju?
do?wiadczenie w pisaniu systemów operacyjnych w oparciu o architekture
IA-32e.
Zaczne zatem od pocz?tku. Jaki? czas temu rozpocz?3em z grup? kolegów ze
studiów prace nad rozwojem prostego 16b systemu operacyjnego - w ramach
zajea z "Oprogramowania systemowego". System ten pisany w zupe3no?ci w
Asemblerze, przy wykorzystaniu asemblera TASM, a uruchamiany z poziomu
DOS (jako plik .exe) nie by3 trudny do modyfikacji. Posiada3 ju?
segmentacje, zarz?dzanie przerwaniami, przej?cie do trybu chronionego
itp. itd. Wszystko oprócz stronicowania. Niemniej jednak przekszta3cenie
ca3o?ci tak, aby pracowa3a w 32b nie stanowi3o wielkiego problemu.
K3opoty rozpocze3y sie tu? po tym, jak postanowili?my kontynuowaa
projekt w celu uzyskania prostego systemu 64b. Archaiczny asembler by3 i
nadal jest tutaj pewnym utrudnieniem, ale nie to jest najwa?niejsze.
Pos3uguj?c sie dokumentacj? Intela (m.in. IA-32 Intel Architecture
Software Developer's Manual Volume 3A - sekcja 9.8.5) doszli?my ju? do
momentu w którym to posiadamy utworzone struktury wymagane przez
stronicowanie w trybie 64b i jeste?my w trakcie procedury, która
umo?liwi przej?cie do trybu kompatybilno?ci z kodem 32b. Jeste?my
?wiadomi tego, i? u?yta w trybie 32b segmentacja nie jest ju?
obs3ugiwana - na rzecz stronicowania. W ka?dym b?d? razie ka?da próba
implementacji piecioetapowego (wspomniana wy?ej sekcja 9.8.5) procesu
przej?cia do trybu kompatybilno?ci konczy sie restartem tu? po wpisaniu
do CR0.PG jedynki (aktywacja stronicowania).
Po tym d3ugim opisie mam ju? tylko krótkie pytanie. Czy mo?liwym jest,
aby problemem by3o przej?cie z segmentacji w trybie 32b do stronicowania
w trybie kompatybilno?ci? Czy wymagane jest zaimplementowanie
stronicowania w trybie 32b tylko po to, aby móc nastepnie przej?a do
stronicowania w trybie kompatybilno?ci?
Bede wdzieczny za wszelkiego rodzaju sugestie. Jestem ?wiadom tego, i?
to co napisa3em mo?e bya dla wielu zbyt d3ugie, nu??ce i niezrozumia3e.
Niemniej jednak nadal licze na to, i? kto? (korzystaj?c ze swojego
do?wiadczenia) bedzie w stanie mi udzielia odpowiedzi. Nawet je?eli
odpowied? brzmia3aby mniej/wiecej w ten sposób: "nie wiem, o co ci
chodzi, ale zabrali?cie sie od tego od z3ej strony" :D
Pozdrawiam,
Karol "Zal" Zalewski
PS. Przegl?da3em pare grup dyskusyjnych i mam nadzieje, i? *trafi3em* w
t? odpowiedni?. Z góry przepraszam, je?eli nie trafi3em. Mam równie?
nadzieje, i? kodowaniem i d3ugo?ci? linii nikogo nie pora?e ;] Jeszcze
nie przywyk3em do zasad, którymi rz?dzi sie Usenet.