목록Programming (58)
Be ready to study forever - 개발자 꿈나무
유저 관련 명령어 whoami – 사용자가 누구인지 알려줌 passwd – 유저 패스워드 변경 adduser [새로 만들 사용자 이름] – 사용자를 기본설정으로 추가 useradd [새로 만들 사용자 이름] – 사용자 매뉴얼설정으로 직접 추가 su [유저이름] – 유저변경 sudo [다른 명령어] – 관리자(root) 권한으로 다른 명령어를 실행한다 man [다른 명령어] – 해당 명령어에 대한 매뉴얼(사용법) 설명이 나옴 ex) man rm - rm관련된 명령어 사용법이 나옴 파일 관련 명령어 pwd – 현재 디렉토리 cd [디렉토리] – 디렉토리 이동 ls – 현재 디렉토리 파일 목록 출력 ** ls 옵션 ex) ls -al ** ls는 와일드 카드를 사용하여 원하는 파일만 출력 가능 *는 문자열 ?..

하드링크 와 소프트링크 하드링크/소프트링크는 일종의 복사이지만 일반적인 파일 복사(cp명령어)와 다른 점은 원본파일 수정시에 복사본에도 반영된다는 점이다. 그렇다면 하드링크와 소프트 링크의 차이점은 무엇? 하드링크와 소프트링크의 inode참조방식을 안다면 이해가 쉽다. 하드링크는 아이노드 구조 자체를 참조하지만, 소프트링크는 아이노드 주소(?)값을 참조한다. 얕은복사 깊은복사와 비슷한 느낌 일반 복사(cp명령어) 하드링크(ln명령어) 소프트링크(ln -s 명령어) 원본 변경시 사본에 반영되지 않음 원본 변경시 사본에 반영 원본 변경시 사본에 반영 원복 삭제시 복사본 살아있음 원복 삭제시 복사본 살아있음 원복 삭제시 복사본 접근불가 파일 복사 명령어 cp [복사할 파일] [사본의 이름] – 파일을 복사함 ..

프로세스 관리 &제어(foreground process, background process) - foreground process 해당 프로세스가 종료될 때 까지 사용자가 다른 입력을 못함 - background process 해당 프로세스가 실행중에도 유저는 입력 가능 background process의 사용예) 프로세스 실행 명령 끝에 &를 붙임 foreground process 제어 [CTRL키] + Z – 현재 실행중인 foreground process 중지 [CTRL키] + C – 현재 실행중인 foreground process 종료 프로세스 관련 명령어 jobs – 현재 실행중 또는 중지중인 프로세스 출력 bg – 중지된 프로세스를 background process로 실행 ps [옵션] – 프..

리다이렉션과 파이프 리다이렉션이란? 입출력시에 디폴트로 설정되어 있는 표준 스트림(인풋/아웃풋)을 바꿔줄 수 있다. 예를 들어 ls -al로 출력되는 파일 목록을 test.txt파일에 담고 싶다고 하면 ls -al > test.txt로 쓴다면 text.txt파일에 ls -al로 출력되는 리스트를 화면 대신에 test.txt에 출력(표준 스트림 흐름을 바꿈)할 수 있다. 사용방법 > 는 출력 스트림을 변경, >는 출력 스트림 변경(추가), test.txt - A > B # A의 내용을 B에 출력(B의 내용에 추가) ex) ls -al >> test.txt - A files2.txt **files.txt를 head로 출력..

파일 권한 ls -al 명령어를 사용할 경우 이와 같은 리스트를 볼 수가 있음. 여기서 drw-r—r—와 같은 정보는 파일에 대한 권한 정보임. 첫번째 문자는 파일의 속성을 정의하는 문자임 나머지 아홉개의 문자는 사용자별 권한을 설정한 값임 파일소유자/그룹/일반사용자 순으로 3글자씩 끊어서 rwx를 설정한다. r – 읽기 권한 부여 w – 쓰기 권한 부여 x – 실행 권한 부여 ** -는 해당 위치에 아무 권한도 부여하지 않음 ex) drwxrw-r--는 파일 속성은 디렉토리이며 파일 소유자에게는 rwx(읽기,쓰기,실행), 그룹에게는 rw(읽기,쓰기), 일반 사용자에게는 r(읽기)를 허용함 파일 소유자 그룹 일반 사용자 rwx rw r 읽기,쓰기,실행 가능 읽기,쓰기 가능 읽기만 가능

파일 시스템이란? 운영체제가 효과적으로 저장매체에 파일을 쓰기 위한 자료구조와 알고리즘을 파일 시스템이라고 한다. 생소하지만 Linux에서는 파일, 디랙토리, I/O디바이스(마우스, 모니터, 키보드등), 네트워크등 모든 것을 파일로서 정의한다. 따라서 모니터나 키보드에 접근하는 명령어도 파일에 접근하는 명령어와 동일하며 실제로 디랙토리의 /dev로 가면 키보드, 모니터 등이 파일로 존재한다. 파일시스템의 종류 운영체제마다 구현하는 파일 시스템이 다름. Windows – FAT, FAT32, NTFS – 블록 위치를 FAT라는 자료구조에 기록 Linux(Unix): ext2, ext3, ext4 – 일종의 인덱스 블록 기법인 inode 방식 사용 inode 방식 파일 시스템 inode 방식의 파일 시스템은..

가상메모리란? 하나의 프로세스는 4GB의 크기를 가지고 있는데, 4GB의 프로세스 여러 개를 전부 메모리에 올려놓고 사용하는 것은 자원낭비임. 가상 메모리는 실제 메모리 보다 많아 보이게 하는 기술로, 실제 메모리에서는 가상 메모리의 필요한 부분만 ‘부분적으로’ 올려놓고 사용하게 된다. 프로세스의 구조로 4GB의 가상의 메모리 공간을 가지게 된다 그럼 가상메모리와 실제 메모리는 어떻게 연결이 되는걸까? – 정답은 MMU MMU(Memory Management Unit) MMU는 CPU에서 코드 실행시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치 페이징이란? 크기가 동일한 페이지 단위로 가상 주소 공간과 이에 매칭되는 물리 주소 공간을 관리한다.(리눅스에선 ..

스레드란? 스레드는 Light Weight Process라고도 불리며, 프로세스보다 작은 단위의 작업이다. 그러므로, 프로세스는 여러 개의 스레드를 가질 수 있다. 하나의 프로세스를 멀티 스레드로 여러 작업으로 만들면 작업 효율을 높일 수 가 있다. 하지만, 단점으로는 너무 많은 스레드를 돌리게 되면 컨택스트 스위칭이 많이 발생할 수 있기 때문에 더 작업이 느려 질 가능성이 있다. 그림에서 보듯 스레드는 프로세스안에 작은 단위로 존재하고 프로세스의 Stack영역에 별도의 공간을 가지게 된다. 이럴 경우, 부모 프로세스의 Heap영역, Data영역을 공유하므로 프로세스간 데이터 접근이 불가능한 것과는 다르게 다른 프로세스로 접근이 가능하다. 프로세스 vs 스레드 - 프로세스는 독립적, 스레드는 프로세스에 ..

프로세스 구조 컨택스트 스위칭 CPU에 실행할 프로세스를 다른 프로세스로 교체하는 기술 ** 하지만 Running상태에서 Ready상태로, Ready상태에서 Running상태로 바뀐 프로세스는 어떻게 멈춘 지점부터 바로 CPU에서 읽을 수 있는 걸까? 정답은 – PC(Program Counter)와 SP(Stack Pointer)에 있다. 이 값들은 CPU에서 읽어 들이는 값을 가르킴. 따라서 CPU는 PC와 SP의 값을 순서대로 읽고 계산하게 된다. - PC – 프로세스 카운터는 프로세스의 Text영역에서 다음에 실행할 코드의 주소를 가르키고 있다. - SP – 스택 포인트는 프로세스의 Stack영역의 끝주소, 즉 최근에 스택에 영역에 들어온 데이터가 있는 주소를 가르 키고 있다 ** 그렇다면 컨택스트..

간단한 용어 정리 - 배치처리 시스템 컴퓨터 프로그램 실행을 요청 순서에 따라 순차적으로 실행하는 방식이며 한번에 한 프로그램밖에 실행할 수 없기 때문에 비효율 적이며 원시적인 시스템 - 시분할 시스템 다중 사용자를 지원하기 위해서 응답시간을 최소화 하는 시스템. 배치시스템과는 다르게, 짧은 시간동안 프로그램을 계속 번갈아 가며 실행 - 멀티 태스킹 하나의 CPU가 여러 작업을 할 수 있도록 짧은 시간동안 프로그램을 계속 번갈아 가며 실행함(시분할 시스템과 비슷한 컨셉이지만 목적이 다름) - 멀티 프로세싱 단일 CPU가 아닌 코어가 여러 개일 경우 멀티 프로세싱으로 처리 - 멀티 프로그래밍 CPU가 활용도를 최대한으로 높이기 위해서 A프로그램이 저장매체등의 다른 장치를 이용하고 있을 때 B프로그램이 CP..