LINUX

포스트: 487|아이템:LINUX(477)
Tags

Posts

487 posts

[라즈베리파이] 시스템 콜(시스템 호출)은 왜 필요하나?

Guillermo Austin Kim|2018년 10월 29일

시스템 콜은 유저 모드에서 커널 모드로 진입하는 동작입니다. 다른 관점으로 시스템 콜은 유저 공간과 커널 공간 사이 가상 계층이자 인터페이스라고 볼 수도 있습니다. 이 계층은 다음과 같은 특징이 있습니다.1. 시스템 안정성과 보안을 지킬 수 있습니다. 유저모드에서 어플리케이션이 커널 공간에 아무런 제약없이 접근한다고 가정합시다. 실수로 어플리케이션이 커널 코드 영역 메모리를 오염을 시키면 시스템은 오동작할 가능성이 높습니다. 2. 유저 어플리케이션에서 추상화된 하드웨어 인터페이스를 제공합니다. 유저 모드에서 구동 중안 어플리케이션 입장에서 하나의 파일 시스템 위에서 구동 중인 것으로 착각하게 합니다. 3. 시스템 콜 구현으로 유저 어플리케이션의 호환성과 이식성을 보장할 수 있습니다. 리눅스 시스템은 시스

리눅스 bash 스크립트에서 텍스트 파일을 읽어서 한 줄씩 배열(array) 원소로 할당하기 - 2 (readarray)

반달가면|2018년 10월 25일

bash 스크립트에서 텍스트 파일의 각 행을 배열(array)에 할당하는 방법을 예전에 기록해 두었었는데(여기에), 훨씬 더 간단하고 편리한 방법을 발견했다. 예전에 적었던 방법은 한줄씩 구분해서 할당하기 위해 내부 필드 구분자(internal field separator) 설정(변수 IFS)을 바꿔야 해서 귀찮았는데, readarray라는 명령을 이용하면 이런 과정이 필요 없다. # test.txt 파일을 읽어서 각 행을 배열 arr에 할당 readarray arr < test.txt # 첫번째 행 출력 echo "${arr[0]}" 리눅스 bash 스크립트의 배열에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로

[리눅스커널] 프로세스는 어떻게 생성하나? - _do_fork() 함수 호출

Guillermo Austin Kim|2018년 10월 21일

프로세스에 대한 이해를 하려면 프로세스가 어떻게 생성되는 지 알면 좋습니다. 프로세스 생성 과정에서 프로세스를 관리하는 자료구조 관계를 알 수 있기 때문입니다. 리눅스에서 구동되는 프로세스는 크게 유저 레벨에서 생성된 프로세스와 커널 레벨에서 생성된 프로세스가 있습니다. 유저 레벨에서 생성된 프로세스는 유저 공간에서 프로세스를 생성하는 라이브러리(glibc) 도움을 받아 커널에게 프로세스 생성 요청을 합니다. 커널 프로세스는 kthread_create() 함수를 호출해서 커널 내부에서 프로세스를 생성합니다. 커널 프로세스는 커널 스레드라고 부르며 커널 내부에서 스레드를 직접 관리합니다. 공통으로 리눅스에서 생성된 프로세스는 _do_fork() 함수를 호출합니다. 프로세스 생성하는 핵심함수는 _do_

우분투 계열 리눅스의 시냅틱 패키지 관리자에서 검색바(search bar) 활성화

반달가면|2018년 10월 15일

데비안/우분투 계열 배포판에서 제공되는 S/W 패키지 설치 도구인 시냅틱 패키지 관리자(Synaptic Package Manager)에서 검색바(search bar)가 표시되도록 하는 방법이다. 기본설정으로 검색바가 활성화되어 있는 경우도 있지만, 검색 아이콘만 나오는 배포판도 있으므로 여기에 정리해 두기로. 시냅틱 패키지 관리자에서 검색바가 표시되어 있지 않으면 "검색(search)" 아이콘을 클릭한 후에 검색어를 입력해야 하는데, 이것보다는 실행 윈도우에 검색어 입력 바가 존재해서 여기에 검색어를 입력하면 곧바로 결과가 나오도록 하는 것이 훨씬 편리하다. apt-xapian-index 패키지를 설치한 후에 색인(index)을 갱신해 주면 된다. 터미널창에서 아래와 같이 작업. # apt-