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.
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
A C program that disassembles an executable file and writes the disassembled content to a text file.
An assembly program for a calculator with addition, subtraction, multiplication, division, and modulus operations, implemented with a function (procedure) per operation.
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.
A file encryption system using a symmetric approach (key of 4) implemented as a dynamically shared library, with support for both encryption and decryption.
- GCC compiler
- NASM assembler
- Python 3.x with development headers
- matplotlib and numpy Python packages
- Linux-based operating system
git clone https://github.com/Joshua-Coded/Week_9_Formative_1.git
cd Week_9_Formative_1makemake disassembler # Build just the disassembler
make calculator # Build just the calculator
make sysmonitor # Build just the system monitor
make encryption # Build just the encryption systemmake cleancd Q1_Disassembler
./bin/disassembler <executable_file> <output_file>cd Q2_Calculator
./bin/calculatorcd Q3_SysMonitor
python3 scripts/visualize.pycd Q4_Encryption
./bin/file_encryptor encrypt <file1> [file2] ...
./bin/file_encryptor decrypt <file1_enc> [file2_enc] ...Each component has its own detailed README.md file in its respective directory:
Joshua Alana
This project is submitted as part of the ALU Linux Programming course.