단순하게 리눅스을 알아보는 것이 아니라, 리눅스를 알아보면서 자연스럽게 여러가지 커멘드, 그리고 그 커멘드를 받치고 있는 환경과 OS layer 중심적으로 살펴보자. 처음엔 아주 넓게, 러프하게 다루고 다시 깊은 내용을 다루는 방식으로 시리즈를 진행할 예정이다.
CS에서 많은 부분을 차지하는 운영체제의 depth있는 접근은 해당 시리즈와 목적이 많이 상이하다. 운영체제에 아주 간단한 정의만 살펴보자.
운영체제는 하드웨어 자원을 관리하고, 응용 프로그램와 하드웨어 사이를 중재하는 인터페이스를 의미 한다. 기본적으로 프로그램이 실행되기 위해서는 주기억장치에 적재된 상태여야 한다.
운영체제 역시 프로그램이기 때문에 메인 메모리에 적재가 되어야 하나, 운영체제의 크기가 너무 커서 전체를 다 메인 메모리에 올리게 된다면 비효율적이다. (메모리 공간의 낭비)
따라서 커널(kernel)이라고 하는 항상 필요한 운영체제의 핵심 부분만을 메인 메모리에 적재하여 운영체제를 사용하게끔 한다. 커널은 메모리에 상주하는 운영체제의 핵심 부분이라고 할 수 있다.
커널은 앞으로 더 살펴보자!
우선 OS의 핵심적인 역할은 "운영체제는 시스템의 자원 관리자(Resource Manager)" 라는 것을 명심하자.
운영체제는 사용자 프로세스의 요구에 따라 자원을 할당하고, 사용이 끝난 자원을 회수해서 관리한다. 시스템 콜을 통해 운영체제에게 서비스를 요구한다. 또한 사용의 편의성에도 있다. 사용자는 하드웨어나 운영체제의 내부의 복잡한 구조에 대한 지식 없이도 사용할 수 있어야 한다. 운영체제는 하드웨어를 추상화하여 가상기계 개념을 제공한다. 본 운영체제의 목표는 자원의 효율적인 활용에 있다. 하드웨어 자원이나 소프트웨어 자원을 효율적으로 관리하여 이용률을 최대로 높여야 한다.
아래 사진은 os 의 기본 layer 형태는 아래와 같다. "HW <-> Application" call 에 집중한 그림이다.
유닉스 기반, 멀티 유저와 멀티 태스킹 지원, 대부분의 리눅스는 CLI, GUI 모두 지원한다. 그리고 강력한 네트워킹(핵심 -> 서버 OS에 적합) 에 강력하다.
사용 분야는 종류만큼이나 많다. 라우터, AP (N/W 서버 장빕), 라즈베리파이(IOT, 임베디드 시스템), TV 셋톱박스, 정밀 의료기기, 안드로이드, 블랙박스 등
남아프리카 반투어 "우분투" 말에서 파생
: "사람들간 관계와 헌신에 중점을 둔 윤리 사상 혹은 인본주의 사상으로 평화 운동의 사상적 뿌리"
whoami # 로그인한 사용자 ID를 알려주는 명령어 = id -un
passwd # 로그인한 사용자의 비밀번호를 변경하는 명령어
pwd # 현재 내가 위치한 디렉토리 위치를 출력
현재 디렉토리의 목록을 출력 -> 상당히 자주, 상당한 많은 옵션이 존재
ls -l
ls -a
ls -al
--help
옵션으로 어떤 옵션이 존재하고, 간단한 설명을 볼 수 있다.man command
를 통해 상세 내용을 살펴볼 수 있다. man [모르는 커맨드]
/ man command in Linux with ExamplesGraphical User Interface
의 약자Command Line Interface
의 약자
좋은 글 감사합니다!