# CS3502 Project 01-A Fall 2023

# Setting up the OS Development Environment

# Learning Objectives:

# 

## The purpose of this assignment is to continue the development examples of setting up an Operating System kernel.

## 

## Submissions will be placed here and they will contribute to the total assignment grade of 100 points.

## 

## This is the kernel build environment setup process and constitutes the Part I of the Kernel Build assignment. This assignment in D2L contains four sections that will complete the Project Assignment:

## 

## Part I: Set up Environment -- install NASM,QEMU, GCC, GDB in WSL, VM or native installation.

##  First, read Part I below and review the attached Power Point for how to set up the environment. 

## Part II: Get to a working shell prompt.

##  Then complete the tasks for Part II given below in this document. Do not forget to answer the questions at the end.

## 

## Part III: Add a Memory Manager (the HEAP, Linked List data structures)

##  Implement Best Fit, Worst Fit and First Fit kernel memory manager algorithm.

## Part IV: Add a Process Manager (Linked List or Balanced BST data structure)

##  Given a process binary load a process into memory.

## Part V: Add a File Manager (Linked List and Tree or graph data structures)

##  Implement a directory structure.

## 

**Submission Guidelines:**

-   No handwritten submission is accepted, always submit answers as text
    within this or similar document file with any support images
    embedded in the file.

-   **EXCEPTION**: If asked for source code implementation you can
    submit those individually and as separate files in ASCII format in
    their original file format .cpp, .java, .py, .cs etc. or even as a
    .txt file will be acceptable. Do not insert code into the submission
    document file. It ruins spacing which makes .python and some
    languages (perl, awk etc.) difficult to test build.

-   Do not submit ZIP files... ever... for anything in D2L. The system
    is extremely unhelpful with regards to those filetypes and grading.

-   You may include your freehand drawing/image and handwritten scans in
    the submission. However, the writing and images must be clearly
    legible. Though, it is best to present non-handwritten submissions,
    generally, as is done in the professional setting.

-   If asked, show all work/calculations/graphs etc. in the
    determination of the problem.

-   **Please complete your entire work in a single Word Document and
    Save the file as: yournetid_CS3502_ProjectP1_2.docx (e.g.
    ogarcia5_CS3502_ProjectP1_2.docx.) and upload your file in D2L.**

-   Please observe the submission due date and time. After the due date
    there is a 50% penalty for the next 24 hours. Any submission after
    24 hours of the due date will be graded at 0%.

-   If you include a reference or an image taken from other sources,
    please cite them appropriately. APA is preferred but cite them so
    they can be found. **NOTE: verbatim copying or even paraphrasing is
    plagiarism so if the source used constitutes your answer rather than
    simply *supporting* the answer, it will be considered invalid. This
    is especially true of source code implementation answers.**

-   If you resubmit, please make sure to attach the file again. Your
    latest submission before the due date will be the one graded.
