This project is part of a course on operating systems and focuses on the development of a Linux device driver for a cryptographic core (cryptocore) in a simulated environment. The goal of this project is to provide a practical understanding of device driver development and how it interfaces with hardware components, particularly in the context of a cryptosystem.
The primary objectives of this project include:
-
Device Driver Development: Create a Linux kernel module that interfaces with the simulated cryptocore hardware.
-
Cryptographic Operations: Implement cryptographic operations using the cryptocore hardware.
-
System Integration: Integrate the device driver into the Linux kernel and test its functionality within the simulated environment.
-
Documentation: Provide clear and comprehensive documentation to guide users and future developers.
This project aims to give you a deeper understanding of how operating systems manage hardware resources and how user processes interact with the kernel.
Here's an overview of the project's directory structure:
/
|-- Backup/
| |-- 2023-10-24--18:20:41
| |-- backup.sh
|-- Laboratory_Experience/
| |-- Material/
| |-- Part1
| |-- Part2
| |-- Part3
| |-- Lab_experiences_OS.pdf
| |-- Solution/
| |-- Part2
| |-- Part3
|-- PowerPoint_Presentation/
| |-- PPT_presentation.pptx/
|-- Overleaf Projects - Lab experiences.zip
|-- LICENSE.md
|-- README.md
-
Backup/: This directory contains a backup of all the files modified by us during the development of this project and a script useful to automate the process.
-
Laboratory_Experience/: This directory contains the documentation and the useful materials divided for each laboratory experience, and the relative solutions developed by us.
-
PowerPoint_Presentation/: This directory holds the power point presentation that contains the explanation of our project.
-
Overleaf Projects - Lab experiences.zip: This is a zip file containing all the reports and materials realative to the laboratory experiences.
-
LICENSE.md: This is the license of this project.
To get started with the laboratory experience, follow these steps:
-
Clone this repository to your development environment.
-
Start from the folder Part1 for the first laboratory experience, review the files present in this folder and the OS_Lab1.pdf presentation.
-
Follow the steps presents in the documentation of this first laboratory to setup the environment.
-
Now you can start develop and test the unit following the other laboratory experiences.
The project is licensed under Creative Commons Attribution-NonCommercial (CC BY-NC) license that you can read about in more details here