iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

從 Rust 往程式底層前進 系列

主要想介紹 Rust 中一些語言特性的實作與程式的運作機制等

參賽天數 12 天 | 共 26 篇文章 | 22 人訂閱 訂閱系列文 RSS系列文
DAY 1

Overview

這次是我第二次寫鐵人賽的文章了,上次參加寫了 Rust 的教學,得到了一些讀者的回應,真的很感謝。 這次要來寫的主題是關於 Rust 的語言特性,這些特性又是如...

2019-09-16 ‧ 由 DanSnow 分享
DAY 2

Rust 簡介

在介紹 Rust 以前要先來談談為什麼用 Rust ,Rust 雖說是一個相對算新的語言,跟以往介紹系統運作所使用的 C 比較來的話,不過 Rust 背後有個強...

2019-09-17 ‧ 由 DanSnow 分享
DAY 3

列舉 (Enum)

Rust 中的列舉是 Rust 一個強大的功能,它跟 C 的列舉最大的不同是,它可以帶有資料 enum Foo { A(i32), B { a:...

2019-09-18 ‧ 由 DanSnow 分享
DAY 4

閉包 (Closure)

Rust 中有閉包這種東西 let x = 42; let f = || println!("x: {}", x); f(); // 會印...

2019-09-19 ‧ 由 DanSnow 分享
DAY 5

Trait Object

這功能或許平常比較不常用一點,它長這樣子 trait Name { fn name(&self); } struct Foo; impl Nam...

2019-09-20 ‧ 由 DanSnow 分享
DAY 6

記憶體 - stack 與 heap

資料在記憶體中長什麼樣呢?我們宣告的變數,不管是區域變數或是全域變數都存在記憶體中,甚至是程式碼也是,不過我們先把程式碼的部份留著,先來試著看看變數在記憶體中是...

2019-09-21 ‧ 由 DanSnow 分享
DAY 7

實作 heap

本系列的程式碼都有在 Ubuntu 18.04 下以目前的穩定版 Rust 1.37 測試過 這次的程式碼在 https://github.com/Dan...

2019-09-22 ‧ 由 DanSnow 分享
DAY 8

再看記憶體 - 分頁與虛擬記憶體

在上一篇中講到了資料段 (.data) ,今天來講講在記憶體中到底放了些什麼,首先,有個很重要的觀念要知道,程式也是資料: use std::slice; f...

2019-09-23 ‧ 由 DanSnow 分享
DAY 9

Stack Overflow

這個 stack overflow 並不是指程式設計師用的問答網站的那個 stackoverflow ,而是實際的堆疊溢位,也就是堆疊中的資料存取超過範圍了,那...

2019-09-24 ‧ 由 DanSnow 分享
DAY 10

Stack Overflow 2 - RCE 與 DoS

這次的程式碼在 https://github.com/DanSnow/ironman-2019/tree/master/buffer-overflow 這篇...

2019-09-25 ‧ 由 DanSnow 分享