티스토리 뷰

리눅스 시스템 구조(커널과 쉘)



커널

  • 사전적 정의에 의하면 커널은 컴퓨터 운영체제의 가장 중요한 핵심이다.

  • 운영체제의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공하기 때문에 윈도우 그 자체라고 보면 된다.

  • 커널은 리눅스가 처음 부팅될 때 메모리로 로딩 된다.

  • 쉽게 생각하면 여러분들의 윈도우를 부팅할 때 나오는 로딩화면이 바로 커널을 로딩 하는 것이다.

  • 컴퓨터의 시스템 자원들을 관리한다.

  • 항상 메인 메모리에 상주하기 때문에 윈도우 부팅 후 바로 작업관리자를 열어 메모리 사용량을 보면 0%가 아닌 것이다.

  • 리눅스의 커널은 1만줄 이상의 C언어와 1000줄 정도의 어셈블리어로 구성되어 있어서 이식성(portability)이 좋다. 즉 다른 시스템 환경에서도 잘 적응할 수 있다는 것이다.

※ 커널은 주로 하드웨어 자원(하드디스크, 메모리 등..)을 효율적으로 관리하기 위해서 필요한 요소




  • 운영체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다.

  • 리눅스 명령어를 해석하는 명령어 해석기로 사용자와 리눅스 OS간의 인터페이스와 

   Shell Programming언어를 해석한다.

  • 키보드와 같은 단말 장치를 통해서 유저의 입력을 받아서 여러 프로그램이나 명령을 실행한다.

  • sh(본 쉘), ash, bash, csh(C )같은 다양한 쉘이 존재한다.

  • 윈도우에서 지원하는 cmd창도 쉘의 일종(CLI)이라고 보면 된다.

  • 내가 임의로 JHShell을 만들어서 ls 명령어를 JHls로 만들고 싶다면 그 쉘이 기존의 ls명령어를 수행하게끔 

  프로그래밍이 되어야한다

  • 지금 존재하는 쉘 또한 이런 방식으로 만들어졌다고 이해하면 조금 쉬울 것이다. 이렇게 JHls를 만들어 놓은 것이 하나의 인터페이스가 된다.


추가

  • 인터프리터(interpreter)는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 원시 코드를 기계어로 번역하는 컴파일러와 대비된다.




'4학년 1학기 > Linux && ubuntu' 카테고리의 다른 글

BeagleBone 블랙 내장 LED  (1) 2017.04.12
C언어의 agrv[argc]  (0) 2017.04.11
Bash Script  (0) 2017.04.11
BeagleBone Black에 트리 설치하기  (1) 2017.04.10
리눅스에서 JAVA 실행하기  (0) 2017.03.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함