정의
바이너리(Binary)란, 0과 1로 이루어진 이진수(binary code)로 이루어진 파일을 의미한다. 컴퓨터에서는 바이너리 파일을 CPU가 직접 읽어들여 명령어(instruction)를 수행하며, 기계어(machine code)라고도 한다.
바이너리 파일은 컴파일된 소스코드나 기계어 코드를 포함하는 실행 가능한 파일(executable file)이다. 이 파일들은 사용자에 의해 실행될 수 있다. 하지만 바이너리 파일은 실행 파일로 실행되기 때문에 실행 파일이 아니면 실행되지 않는다. 이 때 실행 파일이 실행될 때는 CPU가 해당 명령어를 직접 수행한다.
리눅스는 분석 도구들을 제공하여 바이너리 파일 분석을 용이하게 할 수 있다. 바이너리 분석 도구들은 분석가가 더 잘 이해할 수 있도록 이진 파일의 내용을 분석하고 시각화할 수 있다.
리눅스에서는 바이너리 파일이 /bin, /sbin, /lib, /opt/bin과 같은 바이너리 디렉토리에 위치하며, 사용자들은 해당 파일들을 실행할 수 있다. 또한 바이너리 파일을 비교하기 위한 도구도 제공한다. 바이너리 파일은 실행 파일이나 라이브러리 파일의 변경이 있을 경우 다른 동작을 수행할 수 있으므로, 파일 비교가 중요하다.
장점
첫째, binary는 데이터를 빠르게 처리할 수 있다. 이진수 체계는 0과 1 두 가지 값만으로 이루어져 있어 다른 진수 체계에 비해 데이터 처리 속도가 빠르다.
둘째, binary는 데이터를 효율적으로 저장할 수 있다. 이진수 체계는 0과 1 두 가지 값만으로 이루어져 있기 때문에, 데이터를 저장하기 위해 필요한 공간이 다른 진수 체계에 비해 적다.
셋째, binary는 컴퓨터 시스템에서 프로그램을 실행하는 데에 필수적이다. 모든 컴퓨터 프로그램은 이진수 형태로 저장되며, 이진수 데이터를 해석하고 실행하는 것이 컴퓨터의 역할이다.
단점
첫째, 이진법을 사용하면 표현할 수 있는 수의 범위가 한정되어 있다는 점이다. 이진법에서 사용하는 0과 1 두 개의 숫자만으로는 표현할 수 있는 수의 범위가 제한적이기 때문에, 이진법으로 표현할 수 있는 수의 개수가 제한된다.
둘째, 이진법으로 표현한 결과가 다른 결과와 동일한 경우가 발생할 수 있다는 점이다. 이진법은 0과 1 두 개의 숫자만을 사용하기 때문에, 다른 입력에 대해 동일한 출력을 내는 경우가 발생할 수 있다. 이러한 경우에는 입력이 동일한 경우에 대해 동일한 출력을 내지 않는 다른 수 체계를 사용해야 한다.
셋째, 이진법으로 표현할 때 수의 자릿수가 늘어난다는 점이다. 이진법에서는 1로 끝나는 수 다음 수는 자릿수가 하나 더 많은 수가 되는데, 이는 십진법에서 9로 끝나는 수 다음 수가 자릿수가 하나 더 많은 수인 것과 유사하다. 그러나 이진법에서는 수의 자릿수가 늘어날 때마다 0과 1의 숫자를 더 많이 사용해야 하기 때문에, 수의 크기가 커질수록 이진법으로 표현하기 어려워진다.
'Linux > Linux 이론' 카테고리의 다른 글
[Linux 기타] root 비밀번호 초기화 (0) | 2023.03.14 |
---|---|
[Linux 이론] SSH(Secure SHell) (0) | 2023.03.14 |
[Linux 이론] File system [2] (Linux 용) (0) | 2023.03.12 |
[Linux 이론] 서버와 클라이언트(+ DHCP) (2) | 2023.03.11 |
[Linux 이론] 다운로드 명령어 (yum, dnf) (0) | 2023.03.11 |