Linux 6

CMake 시작하기

Step 1) CMake 기본기 실행파일 빌드하기 대부분의 CMake 프로젝트는 소스 코드파일로 부터 실행파일을 빌드하는 것 입니다. 아래 CMakeLists.txt 파일로 실행파일을 빌드할 수 있습니다. cmake_minimum_required (VERSION 2.6) project (Tutorial) add_executable(Tutorial tutorial.cxx) 변수 정의 및 파일 템플릿 CMakeLists.txt 파일에서 변수를 정의하면 파일 템플릿에서 그 변수를 사용할 수 있습니다. 다음 예제들은 CMakeLists.txt 파일에서 버전 변수를 정의하고 헤더 파일 템플릿에서 버전 변수를 사용하여 헤더 파일을 만든 후 소스 코드에서 버전값을 사용하는 방법을 보여줍니다. 이 방법으로 소스 코드 ..

Linux 2019.06.16

명령어 옵션 - 더블대쉬(--)

명령어 옵션에 더블대쉬(--)가 주어지면 더 이상 옵션이 없다는 의미로 사용된다.만약에 abc.txt라는 파일에서 -v 라는 문자열을 grep를 이용하여 매칭한다고 할 때grep -v abc.txt 라고 하면 -v는 grep 명령어에 주어진 옵션으로 해석하기 때문에grep -- -v abc.txt 라고 해야 한다. 참고로 grep의 v flag는 인버트 매칭으로 '역 매칭'으로 동작한다. 만약 abc.txt의 내용이 다음과 같을때-v-v asdf 다음 명령어를 실행하면 grep -v -- -v abc.txtasdf 가 출력이 된다.

Linux 2018.07.04

Alpine Linux 설치

알파인 리눅스가 깔린 부팅 디스크로 시작하면 다음과 같은 메세지가 뜬다localhost login : 간단하게 root 입력해주고 로그인 하자그리고 나서 setup-alpine 커맨드를 입력해주면 다음 항목들이 순서대로 나오면서설치가 시작된다.1) Select keyboard layout [none] : kr 2) Select variants : kr-kr104 3) Enter system hostname [localhost] : 엔터[기본값] 4) Which one do you want to initialize? [eth0] : [기본값] 5) Do you want to do any manual network configuration [no] : [기본값]- 네트워크 설정은 수정하지 않고 일단 기본설정..

Linux 2018.04.15

package 'openjdk-7-jdk' has no installation candidate

apt-get install openjdk-7-jdk 명령어로 인스톨 하려니 아래의 에러 메세지가 뜬다.package 'openjdk-7-jdk' has no installation candidate찾아보니 Ubuntu 16.04에서는 openjdk 8 버전만 지원한다고 한다.6, 7 버전을 사용하려면 우분투 ppa 저장소를 추가해야한다.PPA 저장소란? : http://neverapple88.tistory.com/5Ubuntu ppa archive : https://launchpad.net/~openjdk-r/+archive/ubuntu/ppa 출처 : https://answers.launchpad.net/ubuntu/+question/292154

Linux 2017.08.19

자식 프로세스 / 부모 프로세스

리눅스 커널에서는 task list라는 process의 리스트를 doubly linked list로 저장한다.리스트의 각 element는 struct task_struct 타입의 process descriptor이며 특정 process에 대한 정보를 포함하고 있다. 리눅스에서 프로세스의 종료는 exit() 시스템 콜을 통해 프로세스가 사용하던 시스템 자원을 반납 한 후 Process Descriptor가 task list에서 제거함으로써 이루어진다. 자식프로세스의 경우 exit() 시스템 콜을 호출하면서 종료되며 자신의 모든 자원을 해제 시킨다. 그리고 자식 프로세스의 Process Descriptor에는 exit status 상태 부모 프로세스가 자식프로세스의 종료 상태와 기타 정보를 읽기위해 wait..

Linux 2017.01.04

init system (systemd)

모든 Unix 시스템에는 pid가 1인 특별한 프로세스가 있다.이 프로세스는 다른 프로세스들이 시작되기 이전에 커널에 의해 실행되며 다른 모든 프로세스들의 부모 프로세스이며 누구의 자식 프로세스도 아니다. 다른 프로세스들이 할 수 없는 많은 일을 수행함과 동시에 그에 따른 의무도 있다.(예를 들면 부팅하는 동안 userspace를 가져오고 유지하는 일 등) 예전부터 sysvinit이라는 패키지를 통해 init이라는 process가 리눅스의 1번 pid로 시스템의 booting과 shutdown를 컨트롤 하는 역할을 해왔다. 물론 그 동안 다른 대안 init system들이 여럿 제안되었다. (systemd, Upstart 등) 일단 init system의 가장 중요한 역할은 userspace를 띄우는 것..

Linux 2016.12.27