README: Advertise need of tcpdump and gdb

They are needed by trace.py, which is now run as part of 'make check'
harness.

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
bsd: Commit original BSD random files in their unmodified state

Glauber says:
I would advise commiting the original files from BSD in their unmodified state
(don't include them in the build), and in a different patch put on the changes
that OSv needs.
It has proven useful more than once for me in conjunction with git blame to
determine whether a snippet was already in the BSD code or was ours.

Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
bsd: crypto: Port rijndael to OSv

rijndael encryption algorithm is a dependency for porting the
random infrastructure from FreeBSD, so let's add it into our
BSD tree.

Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
bsd: Add snippets of code needed by random infrastructure

Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
bsd: Port random infrastructure from FreeBSD

Simply put, FreeBSD-specific code such as SYSCTL API, etc, was disabled.
Besides, I had gone throughout the code, and made sure that the overall
semantics remained the same on OSv.

Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
drivers: Change random to use Yarrow CPRNG and add urandom as an alias

This patch changes the device behind /dev/random to start using FreeBSD Yarrow
CPRNG algorithm. Similar to FreeBSD, our /dev/urandom was created as an alias
to /dev/random.
The device operations are linked to Yarrow through the random adaptor API.

Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
drivers: Register virtio-rng as a hardware source of entropy

It will be used by random_kthread from Yarrow as a hardware source of entropy
whenever the thread wakes up, which happens around 10 times a second.

Systems that don't provide a hardware for rng will lack the property, then
should gather environmental noise from specific interrupts.
Systems that do provide will still gather environmental noise from interrupts
if available, and do 'one round' of gathering from the rng hardware.

Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
tests: Add simple test case to /dev/urandom

Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>