Dieser Eintrag ist als Gedankenmodell gedacht um anderen den Einstieg in die low-level Struktuen des Programmierens zu geben. Es besteht aus den Quellen, die ich gefunden und verstanden habe, sowie das was ich über die Zeit gelernt habe. Ich hoffe es stimmt alles, aber wenn nich (wenn etwas auch nur nich ganz stimmig scheint), bitte lasst es mich wissen. Danke :)
Ausflug in den Arbeitsspeicher - wie Datenstrukturen (in Rust) dargestellt werden Ich möchte hier darüber reden, wie Datenstrukturen in Rust im Arbeitsspeicher aussehen, und auch wie der Kernel Arbeitsspeicher abstrahiert.
Ich habe schon länger eine kleine Faszination für die Kombinierung von mehreren Programmiersprachen in einem Projekt. Ich finde es begeisternd, wie es geht, dass zwei in sich vollständige Sprachen miteinander interagieren. Da wird einem klar, dass die Sprachen selber lediglich Abstraktionen der zugrunde liegenden Datenverarbeitungsschritte sind. Und diese Daten sind nun mal immer die gleichen, Einsen und Nullen.
Die zwei Sprachen, mit denen ich mit hauptsächlich beschäftige, sind Rust und Julia.
Types Boolean bool
Unsigned integers u8, u16, u32, u64, u128
Signed Integers i8, i16, i32, i64, i128
Floating point numbers f32, f64
Tuple let coordinates = (1,23); Array & Slice // Arrays must have a known length and all // elements must be initialized let array = [1, 2, 3, 4, 5]; let array2 = [0; 3]; // [0, 0, 0] // Unlike arrays the length of a slice is determined at runtime let slice = &array[1 .
Nushell Die Nushell ist eine neue shell, die noch in der Entwicklung ist. Sie ist in rust geschirben und implementiert neue und moderne Konzepte, die andere shells, die es teilweise seit Jahrzehnten gibt, nicht haben.
Vorteile Die Nushell betrachtet die Informationen, die aus dem System ausgelesen werden, nicht nur als Strings, sondern erkennt auch die Zusammenhänge der Daten. Das ist besonders nützlich, da man sich mit dem Terminal in den reinen Daten bewegt, ergibt es sehr viel Sinn sie auch sinnvoll und zusammenhängend darzustellen.
Eine Terminalapplkation um Fortschritt (oder anderes) zu tracken.
Das ist mein erstes Rust projekt. Ich habe versucht mit den Grundprinzipen vertraut zu werden.
Updates hier
main.rs
// The GPLv3 License (GPLv3) // Copyright (c) 2023 Lovis Rentsch // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version.