I’m currently evaluating some alternatives for network simulations with virtual machines in Linux.
So far, the best solution available would be Xen, but other good solutions would be OpenVZ and Linux VRF. Linux VRT provides separate networks profiles for processes, so that one process can have some interfaces, firewall rules and routing table, while other [...]
Archive for the 'Programming' Category
ccache
16Apr08My build system has been getting slower in the last weeks. I don’t know if the amount of dependencies in our project, the number of includes-in-headers or maybe the increasing number f third-party libraries has made “make” to go crazy, but, at the end, I can launch the “make debug” and go for a [...]
The Problem with select()
04Aug07select() is a relatively expensive operation. Well, it is never described as such in operating system courses, but it is in fact, specially when you design programs that handle a lot of file descriptors. Let’s see why.
Most servers work in the following way. When a new client connects and a session starts, the server establishes [...]
Implementing negotiations (3)
12Sep06A most radical alternative would be to forget the whole idea of listeners and to serialize everything. With this approach, the gap between the dispatcher and the session negotiator would be very narrow, and the system design would be made around the idea of a composed state machine where negotiators are decomposed in several layers.
Figure [...]
Implementing negotiations (2)
11Sep06While the state and observer patterns combination is a quite effective solution, the problem is now in the way listeners’s actions are perfomed.
- On one hand, listener’s action can be started asynchronously (usually as a new threads). This is a very convenient approach when there is low interaction between listeners, but it can increase the [...]


