Welcome to my page in Sig9.com. People tell me that I am a geek, but I'd like to think that I am mostly a computer programming enthusiast, an avid movie buff, a music lover, and an occasional dabbler in the areas of science, physics, space and philosophy.
I am a Design engineer with a Semiconductor-startup - Montalvo Systems. My research interests lie in the areas of Operating Systems, Computer Architecture, Virtualization, Programming Languages and Systems in general. I graduated from University of Kerala in 2006 with a Bachelors Degree in Computer Science and Engineering.
You can get in touch with me at vivek(at)sig9(dot)com.
My: Writings ·
Projects ·
Bookmarks
Writings
Articles I have written,
- FreeBSD on Bochs
- FreeBSD Mount Privileges
- Introducing (UNIX) Shell Pipes
- AT&T Assembly Syntax
Projects
- Sig9
I co-founded this technology resource website in 2003, along with
Vishnu. Sig9 is a non-profit venture
providing technical blogging and writing services, and conducts
programs such as IRC Talks, Quiz Competitions etc.
http://sig9.com/blogs/vivek
- my blog.
- Udis86 - Disassembler for x86 & x86-64
Udis86 is an easy-to-use minimalistic disassembler library (libudis86) for
the x86 and x86-64 (AMD64) range of instruction set architectures. The
primary intent of the design and development of udis86 is to aid software
development projects that entail binary code analysis.I started this
project out of interest in the new AMD64 architecture
and as an experiment in software engineering methods. The Udis86
library is rentrant, thread-safe, and has a plugin-based model.
- Layer2 - Multithreaded router for implementing Virtual
Private Networks.
Layer2 is a program which can sniff ethernet frames from network
interface devices and transport them to another instance where
it is redistributed, all based on a set of (routing+filtering) rules
specified using a configuration file. Layer2 uses libpcap for packet
capturing, and libnet for creating IP packets and injecting them into
the network.
layer2-beta.tar.gz (15.9 KiB)
Note that this software is beta, tested in Linux Fedora Core 3.
- QVM - Object Oriented Framework for Implementing Parallel Virtual Machines.
QVM was my 5th semester B.Tech Mini Project and reflects my inclination towards
networking, distributed systems and parallel computing. The idea was to
create an object-oriented framework for integrating different machines
to perform distributed computation, with ideas derived from the PVM
project. The source code is highly experimental, and unstable. It includes
demonstrations of parallel programs such as rendering the Mandelbrot
Set in ASCII.
Paper describing QVM : qvm-paper.pdf (440 KiB),
Source Code: qvm.tar.gz (36.3 KiB)
Note: Sadly I never got the time to follow up on the project, so
there is not much usage documentation.
- OpOS - Multithreaded Kernel.
This is a hobby project I started way back in freshman year of college.
I have been rather whimsical about it, often abandoning it to play around
with other kernels, and then coming back when I get an epiphany about coding a new design.
So far I have managed to implement multithreading inside the
kernel. The source code is highly experimental, and may or may not
compile.
opos.tar.gz (37.8 KiB)
- Misc.
- fat12.S - A FAT12 boot sector
program written in AT&T assembler syntax. Use GNU as to
assemble.
- Sig9-AMS - Before Sig9.com
was completely ported to Drupal CMS, it was based on a content
management system written by me, in PHP/MySQL.
- OpOS-Loader - Like
any amateur OS developer I made the mistake of trying to create
my own boot loader, before adopting GRUB. OpOS-Loader is how far
I got.
- HelloBoot - And this
is how it all started. I wrote this small Hello World bootsector
program which turned out to be something of a hit, and I became the
www.planetsourcecode.com superior coding contest winner. Following
this I also wrote a tiny 16-bit kernel
- I created Sig9 Words, an
instant mini-dictionary, and another categorized
Word List to help me with my GRE
preparations.