분류 전체보기
함수 호출 규약(Calling Convention)
함수 호출 규약(Calling Convention) - 함수를 호출하는 방식에 대한 약속. 1) 인자 전달 방법 2) 인자 전달 순서 3) 스택 프레임 정리 방법 스택 프레임(Stack Frame) - 함수를 호출할때 상위에서 진행되던 함수를 저장하고, 인자를 전달하기 위해 스택 프레임의 구조를 사용한다. main 함수가 실행되는 과정에서 A 함수가 호출된다면, A함수에 대한 인자를 약속된 순서대로 스택 프레임에 저장한다. 그 다음 A 함수가 끝나고 되돌아 올 주소(RET)와 A 함수가 실행되기 전의 EBP의 값(SFP)을 스택에 push한다. 이후 A 함수가 끝나면, A 함수의 스택 프레임은 정리되고 RET와 SFP 값을 통해 main 함수의 스택 프레임으로 돌아오게 된다. x86 아키텍처에 사용되는 ..
[linux] source ~/.bashrc 에러 command not found: shopt
나는 zsh을 쓴다.. 그런데 환경변수 추가하려다가 에러가 났다.. .bashrc:16: command not found: shopt .bashrc:24: command not found: shopt .bashrc:115: command not found: shopt /usr/share/bash-completion/bash_completion:45: command not found: shopt /usr/share/bash-completion/bash_completion:1512: parse error near `|' \[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$ zsh를 사용하면 .zshrc에 환경변수..
명령어 집합 구조 (Instruction Set Architecture, ISA)
ISA(Instruction Set Architecture) - CPU가 인식해서 기능을 이해하고 실행할 수 있는 기계어 명령어 집합 - 하드웨어와 시스템 소프트웨어 사이의 인터페이스를 정의한다. - 칩을 만드는 회사마다 ISA의 종류가 다르다. ISA 분류 - 가변길이(CISC(Complex Instuction Set Computer)) : 명령어의 길이가 일정하지 않음. ex) x86 - 고정길이(RISC(Reduced Instruction Set Computer)) : 명령어의 길이가 일정함. ex) ARM, MIPS, AVR CISC는 마이크로 프로그래밍 방식을 채택했고, RISC는 Hard Wired 방식으로 설계됐다. CISC 명령어는 복잡하며 RISC보다 느려지지만 명령어 수가 적을수록 사이..
[Database] Windows MySQL 다운로드 및 설치하기
MySQL 공식 사이트 : https://www.mysql.com/downloads/ - MySQL 공식 홈페이지 에서 DOWNLOADS 탭을 클릭 - 화면을 아래로 내려서 MySQL Community Downloads를 클릭 - MySQL Community Server 클릭 - Go to Download Page 클릭 - MSI Installer Download 클릭 - No thanks, just start my download 클릭 (로그인 하지 않아도 다운 받을 수 있다.) -> 설치 파일이 다운로드 될 것이다. - 설치 타입을 선택하면 된다. (개발자 모드) - Execute 버튼을 눌러서 구성요소를 설치한다. - 기다리면 다 Complete 된 것을 확인 할 수 있다. -> Next 클릭 - ..
[Network] IEEE802.11 프레임 구조
802.11 헤더 구조 (사진 출처) Frame Control - 2byte (사진 출처) - 802.11 MAC 프레임 관련 제어 정보를 담고 있음. - bit단위로 나눠지면서 각각의 정보를 담는다. (아래 사진과 각 비드의 역할 참고.) 1) Protocol Ver - 2bit - 버전을 나타낸다. (현재로는 버전이 1개이고 0이다) 2) Type - 2bit - 프레임의 유형을 나타낸다. (00 : 관리프레임, 01 : 제어프레임, 10 : 데이터프레임) 3) Subtype - 4bit - 각 Type 유형에서 또 여러개로 나눠질 수 있게 함께 사용된다. (비콘프레임 : 1000, 인증해제프레임 : 1100) 4) To DS, From DS - 각 1bit - 802.11 MAC헤더의 Address..
[Network] ICMP Header 구조
ICMP(Internet Control Message Protocol)란? - 패킷을 목적지에 도달시키는게 목적인 IP을 보조하기 위해 사용된다. - 호스트가 꺼져 있거나, 단선인 경우와 같은 비정상적인 경우에 오류보고 메시지와 진단/정보를 전달한다. - 패킷이 대상 호스트에 도달하고 돌아오는지 확인할 때 사용한다. (ping test) ICMP 헤더 구조 Type - 패킷의 종류와 용도를 의미한다. (3 : 수신처 도달 분가 / 4 : 발신 제한 / 5 : 라우트 변경 / 11 : 시간 초과) Code - Type 부분의 세부 내용을 나타내며 Type과 조합을 이루어 ICMP 패킷의 목적을 나타낸다. Checksum - ICMP 패킷의 이상 유무를 확인한다. ICMP 헤더 C언어 구조체 구현
[Network] UDP Header 구조
UDP(User Datagram Protocol)란? - TCP와는 다르게 수신지에서 데이터를 받던 말던 상관하지 않고 데이터를 전송한다. - 수신된 패킷에서 오류를 탐지하면 폐기하는 정도의 오류제어 기능만 제공한다. - 위와 같은 이유때문에 TCP보다 빠르다. UDP 헤더 구조 Source Port - 2byte - 송신지 포트번호 Destination Port - 2byte - 수신지 포트번호 Length - 2byte - 헤더와 데이터를 합한 사용자 데이터그램의 전체 길이를 정의한다. - 최소값은 헤더만 포함한다면 8byte이고, 최대값은 IP 수용 제한에 따라 달라진다. - 65,507byte = 65,535byte - UDP 헤더(8byte) - IP 헤더(기본적으로 20byte)이다. Chec..
[Network] TCP Header 구조
TCP(Transmission Control Protocol)란? - 서버와 클라이언트간에 데이터 전송을 위한 연결을 만드는 연결지향 프로토콜이다. - 데이터를 여러 개의 패킷으로 나누고 도착지에서는 패킷을 재조립한다. - 패킷의 분실이나 중복, 순서가 바뀌는 문제를 해결해주기 때문에 신뢰성 있다. TCP 헤더 구조 Source Port - 2byte - 송신지 포트번호 Destination Port - 2byte - 수신지 포트번호 Sequence Number - 4byte - TCP 세그먼트 안에 데이터의 송신 바이트 흐름의 위치를 가리킨다. - 세그먼트는 서로 다른 경로를 거치면서 순서가 뒤 바뀔 수가 있다. 이를 수신 측에서 재조립하기 위해 사용되는 번호이다. Acknowledgment Numbe..