pwnkidhn.github.io

고정 헤더 영역

글 제목

메뉴 레이어

pwnkidhn.github.io

메뉴 리스트

    • 분류 전체보기 (194)
      • memo (0)
      • Pwnable Exploitation (19)
        • 01.Shellcode (4)
        • 02.Return to Shellcode (1)
        • 03.RTL(Return to libc) (2)
        • 04.Frame faking(Fake ebp) (1)
        • 05.Frame Pointer Overwrite (2)
        • 06.ROP(Return Oriented Prog.. (3)
        • 07.SROP(Sigreturn-oriented .. (2)
        • 08.JOP(Jump-Oriented Progra.. (1)
        • 09.Return-to-csu(__libc_csu.. (0)
        • Malloc - glibc(ptmalloc2) (3)
      • Pwnable Write-Up (54)
        • 00.CTF (0)
        • 01.hackerschool F.T.Z (20)
        • 02.hackerschool L.O.B (21)
        • 03.dreamHack (13)
        • 04.HackCTF (0)
      • Reversing Write-Up (38)
        • 01.Abex's crackme (5)
        • 02.CodeEngn Basic (20)
        • 03.CodeEngn Advance (13)
      • Fuzzing (1)
        • Theory (1)
      • Programming (22)
        • Data Structure (0)
        • Windows System (22)
      • Computer Science (60)
        • Computer Architecture (18)
        • OS Concepts (29)
        • Linux System (5)
        • Reverse Core (8)

    검색 레이어

    pwnkidhn.github.io

    검색 영역

    컨텐츠 검색

    Computer Science/OS Concepts

    • 3.3 프로세스 연산

      2020.04.17 by RACC8N

    • 3.2 프로세스 스케줄링

      2020.04.17 by RACC8N

    • 3.1 프로세스 개념

      2020.04.17 by RACC8N

    • 2.10 시스템 부트

      2020.04.17 by RACC8N

    • 2.9 운영체제 생성

      2020.04.17 by RACC8N

    • 2.8 운영체제 디버깅

      2020.04.17 by RACC8N

    • 2.7 운영체제 구조

      2020.04.17 by RACC8N

    • 2.6 운영체제의 설계와 구현

      2020.04.04 by RACC8N

    3.3 프로세스 연산

    프로세스 생성(Creation) - 프로세스는 create-process 시스템 호출을 사용하여 new 프로세스를 생성 > 부모 프로세스 - 자식 프로세스 - 생성된 프로세스들의 계속적인 프로세스 생성의 결과로 프로세스 트리(process tree)를 형성함 - 프로세스들은 프로세스 식별자(process identifier, PID)로 구분 부모프로세스와 자식프로세스 간의 여러 가지 자원 공유 방법 - 자식 프로세스가 OS에서 자원을 직접 얻음 > 부모와 자식 프로세스간에 자원을 공유하지 않음 - 자식 프로세스가 부모 프로세스 자원의 부분집합을 사용 > 자식 프로세스는 부모 프로세스의 모든 자원 또는 일부 자원 공유 > 부모 프로세스는 자식 프로세스들에게 자신의 자원을 분할 제공 전형적인 Linux 시스..

    Computer Science/OS Concepts 2020. 4. 17. 17:33

    3.2 프로세스 스케줄링

    스케줄링의 필요성 - multiprogramming - CPU 이용률 극대화 - time sharing - 사용자와의 상호 작용 -> 빈번한 CPU 스위칭 프로세스 스케줄링 Queue - Job queue : 모든 프로세스들의 집합 - Readyt queue : ready 상태의 프로세스들의 집합 (메모리에 위치) - Device queue : 특정 I/O장치 사용을 대기하는 프로세스들의 집합 -> 일반적으로 Linked list 저장 프로세스들은 실행 동안 여러 queue들 사이에서 이동함 프로세스가 종료되면 queue에서 제거되며 할당된 자원과 PCB도 반납함 Ready Queue와 여러 I/O Device Queues 프로세스 스케줄링에 대한 Queueing 프로세스의 Queue들 간의 이동 스케줄..

    Computer Science/OS Concepts 2020. 4. 17. 17:25

    3.1 프로세스 개념

    CPU activity를 부르는 명칭 - Batch 시스템 -> Job - Time-shared 시스템 -> User program, Task, Process Job, Task, Process 용어는 거의 같은 의미로 사용됨 프로세스 - 실행 상태에 있는 능동적 개체, 연관된 자원 사용 - 프로그램 코드보다 더 많은 부분을 포함 > 메모리 : code + data + stack + heap > CPU : program counter + registers > 프로세스 관리용 자료구조 : 프로세스 제어 블록 (PCB) 프로그램 - 디스크에 파일로 저장된 수동적 개체 - 프로그램 파일 = 코드(text section) + 초기화 데이터 + 헤더 정보 등 프로세스와 프로그램 text section : 프로그램 ..

    Computer Science/OS Concepts 2020. 4. 17. 17:04

    2.10 시스템 부트

    Bootstrapping (booting) - 커널을 적재하여 컴퓨터를 시작하는 절차 Bootstrap loader - 커널을 찾아서 메모리에 적재하고 수행을 시작하는 일을 하는 ROM에 저장된 코드 - 대개 시스템을 진단(diagnostic)하는 작업을 수행하고, 시스템 전체를 초기화 한 후에 운영체제를 시작시킴 Firmware - bootstrap 코드의 변경이 가능하도록 ROM 대신 EPROM에 저장함 - 하드웨어와 소프트웨어의 중간 특성을 가져서 firmware라고 부름 - 실행속도가 RAM에서 실행하는 것 보다 느려서 대개 빠른 수행을 위해서 RAM에 복사하여 실행함 운영체제는 대개 디스크에 저장하지만, 일부 시스템은(smartphone, game console등) 운영체제 전체를 firmwar..

    Computer Science/OS Concepts 2020. 4. 17. 15:16

    2.9 운영체제 생성

    운영체제 구성(Configuration) - 운영 체제는 다양한 구성을 가진 모든 종류의 시스템에서 실행되도록 설계되어 있다. - 운영 체제는 특정 컴퓨터를 위해 구성(configuration)되어야 한다. 운영체제 생성(SYSGEN) - 운영체제 배포 - 디스크, CD-ROM, DVD-ROM, 또는 ISO image 형태 - 하드웨어 구성 정보(CPU type, memory size, devices, OS options) 파일을 읽거나, 직접 하드웨어를 검사하여 얻음 - 운영체제 3가지 생성 방법 1. 소스코드 수정 후 완전히 다시 컴파일 2. 구성 테이블 생성 -> 미리 컴파일된 라이브러리에서 필요한 모듈 선택 후 링크 - 코드가 재컴파일 되지 않음 3. 완전한 테이블 방식 - 모듈 선택이 실행 시에..

    Computer Science/OS Concepts 2020. 4. 17. 15:08

    2.8 운영체제 디버깅

    디버깅 (debugging) - 오류(bug라고도 함)를 발견하고 수정하는 것 장애(Failure) 분석 - log file - 프로세스가 실패하면 오류 정보를 기록 - core dump file - 오류 발생 프로세스의 메모리 내용을 저장 (초창기의 컴퓨터에서 메모리를 core라고 부름) - crash dump file - 커널 장애시에 커널 메모리 내용을 저장 (커널 장애를 crash라고 부름) 성능 조정 - 병목지점(bottleneck)을 제거하여 시스템 성능을 최적화 가능 - OS의 bottleneck을 발견하기 위하여 시스템 성능 측정 및 표시 유틸리티를 사용해야 함. DTrace - 사용자 프로세스와 커널에 동적으로 탐색점을 추가할 수 있는 유틸리티

    Computer Science/OS Concepts 2020. 4. 17. 15:06

    2.7 운영체제 구조

    Simple structure - monolithic 구조 - 많은 기능들이 하나의 계층으로 구현됨 - 많은 상용 운영체제가 잘 정의된 구조를 갖지 않음 Layered strcuture - 운영체제가 여러 계층으로 구분됨 - 각 계층은 하위 계층 위에 구축됨 Microkernel - 필수적이 아닌 구성 요소를 커널에서 모두 제거하고 시스템 및 사용자 수준 프로그램으로 구현함 Simple Structure - MS-DOS - 최소 공간에 최대 기능을 제공하도록 작성 -> 모듈들로 구분되지 않음 - 인터페이스와 functionality 계층이 잘 분리되어 있지 않음 -> 운영체제를 거치지않고 BIOS를 사용하여 입출력 가능 - NO dual mode, No HW protection -> 악의적이거나 오류가 ..

    Computer Science/OS Concepts 2020. 4. 17. 14:44

    2.6 운영체제의 설계와 구현

    설계 목표(goal)과 명세(specification)정의 - 하드웨어와 시스템 유형(batch, time shared, single user, multi-user, distributed, real tiem, general purpose)의 선택에 영향 받음 요구조건 지정 (설계 목표) - 사용자 목표 - 사용하기 쉽고, 배우기 쉽고, 신뢰성 있고, 안전하고, 빠름 - 시스템 목표 - 설계, 구현, 유지 보수가 쉽고, 유연성, 신뢰성, 무오류, 효율적이여야 함 - 요구 조건은 애매하고 다양하게 해석될 수 있으며, 일반적으로 합의된 사항은 없음 운영체제의 설계 및 구현 - 모든 요구 조건을 해결하는 완전한 해결책은 없지만, 성공이 입증된 접근법은 있음 - 소프트웨어 공학에서 개발된 일반적인 원칙을 사용 -..

    Computer Science/OS Concepts 2020. 4. 4. 20:35

    추가 정보

    페이징

    이전
    1 2 3 4
    다음
    TISTORY
    pwnkidhn.github.io © rvkhun
    페이스북 트위터 인스타그램 유투브 메일

    티스토리툴바