리눅스
Posts
554 posts[Linux][Kernel] WARN 매크로
WARN 매크로는 코드 흐름에 소프트웨어적인 오류가 있을 때 실행합니다. 그래서 소스 코드를 보다가 WARN() 매크로를 보면 뭔가 논리적인 오류가 있는 조건이라고 봐야겠죠. WARN 매크로를 어떤 함수에서 실행되면 시스템 정보를 커널 로그로 출력합니다.1. 콜스택2. 현재 수행 중인 프로세스 정보: CPU번호, 프로세스 이름, pid3. 함수 이름과 라인 정보 하지만 커널 시스템에 심각한 오류가 있는 상태가 아니라 판단해서 에러 메시지만 출력하고 시스템을 계속 구동시킵니다. 그럼 새로운 드라이버 코드를 짰는데 WARN 매크로가 실행되면 어떻게 해야 할까요? 시스템에 치명적인 에러는 아니라 그냥 둬야 할까요? 그렇지 않습니다. WARN 매크로는 시스템에 뭔가 논리적인 오류가 있는 상태이므로 반드시 잡아
curlftpfs - 리눅스에서 ftp 서버를 디렉토리에 연결(마운트)하기
리눅스에서 curlftpfs를 활용하면 ftp 서버에 접속해서 작업하는 과정을 로컬(local) 디렉토리에서 작업하는 방식과 동일하게 만들 수 있다. ftp 서버의 디렉토리를 로컬 디렉토리에 연결(마운트)해 준다. 우선 curlftpfs 패키지를 설치하자. 데이안/우분투 계열 기준으로 터미널창에서 아래와 같이 입력 # curlftpfs 설치 sudo apt-get install curlftpfs 이제 연결을 해 보자. 예를 들어 ~/ftpfs_test 디렉토리에 연결할 ftp 서버 주소는 ftp.my_server.net, 접속 계정은 john, 암호는 abcd라면 아래와 같이 실행할 수 있다. curlftpfs ~/ftpfs_test 이제 ~/ftpfs_test 디렉토리로 가 보
리눅스에서 .netrc 파일을 이용한 ftp 자동 로그인
같은 LAN에 붙어 있는 ftp 서버에 자주 접속해서 뭔가 작업을 할 경우가 있어서 접속할 때마다 사용자 계정과 암호를 입력하기가 번거로운 관계로, .netrc 파일에 로그인 정보를 저장해서 자동으로 로그인되도록 했다. .netrc 파일은 홈 디렉토리(~/)에 둔다. 없다면 새로 만들면 되겠다. # .netrc 파일 편집 vi ~/.netrc 파일 내용은 아래와 같은 형식으로 구성된다. machine [서버 주소] login [사용자 계정] password [암호] 예를 들어 서버 주소 ftp.my_server.net, 사용자 계정 john, 접속암호 my_pwd인 경우 .netrc 파일에 아래와 같은 형태로 입력하고 저장하면 되겠다. machine ftp.my_server
[Linux][GCC]## 매크로 - 심볼 생성
리눅스 커널 코드를 읽다 보면 C 코드에는 존재하지 않는 함수를 호출하는 경우가 있습니다. 희한하게도 해당 함수를 아무리 검색해도 찾을 수 없는데 다른 함수에서 아무 문제 없이 호출합니다. 자 그럼 한 가지 예를 들게요. 아래 코드를 보면 end_page_writeback 함수에서 PageReclaim와 ClearPageReclaim 함수를 호출합니다. 이 함수는 페이지 write back 동작을 멈추는 역할을 하는 것으로 보이네요.[mm/filemap.c]void end_page_writeback(struct page *page){ if (PageReclaim(page)) { ClearPageReclaim(page); rotate_reclaimable_page(page); } PageReclaim



