티스토리 뷰
System을 구성하는 Disk는 Partition으로 구성되어 있다. Partition이 뭔가 하면 물리적 디스크 내에서 sector나 cylinder 단위로 구분지어 놓은 연속적 집합의 형태라고 보면 되겠다. 일반적으로 disk당 4개의 primary partition을 가질 수 있다.
SATA (Serial Advanced Technology Attachment) 규격은 보통 디스크당 15개의 partition을 가질 수 있는데, 방금전에 소개했다시피 4개의 partition은 primary 혹은 extended partition으로 구성할 수 있고, 이후의 partition은 logical partition으로 생성된다. 사실 이런 규약이 상관이 없는게 하나의 primary partition은 여러개의 logical partition으로 또 나눌 수 있다. 그래서 그냥 partition을 15개까지 만들 수 있다는 것만 알고 있으면 될거 같다.
리눅스에서 Partitioning을 하면서 얻을 수 있는 이점이 어떤게 있을까?
- Separation (분리)
: 보통 윈도우 쓰는 일반 사람들도 C 드라이브와 D 드라이브로 나눠 C에는 주로 프로그램, D에는 개인 자료를 넣곤한다. 이는 시스템의 변화와 상관없이 user-specific한 자료를 계속 유지하고자 하는 목적이 있는 것이다. 가령 운영체제가 잘못되어서 다시 설치해야 할 경우, 사용자 자료가 그 안에 들어있으면 같이 포멧되면서 없어지게 된다. 이같은 경우를 방지하기 위해 user data와 application data를 분리하는 목적에서 partitioning이 필요하다.
- Sharing (공유)
: 앞의 단어와 상반되는 내용일 수도 있겠지만 partitioning을 통해서 공유를 손쉽게 할 수 있다. 가령 앞의 방법을 사용해서 사용자 정보를 따로 분리했다면 이를 일종의 NFS(Network File System)으로 생성해 같은 네트워크내의 어느 컴퓨터에서든 접근 가능하게 만들수도 있다. 또는 multi boot를 활용하는 system에서도 /home 을 공유폴더로 활용할 경우, 개인 정보를 유지하면서 Linux version을 다르게 가져갈 수 있다.
- Security (보안)
: 물론 위의 목적과 더불어 데이터를 분리할 수 있기 때문에 일종의 보안효과도 누릴 수 있다. 예를 들어 sandbox의 형식처럼 생각해봐도 좋을 거 같다.
- Size (크기)
:일반적으로 application들은 주요 업데이트가 이뤄지지 않는 한 크기가 거의 일정하다. 하지만 user specific한 정보는 그 크기가 유동적으로 변할 수 있다.(물론 아닐 수도 있지만...) 이같은 경우 효율성을 발휘해 크기를 조절할 수 있다. 예를 들어 partition의 크기가 한정적인 경우, 다른 partition으로 필요한 만큼 파일을 이동시켜 크기를 조절할 수 있다.
- Performance (성능)
몇년전부터 보편화되면서 사용되어 온 ssd의 경우, Flash memory에 data가 저장되고 불러올 수 있기 때문에 일반적인 HDD 방식보다 성능이 좋다. 이때문에 자주 쓰고 빠르게 읽어 올 자료가 있는 경우 SSD에 저장하고 안정성을 추구하는 자료는 HDD에 저장하는 식으로 성능을 효율적으로 배분할 수 있다.
- Swap
이건 한글로 번역하기 그런데 데이터가 CPU에 의해서 처리되기 위해서는 memory에 올라가 있어야 한다. 하지만 memory의 크기가 한정적이기 때문에, 자주 안쓰여지는 자료는 일종의 data type으로 변환되어 HDD에 저장된다. 이러다가 쓸 필요가 있는 경우, 다시 memory로 불러오게 되는데 이를 swap이라고 한다. 이때 partition이 사용될 수 있는데, 만약 성능이 좋은 HDD, SDD 같은 곳에 swap space를 만들고 swap을 유발시킬 경우, HDD보다 더 좋은 성능을 불러올 수 있다. 또한 hibernation과 같이 전력관리차원에서 사용되는 기능도 이런 swap을 사용하게 되는데, 데이터를 저장하는 영역 역시 성능이 빠른 partition에 저장할 경우 더 높은 성능을 얻을 수 있다.
'Study > Linux' 카테고리의 다른 글
[Linux] hardfloat compile과 softfloat compile시 차이 (0) | 2016.05.31 |
---|---|
[Linux] floating point 관련 삽질중 (0) | 2016.05.25 |
[Linux] ARM gcc-4.7 cross compiler 설치 (0) | 2016.05.18 |
[Linux] udev (user device) (0) | 2016.05.03 |
[Linux] Device node (6) | 2016.05.03 |
[Linux] Kernel Modules (0) | 2016.04.29 |
[Linux] FHS를 이루는 폴더들 (2) (0) | 2016.04.27 |
- Total
- Today
- Yesterday
- TensorFlow Lite
- arduino
- 한빛미디어
- Off-policy
- dynamic programming
- ai
- PowerPoint
- 파이썬
- Gan
- Distribution
- Expression Blend 4
- ColorStream
- Variance
- Kinect SDK
- processing
- Offline RL
- DepthStream
- bias
- Kinect
- Kinect for windows
- 강화학습
- reward
- Policy Gradient
- windows 8
- SketchFlow
- RL
- End-To-End
- Windows Phone 7
- 딥러닝
- Pipeline
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |