Posts

Showing posts from February, 2026

Inode 에 대해서

처음 3.5 인치 플로피 디스크 여러장에 모뎀으로 연결해서 다운 받은 슬랙에어를 통해서 설치를 하다가 우연히 컴퓨터 잡지에 있는 CD에 슬랙웨어를 통해서 컴퓨터에 설치를 했던 것이 벌써 30년이 넘어 가는데 이제 다시 좀 공부를 할려고 하니 어디부터 시작을 할까 고민을 하다가 시스템을 운영을 하다보면 I/O의 작업이 느려지면서, 전체 시스템에 문제가 많이 발생을 하게 되어서 일단 파일 시스템에 대한 공부를 해볼려고 그 부분을 정리를 여기다 시작할려고 합니다.  먼저 오늘은 간단하게 파일 시스템이 왜 필요한지에 대해서 이야기를 해볼려고 합니다.  모든 O/S가 사용자가 편하게 컴퓨터 하드웨어 사용을 하기 위해서 CPU, Memory, HDD, Dispaly, NIC 등의 부분을 가상화를 지원을 합니다. 즉 실제 하드웨어를 제어하는 부분은 O/S에 위임(system call 같은 방법으로)을 하고 그 해당 인터페이스를 가상화를 해서 실제 사용자는 실제 프로그램을 구동을 하게되면 해당 프로그램을 돌리기 위한 자원을 O/S에 요청을 하게되고 이 부분을 O/S가 각 해당 hardware에 맞게 작성된 driver를 구동시켜서 요청을 처리를 하게 됩니다. 실제 파일시스템없이 디스크를 바로 접근을 하는 어플리케이션(Oracle, IBM Informix) - [1]이 존재를 하지만 일반적인 경우에는 application은 O/S에서 제공을 하는 파일시스템을 사용을 하게 됩니다. 리눅스에서는 ext2,3,4, xfs, zfs 등등 많은 파일시스템 종류가 있지만, 각 파일시스템에서 기본적이 구조를 정리를 해볼려고 합니다. 오늘(2월 1일)은 여기까지 해보고 내일 또 정리를 해볼려고 합니다. [1]-  이런 경우에는 o/s에서 제공하는 syscall을 사용을 하지 않고 자체적인 데이터 레이아웃을 구성을 해서 각 어플리케이션의 최적을 성능을 낼려고 하는 경우에 사용을 합니다.