Xorg
Some documentation was asked in the xorg maillist, I recommend reading:
xc/programs/Xserver/hw/xfree86/doc/DESIGN
hardcopy/Xserver/ddx.PS.gz
It's a pity there is not updated documentation about X internals like the out-of-print X/Xlib vols internal ones.
And there are more advances for the August 15th plan release. There will be included the new extensions C/D/F and Debrix changes like the use of autotools instead using imake. It's cool, in some months we will look more eye-candy features in the desktop like transparencies and shadows.
Another features like the new MMX optimizations in gcc 3.4 intrinsics affect in performance rendering. For example here is a benchmark rendering a paragraph of component alpha text to a pixmap:
Unmodified X server and the pixmap in system RAM:
[ssp@localhost x]$ ./a.out
total time: 41.394618
average rect time: 0.683200
worst rect: 9
average glyph time: 3.550500
with the MMX optimizations:
[ssp@localhost x]$ ./a.out
total time: 22.972553
average rect time: 0.677900
worst rect: 9
average glyph time: 1.692000
In addition there are some applications beginning to support the new extensions like Vino. I want to have thinks like expocity and minimizing effects like 'aladino' in macosx working in linux.
Some interesting tools
I have been looking more tools to follow code like egypt' or 'gengraph'.
These both utilities give the call graphs from sources.
You can find these on following links:
egypt: http://www.gson.org/egypt/
gengraph: http://www.csn.ul.ie/~mel/projects/codeviz/
In console mode, you can use cscope to travel through your code, in addition frecuently used ctags/etags.
Samba
Lastly I have been looking the Samba 3 and I have done some little modules with Samba VFS. In examples/VFS you can find some skeleton modules filtering operations like open/read/write/connect/disconnect/etc, all the provided VFS file operations from the Samba VFS layer.
In the following days I will port the Samba modules to 2.2.x, so it can be useful in other Samba versions before 3.0. Anyway is so interesting, it wraps each operation in the smbd with operations like SMB_VFS_OPEN, that are really the operations you are intercepting and making the SMB_VFS_NEXT_OPEN.
I had troubles registering close operations but now is fixed. Actually smbd has a close.c:fd_close() that calls the locking poxis methods to close correctly a file and do the corresponding SMB_VFS_CLOSE, for a moment I didn't see the VFS wrapper in the code.
And a recent exploit in Samba in base64 encoding was published:
if (*s == '=') n -= 1;
/* fix up length */
decoded.length = n;
memcpy(s, decoded.data, decoded.length);
if n == 0 before it is decremented, then it will wrap around to ~0 and the memcpy will eventually SEGFAULT.
Zettabyte File System
http://www.nmt.edu/~val/
http://ohm.hpl.hp.com/self-manage03/Finals/henson-self-tune.pdf
http://tinyurl.com/3a3yq
Arandano
A few days ago David Waite and myself began the project 'Arandano'.
Arandano is a bittorrent library written in C# that implement the bittorrent p2p protocol, now is in the beginning stages so we are only looking about the FileFormat and tracker implementation.
More details about the protocol:
http://bitconjurer.org/BitTorrent/protocol.html