안녕하세요.
|
야생의 개발자 류한솔입니다.

thumbnail
ssh 접속 시 unprotected private key file 해결 방안

ssh 접속 시 unprotected private key file 해결 방안 이런 식으로 에러가 발생하는 경우가 생긴다. 이러한 경고는 permission이 잘못되게 설정되는 경우 발생한다.(너무 많은 혹은 너무 적은 permission 모두) 따라서 이런 경우 해결 방안은 다음과 같이 permision을 수정하면 된다. ssh 접속 시 unprotected private key file 해결 방안

July 09, 2024
backend
CSAPP-2024-07-1주차 정리 (301p - 310p)

Machine-Level Representation of Programs 3.9 Heterogeneous Data Structures Heterogeneous Data Structures : 이질적인 데이터 구조체들 C는 객체의 다른 타입들을 조합함으로써 데이터 타입을 생성하는 두 가지 메커니즘을 갖고 있다. 구조체, 유니온이 바로 그것이다. 3.9.1 Structures C의 구조체는 단일한 객체에 다를 수 도 있는 객체들을 묶어 놓은 데이터 타입으로 생성하고, 선언한 것을 말한다. 구현은 기본적으로 배열과 동일하며, 연속적인 공간 속에, 구조체의 데이터들이 나열하여 저장되며, 구조체는 최초의 바이트의 주소값을 포인터로 소지한 형태로 구성된다. 이러한 구조체의 각 필드에 접속하기 위해, 컴파일러는 적절하게 구조체의 주소에 접근 가능한 오프셋을 더하는 코드를 생성한다. 교재에서 나오는 예시를 통해 알 수 있는 점은, 구조체의 다른 필드에 접근하는 것에 대한 모든 내용은 컴파일 타임…

July 06, 2024
study
CSAPP-2024-06-4주차 정리 (291p - 312p)

Machine-Level Representation of Programs 3.8 Array Allocation and Access C 언어 안에 배열은 더 큰 단위의 데이터 타입의 스칼라 데이터들을 모아주는 하나의 수단이다. C는 특히나 배열을 단순한 구현을 통해 사용하고, 나아가서 매우 직관적으로 기계어로 번역된다. C의 특수한 기능의 하나로, 포인터들을 통해 배열 내의 요소들을 가리키는 게 가능할 뿐만 아니라, 이러한 포인터들의 수학적 연산을 수행 가능하다는 점이다. 이러한 코드들은 기계어로 주소 계산을 통해 변환된다. 최적화 컴파일러는 특히나 배열의 인덱싱을 수행함으로써 주소 연산을 단순화하기를 매우 잘한다. 이러한 특성은 C 코드와 해당 코드를 기계 코드로 번역하는 것 사이의 대응 관계를 해독하는데 다소 어려워 질 수 있다. 3.8.1 Basic Principles 우리가 익히 아는 배열의 룰 기본적인 x86-64 메모리 참조 구조는 배열 접근을 하기 위해 단순하게 디자인되…

June 29, 2024
study
CSAPP-2024-06-4주차 정리 (281p - 291p)

Machine-Level Representation of Programs 3.7.3 Data Transfer 호출 될 때 프로시져가 제어권을 전달함과 더불어, 여기엔 데이터가 인자로써 전달되고 값이 반환된다. x86-64 에서, 여섯개의 정수 인자가 레지스터를 통해 전달될 수 있다. 인자들은 이러한 인자 리스트 안에 순서에 따라 레지스터들에 순서를 가지고 할당 된다. 정수 인자가 6개보다 많은 함수의 경우, 다른 인자들을 스택 상에서 전달해준다. 따라서 인자를 받기 전 프로시져는 반드시 스택프레임에 7번째부터 인자를 저장하기에 충분한 스택 프레임을 할당해야 한다. 프로시져 Q는 레지스터를 통해 인자에 접근이 가능하고, 스택으로부터도 가능하다. 만약 Q가 6개의 인자보다 더 많이 인자를 가지는 함수를 호출한다면, 6개 이상의 인자들을 위한 스택프레임 내부의 공간을 할당해야 하고, 이는 인자 빌드 에리어에 지정된다. 이에 대한 기계어로 번역된 코드 proc의 예시만 봐도 최초 6개의…

June 19, 2024
study