일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- bash shell 변수
- houdini
- mmap
- Redirection
- 생활코딩 복습
- atexit()
- background process
- Symmetry
- 섭페에서 텍스처 추출
- substance painter
- bg 명령어
- 3D 배경 그래픽
- 섭페
- 개체 외곽 하이라이트 기준선 없애는 법
- exit()
- bash shell 조건문
- exec 시스템 콜
- foreground process
- copy-on-write
- Standard Stream
- wait 시스템 콜
- fork 시스템 콜
- 후디니
- 3Ds max 기초
- bash shell 반복문
- msync
- ps 명령어
- 추가 업로딩 중
- pane & desktop
- 뷰포트
- Today
- Total
목록전체 글 (64)
Researcher to Developer
#가상 파일 시스템 -open, -read, -write, -close C언어에서 파일과 관련된 시스템콜 함수들 (파일을 open 할때 Readonly를 할 수도 있음) 사용자(프로그래머)/운영체제에서 사용할 수 있는 인터페이스는 파일과 관련된 명령어 (-open, -read, -write, -close) 네 가지로 하고 여러 가지 디바이스에 연결(Input)만 해주면 간편하고 일관된 인터페이스로 디바이스를 사용, 지원할 수 있으니 그것을 제공하는 시스템으로 고안이 됨 network나 새로운 디바이스들도 server에 데이터를 전송(쓰거나)하거나 server에서 온 데이터를 읽는 메커니즘을 따름 LINUX는 전역 네임스페이스 사용(모든 파일이 root 디렉토리에 들어있다.) 모든 디바이스에 있는 파일을 ..
#프로세스 vs 바이너리(binary) 기본개념 실행파일은 저장매체에 대부분 저장되어 있다. 실제 실행이 될 때에는 메모리에 데이터가 복사가 되고 모든 코드가 메모리에 올라간 상태에서 코드를 한 줄 한 줄 읽어가면서 CPU에 넣어서 실행을 한다. binary 코드 이미지 또는 실행파일을 의미한다. Process 실행 중인 프로그램을 의미. 프로세스는 프로그램이지만, 프로그램은 프로세스가 아니다. 그 이유는 프로그램은 여러 프로세스일 수 있기 때문 실행 중이기 때문에 상태 정보도 갖고 있다. Process에 들어있는 정보 a. 실행 중일 때만 생성되는 상태 정보 b. 가상 메모리 및 물리 메모리 정보 c. 시스템 리소스 관련 정보 d. 스케줄링 단위 (스케줄러가 프로그램을 실행시키는 단위가 된다.) 리눅스..
#Stardard Stream 표준 입출력 - LINUX 환경에서는 Command로 실행되는 프로세스는 3가지 스트림을 가지고 있다. 1. Standard Input Stream 표준 입력 스트림 : stdin 해당 command에 입력으로 주어지는 옵션이나 인자, 파일 등을 해당 프로세스에 넣어준다. 2. Standard Output Stream 표준 출력 스트림 : stdout 프로세스 실행 결과를 출력할 내용을 화면에 보여주는 것이 Default 3. Standard Error Stream 오류 출력 스트림 : stderr 프로세스를 실행하다보면 도중에 에러 메세지가 나올 수 있는데 그 내용을 화면에 출력하는 것이 Default * 모든 스트림은 일반적인 plain text로 console(term..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/pFBQ1/btqRx1mgpvp/0MyRSUkb9uA2Whvml8CND0/img.png)
cd 디렉토리를 이동하는 명령어 cd ~ 자기 아이디의 Home 디렉토리로 간다. cd - 이동하기 전 디렉토리로 간다. ls (=dir) 현재 디렉토리에서 파일 목록 출력 ls -al 숨김 파일까지 확인가능 (리눅스에서는 .으로 숨긴 파일을 표현한다.) ls * 임의 문자열 ls ? 문자 하나 man ls 해당 명령어에 대한 여러가지 옵션을 확인하고 싶을 때 사용 * 참고로 앞글자 입력 후 tap을 누르면 명령어를 찾을 수 있음 ls -al 로 가면 파일의 소유자, 파일 생성 시간, 파일 사이즈 등등이 나와있음 파일의 권한과 관련이 있음 유닉스는 파일마다 소유자, 소유자 그룹, 모든 사용자에 대해 각각의 읽고 쓰고 실행하는 권한을 꼼꼼히 설정할 수 있도록 되어있다. 소유자 접근 권한 정보는 inode에..
#Shell 사용자와 운영 체제간 인터페이스 사용자의 명령을 해석해서, 커널에 명령을 요청해주는 역할을 한다. 관련된 시스템 콜을 사용해서 프로그래밍이 작성되어 있다. 터미널을 사용하는 CLI 환경이 있고 마우스를 사용하는 GUI 환경이 있음 윈도우의 경우 Putty 프로그램을 통해 AWS환경으로 들어올 수 있음 #Shell 종류 1. Bourne-Again Shell(Bash) GNU 프로젝트의 일환으로 개발됨, 리눅스의 디폴트 ksh을 무료로 소스 오픈해서 만든 Shell 2. Bourne Shell (sh) 3. C Shell (csh) 4. Korn Shell (ksh) 유닉스에서 가장 많이 사용됨 * 각각의 쉘 마다 명령어가 약간의 차이가 있습니다. * UNIX는 다중 사용자를 Defalut로 ..
#LINUX와 파일 모든 리소스를 파일로 관리한다. 파일은 inode 고유값을 가지고 파일을 구분하고 별도의 자료구조에 의해 주요 정보 관리 LINUX는 모든 것은 파일이라는 철학을 따름 모든 인터렉션은 파일을 읽고, 쓰는 것처럼 이루어져있음 마우스, 키보드와 같은 디바이스 관련된 기술도 파일과 같이 다루어진다. Windows 파일 네임스페이스 개념 A 드라이브 = A:/ C 드라이브 = C:/ LINUX 전역 네임스페이스를 제공, 모든 파일은 앞부분에 root 디렉토리가 존재 root 디렉토리로 시작하는 파일로 시작한다. /media/floofy/ #LINUX OS 특징 1. 리눅스 실행 파일 포멧 : ELF(Executable and Linkable Format) 일종의 콜스택, 코드, 데이터 및 B..
#AWS (Amazon Web Service) 설정 http://aws.amazon.com/ko/free 에 접속해서 회원 가입. 1. EC2 또는 인스턴스(서버) 생성 내 지역을 확인하고 설치 해야함 - 아시아 태평양 서울 #리눅스 배포판 (패키지) 리눅스 커널 및 다양한 소프트웨어 패키지를 묶어서 배포하는 것 - 리눅스 배포판 특정 사람들(일반 사용자, 프로그래머 등)이 사용하기 좋은 환경으로 만들어서 제공하는 것 #리눅스 배포판의 몇 가지 종류 Debian 가장 안정적이고 다른 여러 배포판의 기반이된다. Desktop, Server에 주로 사용된다. 패키지 설치 및 업그레이드가 단순하다. 별도의 패키지 관리 도구(apt, dpkg)를 이용해서 소프트웨어 설치나 업데이트 등을 자동으로 설정 및 설치해..
#시스템 프로그래밍 선수 과목 C언어 자료 구조 컴퓨터 구조 운영 체제 #리눅스 특징 LINUX 1. 서버에 많이 사용되는 운영 체제 웹 브라우저(Client)에서 HTML파일을 서버에 요청하면 서버가 HTML 파일을 웹 브라우저(Client)에 전달한다. 윈도우 OS는 클라이언트일 경우가 많고 서버는 LINUX OS가 사용되는 경우가 많다. (서버 하드웨어 위에 LINUX 가 설치됨) 2. 프로그래밍 할 때에 많이 사용되며 유용하다. 프로그래밍 언어로 프로그램을 작성하면, C언어와 같은 언어는 컴파일러라는 별도 프로그램이 컴퓨터가 이해할 수 있는 기계어로 변환해주어야 한다. 리눅스를 사용하면 컴파일러가 작업을 처리하는 속도가 빨라진다. 3. 클라우드 컴퓨팅에 많이 사용됨(아마존이 제공하는 AWS 서비스..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lqIqy/btqQU0anADI/PIBRckVYmCZqN3Bv1OjEV1/img.png)
#가상 머신(Virtual Machine) 하나의 하드웨어(CPU, Memory등)에 다수의 운영체제를 설치하고, 개별 컴퓨터 처럼 동작하도록 하는 프로그램 하드웨어를 소프트웨어로 에뮬레이터하여 (모사)마치 여러 개처럼 보이도록 하는 기술 #가상 머신 Type1 하드웨어 위에 VMM을 설치 하이퍼 바이저(또는 VMM) : 운영 체제와 응용프로그램을 물리적 하드웨어에서 분리하는 프로세스 하이퍼바이저 또는 버추얼 머신 모니터 (VMM)라고 하는 소프트웨어가 Hardware에서 직접 구동 Xen, KVM 성능이 Type2 보다 빠를 순 있다. #가상 머신 Type2 하드웨어 위에 운영체제가 이미 설치되어 있는 경우 하이퍼바이저 또는 버추얼 머신 모니터라고 하는 소프트웨어가 Host OS상위에 설치 #전가상화 ..
#Boot 컴퓨터를 켜서 동작시키는 절차 Boot도 프로그램이 필요하다. #Boot 프로그램 운영 체제 커널을 저장메체에서 특정 주소의 물리 메모리로 복사하고 커널의 처음 실행위치로 PC를 가져다 놓는 프로그램 컴퓨터가 처음 켜지면 메모리에 데이터가 없다. 폰노이만 구조에 의하면 모든 코드는 메모리에 위치해야 하는데, 메모리에 아무 코드가 없으면 저장매체에서 어떻게 물리 메모리를 복사하는 작업을 할 수 있을까?? #부팅과정 BIOS가 특정 저장매체(Storage)를 읽어와 Bootstrap loader를 메모리에 올리고 실행함 Bootstrap loader프로그램이 있는 곳을 찾아서 실행 시킴 더 상세하게 풀어놓으면 컴퓨터가 처음 켜지면 메모리에 아무런 데이터가 없는 상태이고 1. CPU가 무조건 ROM..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b0ctF2/btqQE9AGMxU/MMP1NjljXvv754Kd1kM4nk/img.png)
#파일 시스템 운영 체제가 저장매체의 파일을 쓰기 위한 자료구조 또는 알고리즘 #파일 시스템이 만들어진 이유?? - Block의 측면 0과 1의 데이터를 어떻게 저장매체에 저장할까??? 비트로 관리하기에는 오버헤드가 너무 크다. → 블록 단위로 관리하기로 함 (보통 4KB) → 블록마다 고유 번호를 부여해서, 관리하게 됨 → 하지만 조금만 저장매체가 늘어나면 문제가 생김 → 사용자가 각 블록 고유 번호를 관리하기 어려워짐 → 추상적(논리적) 객체 필요 : 파일 등장 사용자는 파일단위로 관리 각 파일에는 블록 단위로 내부적으로 관리 #파일 시스템이 만들어진 이유? - 저장방법의 측면 저장매체에 효율적으로 파일을 저장하는 방법이 필요했고 가능한 연속적인 공간에 파일을 저장하는 것이 좋으나 외부 단편화 문제,..
#실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음 리눅스는 하나의 프로세스가 4GB 인데 통상적으로 우리의 PC의 메모리는 8GB나 16GB 이기 때문에 하나, 두 개의 프로세스만 사용해도 많은 부분을 차지하게 된다. 게다가 폰노이만 구조에 의해 코드는 무조건 메모리에 반드시 있어야한다는 사실 그렇다면 여러 프로세스를 실행하기 위해서는 어떤 메모리 구조를 가져야할까?? 이 질문에 대한 답이 바로 가상 메모리 이다. #가상 메모리(virtual memory system) 개념 프로세스 내에서 실제 어느 시점에 CPU가 쓰는 공간은 제한적이다. 한 번에 4GB가 사용되지 않는다. 한 번에 4GB를 읽지 않는다. 특정 시간 동안 사용하는 특정 메모리는 제한적이다. 실제 사용하는 메..