리눅스 부팅 프로세스
·
Linux
0. 서론리눅스 시스템이 켜질 때부터 사용자 환경이 준비되기까지의 과정은 여러 단계로 나뉜다. 1. BIOS 초기화 단계리눅스 부팅 과정에서 가장 첫 번째 단계는 BIOS 초기화다.이 단계에서 하드웨어를 준비하고 부팅 가능한 장치를 찾아 부트로더를 실행한다. 여기서 BIOS(Basic Input/Output System)는 컴퓨터가 켜질 때 가장 먼저 실행되는 펌웨어(하드웨어를 제어하는 소프트웨어)를 의미한다. 요즘에는 UEFI(Unified Extensible Firmware Interface)라는 현대적 펌웨어도 사용되는데,GPT 디스크 지원 및 GUI 부트 메뉴 등 BIOS보다 기능이 훨씬 확장된 방식이다. BIOS 초기화는 다음과 같은 과정을 거친다. 1. 전원 공급CPU, 메모리 등 필수 하드웨..
커널이란?
·
Linux
서론컴퓨터에서 프로그램을 실행하면, 사실 프로그램이 직접 하드웨어를 제어하지는 못한다.CPU, 메모리, 디스크, 네트워크 같은 하드웨어 자원은 복잡하고, 잘못 다루면 시스템 전체가 망가질 수 있기 때문이다. 여기서 커널(Kernel)이라는 개념이 등장한다. 커널이 왜 필요한가?커널이 왜 필요한지를 알기 위해, 우선 커널 없이 사용자가 하드웨어를 직접 제어해야 하는 상황을 가정해 보자. 커널이 없다면?CPU 충돌: 여러 프로그램이 동시에 CPU를 쓰려고 할 경우, 어떻게 할 것인지?메모리 충돌: 한 프로그램이 다른 프로그램의 메모리를 덮어쓸 경우, 어떻게 할 것인지?I/O 혼잡: 디스크, 네트워크 같은 자원을 여러 프로그램이 동시에 요청할 경우, 어떻게 할 것인지?보안 문제: 프로그램이 마음대로 하드웨어를..
링크란?
·
Linux
링크란?리눅스의 파일 시스템에는 파일에 별명을 붙이는 것이 가능하다.이것을 링크라고 부르며, 별명을 붙이는 것을 "링크를 생성한다"라고 한다.링크에는 하드 링크(Hard Link)와 심볼릭 링크(Symbolic Link) 두 종류가 있지만, 일반적으로 심볼릭 링크가 더 많이 사용된다. 하드 링크우선 내용이 hello인 file1에 대해 file2라는 이름의 하드 링크를 만들었다.file2의 내용을 출력하면 file1의 내용이 출력되며, 반대로 file1을 출력해도 file1의 내용이 출력된다. file1의 내용을 bye로 변경 시, file1의 내용뿐만 아니라 file2의 내용 역시 변경되는 것을 확인할 수 있다.(반대의 경우도 동일하다)즉, 하드 링크란 하나의 파일 원본에 이름을 여러 개 붙이는 기능이..
셸이란?
·
Linux
셸이란?우리가 PuTTY를 통해 `date` 명령어를 입력하면, 리눅스 내부에서는 다음과 같은 일이 일어난다.키보드로 입력한 date 문자열을 받아들인다.해당 명령어를 시스템에서 검색한다.발견한 명령어를 실행한다.실행 결과로 얻은 문자열을 화면에 출력한다.이 과정에서 주목할 점은 사용자가 `date`라는 명령어를 입력했다고 해서 리눅스 커널을 직접 조작한 것이 아니라는 점이다.사용자와 커널 사이에는 명령어를 검색하여 커널에 실행을 요청하고, 그 결과를 사용자에게 전달하는 역할을 수행하는 소프트웨어가 필요하다. 이 소프트웨어가 바로 셸(Shell)이며, 사용자와 커널을 연결하는 인터페이스 역할을 수행한다. 일시적으로 셸 바꾸기`echo $SHELL` 명령어를 사용해 리눅스의 로그인 셸(기본 셸)을 확인할 ..