본문 바로가기

반응형

전체 글

(38)
쉘 명령어 whoami : 사용자명 알기 passwd : 비밀번호 변경 adduser : 사용자 추가 su사용자명: 현재 환경설정 기반으로 사용자 변경 .bashrc, .profile su-사용자명: 변경되는 환경설정 기반으로 사용자 변경 .bashrc, .profile pwd 현재 디렉토리 위치 sudo : 루트 권한으로 실행하기 (루트 권한을 가진 사용자가 등록되어있을때 해당 명령 사용가능) vi : 파일로 들어가서 수정하기 (vi test.c) cat : 파일 열기 (cat test.c) 앞에 10줄만 열기 - .head [파일/디렉토리 명] (예시 .head test.c) 뒤에 10줄만 열기 - .tail [파일/디렉토리 명] (예시 .tail test.c) 크기만큼 파일 보기 (스페이스 시 다음화면으로 넘..
리눅스 기본구성 리눅스의 모든 리소스는 파일로 구성한다 가령 (root) /media/drive 이런식으로 관리하여 드라이버도 파일 형식으로 관리한다 프로세스는 실행파일 ELF(Excutable and Liable Format)로 구성되며 프로세스는 PID(프로세스 ID)로 구분하고 가상메모리를 구성하고 있으며, init으로 만들어진 처음 프로세스에 fork 하여 프로세스를 계속 생성한다 (부모, 자식관계가 생김) 권한은 사용자는 로그인 사용자/그룹으로 나뉘고 리소스는 소유자/소유자 그룹/ 모든 사용자로 나뉜다. 파일 권한에 대한 정보는 inode에 쓰여져 있다.
가상머신 가상머신 : 별도의 장치를 구현하여 한 대의 컴퓨터에 여러 대의 PC가 동작하도록 하는 방식 가상머신 구분 하이퍼바이저, 가상머신모니터(VMM) : 운영체제와 응용프로그램을 하드웨어와 분리하는 프로세스 Type1(native or bare-metal) : 하이퍼바이저, VMM이라는 소프트웨어가 하드웨어에 직접 구동 (대표적인 예 KVM -> AWS(아마존 클라우드 컴퓨팅 서비스에서 사용하는 방식)) * 하드웨어를 직접 엑세스 하기 때문에 가상 성능이 좋다 Type2 : 하이퍼바이저, VMM가 운영체제 위에서 구동 (대표적인 예 VMware) VMware의 경우 리눅스에서 커널의 공간을 생성하여 동작하는 방식 전가상화 : 각 가상머신이 하이퍼바이저를 통해서 하드웨어간의 통신. 하이퍼바이저가 마치 하드웨어인..
부트 부트란 컴퓨터를 실행시키는 동작이며 이 동작이 어떻게 되는지 알아보자 CPU는 부팅이 되면 ROM-BOOT 로 접근하게 된다. ROM-BOOT는 꺼져도 데이터가 저장되는 특별한 형태의 RAM이라고 생각하면 된다. CPU가 접근하면 ROM-BOOT는 RAM으로 BIOS 코드를 로드 시킨다. RAM은 저장소의 MBR 접근하여 BOOT 로더를 로드하고 파티션 정보(C,D 드라이브 중 운영체제가 어디있는지 등)의 정보를 읽어온다. 이후 부트섹터에서 BOOT 코드를 로드하고 마지막으로 커널이미지를 로드하게 된다.
inode 방식과 파일시스템 inode 구조 1. 슈퍼 블록 : 파일 시스템 정보 2. inode 블록 : 파일 상세 정보 3. 데이터 블록 : 실제 데이터 inode 블록(마치 프로세스의 PCB와 유사하다)은 소유자정보, 모드, 데이터 블록, 타임스탬프 등을 담고 있으며 메타 데이터 파일 형식으로 되어 있고 파일이름으로 inode 번호를 매칭하게 된다. 파일 시스템에서는 inode를 기반으로 파일을 엑세스하게 된다. Data Block은 각 데이터(1~4KB) 의 주소를 가지고 있으며 최대 12개 x 4KB 까지 연결할 수 있다 Indirect Blocks는 4MB / 4Byte = 1024개의 주소를 가질 수 있고, Double Indirect는 1024 x 1024 x 4KB 약 4GB를 담을 수 있고, Triple은 1024..
파일시스템 파일시스템이 생겨난 이유는 초기에는 비트로 파일을 저장하고 했지만 그게 많아지다 보니 불편해졌고 파일 단위별(4KB)로 나눠서 관리하게 되었다. 그러나 파일이 많아질수록 사용자가 불편해졌고 이에 따라 파일시스템 방법들이 도입됬다. 파일을 저장하기 위해 효율적인 방법은 파일을 저장매체에 그대로 저장하게 되면 일련적인 공간이 겹치는 부분이 있다(외부적 단편화) 가능한 연속적인 공간에 파일을 저장하는것이 좋기때문에 이를 위해 블록체인(링크드 리스트처럼 연결하여 파일을 잇는 방법 허나, 해당 주소를 찾기 위해서 처음부터 찾아야 한다) , 인덱스 기법(파일에 대한 주소를 인덱스에 기록해두는 방법)이 고안됬다. 윈도우의 경우 : FAT, FAT32, NTFS - 블록 위치를 FAT라는 자료구조에 기록 리눅스 : e..
세그먼트 가상 메모리를 실제 메모리로 할당하기 위한 두가지 방법이 있는데 하나는 페이징 기법, 나머지 하나가 세그먼트 기법이다. 세그먼트 기법은 페이징 기법과 다르게 논리적인 단위로 끊는 방식이다. 페이징 기법은 4KB 를 끊어서 했다면 세그먼트는 의미를 가지는 단위별로 끊는 방식이다. 세그먼트는 CS(Code Segment), SS(Stack Segment), DS(Data Segement), ES(Extra Segment)로 나눠서 관리한다. 예로는 부팅 시 프로그램을 간단히 가지기 위해 세그먼트로 나누고 있다. 세그먼트도 페이지 기법과 유사하게 실제 메모리 접근을 하는 방법은 세그먼트 번호, 세그먼트 변위를 두고 해당 테이블에 접근하여 실제 메모리로 접근하는 것이다. 페이지기법은 4KB 단위로 자르다보니 딱..
페이지교체 알고리즘 여러 개의 프로세스가 메모리에 각각 할당되고 나면 페이지 폴트나 다른 처리등을 통해 페이지를 valid -> invalid로 바꿔줘야 된다. 이런 처리를 하는 것을 페이지교체 페이지 교체는 가장 이상적으로 OPT(Optimal Replacement)페이지 기법이 있는데 이것은 나중에 사용되지 않은 페이지를 교체하는 방식인데 이것은 일반적인 운영체제에서는 불가하다 왜냐하면 나중에 어떤 동작을 할지 모르기 때문에 그래서 이것을 대체하기 위해 나온방식이 LRU(Least Recently Used) : 가장 오랫동안 사용되지 않았던 페이지를 교체하는 방식 LFU(Least Frequency Used) : 가장 사용하지 않았던 페이지를 교체하는 방식 NUR(Not Used Recently) : 참조,수정 (0,0..

반응형