Study/Basic Study

Linux Study - 리눅스 쉘, 구조, 메모리 구조

대장흰둥 2021. 5. 4. 13:13

1. 리눅스 쉘(SHELL)

  • 리눅스는 커널(Kernel)과 쉘(Shell), 유틸리티(Utility), 응용 프로그램 (Application)으로 이루어져 있다.
  • 쉘 은 컴퓨터의 메모리에 항상 떠있는 하나의 프로그램인 운영체제의 커널과 사용자 사이를 이어주는 역할을 한다. 사용자의 명령어를 해석해서 운영체제가 알아들을 수 있도록 해 준다.
  • bash : 실행파일은 /bin/bash, 명령행 편집 기능을 제공한다.
  • sh : 가장 오랫동안 모든 유닉스 시스템의 표준 구성 요소이며, 명령 프로그래밍 언어 기능을 가지고 있는 쉘이다.

2. 디렉토리 구조

  • /(루트): 최상위 디렉토리, 모든 디렉토리들이 루트 디렉토리에서부터 시작한다.
  • /bin: 리눅스를 사용할 때 mv,rm,cp 등과 같은 명령어들이 저장 되어있는 디렉토리
  • /etc: 시스템의 설정파일,부팅 셧다운 시에 필요한 파일이 존재하는 디렉토리
  • /home: 사용자의 홈 디렉토리가 있는 곳, 사용자를 추가할 때 사용자의 id 와 동일한 디렉토리가 이곳에 자동으로 만들어진다
  • /opt: 응용프로그램 패키지가 설치되는 디렉토리
  • /tmp: 프로세스를 진행할 때의 임시 파일들이 저장되는 디렉토리,모든 사용자에 대해서 읽기와 쓰기 작업을 허락한다
  • /usr: 공유가 가능한 대부분의 프로그램들이 설치되는 디렉토리
  • /var: 내용이 바뀔 수 있는 변수와 같는 자료를 포함하는 디렉토리
  • 이밖에도 /boot, /mnt, /dev, /sbin 등의 디렉토리가 있다.

3. 8086 메모리 구조

커널영역

우리가 직접 건드릴 수 없는 영역, 시스템 코드가 있는 부분으로, 항상 존재 하고 있는 영역이다.

Off-Limit 영역 사용자가 커널 영역에 접근할 수 없도록 할당 해 두는 공간이다
유저영역 스택영역 프로그램에서 사용되는 지역변수, 파라미터, 리턴 값 등을 저장하는 영역이다
공유 라이브러리 영역

라이브러리 함수들과 관련된 라이브러리 파일이 있는 영역

힙 영역 동적 할당되는 변수가 저장되는 영역
데이터 영역 데이터 영역

초기화 된 전역변수, 정적변수들이 저장되는 영역

bss 영역

초기화 되어있지 않은 변수들이 저장되는 영역

rodata 영역 읽기 전용으로 초기화 된 데이터 영역
코드영역

우리가 짠 소스코드, 코드를 어셈블리어로 번역한 것들이 저장되는 영역이다

Null Pointer 할당 영역 모두 0이고 변경 불가능한 영역, 시스템 보호를 위해서 만들어진 영역