달고나 문서를 읽으며 정리한 내용과 "생활코딩-Linux" 강의를 들으며 알게 된 내용을 정리합니다.
[ 달고나 문서 ]
8086 시스템의 기본적인 메모리 구조는 <그림 1>과 같다.
이 중, Kernel은 운영 체제의 핵심이라고 볼 수 있다. Kernel의 역할은 다음과 같다.
1. 보안 : 컴퓨터 하드웨어와 프로세스의 보안을 책임진다.
2. 자원 관리 : 한정된 시스템 자우너을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다. 특히 프로세스에 처리기를 할당하는 것을 스케쥴링이라고 한다.
3. 추상화 : 같은 종류의 부품에 대해 다양한 하드웨어를 설계할 수 있기 때문에 하드웨어에 직접 접근하는 것은 문제를 매우 복잡하게 만들 수 있다. 이 하드웨어 추상화는 프로그래머가 여러 장비에서 작동하는 프로그램을 개발하는 것을 돕는다.
시스템이 초기화 되기 시작하면 시스템은 커널을 메모리에 적재시키고 사용 가능한 메모리 영역(Available Space)을 확인한다. 시스템은 운영에 필요한 기본적인 명령어 집합을 커널에서 찾기 때문에 커널 영역은 반드시 같은 위치에 있어야 한다.
운영체제는 하나의 프로세스를 실행시키기 위해 프로세스를 segment라는 단위로 묶어서 Available Space에 저장시킨다. 프로세스란, 현재 실행중인 프로그램을 뜻한다.
<그림 2>와 같이 오늘날의 시스템은 멀티 태스킹이 가능하여 하나의 메모리에 여러 개의 프로세스가 병렬적으로 실행될 수 있다. segment는 실행하는 시점에 메모리에 어느 위치에 저장될 것인 것 결정된다.
하나의 segment는 또 세 구조로 나뉜다. 각각 code, data, stack 구조로 나뉜다. code에는 명령어들이 저장된다. data에는 프로그램 실행 시 사용되는 데이터들이 저장된다. stack에는 현재 수행되고 있는 handler, task, program이 저장하는 데이터 영역으로 우리가 사용하는 버퍼가 저장된다.
이 세가지 구조들이 하는 역할에 대해서는 다음에 더 자세히 알아보도록 할 것이다.
[ 생활코딩 - Linux 강의]
오늘은 [리눅스 기초] 필요한 명령을 검색으로 찾는 법 ~ 패키지 매니저(윈도우) 3분 40초까지 수강했다.
1. file copy
형식 :
cp 파일위치_및_파일이름 (한 칸 띄고) 목적지_파일위치_및_파일이름
예) /dev/test 파일을 /var/www/html/test로 옮기기
-> cp /dev/test /var/www/html/test
- touch 파일명 : 파일 생성하기
- cp 파일 디렉토리/파일 : 파일 복사하기
2. file move
- mv 파일 디렉토리/파일 : 파일 이동하기
- mv 파일의원래이름 바꾸고싶은파일이름 : 파일명 변경하기
3. sudo
- super user do의 줄임말
- root user라고도 함.
- 예전 Linux에서는 다중 이용자 시스템이었음. 각각의 사용자마다 할 수 있는 일과 할 수 없는 일을 정해놨음. = permission
- 강력한 힘을 가진 이용자
- apt-get install git : 일반 사용자, 설치 불가능함. permission denied (git 설치 명령)
- sudo apt-get install git : 슈퍼 사용자, 설치 가능함.
- rm -rf / : 루트 디렉터리 안의 모든 파일 묻지도 않고 삭제. (위험함.)
4. Nano
- 초급자용을 위한 대표적인 편집기
- nano 치고 enter 키 -> 편집기 화면 뜸.
- ^ : ctrl 키를 의미함.
- ^o (=ctrl + o) : 쓰기
- ^x (=ctrl + x) : 나가기
- ^k (=ctrl + k) : 현재 커서가 위치한 곳 잘라내기 및 복사
- ^u (=ctrl + u) : 붙여 넣기
- nano 파일이름 : 파일 열기 및 수정하기
- ctrl + 6 : mark set, 커서 고정하기
5. 패키지 매니저 (윈도우)
- 앱 스토어
- sudo apt-get update; : 설치 가능한 패키지를 최신 상태의 목록을 다운로드하기
'3. Pwnable (포너블) > 2) 개념 정리' 카테고리의 다른 글
[2022.03.26] "생활코딩-LINUX" 강의 듣기 + 달고나 문서 p.5-7 (0) | 2022.04.03 |
---|---|
[2022.04.02] C와 C++을 동시에 배워보자, 달고나 문서 -p.12 (0) | 2022.04.03 |
[2022.03.12] "생활코딩-Linux" 강의 듣기 (0) | 2022.03.13 |
[2021.11.20] Over The Wire 21-27, 달고나문서 Ch4 (0) | 2021.11.21 |
[2021.11.13] OverTheWire 11-20, 달고나문서 -p.17 (0) | 2021.11.14 |