본문 바로가기
반응형

IT Computer73

LINUX, UNIX - ELF 파일 구조 개요 유닉스(및 리눅스)의 표준 바이너리 파일 형식입니다. 실행, 목적 파일들 등을 위한 파일 형식입니다. 프로그래밍을 하고 소스코드가 기계어로 변환되는데 특정한 구조의 파일들이 존재합니다. 그중 하나가 ELF입니다. Windows에서는 PE로 정의된 파일을 사용합니다. ELF는 리눅스, 유닉스 운영체제 외에도 Android OS, PS Portable등에서 사용됩니다. 1. ELF Excuteable and Linkable Format의 약자입니다. 바이너리, 라이브러리, 코어 파일의 구조를 정의하는 파일 형식입니다. ELF에 대해 이해를 통해 운영체제에 대한 전반적인 이해와 개발, 보안(포렌식, 멜 웨어) 멜 웨어)에 대한 이점을 얻을 수 있습니다. 2. ELF 구조 ELF의 기본구조는 헤더, 섹션 .. 2022. 3. 30.
JavaScript 호이스팅 호이스팅 선언문이 코드 상단으로 끌어올려진 것처럼 동작하는 것이 변수 호이스팅이라 합니다. 변수 선언 키워드 var뿐 아니라 var, let, const, function, class 키워드들도 호이스팅이 됩니다. 일부 키워드들 중 정확히는 호이스팅이 되지 않는 것처럼 동작되는 것들도 있습니다. 변수 호이스팅 console.log(num) var num 해당 코드에서는 에러가 발생하지 않고 undefined가 출력됩니다. 이는 변수 선언이 작성한 코드대로가 아닌 상단에서 선언되기 때문입니다. 자바스크립트 엔진은 실행 전 코드를 훑는 과정을 거칩니다. 변수와 함수 선언을 먼저 찾아내어 선언을 한 후 실행을 하게 됩니다. 작성한 코드에서 선언문이 어디에 있던 먼저 선언되어 실행됩니다. 자바스크립트는 변수 선.. 2022. 3. 17.
Linux 파일 시스템 EXT 필수는 아니지만 얼마 전 게시물 중 할당 이론이 있습니다. 어느 정도 유사한 내용이 있으니 도움이 될 수도 있습니다. LINUX의 파일 시스템은 현재 EXT4입니다. 아직까지도 EXT3을 사용하는 리눅스도 꽤 많은 비중을 차지하고 있으며 EXT4는 EXT3, 2와 유사합니다. EXT EXT는 unix의 파일 시스템과 유사한 linux의 파일 시스템입니다. EXT는 파일의 대한 정보를 찾기 위해 inode를 사용합니다. inode의 테이블에는 파일 이름, 파일 크기, 파일의 소유자 파일이 속한 그룹, 파일에 대한 접근 권한, 파일의 데이터를 가리키는 포인터 항목이 존재합니다. inode마다 각 고유번호가 존재하는데 이를 통해 파일을 식별합니다. EXT2는 EXT버전의 기본 구조를 따라간 채 업그레이드된 버.. 2022. 3. 8.
운영체제 교착상태 교착상태 여러 스레드가 한정된 자원을 사용하려 하고 사용할 수 없는 순간이 왔을 때 이 상태를 벗어날 수 없으면 교착 상태라 합니다. 교착상태를 예방하는 도구가 있을 수도 있지만 보통은 제공하지 않습니다. 교착상태를 방지하는 것은 개발자의 몫입니다. 교착상태를 유발하는 여러 곳에서 발생할 수 있습니다. 자원으로 사용되는 모든 부분에서 발생합니다. 교착상태의 특징 교착상태의 필수 조건 교착 상태는 다음 네 가지의 조건이 모두 성립할 때 발생됩니다. 1. 상호 배제 : 최소한 하나의 자원이 공유하지 않고 점유되어야 합니다. 다른 프로세스가 요청을 하더라도 현재 진행 중인 프로세스가 완료될 때까지 대기합니다. 2. 점유하며 대기 : 프로세스가 자원을 점유한 체 다른 자원을 얻기 위해 대기하며 현재 사용 중인 .. 2022. 1. 17.
파일시스템의 할당 이론 파일을 사용 후 보조 저장장치에 영구적으로 저장하게 됩니다. 저장공간에 어떻게 파일 시스템을 적용하여 할당, 반납 그리고 파일의 구조를 정하는지 설명합니다. 여기서 파일 시스템이 적용되는 보조 저장장치의 특성은 대용량이며 별다른 작업이 없는 한 영구적입니다. 과거 하드디스크, 테이프가 주류였다면 현재는 비휘발성 메모리(NVM)도 점유율도 높아지고 있습니다. SSD의 동작, 알고리즘은 전혀 다른 방식을 사용하기에 하드디스크와 별다른 제어 방법이 필요합니다. 파일 시스템 기본 NVM 구조는 기존 디스크와 다르기 때문에 다른 방식을 사용합니다. 여기서는 디스크의 기준으로 설명합니다. 파일 시스템은 쉽게 데이터를 저장하고 찾기 위한 작업을 효율적으로 사용하게끔 합니다. 파일 시스템에서 단계를 나누면 논리적 파일.. 2022. 1. 6.
파일 시스템의 기본 개념 이 포스트는 실제 파일 시스템의 내용보다는 그 기초가 되는 내용들로 구성되어있습니다. 우리는 컴퓨터 작업을 한 뒤 SSD, 하드디스크 등 파일들을 저장하게 됩니다. 이런 보조 저장장치에 논리적 저장 단위를 정의합니다. txt나 exe 같은 일련의 바이너리 데이터를 규정하여 보조 저장장치에 저장하기 위한 최소한의 단위입니다. 파일의 구성과 개념 파일 유형 파일 유형을 알고 그에 대한 올바른 연산을 한다면 합리적으로 사용하게 됩니다. 예를 들어 컴파일을 해야 하는 소스코드 파일을 링킹 같은 작업을 한다면 쓰레기 파일을 만들어 내게 됩니다. 흔히 확장자라고 하며 이에 따라 파일을 다루게 됩니다. 실행파일인 exe 소스코드 확장자 c, cpp, java 배치 확장자인 bat, sh 등이 존재합니다. 확장자가 있.. 2021. 12. 21.
반응형