Text Box: Dimension X Windows ManagerText Box: IPRO 320

 

 

Project Proposal

 

 

 

Date:                                      February 2, 2001

 

Project Manager:               Bryan Smant

 

Members:                             Bryan Accosta

Steven Hines

                                                Anteneh Kefale

James Kirk

                                                Eskendir Mulugeta

Ronald Pasko

Gordan Raic

Jeff Szekely

Bart Wyatt

 

                                   


 

 

The overall objective of this IPRO is to develop a window manager for the ‘X’ windows

operating environment. This primary objective is only achievable if further broken down into steps.  Thus, we have defined several “secondary goals” which, when achieved, will bring this multi-semester project closer to completion.  These secondary objectives are, as follows:

 

 

Text Box: Objectives

 

 

 

 

1.   The existing architecture demands a more secure foundation that will provide a basis on which to greatly expand functionality. This foundation must inhabit a modular, object orientated environment that is conducive to its expansion by potential developers.

 

2.   The program must offer a simple, yet robust, three-dimensional Windows environment that will ensure stability under even the most demanding of test cases.

 

3.         This program must support a network of stable terminals that will be integral to the success of this program.

 

4.   To augment the functionality and ease of use of the three-dimensional Windows environment, it is necessary to utilize the Microsoft wheeled mouse for navigation and manipulation of the environment.

 

5.   The website must be restructured so that it exhibits professionalism in its presentation and organization.  Because this is an open source project, its life-span depends on its  ability to attract interest of many prospective developers.

 

6.   Functionality must be added to the existing “window” objects.  This implementing rotation about the x and y axes, the ability to move and rotate individual objects, and correct placement of windows. 

 

7.   Progress must be made towards the implementation of real windows, rather than “window-type” polygons.  Associated with the development of usable windows is the implementation of a central control menu through which all windows, as well as the environment, may be manipulated.

 

8.   The project must move towards implementing Open GL display lists through which common window constructs (buttons, the window frame, etc) may be uniformly drawn.

 

9.   An algorithm for window selection must be implemented which will overcome the difficulty of selecting an object in a three-dimensional environment using a two-dimensional interface.

 

10. User-customizable configuration files should be implemented into dimension to give the environment needed versatility.  Most X-Windows managers avoid “hard-coding” environment features.

 

Text Box: Contextual Background

 

           

 

IPRO team 370 is currently undertaking the development of a Windows Manager that will run on a Linux platform.  This implementation distinguishes itself from most other Window Mangers insofar that it will do its rendering in real-time OpenGL.  The mainstream protocol for making Window Managers for a Linux system is known simply as “X.” 

2.1 Linux

      The Linux operating system was created by Linus Torvalds, modeling it after the MINIX pla tform.  He began development in 1991, having released version 1.0 by 1994.  Linux, today, stands among operating systems as a symbol of stability, a benchmark by which all other operating systems are compared.

 

      Perhaps one of the strongest arguments for using Linux for a project of this nature is that Linux is “open.”  This means that for the entire base system, which includes the kernel, the GNU tools, each of the basic utilities have their source own code available to view and analyze.  This allows the opportunity for us to modify it to our specific needs.  An important aspect of open software is the ability to write kernel extensions and drivers as needed.  This is vital for supporting new hardware and technologies, which is a major segment of this project.

 

      Linux is also available to anyone at no cost.  Acquiring a working copy of Linux for each of the team members, therefore, carries no price tag.  This allows the project team to divert funds to other needed areas.  In addition to Linux being free, each of the tools that are native to Linux (which are vital to this project effort) are also available at no cost and without licensing requirements

 

      Linux is, again, one of the most stable platforms available today.  This is primarily attributed to the fact that it is “designed by computer programmers for computer programmers.”  Having a stable operating system to develop for will ensure that any errors which may crop up during the course of this project’s development will be attributable to our source code and architecture, not due to shortcomings of the selected operating system.  Furthermore, since all of the work done for this project will be performed on Linux-based computers (with a few exceptions) it is absolutely vital that the operating system be reliable in order to save time and frustration.

The X Protocol

      The X Protocol was developed in the mid-1980’s to meet the need for a network transparent graphical user interface for POSIX systems.  X provides for the display and management of graphical information.  What distinguishes the X Protocol from other graphical user interfaces is its inherent structure.  Whereas most graphical user interfaces simply display graphical applications local to the PC, the X Protocol distributes the processing of applications by specifying a client-server relationship at the application level.  The X Client performs most of the necessary functions of the application while the X Server, or display, determines how these functions should be carried out.  The benefit of this architecture is the provision of a true client-server and distributed processing.

      The reason to use the X Protocol is, like Linux, that it is open source. This protocol can then be modified it to suit our needs.  X is also the authority for making graphical user interfaces for posix systems.

2.penGL

      OpenGL, which stands for OPEN Graphics Library, was developed by Silicon Graphics Incorporated and now is maintained by the OpenGL Architecture Review Board.  OpenGL simply interfaces with graphics hardware.  It is the premier option for the development of useful, attractive, and stable 2D and 3D interactive environments.  Since its introduction in 1992, OpenGL has become the industry standard graphics application interface programming.  OpenGL fosters innovation and promotes efficient development by incorporating a wide variety of rendering, texture mapping, and other powerful visualization functions.

 

      We are using OpenGL as our choice of graphics API for several reasons.  Due to its stature as an “industry standard,” OpenGL is supported by nearly all modern graphics hardware.  OpenGL is also an extremely stable library.  Much like Linux (our choice of operation system), it is absolutely vital that our design and implementation is as flawless as humanly possible.  Inherent instabilities in the graphical interface libraries would be catastrophic to the development and growth of this project.

 

      OpenGL, despite is impressive power, is very easy to learn and use.  This saves the IPRO team valuable time in the training of its members.  The libraries are well maintained and well documented, leading to optimized code in shorter amounts of time, producing better overall product.

 


Text Box: General Methodology

 

 

 

In a software development project as complex as the Open GL “X” Windows Manager, the most efficient way to achieve the specified objectives in the limited time allotted is, obviously, to delegate tasks.  Unlike previous semesters, however, the tasks to not break evenly into clear-cut categories.  Instead, the following tasks will be delegated to team members based on performance, knowledge, and preference as the semester progresses:

 

Task                                                                                         Tentative Assignment

 

Window Selection                                                                    Jeff Szekely

 

Window Object Attribute Augmentation (rotation, etc)  Bart Wyatt

 

Window Development                                                              James Kirk

Ronald Pasko

 

Misc. 3D Class Development                                                    Bryan Accosta

Anteneh Kefale

                                    Eskendir Mulugeta

Gordan Raic

 

General Bug Trouble-shooting                                                   Steve Hines

 

Website Renovation                                                                  As assigned

 

Configuration Files                                                                    Steve Hines

 

 

 

Text Box: Expected ResultsDuring this semester we expect

 

 

 

to accomplish, not only our specified goals as a team, but also hope to affect the course of future window-management endeavors across the computing industry.  Some of these results include:

·        A more efficient application with more stable data structures and minimal overhead.

·        To lead the computing industry into a new, three-dimensional outlook toward window-management.  At present time, the newest, most popular windows-based operating systems all have the same two-dimensional look and feel.  We hope that by introducing our project into the industry, it can be shown that a three-dimensional approach can be much more elegant and impressive.

·        Implementation of a fully usable, three-dimensional window that not only accepts user input and display standard applications, but also rotates and changes the window contents to match.

·        Creation of an elegant and practical user interface complete with “sensible” a window selection algorithm, easily accessibly menu, and customizable configuration files.

·        To attract other engineers towards designing more realistic, three-dimensional, “user-friendly” software.  By introducing a new three-dimensional window manager we hope that others will be inspired to further investigate the potential for other applications being created in a three-dimensional environment.

 

 


Text Box: Preliminary Schedule

 

 

 

Based on the set list of objectives, IPRO Team #320 has created the following tentative calendar:

 

Semester weeks: 13

Effective project weeks: 11

 

 

 

Week

Date

Task(s)

1

1/29 - 2/04

Code Review, training, design

Proposal due 2/2/01

2

2/05 - 2/11

New Feature Design

3

2/12 - 2/18

New Feature Design

4

2/19 - 2/25

Design Implementation & Testing

5

2/26 - 3/04

Design Implementation & Testing

6

3/05 - 3/11

Design Implementation & Testing

Midterm Progress Report due 3/09

7

3/12 - 3/18

*** Spring Break ***

8

3/19 - 3/25

Design Implementation & Testing

9

3/26 - 4/01

New Feature Freeze

Debugging

10

4/02 - 4/08

Debugging

Begin Final Report, Poster, Presentation

11

4/09 - 4/15

Debugging

12

4/16 - 4/22

Code Freeze

Prepare for final presentation

13

4/23 - 4/27

Prepare for final presentation

IPRO Day: Friday, April 27