Who Should Attend

Fresh engineers who want to learn, in depth, the most happening technologies and gain hands-on experience on them by being part of our projects. We absorb all performers as our R&D trainees.

Experienced professionals/corporate trainers/computer science lecturers/professors/ PhD students who want to participate in the kind of state-of-the-art technology development they would find only in the world's best universities/technology startups.

Objectives

These packages are designed to give the student a deep understanding from the core fundamentals through emerging technologies. In addition, the student will be able to make effective use of a wide range of standard UNIX programming and development tools. A highly motivated student can explore much more than this under our guidance, by working on our various research projects. If the trainee is not strong in Linux operating system as a system programmer, he/she must do the UNIX/Linux internals/network programming courses. The trainee has the option of selecting an individual course and after its completion, working on our open source projects.

UNIX / Linux Internals & Network Programming

Eligibility: Fresh BE/MCA or BCA/BSc in CS.

UNIX architecture, shell, system calls, kernel overview, multi user concepts, multitasking, UNIX process scheduling and process control, system calls related to file systems, process management and inter process communication, pipes, FIFO, UNIX system V IPC (message queues, shared memory, semaphores), signals and signal management, I/O systems, daemon process, session handling, sockets and socket system , network programming using sockets, socket layer, socket structure, socket I/O, socket options, multi-threaded programming and thread synchronization.

Assignments & Project:

The student will carry out several UNIX programming assignments, and at the end will develop UNIX IPC system software using various project development tools. In addition, he/she will be working on our Network IO Library development.

UNIX & Linux Kernel Development (With focus on the core kernel technologies)

Eligibility: BE CS + 2 yrs. of C development experience

Fundamental concepts of operating systems, UNIX legacy, internals of Linux OS kernel (x86 architecture essential for kernel developers, memory management (virtual memory management, segmentation, paging, slab allocation, shared memory, page replacement policies, page fault handler), process management (schedulers, SMP kernel issues), I/O, synchronization sub systems, VFS, page cache, important kernel data structures, developing a kernel module, kernel debugging, crash dump analysis etc.

Assignments & Project work:

The trainee will give seminars, perform kernel level programming and testing of the kernel modules developed. At the conclusion, he/she will develop a kernel feature as a module (We will plan the individual topic based on his/her interest). Each candidate will work on our ongoing Linux based iSCSI Target mode device driver development.

Networking, TCP/IP internals, Protocol Stacks

Eligibility: BE ECE/EE or CS or MCA/MSc or MTech with at least 2 + yrs of exp with C and Linux.

This course is designed to give a good understanding on wide network elements and the TCP/IP protocols, with a strong emphasis on host side protocol design, architecture and implementation in the Linux kernel. After the course the student will be part of various TCP/IP stack projects to solidify the concepts. Course duration is 6 months, which may be extended depending on the completion of the projects.

Network protocols, layered protocol architecture, communication networks, LAN, WAN, internet, carrier ethernet, MPLS., application layer protocols (NFS, FTP, HTTP), real time communication and RTP, QoS technologies, diff serv, netlink sockets, iptables.

TCP/IP internals, TCP protocol architecture, TCP timers, TCP output processing, TCP input processing, UDP, IP overview, routing principles, ARP, multicast, TCP/IP stack implementation in the Linux kernel, memory buffers, interface layer, SLIP and loop back, protocol debugging, theory of L2 switches, VLAN, GVRP, STP, MSTP and bridges.

Assignments

The student will work on several socket layer and network based software development projects.

Learning Project Work

Each student will implement a packet filtering firewall, traffic shaping software using Netlink sockets, and implement TCP functionality (congestion control, on top of UDP).

Product Development Opportunity

The student, after the completion of the above tasks (assignment and learning project), will get the opportunity to work on our ground breaking Ethernet-LAN based clustering stack development, using modified TCP stack.

Storage Technologies

[Networked storage technologies, Data management, Kernel/File systems, SAN and NAS technologies]

Skill Level: Expert
Lecture/Lab: 30/70

Eligibility: BE ECE/EE or CS or MCA/MSc or MTech with at least 2 + yrs of exp with C and Linux.

UNIX kernel and Linux kernel internals, fundamental OS architecture and various components, monolithic versus micro kernels, loading various kernel modules on runtime, comparison of various OS kernels (AIX, Linux, RTOS, Win2k).

File systems, file, inode, disk blocks, and bytes, detailed implementation of a file system, how it supports various file I/O system calls, interaction between file system codes to memory manager, interaction of file systems to LVM and device drivers, implementation of different file system and inode operations, super block, inode tables, bitmaps and different data structures used in the file system code, VFS and vnode, host file systems- inode interface, how to implement a file system.

Data storage technologies: storage systems, NFS v3 & v4 technologies in the context of NAS, SAN advantages, fibre channel versus iSCSI implementations, storage technologies like storage consolidation, storage virtualization, replication, high performance network data I/O offered by SAN, block-level versus file level storage management, storage software on backup and recovery, clusters, LVM and introduction to SAN-aware file systems.

Virtual Machines, Storage and System Virtualization, VMware / Xen

<

Skill Level: Expert
Lecture/Lab: 40/60

Syllabus is available on request.