Ostatnio zwróciło moją uwagę wywołanie systemowe sync(void). Zapisuje ono od razu wszystkie bufory czekające na zapisanie na dysku. Zresztą nieważne, bo osoba, która będzie w stanie mi odpowiedzieć na pytanie będzie też widziała jak działa sync() No więc przyszła mi do głowy pewna. Jeśli jakiś tam sobie użytkownik odpali program np. taki program:
To wtedy wszystkie dane oczekujące w buforach jądra na zapis na dysk będą zapisywane od razu. Spowodowało by to, że cały mechanizm buforowania poszedłby się j*bać prawda? Wie ktoś może czy wywołanie sync jest "wyposażone" w jakieś zabezpieczenia przed czymś takim? Przejrzałem kod tego wywołania i niektórych funkcji z nim związanych, ale nic nie znalazłem. Może coś przeoczyłem?Kod:global _start _start: mov eax, 36 int 0x80 ; wywołanie sync() jmp _start mov eax, 1 mov ebx, 0 int 0x80