리눅스 부팅 프로세스
·
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
셸이란?우리가 PuTTY를 통해 `date` 명령어를 입력하면, 리눅스 내부에서는 다음과 같은 일이 일어난다.키보드로 입력한 date 문자열을 받아들인다.해당 명령어를 시스템에서 검색한다.발견한 명령어를 실행한다.실행 결과로 얻은 문자열을 화면에 출력한다.이 과정에서 주목할 점은 사용자가 `date`라는 명령어를 입력했다고 해서 리눅스 커널을 직접 조작한 것이 아니라는 점이다.사용자와 커널 사이에는 명령어를 검색하여 커널에 실행을 요청하고, 그 결과를 사용자에게 전달하는 역할을 수행하는 소프트웨어가 필요하다. 이 소프트웨어가 바로 셸(Shell)이며, 사용자와 커널을 연결하는 인터페이스 역할을 수행한다. 터미널 vs 셸터미널이란 원래 컴퓨터의 입출력만을 담당하는 전용 하드웨어를 의미한다.ex) 키보드, ..