Software
Projects
Here's the new promised software section. I have given a brief description
of the major software projects I have completed or am doing. In a few days
time, I will add links to W. Richard Stevens' sources from his famous books,
ported to Linux and FreeBSD. I have included a software
resources feature, to provide information about various softwares and
packages. If you have any problems or questions, send me email.
-
TREASURER:
A Cooperative Housing Society Financial Transaction Software. A project
in MS-COBOL for the MS-DOS Platform to provide for effective means of financial
accounting and maintenance for large housing societies. This project
was written as a Third Year Computer Engineering (T. E.) project for the
theory lecture in Data Processing Laboratory (D. P. L.). treasurer.zip.
-
HEDIT:
A small experimental hacked version of the MS-DOS 6.22 text editor. Pronounced
as (h-edit), an experimental text editor, written completely in Intel 8086
assembly language for MS-DOS. This text editor does not support all the
options provided by the MS-DOS 6.22 text editor, it also doesn't support
mice. Nevertheless, it is small and compact, and good for study purposes,
though the design could have been more cleaner and more efficient, especially
the file handling part of it. (Intel
syntax, and AT&T syntax).
-
PAGING
FOR MINIX-2.0.0: A Project to implement paging,
virtual memory and the
/proc
filesystem for the 32-bit Minix-2.0.0
operating system on a base platform of i386 and above. This project entails
extensive kernel hacking to provide a Linux-type three-tier paging system
to keep the optimal page size limited to 4 kb. The /proc filesystem
design is modelled on the /proc filesystem used by UNIX SVR4. (I
have put this project on hold due to some unavoidable reasons)
-
COMMON
INTERNET FILE SYSTEM for the GNU/Hurd Operating System, running
on University of Utah's Mach4 microkernel (GNUMach) - An implementation
of the Common Internet File System (an offshoot of the SMB file system,
widely used in Windows for Workgroups), for the GNU/Hurd operating system
servers, running on University of Utah's Mach4 modified microkernel (GNUMach).
This CIFS is to be officially merged with the Hurd source distribution.
It is an aggressively multithreaded file system, in line with the Hurd
philosophy, and conforms to the CIFS-1.0 IETF draft protocol.
-
VIKING:
A VIRTUAL DISTRIBUTED FILE SYSTEM (VDFS), to provide for transparent
file sharing based on the Virtual Cluster Model for Linux, with kernel
VFS support. This is a radically new diskless filesystem, that comes with
a /proc type VFS support, with attractive features and a fully pageable
kernel server running as the arbiter and the logger, using the abstraction
of VFS to provide a distributed database. Full crash recovery, node and
network failure recovery, support for very large files, secure cross-network
transactions, and an added superuser managed GUI tool for managing the
filesystem are featured. This filesystem eliminates the risky untrusted
client-server communication, and internally uses the trusted cross-node
server to server communication method. This filesystem introduces the very
essential user configuration part, that is glaringly absent in NFS. Also
only those files that are being shared are updated, unlike NFS, in which
all files are made available, regardless of their requirement. This filesystem
is based on the idea of formation of transparent user defined clusters/groups
amongst users that are somehow a part of a system of interconnected homogenous
machines, that are formed to provide for distributed sharing of data files.
These clusters are defined for the individual process, and a machine can
be a part of multiple clusters. Either a provision for a command-line mount
utility like "adfsmount" will be provided, or hacks will be written in
the "mount" command. First major release of this project will probably
be in March 2000.
Software
Resources
Some
Project Concepts
-
Implement a device driver for
the SiS display card for Linux.
-
Implement integrated threads
for Linux **inside the Linux kernel**, with a task-thread relationship
as under Mach4. Check out http://www.cs.cmu.edu
for info on Mach. This involves tearing up the Linux kernel, and also the
libc library, or the glibc library if you are using RedHat-5.0+.
-
Implement a multithreaded ext2
filesystem for the Minix operating system. Check out Operating System:
D & I by Andy Tanenbaum.
-
Implement the NFS filesystem
for Minix. Refer to the above book. Implement 'streams' for Linux. This
is different from the 'stream' I/O used with files. For more information,
check out Dennins M. Ritchie's website at http://www.cm.bell-labs.com.
-
Implement Linux-2.2.5 device
drivers for the Mach4 operating system. There is some research going out
on OSKit, check out http://www.cs.utah.edu
if you are interested.
-
Implement the Andrew File System
(AFS) for Linux. Check out http://www.cs.cmu.edu
for more details.
-
There is more work to be done
with PicoBSD, a strain of BSD. Check out http://www.freebsd.org
for more details.
-
Some more work has been added
to the TODO list of the BSD-Lites Mach operating system. Visit http://www.cs.hut.fi/~jvh
to learn more about BSD Lites.
-
Implement the ISDN system for
the GNU/Hurd operating system.
-
Implement Distributed Shared
Memory (DSM) for Linux, and change the way Linux does memory management;
by implementing the Mach-style Memory Objects concept.
Technical
Papers and Seminars
-
Ashutosh
S. Rajekar, The Microkernel Architecture of Operating System
Design, 1999, Postscript. Annual Seminar
Reports, year 1999-2000, Pune Institute of Computer Technology, University
of Pune.
-
Ashutosh
S. Rajekar, System calls under Linux and Minix, 1998. (Unpublished)
-
Ashutosh
S. Rajekar, Nanokernel: A Device driver stub for Operating Systems,
1999, Postscript. (Unpublished)
-
Ashutosh
S. Rajekar, The /vtmp Diskless File System for Linux: Design and Implementation,
1999, Postscript. (Unpublished)
-
Ashutosh
S. Rajekar, The Design and Implementation of the Viking File System:
A /vtmp Diskless File System for Linux, 1999, Postscript.
(Unpublished)
Copyright
(C) 1999, Ashutosh S. Rajekar, <[email protected]>
This
program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This
program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You
should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307, USA.
$Id: software.html,v 1.19 1999/11/03 07:07:44 asr Exp asr $