[#1] memory protection
tak się owczo zastanawialem (podpierając się wątkiem na aw.net), że można by było wydzielić obszar (np górną połówkę pamięci), zrobić AllocMemaNG() który działa z ochroną pamięci na tym jednym obszarze pamięci, i programista jak chce to z niego korzysta mając pewność że te konkretne dane są chronione, a dla struktur systemowych pozostawić stary system bez ochrony. W między czasie zmieniać, udoskonalać tak api by coraz więcej rzeczy szło do obszaru chronionego. Oczywscie mankamentem obecnie była by strata na pamięci (np 512 dzielone na 256 chronione i 256 niechronione) ale dość dużo nowych projektów mosowych można by było zmienić by korzystały z MP bo są źródła

co Wy na to i czy mylę się czy się nie mylę??

[#2] Re: memory protection

@rzookol, post #1

Pomysł jest bardzo dobry, bardzo przydałby się np. w sterownikach systemu plików, ale rzeczywistość jest inna. Już parę razy rozmawiałem o tym z członkami MOSTeamu i wygląda to mniej więcej tak:
1. w MOSie 1.4.x się nie da "bo nie"
2. w MOSie 1.5 dało by się, ale osobom więdzącym jak to zrobić "się nie chce, bo to i tak nie ma sensu".

[#3] Re: memory protection

@rzookol, post #1

No to teraz zastanów się przed czym te nowe obszary pamięci byłyby chronione... Cały sens ochrony pamięci polega na ochronie przed czytaniem/zapisem przez inne procesy. Ale żeby to działało, każdy proces musi mieć przydzieloną własną, wirtualną przestrzeń adresową, wtedy układ MMU ma szansę wykonywać swoją robotę. Musiałbyś więc mieć oprócz AllocMemNG() coś w rodzaju CreateProcessNG(), co więcej kernel musiałby być praktycznie napisany od zera, żeby obsługiwać oba rodzaje procesów. Do tego musiałbyś przepisać wszystko, co wysyła wiadomości do procesów, czyli np. Intuition, Commodities, ARexxa i parę innych rzeczy. Więc nie bierz ofczych rozważań z AW.net poważnie, tam są gównie specjaliści od rozważań a nie od programowania...

[#4] Re: memory protection

@Grzegorz Kraszewski, post #3

Powraca problem QBoxa....

[#5] Re: memory protection

@Marek Szyprowski, post #2

bo to i tak nie ma sensu

Bo nie ma. Jak MMU ma rozróżniać procesy, jeżeli de facto są one wszystkie wątkami jednego procesu, to jest ABoxa? W tej sytuacji co najwyżej mógłbyś jakiś fragment pamięci zaznaczyć jako tylko do odczytu ale dla wszystkich wątków (w tym Twojego).
[#6] Re: memory protection

@Grzegorz Kraszewski, post #5

w sumie się w to nie wgryzlem bo po piwkach wrócilem do domu wczoraj, zobaczyłem temat na aw.net i zacząłem kombinować :)


btw. a nie da się żeby do tego obszaru, który bym sobie oznaczył jako tylko do odczytu był jakiś interfejs pozwalający procesowi (wątkowi aboxa) się do niego dostać by mógł zapisywać

[#7] Re: memory protection

@rzookol, post #6

W sumie jedynym rozsadnym krokiem byloby powstanie Qboxa.

[#8] Re: memory protection

@rzookol, post #6

Dałoby się, ale wtedy mógłbyś tam zapisywać tylko jawnie, powiedzmy przez jakieś CopyToProtectedMem() albo WriteLongToProtectedMem(). Ale tak musiałby robić nie tylko każdy jeden task, tak musiałby robić nawet Twój task. Poza tym to jest tylko zabezpieczenie pewnych danych przed przypadkowym uszkodzeniem przez coś co jest źle napisane i sieje po pamięci. Natomiast nie jest to żadne zabezpieczenie przed celowym nadpisaniem pamięci przez inny task.
[#9] Re: memory protection

@Grzegorz Kraszewski, post #8

Pozostaje nie pisać rzeczy, które sieją po pamięci.

[#10] Re: memory protection

@R-Tea, post #9

Albo siać po polu jak rolnicy, a nie po pamięci ...

[#11] Re: memory protection

@R-Tea, post #9

A myślisz że programy siejące po pamięci robią to specjalnie, bo tak chcieli ich autorzy? ;)

[#12] Re: memory protection

@MinisterQ, post #11

Można sobie wyobrazić kategorię programów, które robią to specjalnie...
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem