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.

Objective

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.

Course and syllabus:-

UNIX / Linux Internals & Network Programming

Skill Level: Expert
Lecture/Lab: 30/70

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

Syllabus:

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)

Skill Level: Expert
Lecture/Lab: 30/70

Eligibility : 2 years of exp with Linux and C as a student or as a professional and a BE/MCA or equivalent degree

Courses Content:

1. OS introduction

  • OS fundamentals and Linux kernel introduction

  • Process and memory management and file systems introduction.

  • Kernel synchronization and cross-system facilities

2. Process Management Topics

  • Concepts of processes, Kernel threads and systems call interfaces.

  • Linux kernel structures for processes.

  • Kernel stack internals

  • process queues , kernel schedulers

  • CFS and muti-core scheduler.

  • CPU affinity and scheduling domains.

  • Load balancing.

  • System calls for processes.

  • Signals and IPC

  • signal generation and delivery of signals.

  • Pipes, Shared memory and semaphores.

  • sleep and wakeup.

3. Memory Management Topics

  • Segmentation, Paging and Virtual memory

  • High memory and bounce buffers.

  • Logical, Linear and physical addressing

  • Physical Page extension, Physical Memory Layout and virtual pages, Page tables and TLBs.

  • Hardware caching and Multi-processor caching.

  • Cache hierarchies, Cache coherence and MESI protocol.

  • Page replacement policies

  • Page frame management, memory zones and Temporary Kernal mappings.

  • Page allocations, slab allocators and object caches

  • kmalloc implementation.

  • Swapping concepts.

  • Page frame reclamation algorithms

  • The out of memory killer.

  • Linux page cache.

  • address_space object.

  • Buffer cache versus page cache

  • syncing dirty buffers.

  • Swap cache.

  • Page cleaners and system calls for caching,

  • Process address space and VMAs

  • demand paging and page fault handler

  • Copy on write.

4. Kernel Synchronization

  • Kernel pre-emption and control paths.

  • Kernel pre-emption and control paths.

  • Pre-emptive kernels.

  • Concurrency and making the code re-entrant.

  • Synchronization primitives

  • per-CPU variables, atomic operations.

  • Memory barriers

  • spin locks

  • seqlocks.

  • RCU

  • Semaphore variants.

  • Synchronization across interrupts.

5. System calls

  • Covers most common systems calls that interacts with various kernel modules.

6 Timing controls

  • Clocks and timer interrupts

  • Jiffies and software timers

  • Timing wheel idea.

  • Udelay and ndelay()

  • System calls for timings.

7. Virtual File Systems

  • VFS primitives, File systems abstractions.

  • Dentry caches, super-block, fs-struc and files_struct , inode and directory operations

  • File system mounting and un-mounting.

  • Local and Network file system concepts.

  • Linux Block layer - BIOs- Overview of EXT4.

8.Playing with kernel

  • Obtaining kernel source

  • Installation of the kernel

  • Kernel source tree and code walk thru.

  • Configuring and Building the kernel

  • GNU C extentions for kernel coding

  • Inline assembly.

9.Lab session:

  • Building a kernel extension /module in a chosen area.

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.

Networking, TCP/ IP internals, Protocol Stacks

Skill Level: Expert
Lecture/Lab: 30/70

Eligibility : 2 years of exp with Linux and C as a student or as a professional and a BE/MCA or equivalent degree

Courses Content:

1. Introduction to TCP/IP protocol internals

  • TCP connection hand-shakes - windowing and flow control - congestion -reliable data delivery - statemachines.

  • TCP packet format and TCP evolution and application delivery experience.

  • IP addressing and architecture - IP routing concepts - OSPF and BGP .

  • IP fragmentation/re-assembly.

2. Linux Sockets

  • Concepts of Sockets - Socket system calls - Kernel entry to Socket interfaces.

3.User-kernel interfaces of Networking stack

4.Socket buffers and Linux kernel network buffer handling

  • sk_buff structures - skb_xxx macros/functions for memory handling - kernel data structures for buffers.

5.Transmission of data through UDP and TCP sockets and Reception of data through UDP and TCP sockets

  • Explanation of Protocol stack functions involved in transmission and reception.

6. Linux Networking intefaces and Network driver functions and entry point.

  • Net_device structure. DMA and Network interrupt processing. NAPI.

7. QoS queueing and Netfilter hooks

8. Netlink sockets.

9. Invoking network functions within the kernel.

10. High Performance networking concepts - zero copy data transfer.

11. Introduction to SCTP and MP-TCP protocols.

12. Interfaces to Kernel facilities.

    Assignments & Project:

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.

Syllabus

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

Please Contact Us

Image Gallery:

Follow Us:

Contact Us

Netdiox Computing System Pvt. Ltd.

Address:#1514, First Floor,19th Main Road,
                        HSR Layout Sector-1,Bangalore 102,
                        Karnataka, India
Contact No:09946711160
E-mail:info.netdiox@gmail.com