Vous êtes sur la page 1sur 6

Project Ideas

Section I
1.

Computer Oriented Projects (COPs)

Design and develop a pseudo device driver in Linux to implement a RAM disk.

Description: A RAM disk (or drive) is like a secondary storage device present in the
main memory (RAM) of a computer system. A device driver has to be implemented to
create a new partition along with the existing partitions. The usual file operations and
UNIX commands will have to be supported for this new partition. For example, the
df k command will display the following information:
Filesystem
/dev/hda2
/dev/hda1
none
/dev/hda5

1K-blocks
20161204
295561
127404
17488652

Used
8786024
15800
0
737632

Available
10351040
264501
127404
15862628

Use%
46%
6%
0%
5%

Mounted on
/
/boot
/dev/shm
/home

The RAM disk driver will have to create a new partition (say /dev/mem). Different
UNIX commands (like cp, mv, rm, etc.) should be tried on this partition (drive).
2.

Design and develop a terminal device driver (pseudo) in Linux.

Description: This driver will be responsible for creating user terminal(s) (terminal
drivers). An interface will have to be supported that will facilitate the users to execute
shell commands using this terminal. For example, if the name of this driver is term,
then executing this driver program will open a new terminal using which the users
should be able to interface with the shell (or O.S.).
3.

Message Passing using Character Device Driver

Description: Implement a mechanism using which messages can be exchanged


between a main process and other processes. This has to be facilitated by a kernel
module.
4.

Design and develop a program to simulate the ping utility of Linux.

Description: PING is a short-form acronym for Packet Internet (or Inter-Network)


Groper. The PING utility is most often used in diagnosing network problems. PING
sends one packet of data to the target host and waits for an identical (or echoed)
reply from the host. The idea behind the PING is that responding to one packet of data
is generally the lowest common denominator in diagnosing network presence. If the
host can reply to one packet, then you can be reassured that the host exists. This
utility has to be implemented using client-server socket programming.
5.

Sudoko generator under Linux/Windows.

Project Ideas ver. 1.0

1 Imran Aziz Ahmed

6.

Develop a program to implement an editor.

Description: Design and develop a program under Linux that will simulate an editor
(like vi, ed, emacs, pico, joe, etc.). Basic features like opening, closing, editing and
saving of files should be provided. Additional features like cut-copy-paste should also
be supported.
7.

Federation of file systems.

Description: This project aims at combining two or more file systems into a single
namespace. Consider two computer systems having the same or different file systems.
This project will combine both these file systems into one single entity thus increasing
the disk space considerably. The users of this new file system will be under the
impression that only one file system (with a huge space) is available for their use.
8.

Develop a program to implement the telnet utility present in UNIX.

Description: This project will assist users to connect to a remote UNIX based system
using socket programming. A remote shell environment has to be provided and the
users should be able to execute programs/commands at the remote site using this
utility.
9.

Develop a program to implement the talk utility in UNIX.

Description: The talk utility is a visual communication program which copies lines
from your terminal to that of another user. This is a daemon based program that will
assist users to indulge in a chat session on the same machine (server).
10.

Development of HPC (High Performance Computing) Clusters.

Description: A group of 2-4 students can build a Linux cluster (with support for NFS,
NIS and Single System Image [SSI]). Job Scheduler for Linux, i.e. PBS (Portable Batch
System) will have to be loaded in order to facilitate users to execute their parallel
application programs. Demonstration of MPI (Message Passing Interface) programs will
also have to be carried out as a part of this project.
11.

Development of campus-wide grid using Globus Tool Kit (GTK).

Description: A group of 3-5 students can take up this project and create a campuswide grid using the most popular software called GTK. This project will involve in
setting up a Grid server, installing and configuring GTK and all its components, setting
up of other Grid nodes in different locations (Computer Centre, Boys Hostel, Girls
Hostel, Medical Centre, SAC, some of the faculty chambers, SWD office, ARC office,
etc.), etc.

Project Ideas ver. 1.0

2 Imran Aziz Ahmed

12.

GUI for GridFTP

Description: GridFTP is one of the core components of GTK. It is a uniform, secure,


high-performance interface to file-based storage systems on the Grid. The command
globus-url-copy can be effectively used for transferring files between grid nodes using
the Command Line Interface (CLI). The GUI for GridFTP will provide a ready-made
interface for users to transfer files across the grid without using CLI.
13.

Integration of GTK with Linux distribution.

Description: The GTK software is currently available for download at:


http://www.globus.org/toolkit/downloads/
Download the most recent version of GTK (i.e. 4.0.5) and integrate the same along
with one of the Linux distributions (like Fedora Core 6.0 or Fedora 7/8, etc.).
14.

Shared Memory (SHM) library with synchronization support

Description: Refer pages 94 and 100 of Operating System Principles by Galvin


(seventh edition). This project will provide support for processes communicating using
SHM to ensure that they are not writing to the same location (in the SHM)
simultaneously.
15.

Shell for Linux

Description: This project involves writing a new shell for Linux O.S. with support for
some of the important features of shells.
16.

A huge variety of Linux projects can also be found at:


http://www.linux.org/projects/
a) Linux Information Projects or General Projects (Non-technical projects to
promote Linux and provide information to the computing world)
http://www.linux.org/projects/general.html
b) Hardware Port Projects (Porting Linux to the Power PC, Macintosh, Alpha, and
other systems)
http://www.linux.org/projects/ports.html
c) Software Projects (Developmental distributions, applications, and drivers)
http://www.linux.org/projects/software.html
d) Scientific Projects (High performance, parallel processing, and researchoriented projects)
http://www.linux.org/projects/scientific.html

Project Ideas ver. 1.0

3 Imran Aziz Ahmed

17.
Design scalable parallel algorithms for Sparse Matrix Computations using
MPI/OpenMP/Pthread programming paradigms on Multi-Core systems
18.
Efficient Implementation of Partial Differential Equations on parallel processing
platforms
19.

Design of a grid portal

Description: The grid portal which provides the user interface to the Grid resources
hides the complexity of the grid from the users. It allows submission of both
sequential and parallel jobs and also provides job accounting facilities. Problem
Solving Environment (PSE) in the domains of Bio-informatics, and Community
Atmospheric Model support the entire cycle of problem solving for the specific domains
by supporting problem formulation, algorithm selection, numerical simulation and
solution visualization. This interface will allow a standard navigator to submit
computational requests to a grid. In other words, an application programmer will be
able to submit his programming tasks on the grid using this portal. This portal will also
display status information about the jobs that have been submitted on the Grid.
20.

Grid monitoring and management tool

Description: This tool will help in effectively monitoring the health and utilization of
various components of the Grid. A mobile agent framework for monitoring the Grid
resources and also for automatic update of software releases can be explored.
21.

Programming projects in parallel and distributed computing can be found at:


http://www.risc.uni-linz.ac.at/people/schreine/parallel-projects.html
http://www.dmoz.org/Computers/Parallel_Computing/Projects/
http://web.comlab.ox.ac.uk/oucl/research/groups/oxpara/projects/opprojs.htm
http://wotug.ukc.ac.uk/parallel/nhse/projects.html

22.

HRMIS (Human Resource Management Information System) for our campus

Description: Check out the following site for an example of HRMIS:


http://karconind.com/HRMISover/hrmisover.HTM

Project Ideas ver. 1.0

4 Imran Aziz Ahmed

Section II

Study Oriented Projects (SOPs)

1. Study of Message Passing Interface (MPI) library for parallel programming


Description: This SOP involves study of basic concepts of parallel computing followed
by a detailed study on MPI. Students can download and install different versions of
MPI on a single Linux machine or on a cluster and try out parallel programs. They
should also concentrate on converting serial codes into parallel. This SOP will be
mainly useful for the dual-degree [S1/S2/S4/S5 + P7] students who intend to take up
some research kind of work (thesis) in their final year. These students can carry out
extensive research in their respective field, convert techniques into corresponding
parallel algorithms/programs and execute the same on a large cluster of computers.
2. Study of Linux Kernel (2.6)
Description: This SOP will involve a detailed study of the Linux kernel, including its
data structures, different modules (process management, memory management, etc.)
3. Study of Linux Device Drivers
Description: Study the internals details of writing Linux device drivers and write a
simple pseudo driver (like RAM disk driver, terminal driver, etc) if time permits.
4. Study of Linux O.S.
Description: This SOP is targeted towards those students who wish to learn about the
Linux O.S. This project will involve study and implementation of installation of Linux
O.S., partitioning of hard disks (making Windows and Linux reside on the same hard
disk), Linux commands, Shell programming, C programming and debugging under
Linux environment, Linux packages and tools, etc.).
5. Study of Solaris O.S.
Description: This SOP is targeted towards those students who wish to learn about the
Solaris O.S. This project will involve study and implementation of installation of Solaris
O.S., Solaris commands, Shell programming, C programming and debugging under
Solaris environment, Solaris packages and tools, etc.).
6. Security under Linux
Description: Study the different components of a typical Linux O.S. (networking,
databases, shell, authentication mechanism, etc) and identify how security is taken
care of. Also, identify various loopholes and invent mechanisms to overcome them.

Project Ideas ver. 1.0

5 Imran Aziz Ahmed

Notes:
a) This document might be updated frequently. The version number of the same (as
mentioned in the footer of each page) will change with addition of new ideas.
b) Students can check out the FTP server for the most recent version of this
document. Invoke a browser and open the following site:
ftp://10.1.1.223/
Next, click on the following:
ACADEMICS-SEM I 07-08
CS
CSGC372-OPERATING_SYSTEMS
PROJECTS
c) Students can also check out project ideas given at the end of almost all the
chapters of Operating System Principles by Galvin (seventh edition).
d) Students are encouraged to come out with research papers at the end of their
projects (COPs/SOPs).

Project Ideas ver. 1.0

6 Imran Aziz Ahmed

Vous aimerez peut-être aussi