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이고 변경 불가능한 영역, 시스템 보호를 위해서 만들어진 영역 |
'Study > Basic Study' 카테고리의 다른 글
Linux Study - Gdb, 함수 프롤로그/에필로그 (0) | 2021.06.27 |
---|---|
Linux Study - Compile, 파일 권한, Assembly (0) | 2021.06.21 |