본문 바로가기

security/rust4

Rust vs C++ 동적 메모리 오버헤딩으로 보는 Rust의 안정성 목표: 벡터를 통해 메모리 오버헤딩을 발생시키는 C++코드를 작성하고 과연 Rust는 이를 비껴갈 수 있는지 어셈블리어로 분석해 볼 것이다. 메모리 오버헤딩이 발생하는 전제 1. 벡터에 계속해서 요소를 동적으로 추가하는 경우 vector vec; // 메모리 오버헤딩을 의도적으로 발생시키기 while (true) { vec.push_back(1); } 2. 초기 예상치보다 큰 용량 할당 3. 벡터를 사용해서 대용랑의 데이터 처리 4. 잘못된 메모리 관리 벡터 사용하고 메모리 해제하지 않는 경우=Rust는 소유권이 있어서 해제하지 않아도 괜찮다? void overVev(){ vector* overVec = new vector(1000);} int main().. 2023. 5. 15.
[Rust 기초] 코드 실행 방법 디렉터리 생성 및 코드 실행 방법: $ cargo new directory --bin //새로운 디렉토리 만들기 $ cd directory $ cd src $ cargo run --> 실행됨 directory 최상위 폴더는 rust폴더이다 main.rs의 위치: rust/directory/src/main.rs 변수형 네임 규칙: 낙타형 말고 뱀형으로 통일하라고 한다. (가독성을 위해서) 난 변수명에 _ 이거 껴있는 게 더 구리다고 생각하는데.. 난 rust랑 안 맞아 💢 2023. 5. 13.
rust 구조체와 소유권 fn main() { struct User { username: String, email: String, sign_in_count: u64, active: bool, } let sooyeon = User { email: String::from("nina3657@naver.com"), username: String::from("nina3657"), active: true, sign_in_count: 1, }; let x="nin"; let y= "soo"; let student= 구조체반환해주기(x,y); println!("{}",student.email); } fn 구조체반환해주기(email:String, username: String ) -> User { User { email: email, usern.. 2023. 3. 1.
[설치] Rust 언어 설치 온라인 북이 아주 친절하게 설명을 해줍니다https://rinthel.github.io/rust-lang-book-ko/ch01-01-installation.html 설치하기 - The Rust Programming Language첫 번째 단계는 러스트를 설치하는 것입니다. 우리는 rustup이라고 하는 러스트 버전 및 관련 도구들을 관리하기 위한 커멘드 라인 도구를 통하여 러스트를 다운로드할 것입니다. 다운로드를 위rinthel.github.io 저는 리눅스에 설치명령어 1줄만 치면 끗-!완전 완전 쉽게 성공 2023. 2. 14.