전체 글

전체 글

    운영체제 동작 사례

    운영체제 동작 사례

    운영체제 동작사례 운영체제는 일반적으로 자원관리자(resource manager)라고 정의된다. 운영체제는 컴퓨터에 있는 처리기(CPU), 메모리, 디스크 등의 자원을 관리하여 일반 사용자들이 컴퓨터를 사용할 수 있도록 지원해준다. 사용자가 프로그램 작성, 컴파일, 프로그램 수행이라는 일련의 요청을 수행함에 따라 운영체제가 디스크, cpu, 메모리 자원을 할당하여 변화한다. 운영체제의 초기 상태 CPU 메모리 디스크 3개의 자원을 관리하고 있고 현재 아무도 사용하지 않는 상태(ex: 처음 운영체제를 설치한 상태)로 가정하고 있다. 여기서 사용자가 문서작업을 수행하면 이를 위해 운영체제가 필요한 자원을 제공해 주게 된다. C 프로그램 작성 작성한 프로그램 저장 저장 요청은 운영체제로 전달되고 운영체제는 비..

    Makefile tutorial

    Makefile tutorial

    Makefile은 큰 프로그램의 어느 부분을 다시 컴파일해야 하는지 결정하는 데 사용된다. 대부분의 경우 C 또는 C++ 파일이 컴파일된다. 다른 언어에는 일반적으로 Make와 유사한 목적을 수행하는 자체 도구가 있다. Make는 변경된 파일에 따라 일련의 지침을 실행해야 하는 경우 컴파일을 넘어서도 사용할 수 있다. 다음은 Make로 빌드할 수 있는 종석성 그래프의 예이다. 파일의 종속성이 변경되면 파일이 다시 컴파일된다. C/C++ 대체 빌드 시스템은 SCons, CMake, Bazel, Ninja다. Visual Studio와 같은 일부 편집기에는 자체 빌드 도구가 있다. Java의 경우 Ant, Maven, Gradle이 있다. Go 및 Rust와 같은 다른 언어에는 자체 빌드 도구가있다. Pyt..

    Linux File System

    Linux File System

    Linux File Structure 리눅스는 모든 게 다 파일로 이루어져있다. 파일 시스템을 이해하는 것은 파일 입출력 작업을 수행하고 리눅스/유닉스 시스템을 이해하는 데 시작점이라고 할 수 있다. System Call open read write close ioctl (device driver에 제어 정보 전달) Low-Level File Access 리눅스에선 기본적으로 3가지의 파일이 열려있고 각 파일을 id로 구분한다. 다음 3 파일은 운영체제가 시작되면서 바로 오픈된다. 0: standard input(stdin) 1: standard output(stdout) 2: standard error(stderr) write 사용법 man 2 write 1번 매뉴얼: 리눅스 명령어관련 2번 매뉴얼: ..

    GCC 컴파일러 사용법

    GCC 컴파일러 사용법

    컴파일 과정 소스코드는 다음과 같은 과정으로 컴파일되어 실행파일이 된다. 전처리기(preprocessor): 소스코드의 주석제거, define을 치환하는 기능 컴파일러(compiler): 어셈블리 파일로 변환(어셈블리어는 CPU 명령어 조합으로 CPU에 의존적) 어셈블러(assembler): object 코드 파일로 변환. object 파일은 0과 1로 이루어진 바이너리 코드(아직 주소 정보가 확정되지 않음) 링커(linker): object 파일을 묶어 실행 코드 파일로 변환. 운영체제가 로딩할 수 있도록 주소 정보를 할당한 파일을 만들어 낸다.(링커는 운영체제에 의존적) GCC 명령어 명령창에서 gcc 매뉴얼을 확인해보자. GCC(1) GNU GCC(1) NAME gcc - GNU project C ..

    vi cheat sheet

    전체 명령어 정리 입력모드 i 현재 커서 앞에 입력한다. a 현재 커서 뒤에 입력한다. o 커서가 위치한 행의 다음 행에 입력한다. I(대문자 i) 커서가 위치한 행의 첫 컬럼으로 이동하여 입력한다. A 커서가 위치한 행의 마지막 컬럼으로 이동하여 입력한다. O 커서가 위치한 행의 이전 행에 입력한다. 커서 이동 k 커서를 위로 이동한다. j 커서를 아래로 이동한다. h 커서를 왼쪽으로 이동한다. l 커서를 오른쪽으로 이동한다. ^ / O 커서를 현재 행의 처음으로 이동한다. $ 커서를 현재 행의 마지막으로 이동한다. - 커서를 한줄 위 처음으로 이동한다. + / Enter 커서를 다음 행의 처음으로 이동한다. H 커서를 화면의 맨 윗행으로 이동한다. M 커서를 화면의 중간 행으로 이동한다. L 커서를 ..