Uczę się języka asemblerowego Linuksa i natknąłem się na interesującą różnicę między BSD i Linuksem. W Uniksie, przed wywołaniem przerwania 80h, należy przesłać parametry syscall na stosie; w przeciwieństwie do tego, w Linuksie przekazujesz swoje parametry w rejestrach.Dlaczego Linux nie stosuje się do konwencji uniksowej?
Czy ktoś wie, jakie było uzasadnienie dla deweloperów Linuksa w rejestrach zamiast stosu?
Uwaga: oto dobra strona opisująca tę różnicę: FreeBSD Developer's Handbook:System Calls bez wyjaśnienia racjonalnego uzasadnienia.
brak jasnego pomysłu, ale może jest to związane z szybkością wykonania i dostępności lokalizacji? poczeka, aż ktoś to wyjaśni. –
Dlaczego nazywacie to, co BSD robi "Unixem"? – unwind
@unwind - hiperłącze, które zawarłem w moim pytaniu sugeruje, że BSD podąża za konwencjami Unix dla syscalls, a Linux nie. Czy jest inaczej? – clay