- A hozzászóláshoz be kell jelentkezni
- 2982 megtekintés
Hozzászólások
Nem kotekedeskeppen, de erdekes tag ez a Theo, minden interview-ban magabol kikelve mondja el hogy o _soha_ de _soha_ nem hasznalt Linuxot, meg ot az nem erdekli stb. Erre ebben az emlitett leveleben: "Our malloc implementation is a lot more resistant (than Linux) to" ...
Ez is jo: "I would bet money that the X fb* bug has crashed Linux (and other) X servers before."
Namost ha Linuxhoz hasonlitja az OpenBSD dolgait, akkor megis erdekli a dolog valamennyire? Jo, igaz, ahhoz nem kell Linuxot hasznalni hogy megnezze a forraskodjat :) Masreszt meg Linuxnak szigoruan veve nincs is malloc implementacioja, tekintve hogy a legtobb GNU/Linux disztrib GNU libc-t hasznal es abban a malloc ...
Most ez nem OpenBSD flame akart lenni (en is hasznalom) hanem inkabb Theo flame :)
- A hozzászóláshoz be kell jelentkezni
hunger wrote:
> Nagyon örülök, hogy végre a malloc is mmap-et használ, mert így végre
> normálisabb heap randomizálás került OpenBSD-be. Az eddigi 0-4 bit entrópia
> helyett 10-16 bit körül lehet, meg kellene pontosan mérni.
>
:)
- A hozzászóláshoz be kell jelentkezni
Praktikusan tágranyílt szemekkel bambulok...
Mert ugye nem arról van szó, hogy összeomlanak a user-space szoftverek "csak úgy", hanem ez a malloc() implementáció szimplán azonnali SIGSEGV-el reagál az olyan disznóságokra, mint a memóriaterületen kívüli írás-olvasás illetve a felszabadítás utáni memóriahozzáférés, amely ténykedések ugye defaultból tiltva vannak a malloc() és free() manpage-ekben, de néhány programozó csak él ezekkel a gusztustalan módszerekkel.
Ráadásul az X-ben is előbányásztak így 3 ilyen hibát, az egyik már 10 év óta csücsült benn az Xlib-ben...
Úgyhogy nem történt semmi, csak az eddigi trehány munkák most bosszulják meg magukat. tartok attól, ha ezt az implementációt portolnák Linux alá is, ugyanígy elkezdenének összeomlani szoftverek, mert a programozójuk fifikásnak képzelte magát. Hát nem az volt.:-)))
- A hozzászóláshoz be kell jelentkezni
Rosszul tudom, hogy a kernel malloc, meg a libc malloc az két dolog? :)
- A hozzászóláshoz be kell jelentkezni
Kernel malloc az nem tudom mi, ilyen syscall tudtommal nincs, legalabbis Linux kernelben. Olyan pl van hogy kmalloc() es hasonlok de semmi koze a user space-bol a libc szolgaltatasakent elerheto malloc()-hoz, max a nevuk hasonlo, de teljesen mas feladatra valo. A GNU libc altal implementalt malloc() fuggveny megvalostiasaban csak a brk/sbrk syscall-on erintkezik a kernellel, ami a process adat szegmensenek meretet allitja amugy. A GNU libc malloc() implementaciojaban mondjuk nem tudom azota volt-e valtozas, utoljara kb libc5 kornyeken neztem, de maga a Linux kernel tuti nem fog olyat csinalni hogy malloc syscall, I guess ilyen az OpenBSD-nek sincs, itt a cikkben is arrol volt szo hogy az OpenBSD libc-je az mmap-ot hasznalja fel. Vagy en ertettem rosszul?
- A hozzászóláshoz be kell jelentkezni
amennyire én tudom a glibc (ie user-space-beli) malloc() amiről szó van ezt használja: http://gee.cs.oswego.edu/dl/html/malloc.html (lásd malloc/malloc.c), ennek értelmében pedig a brk()/sbrk() syscallok akkor kerülnek felhasználásra, ha egy adott méretnél kisebb helyet malloc()-olsz. ha nagyobbat, akkor az mmap() kerül meghívásra (a (belinkelt) doksi értelmében egyébként ez jóval lassabb).
a cikk értelmében egyébként azt hiszem arról beszél, hogy nem csak user-space de kernel-spacebeli változásokat is végrehajtottak.
- A hozzászóláshoz be kell jelentkezni
a glibc-t természetesen a linuxos malloc() implementációra értettem. obsd féle libc-s malloc() nem tudom mit használ, bár theo írásának értelmében a brk()/sbrk()-t eddig, innentől pedig az mmap()-ot.
kíváncsi lennék egyébként a linuxon használt glibc-ben fognak e hasonlót implementálni. avval, hogy "törjön a gány kód" pedig egyetértek, még akkor is ha akkora projektekről van szó mint az X.
- A hozzászóláshoz be kell jelentkezni
Nagyon örülök, hogy végre a malloc is mmap-et használ, mert így végre normálisabb heap randomizálás került OpenBSD-be. Az eddigi 0-4 bit entrópia helyett 10-16 bit körül lehet, meg kellene pontosan mérni.
- A hozzászóláshoz be kell jelentkezni
Jo, de en nem is ezt a kerdest vitattam, hanem azt hogy mi az a "kernel malloc" amitre reagaltam hogy olyan nincs.
"Rosszul tudom, hogy a kernel malloc, meg a libc malloc az két dolog? :)". Mi az a kernel malloc? Erre mondtam hogy malloc() az Linux eseteben a libc-ben van termeszetesen implementalva, a kernelnek nincs olyan syscall-ja hogy malloc ...
- A hozzászóláshoz be kell jelentkezni