리눅스

포스트: 554|조회수: 0|TERM
Items

Posts

554 posts

[리눅스커널][가상파일시스템] 수퍼블록: 슈퍼블록 정보를 statfs 시스템 콜로 읽는 과정 살펴보기

Guillermo Austin Kim|2019년 5월 8일

슈퍼블록 각 멤버들은 파일시스템에 대한 메타 정보를 저장합니다.유저 공간에서 파일시스템 정보를 알려면 어떤 함수를 호출해야 할까요? 유저 공간에서 statfs() 함수를 호출하면 커널 공간에서 해당 시스템 콜 핸들러 함수인 sys_statfs() 함수를 실행합니다. 예제 코드는 다음과 같습니다.1 #define FILENAME_NAME "/home/pi"2 #define BUFF_SIZE 2563 int main() 4 {5 struct statfs file_sys_info;6 char fname[BUFF_SIZE] = {0,};78 strcpy(fname, FILENAME_NAME);9 12 if(statfs(fname, &file_sys_info)) {13 printf("Unable to s

리눅스 systemd 타겟(target)과 init 런레벨(runlevel)

반달가면|2019년 5월 3일

최근에 접하는 리눅스 배포판은 시스템/서비스 관리자로 systemd가 탑재되어 있다. 예전에 사용하던 런레벨(runlevel) 대신 타겟(target)이라는 용어를 사용하고, 대응 관계는 아래와 같다. runlevel 0 정지(시스템 종료) - poweroff.target runlevel 1 단일 사용자(single user) - rescue.target runlevel 2,3,4 다중 사용자(multiuser) - multiuser.target runlevel 5 다중 사용자 + GUI - graphical.target runlevel 6 재기동 - reboot.target 실행레벨 변경은 init 명령을 사용하는데, systemd의 경우 systemctl의 isolate 옵션을 사용한다

[bash: cut] 필드 구분자(delimiter)가 없는 경우 출력 억제하기

반달가면|2019년 4월 25일

우선, cut 명령어의 기본적인 사용 예시는 이전 게시물을 참고하자. 여기로. cut 명령으로 특정 부분을 잘라낼 경우 필드 구분자(delimiter)를 기준으로 잡는데, 필드 구분자가 없을 경우에 기본적으로 행 전체를 출력하게 된다. 아래의 예시를 보자. # 필드 구분자를 콜론(:)으로 지정, 2번째 항목 가져오기 echo "abc:def" | cut -d':' -f2 def # 대상 문자열에 필드 구분자가 없는 경우 echo "abc def" | cut -d':' -f2 abc def 필드 구분자가 없을 경우에 행 전체를 출력하는 것이 아니라 아예 아무것도 출력하지 않도록 하려면 -s 옵션을 추가해 준다. # 대상 문자열에 필드 구분자가 없는 경우, 출력하지 않음(-s

리눅스 민트 미러 서버를 사용하기 위한 클라이언트 설정

반달가면|2019년 4월 16일

우선 우분투 미러 서버를 사용하기 위한 클라이언트 설정은 이전 게시물을 참고하자. 여기로. 본 게시물은 같은 조건에서 리눅스 민트와 관련된 부분을 추가하는 방법에 대해서만 다룬다. 또한 리눅스 민트의 S/W저장소 미러 서버가 구축되어 있다는 것을 전제로 한다. 리눅스 민트 미러 서버 설정에 대한 내용은 여기로 클라이언트의 /etc/apt/sources.list 파일에 리눅스 민트 관련 설정을 추가해 주면 된다. # /etc/apt/sources.list 파일 편집sudo vi /etc/apt/sources.list 우분투 관련 내용은 그대로 두고 추가한다는 점에 유의. 예를 들어 미러 서버 IP주소가 192.168.0.200이고, 클라이언트 장비에 설치된 리눅스 민트 버전이 17(코드명