Υλοποίηση και αξιολόγηση ενός Linux device driver γραμμένου σε Rust

Στην παρούσα διπλωματική αξιολογούνται οι δυνατότητες της Rust στην ανάπτυξη Linux kernel modules. Η Rust επελέγη λόγω του υψηλού επιπέδου ασφάλειας μνήμης που προσφέρει. Για την αξιολόγηση δημιουργείται σε Rust ένας Linux driver για τη HW γεννήτρια τυχαίων αριθμών των SoC Broadcom BCM2835/6/7 ο οπο...

Full description

Bibliographic Details
Main Author: Μαραγκός, Νικόλαος
Other Authors: Maragkos, Nikolaos
Language:Greek
Published: 2022
Subjects:
Online Access:https://hdl.handle.net/10889/23617
id nemertes-10889-23617
record_format dspace
spelling nemertes-10889-236172022-11-03T04:35:29Z Υλοποίηση και αξιολόγηση ενός Linux device driver γραμμένου σε Rust Implementation and evaluation of a Linux device driver written in Rust Μαραγκός, Νικόλαος Maragkos, Nikolaos Λειτουργικά συστήματα Operating systems Linux Driver Rust Στην παρούσα διπλωματική αξιολογούνται οι δυνατότητες της Rust στην ανάπτυξη Linux kernel modules. Η Rust επελέγη λόγω του υψηλού επιπέδου ασφάλειας μνήμης που προσφέρει. Για την αξιολόγηση δημιουργείται σε Rust ένας Linux driver για τη HW γεννήτρια τυχαίων αριθμών των SoC Broadcom BCM2835/6/7 ο οποίος στη συνέχεια υποβάλλεται σε μία σειρά ελέγχων ώστε να συγκριθούν τα αποτελέσματά του με αυτά του αντίστοιχου C driver του Linux kernel. Στόχος είναι να αξιολογηθεί το κέρδος σε memory safety που παρέχει η Rust ως αντιστάθμισμα για την όποια υστέρηση φέρει ενδεχομένως σε αποδοτικότητα, εάν δηλαδή η Rust δημιουργεί κάποια συνθήκη ικανή να αποτρέψει τη χρήση της. Συμπεραίνεται πως ο driver της εργασίας είναι εξίσου αποδοτικός με τον C driver. Ως εκ τούτου λόγω του memory safety, η Rust μπορεί να θεωρηθεί απολύτως εύλογη επιλογή για την συγγραφή μελλοντικών drivers και λοιπών kernel modules. In this thesis are evaluated the capabilities of Rust in developing Linux kernel modules. Rust was chosen due to its offered level of memory safety. For the evaluation, a Linux driver for the HW random number generator of Broadcom BCM2835/6/7 SoCs is developed in Rust, which is subsequently submitted to a series of tests so as to compare its results to the results of the corresponding C driver of the Linux kernel. The aim is to evaluate the trade-off between any contingent performance loss and the memory safety that Rust offers, i.e. whether Rust creates any condition that could prevent its usage in the kernel. It’s concluded that the implemented driver is as performant as its C counterpart. Therefore, due to the offered memory safety, Rust can be considered a tenable choice for writing future drivers and miscellaneous kernel modules. 2022-11-02T09:32:52Z 2022-11-02T09:32:52Z 2022-11-02 https://hdl.handle.net/10889/23617 el Attribution-NonCommercial-ShareAlike 3.0 United States http://creativecommons.org/licenses/by-nc-sa/3.0/us/ application/pdf
institution UPatras
collection Nemertes
language Greek
topic Λειτουργικά συστήματα
Operating systems
Linux
Driver
Rust
spellingShingle Λειτουργικά συστήματα
Operating systems
Linux
Driver
Rust
Μαραγκός, Νικόλαος
Υλοποίηση και αξιολόγηση ενός Linux device driver γραμμένου σε Rust
description Στην παρούσα διπλωματική αξιολογούνται οι δυνατότητες της Rust στην ανάπτυξη Linux kernel modules. Η Rust επελέγη λόγω του υψηλού επιπέδου ασφάλειας μνήμης που προσφέρει. Για την αξιολόγηση δημιουργείται σε Rust ένας Linux driver για τη HW γεννήτρια τυχαίων αριθμών των SoC Broadcom BCM2835/6/7 ο οποίος στη συνέχεια υποβάλλεται σε μία σειρά ελέγχων ώστε να συγκριθούν τα αποτελέσματά του με αυτά του αντίστοιχου C driver του Linux kernel. Στόχος είναι να αξιολογηθεί το κέρδος σε memory safety που παρέχει η Rust ως αντιστάθμισμα για την όποια υστέρηση φέρει ενδεχομένως σε αποδοτικότητα, εάν δηλαδή η Rust δημιουργεί κάποια συνθήκη ικανή να αποτρέψει τη χρήση της. Συμπεραίνεται πως ο driver της εργασίας είναι εξίσου αποδοτικός με τον C driver. Ως εκ τούτου λόγω του memory safety, η Rust μπορεί να θεωρηθεί απολύτως εύλογη επιλογή για την συγγραφή μελλοντικών drivers και λοιπών kernel modules.
author2 Maragkos, Nikolaos
author_facet Maragkos, Nikolaos
Μαραγκός, Νικόλαος
author Μαραγκός, Νικόλαος
author_sort Μαραγκός, Νικόλαος
title Υλοποίηση και αξιολόγηση ενός Linux device driver γραμμένου σε Rust
title_short Υλοποίηση και αξιολόγηση ενός Linux device driver γραμμένου σε Rust
title_full Υλοποίηση και αξιολόγηση ενός Linux device driver γραμμένου σε Rust
title_fullStr Υλοποίηση και αξιολόγηση ενός Linux device driver γραμμένου σε Rust
title_full_unstemmed Υλοποίηση και αξιολόγηση ενός Linux device driver γραμμένου σε Rust
title_sort υλοποίηση και αξιολόγηση ενός linux device driver γραμμένου σε rust
publishDate 2022
url https://hdl.handle.net/10889/23617
work_keys_str_mv AT marankosnikolaos ylopoiēsēkaiaxiologēsēenoslinuxdevicedrivergrammenouserust
AT marankosnikolaos implementationandevaluationofalinuxdevicedriverwritteninrust
_version_ 1771297196685131776