Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Week 9 Formative Assessment 1

This repository contains implementations for the Week 9 Formative Assessment in the Linux Programming course at ALU. The project implements four different system-level programming tasks.

Repository Structure

Week_9_Formative_1/
├── Makefile                  # Main Makefile to build all components
├── README.md                 # This file
├── Q1_Disassembler/          # ELF Binary Disassembling Tool
│   ├── Makefile
│   ├── README.md
│   ├── include/
│   └── src/
│       └── disassembler.c
├── Q2_Calculator/            # Assembly Calculator
│   ├── Makefile
│   ├── README.md
│   ├── include/
│   └── src/
│       └── calculator.asm
├── Q3_SysMonitor/            # System Monitoring Tool
│   ├── Makefile
│   ├── README.md
│   ├── include/
│   ├── src/
│   │   ├── sysmonitor.c
│   │   └── setup.py
│   └── scripts/
│       └── visualize.py
└── Q4_Encryption/            # File Encryption System
    ├── Makefile
    ├── README.md
    ├── include/
    │   └── encryption.h
    └── src/
        ├── encryption.c
        └── file_encryptor.c

Assessment Tasks

1. ELF Binary Disassembling Tool (4 points)

A C program that disassembles an executable file and writes the disassembled content to a text file.

2. Assembly Calculator (4 points)

An assembly program for a calculator with addition, subtraction, multiplication, division, and modulus operations, implemented with a function (procedure) per operation.

3. System Monitoring Tool (6 points)

A system monitoring tool using C and Python that captures CPU usage, memory usage, and network usage with a 2-second delay, visualizing the data with graphs.

4. Secure File Encryption (4 points)

A file encryption system using a symmetric approach (key of 4) implemented as a dynamically shared library, with support for both encryption and decryption.

Getting Started

Prerequisites

  • GCC compiler
  • NASM assembler
  • Python 3.x with development headers
  • matplotlib and numpy Python packages
  • Linux-based operating system

Clone the Repository

git clone https://github.com/Joshua-Coded/Week_9_Formative_1.git
cd Week_9_Formative_1

Build All Components

make

Build Individual Components

make disassembler   # Build just the disassembler
make calculator     # Build just the calculator
make sysmonitor     # Build just the system monitor
make encryption     # Build just the encryption system

Clean Build Artifacts

make clean

Running the Programs

Disassembler

cd Q1_Disassembler
./bin/disassembler <executable_file> <output_file>

Calculator

cd Q2_Calculator
./bin/calculator

System Monitor

cd Q3_SysMonitor
python3 scripts/visualize.py

File Encryption/Decryption

cd Q4_Encryption
./bin/file_encryptor encrypt <file1> [file2] ...
./bin/file_encryptor decrypt <file1_enc> [file2_enc] ...

Documentation

Each component has its own detailed README.md file in its respective directory:

Author

Joshua Alana

License

This project is submitted as part of the ALU Linux Programming course.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages