Linux Internals Projects for Beginners | Industry Projects

Home Embedded Systems Linux Internals Linux Internals | Projects

Linux Internals Projects for Beginners

Linux Internals Projects for Beginners are the testimonials that you have learned a technology well. In Emertxe we have a hand-picked set of projects which will ensure you apply all your learnings of Linux Internals and TCP/IP Networking. Added to that, these projects will also expose you to Software Development Life Cycle (SDLC) so that you will get a hands-on feel of building real-time industry projects. Here goes the list of projects for our Data Structures course.

Mini Shell

Brief:

Mini shell is a command processor, typically run in a text window, allowing the user to type commands which cause actions. Every Operating System provides this Command Line Interface (CLI) which takes commands from the user and provides required output. BASH can also read commands from a file, called a script. Like all Unix shells, it supports piping and variables as well. 

 

The goal of this project is to implement a mini-shell that mimics the BASH shell by using Linux Kernel System calls and IPC mechanisms like signals. It will also handle special keyboard actions (ex: Control C), can be extended for advanced functionalities (ex: Command history) as well.

Pre-requisite:

  • Linux Kernel System Calls usage
  • IPC โ€“ Signal handling
  • String pointers & parsing

Level:

Intermediate

TCP/IP Chat Room

Brief:

Web based chat applications is one of the more commonly used tool for effective two-way communication, starting with IRC chat-rooms. Each user need to authenticate himself and join a chat-room after which he should be able to communicate with all in the group. The goal of this project is to simulate a chat room in a LAN by using TCP sockets and demonstrate message exchanges between client and server.

 

By implementing this project you will get a hands-on experience with TCP socket APIs, Server discovery in a LAN environment and get a view about user authentication mechanisms.

Pre-requisite:

  • Knowledge about system calls and understand man pages
  • Command line arguments and file handling in C 
  • Basic knowledge about TCP/IP Networking 
  • Socket IPC system calls

Level:

Intermediate

TCP/IP based Remote Management Solution

Brief:

Internet today has become a very complex entity by having different set of devices working together.In a scenario where the network devices are located remotely (ex: Wireless base station) monitoring such devices pro-actively becomes a very critical activity. Any malfunctions happen in remote device (ex: CPU usage high, Memory usage high etcโ€ฆ) will result in device crash.

 

The goal of this project is to implement a TCP based client and server. The centralized server will connect with multiple clients and monitor various system parameters, thereby enabling remote manageability. Linux Internals Projects for Beginners will enable you to get a feel of network management application development. 

Pre-requisite:

  • Knowledge about system calls and understand man pages
  • Command line arguments and file handling in C 
  • Basic knowledge about TCP/IP Networking 
  • Socket IPC system calls 
  • Linux commands for resource management

Level:

Intermediate

Trivial File Transfer Protocol (TFTP)

Brief:

The Trivial File Transfer Protocol (TFTP) is a simple way of transferring a file between two systems. This protocol is specified in RFC 1350.This protocol doesnโ€™t support advanced available in FTP (ex: User authentication), typically used in Embedded systems for its smaller footprint and simplicity.

 

The goal of this project is to understand RFC and implement the protocol in a LAN environment. Eventually this project can be extended for advanced cases like inter-operating with standard TFTP client / servers.

Pre-requisite:

  • TCP/IP networking
  • UDP socket APIs
  • Time-out and re-transmission used in networks

Level:

Advanced

Network Packet Generator using RAW Sockets

Brief:

One of the key requirements of network is the ability to handle a large volume of data. Network should have necessary resilience to handle, which is simulated using Network packet injectors in test environment. These packet injectors create a large volume of a particular network protocol traffic and help application developers to do load testing. 

 

The goal of this project is to create a command line based Network packet injector that will generate all major protocol packets (ex: HTTP). For implementation RAW sockets are used. This Linux Internals Projects for Beginners will give you exposure to really get a hands-on feel of OSI and TCP/IP networking aspects. 

Pre-requisite:

  • TCP/IP network protocols โ€“ Headers & payload
  • RAW socket usage
  • Command line parsing

Level:

Advanced