* Git을 만든사람: 리누스 토발즈(Linus Torvalds) - 리눅스(Linux) 운영체제를 만든 사람이기도 하다. 리누스 토발즈는 리눅스를 개발한 이후, BitKeeper 툴로 리눅스의 버전을 관리했다. 리눅스 커뮤니티의 한 개발자가 BitKeeper의 내부 동작 원리를 분석하려고 했던 계기로 리눅스 커뮤니티와 BitKeeper의 충돌이 발생했고 리눅스 커뮤니티에 대해서 BitKeeper가 유료화가 되었다고 한다. 이후, 리누스토발즈는 BitKeeper를 개신할 버전관리 시스템을 찾다가 본인이 직접 만든 버전관리 시스템이 Git이다. Git은 다음과 같은 목표를 가지고 설계 및 개발되었다. 1) 빠른 속도 2) 단순한 디자인 3) 비선형적 개발 지원(수천 개의 브랜치를 병행) 4) 완전 분산형 ..
# 3.5 creat() creat는 open을 O_WRONLY, O_CREAT, O_TRUNC 플래그와 함께 사용하는 것과 동일한 기능을 가진다. creat가 정상적으로 수행되면 지정한 pathname에 해당하는 파일을 새롭게 생성하고 이 파일을 쓰기 상태로 개방하게 된다. creat를 사용할 때 주의해야 할 점은 이미 존재하는 파일에 대한 경로를 사용할 때다. 아래의 소스에서와 같이 creat와 동일한 기능을 가지는 open의 사용법은 O_CREAT 플래그와 함께 O_EXCL 플래그를 사용하지 않는 다. open의 사용법에서와 같이 O_EXCL은 O_CREAT와 함께 사용되며 지정한 경로의 파일이 이미 존재한다면 파일을 생성하지 않는다. 하지만 creat는 O_EXCL 플래그에 해당하는 기능이 없기 ..
# 3.4 close() close는 open이나 creat에 의해 개방된 파일을 닫는다. 덩확히 표현하자면 open이나 creat에 의해 할당받은 파일 기술자를 반환하는 것으로 해당 파일에 대한 사용이 끝났음을 알리는 것이다. 어떤 용도로든파일을 개방하게 되면 사용이 끝난 후에 반드시 닫아주어야 한다. 하나의 프로세스가 동시에 개방할 수 있는 파일의 수에는 한계가 있기 때문이다. 프로세스가 동시에 개방할 수 있는 파일의 수는 시스템에 따라 다르고 대부분의 경우에 부족하지 않겠지만 프로그램의 내용에 따라 동시에 많은 수의 파일을 개방해야 하는 경우도 있을 것이다. 지금 당장 사용할 일이 없는 파일은 close를 사용하여 닫아주고 나중에 다시 사용하게 될 때 또 개방하면 된다. #include int cl..
# 3.3 open() - open()은 버퍼 공간을 확보하여 파일을 읽거나 쓸 때 사용한다.- 파일이 존재하지 않을 경우 open()에 의해 새로운 파일이 만들어지기도 한다.- 이미 존재하는 파일을 읽기 또는 쓰기용으로 열거나 새로운 파일을 생성하여 연다. // types.h: 사용자 정의 데이터 형식인 mode_t를 지원한다.#include // stat.h: 다양한 데이터 형식이 정의되어 있다.#include // fcntl.h: 시스템 호출 open의 프로토 타입과 flags에 사용할 수 있는 매크로 상수를 정의하고 있다.#include int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t..
# 3.2 Read/Write Pointer 읽기/쓰기 포인터(Read/Write Pointer)는 개방된 파일 내에서 읽기 작업이나 쓰기 작업을 수행할 바이트 단위의 위치를 가리키는 것으로 특정 위치를 기준으로 한, 상대적인 위치를 의미하는 오프셋(offset) 이다. 프로그램이 파일을 개방한 직후의 읽기/쓰기 포인터는 파일의 첫 부분을 기준으로 0이라는 값을 가지게 된다. 즉, 파일 내용의 첫 번째 바이트를 가리키게 된다. 이후에 read와 같은 함수로 파일의 내용을 읽으면 그 크기만큼 읽기/쓰기 포인터의 위치가 증가하게 되며 파일의 내용을 모두 읽게 되면 파일의 마지막을 의미하는 EOF(end-of-file)을 가리키게 되고 더 이상 읽을 파일의 내용이 없음을 알게 된다. 읽기/쓰기 포인터는 파일 ..
# 3.1 File Descriptor 파일 기술자(File Descriptor)는 하나의 실행중인 프로그램과 하나의 파일 사이에 연결된 개방 상태라고 생각할 수 있다. 프로그램이 지정한 파일을 읽기 전용 상태로 개방하게 되면 음수가 아닌 정수 형태의 파일 기술자를 하나 얻게 되고 이를 fd 변수에 저장한다. 이후에 파일 기술자를 통해 개방된 파일에 대한 읽기 작업을 수행할 수 있게 된다. 다시 말하자면 fd가 저장하고 있는 값은 파일 기술자인데 파일을 읽기 전용 상태로 개방한 상태라는 의미를 담고 있고 이러한 정보는 커널에 의해서 관리된다. 하나의 프로그램은 동시에 여러 개의 파일을 서로 다른 상태로 개방할 수 있으며, 반대로 하나의 파일은 여러 개의 프로그램에 의해 동시에 개방될 수 있다. 그리고 동..
# 2.6 File System Structure 리눅스 파일 시스템은 크게 네 가지 부분으로 이루어져 있다. - Boot block (부트 블록)- Super block (슈퍼 블록)- i-node block list (아이노드 블록)- Data block (데이터 블록) Boot block (부트 블록) Super block (슈퍼 블록) i-node block list (아이노드 블록) Data block (데이터 블록) * 부트 블록: 운영체제를 부팅시키기 위해 필요한 코드로 저장되어 있다. 대부분의 파일 시스템들은 부트 블록으로 시작한다. 부트블록의 구조는 대부분 비슷하다. 하드웨어가 부팅에 필요한 코드를 항상 같은 위치에서 같은 방법으로 찾을 수 있어야 하기 때문이다. - 파일의 첫 번째 블록..
# 2.5 File System 소개 * Disk - 연속된 블록의 collection이다. - Sector, track, cylinder로 나누어진다. - 여러 부분으로 나누어 논리적으로 독립적인 디스크로 사용된다.(C드라이브, D드라이브, ...)- 각 분할 영역마다 다른 장치파일을 가진다. * Root file system- OS가 동작하는데 필요한 최소한의 file과 directory 들로 이루어진다.- kernel system file, /bin, /etc, /lib, /dev * Swap file system- 메모리가 가득 차면 DRAM에 데이터를 저장하는데 사용한다. * Usr file system- 유틸리티 파일들을 저장한다. * Home file system- 사용자 공간- Login ..
# 2.4 File Info $ ls -latotal 188drwx------ 8 lunaseven stu 4096 Sep 30 16:24 .drwxr-xr-x 49 root root 4096 Sep 3 05:22 ..drwxrwxr-x 2 lunaseven stu 4096 Sep 6 11:20 170904-rw-rw-r-- 1 lunaseven stu 0 Sep 25 14:16 afile-rwxrwxr-x 1 lunaseven stu 5839 Sep 30 00:28 a.out ... d rwx rwx rwx- d: directory file- -: 일반 file- l: symbolic link- b: block device file- c: char device file- p: named pipe (FI..
#2.2 File Types * 일반 파일- 데이터를 포함하고 있는 텍스트 또는 이진 파일이다.- 트리 구조의 잎(leaf)에 해당한다.- Stream file (collection of bytes) 이다. * 디렉터리(directory) 파일- 자기 자신도 하나의 파일이다.- 상위 디렉토리에 등록되어 있다. (트리 구조를 이룸)- 파일의 이름들과 파일 정보에 대한 포인터들을 포함한다. * 디바이스(device) 파일- 시스템에 접속하는 주변 기기나 메모리, 등의 장치 각각에 대응하는 특수 파일- /dev 디렉터리에서 관리한다.- Special file 이라고도 부른다.- Character special file과 block special file로 나뉜다. - Stream file-사용자 프로그램 내에..
- Total
- Today
- Yesterday
- 비발디파크
- 아디다스아이웨어
- 라프
- 보드웨어
- 스키고글
- IPTIME NAS
- iptime ssh
- 아이다스아이웨어
- 모집단
- ADIASEYEWEAR
- nas2dual
- 백클랜드
- iptime putty
- 아디다스
- 고글
- 스키웨어
- LIKEAFIRST
- 처음처럼
- 아디다스스노우고글체험단
- 블루미러렌즈
- ADIDASEYEWEAR
- 아디다스스노우고글
- 스키장고글
- 스노우고글
- BACKLAND
- 보드고글
- 아디다스백클랜드
- iptime telnet
- 아디다스고글
- 출시
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |