man syscalls

Átfutottam a syscallokat, hát mit mondjak nem vagyok túlzottan megelégde a man pagekkel amik a rendszeremben vannak.
Van olyan (új) rendszer hivás amihez a neten sincs. És van olyan amihez RedHat csomagban vagy a http://linux.die.net/ -en tudok hozzáférni, mert a rendszerembe nincs. Egyszer szoltam a gentoo arcoknak, hogy tegyék bele, de átirányítottak manpages eredeti karbantartojához. Na majd zaklatom valamikor.

RedHat man-ok elvileg GPL kötelesen együtt van terjesztve, azt gondolom bele lehet venni. De vajon http://linux.die.net/ -röl át vehetek -e oldalakat és tovább adhatom ?

BSD terjesztésekben kicsit jobban vannak dokumentálva (man) a rendszerközeli dolgok. (pl. kernel modulok is)

Elég sok újítás van 2.6 -ban főleg a végefelé.
2.6.23 stablét már várom :)

Volt pár érdekeség, kiváncsi lennék mennyire használják a *advise* tipusú syscallokat a komolyabb alkalmazások (pl. RDBMS -ek), és hogy mennyit számítana a tesztek végeredményébe.

syscalls man-ból gyorsan txt lett aztán kiszedtem belőle a sallangot, vim-be be shift+K val így már egész jól lehetett nézni a syscallokat.

Milyen ajánlott könyvek vannak Linux/Unix/POSIX syscalls,ioctls,ipc,rpc,ABI,elf,threads,i/o jelegű témákról ?

ioctl_list - nincs valami jól öszeszedet oldal róluk, mint anno BIOS hívásokról készültek ? Eléggé szét van szórva az infó a neten, és listán csak a gyakoribbak vannak.

Hozzászólások

welcome to the linux :)

--
Bow down and admit defeat. | Old, weak and obsolete.

Hali!
Lehet, hogy az "info"-ban frissebb dolgok vannak, mivel a libc doksi része.

Kérdés hogy a die-s arcok mivel terjesztik a manokat.

Ha a kérdéses piroskalapos manlapokhoz adsz linket, lehet csinálok rá ebuildet.


asmlinkage long sys_getcpu(unsigned __user *cpup, unsigned __user *nodep,
                           struct getcpu_cache __user *cache)
{
        int err = 0;
        int cpu = raw_smp_processor_id();
        if (cpup)
                err |= put_user(cpu, cpup);
        if (nodep)
                err |= put_user(cpu_to_node(cpu), nodep);
        if (cache) {
                /*
                 * The cache is not needed for this implementation,
                 * but make sure user programs pass something
                 * valid. vsyscall implementations can instead make
                 * good use of the cache. Only use t0 and t1 because
                 * these are available in both 32bit and 64bit ABI (no
                 * need for a compat_getcpu). 32bit has enough
                 * padding
                 */
                unsigned long t0, t1;
                get_user(t0, &cache->blob[0]);
                get_user(t1, &cache->blob[1]);
                t0++;
                t1++;
                put_user(t0, &cache->blob[0]);
                put_user(t1, &cache->blob[1]);
        }
        return err ? -EFAULT : 0;
}

csak mindig meg kell keresni, ami kell. ez az egyik legnagyobb hátránya a linuxnak a bsd-kel szemben, nincs rendesen dokumentálva.

Nekem mindig igazam van, ha nem, akkor nincs igazam, szoval megint igazam van hogy nincs igazam.
debian 4.0 - linux-2.6.22.6-pancs1-wifi2 - 2.6.22.6 kernel madwifivel itt