본문 바로가기

Linux17

2. Linux(리눅스) 이해 kernel vs OS(distribution), 커널 vs 운영체제 개요 Kernel과 OS(리눅스 배포판)의 차이를 아는 것은 앞으로 OS를 운영하는데 핵심적인 지식입니다. 흔히 OS에서 제공하는 기능과 종속적인 시스템들을 OS 수준인지 커널 수준인지 혼동하는 경우가 많습니다. 이는 애플리케이션을 운영하는데 있어서도 고수준으로 갈수록 중요한 문제입니다. 커널이란? 커널은 컴퓨팅 하드웨어 자원을 추상화하고 프래그램 수준에서 하드웨어 자원에 접근할수 있도록 인터페이스를 제공하고 하드웨어를 컨트롤하는 시스템 소프트웨어입니다. 커널과 OS의 차이를 알기위해서 소프트웨어, 프로그램등의 미묘한 차이를 구분할 수 있는 것이 중요합니다. 아래 포스팅을 먼저 읽는 것을 추천드립니다. https://asung123456.tistory.com/53 1. Linux(리눅스) 이해 - 개요 .. 2022. 7. 16.
동일 Inode file의 fileSystem 확인 ps, 커널 의사 파일시스템(pseudo filesystem) 동일 inode를 가진 file의 filesystem 찾기 inode는 fileSystem에서 각 file마다 고유합니다. 동일 filesystem에서 inode가 고유하지 않거나 문제가 있는 경우엔 fsck로 filesystem 복구 필요! inode를 통해서 file을 찾아야 할 일이 있어서 찾아봤는데, 유일할 줄 알았던 inode 결과가 2개가 나왔다;; find / -inum {inode 숫자} 2>/dev/null $ df -Th # 이걸로 확인해봐도 겉으로보기엔 같은 fileSystem 같이 보인다.. $ lsblk # 마찬가지 $ df [file path] # 직접 file path를 넣으면, 해당 파일의 fileSystem이 나왔구나.. Filesystem Type Size Used Ava.. 2021. 11. 8.
리눅스 wc -l 사용주의 및 고찰 wc -l을 사용할 경우, 간혹 실제 눈에 보이거나, IDE나 엑셀등에서 알려주는 열 숫자보다 적게 세는 경우가 존재한다. "\n" (개행 문자)의 개수만을 센다. 그렇기 때문에 실제 마지막열 끝에 개행 문자가 없다면 실제 라인보다 1개 더 적게 개수를 센다 # 아래 코드는 사람이 보기에 3줄이지만, wc -l은 개행 문자가 2개이므로 2로 센다. 가나 \n(개행) 다라 \n(개행) 마바 다행히 vim을 비롯한 웬만한 리눅스 환경의 커맨드들은 마지막줄 출력 및 파일 저장시 마지막에 개행을 추가해주기 때문에 "wc -l"의 라인수가 정확하다. (놀라운 사실은, vim은 바이너리 파일조차도 수정하게되면 마지막에 "개행"을 추가한다.) 하지만, 다른 IDE 및 Rest API와 같은 경우 마지막에 개행을 추가.. 2021. 3. 5.
Linux Shell #! /bin/bash #! /bin/sh 에 대한 고찰 보통 쉘스크립트에서 가장 첫줄에 오는 #! /bin/ 자리에 있는 shell 프로그램으로 밑 라인의 명령어를 실행한다고 일반적으로 알고 있습니다. 그런데 이 원리가 사실은 exec계열의 SystemCall을 사용한다는 것을 알게되었고, 어떤 원리인지 고찰해보는 포스팅입니다. exec가 #!를 어떻게 실행하는지, 그리고 #!가 쉘스크립트를 어떻게 실행하게 만드는지 포스팅이기 때문에 exec 시스템콜을 이미 알고있다고 가정하고 진행하겠습니다. $ ./excuteFile 프롬프트에 위 커맨드라인 명령어를 치게되면, "excuteFile"이 실행되게 됩니다. 좀 더 구체적으로는 현재 실행되고 있는 프롬프트(쉘)가 fork를 통해 child process를 만들고, exec를 호출하여 excuteFile 프로그램.. 2020. 6. 1.