computer core practice1: operation system week2. ubuntu...
TRANSCRIPT
18
1
Embedded Software Lab.
진주영, 황인중
Embedded Software Lab.
Computer Core Practice1: Operation SystemWeek2. Ubuntu Setup
18
2
Embedded Software Lab.
• 모든 컴퓨터 시스템에 있는 기본적인 프로그램 집합– 이 중, 가장 중요한 프로그램을 커널(Kernel)이라고 함
ex) 안드로이드
기본 어플리케이션, 플랫폼 (프레임워크 및 GUI 제공), 리눅스 커널
운영체제 (Operating System)
18
3
Embedded Software Lab.
• 커널 (Kernel)
– 하드웨어를 직접 제어하는 운영체제의 한 레이어
• 하드웨어 구성 요소와의 상호 작용
• 운영체제를 종종 ‘커널’과 동의어로 사용하기도 함
– 사용자 어플리케이션을 위한 실행 환경 제공
– User와 Hardware Resource 사이의 Interface: 프로그램이 하드웨어 자원(Storage, CPU, Memory, …)을이용하기 위해서는 커널에 요청을 보내야 한다.
• 커널에서 관리함으로써 안정성 있는 컴퓨터 시스템을 구축
Kernel
18
4
Embedded Software Lab.
진주영, 황인중
Embedded Software Lab.
Ubuntu Porting & Kernel Compile
18
5
Embedded Software Lab.
• VMware 는 운영체제 위에 다른 운영체제를 돌리기 위한 가상머신
• VMware 설치– https://www.vmware.com/kr.html 가서 Workstation Player 설치
VMware 설치
18
6
Embedded Software Lab.
• Ubuntu Image 다운로드– https://www.ubuntu.com/download 에서 우분투 이미지 다운
– Ubuntu 16.04.3 LTS 다운
• Kernel 다운로드– https://www.kernel.org/ 에서 커널 다운
– 이 수업에서는 4.9.45 (longterm) 커널 사용 예정
Ubuntu 이미지 다운 및 커널 다운
18
7
Embedded Software Lab.
VMware에 우분투 설치
우분투 이미지 선택
File->New Virtual Machine..
용량은 넉넉히 30GB이상, 40GB정도 잡기(20GB는 커널 컴파일 시에 용량부족!!)
18
8
Embedded Software Lab.
• 커널 컴파일 후에 커널 올리는데 필요한 메모리 때문에, 메모리가 넉넉히 필요 (기본 1GB 주어져 있음)– 4GB 할당으로 변경 (가능하면 CPU도 코어 여러 개 할당)
– 우분투를 끈 상태에서 진행
VMware 자원 할당
오른쪽 마우스 클릭 -> Settings..
4GB할당
4코어 할당
18
9
Embedded Software Lab.
• 우분투에서 먼저 커널 소스를 받는다 (4.9.45)– $ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.45.tar.xz
• 커널 소스 압축해제– $ tar xvf linux-4.9.45.tar.xz
• 커널 컴파일에 앞서 필수 패키지를 설치해야 함
– $ sudo apt-get install ncurses-dev libssl-dev
• 커널 소스 디렉토리에서 진행– $ make menuconfig -> save
– ESC 키 두번
– $ make -j8 (시간 오래걸림)
– $ make modules
– $ sudo make modules_install
– $ sudo make install
커널 소스 받기 및 컴파일
한번 빌드 후에는 delta만 build 진행하므로 시간이 오래 걸리지 않음
18
10
Embedded Software Lab.
• Grub 업데이트 및 환경설정– $ sudo update-grub
– $ vim /etc/default/grub
• /etc/default/grub에서 파일 수정– “GRUB_HIDDEN_TIMEOUT=0” 부분을 주석처리
– #을 붙이면 주석처리 됨
– 수정된 파일 저장 (vim 명령입력 “:wq”)
Grub 설정
18
11
Embedded Software Lab.
• 재부팅– $ sudo reboot
설치된 다른 커널로 부팅
Advanced option으로 들어감부팅할 커널 선택(방금 4.9.45 빌드했으므로 4.9.45로 부팅)
커널 변경확인
18
12
Embedded Software Lab.
진주영, 황인중
Embedded Software Lab.
Ctags & Cscope 사용법
18
13
Embedded Software Lab.
• Linux에서 cli로 파일을 수정하기 위해 에디터 사용– Vim, emac 등을 사용하지만, 본 수업에서는 vim plugin 설명
– Ctags, cscope는 vim의 플러그인으로서 소스코드를 볼 때 유용
• Ctags– Vim의 한 플러그인으로서, 소스 코드의 심볼들을 인식해 파일끼
리 연결해주는 역할을 함
• Cscope– 특정 디렉토리 내에서 검색기능을 제공함
• Configuration 설정– ${HOME_DIR}/.vimrc 에 vim 추가 기능 설정가능
– Vim 에디터 안에 줄번호 표시, 띄어쓰기, 소스코드 색으로 구분등…
– 다양한 plugin 설정 가능
Vim Editor Plugins
18
14
Embedded Software Lab.
Vim 단축키 모음
18
15
Embedded Software Lab.
• $ sudo apt-get install curl exuberant-ctags cscope
• $ mkdir –p ~/.vim ~/.vim/autoload ~/.vim/bundle
• $ curl –Lsso ~/.vim/autoload/pathogen.vimhttps://tpo.pe/pathogen.vim
• $ cd ~/.vim/bundle
• $ git clone https://github.com/majutsushi/tagbar
유용한 tagbar 플러그인 설치
$ ~/.vimrc 에 내용추가 Vim 사용시 명령창에 :Tagbar 입력
화면 우측에 소스코드에 대한 심볼들 표시
“Ctrl+w” x2 으로 입력커서 이동
18
16
Embedded Software Lab.
Ctags 예제
Ctrl+] 를 통해 심볼 정의를 찾아갈 수 있음
찾아갈 심볼 선택
소스코드 디렉토리에서 다음 명령 실행(심볼에 대한 태그 생성): $ ctags -R
18
17
Embedded Software Lab.
• $ cscope -R
Cscope 예제
Symbol로 검색: GPIO_RPI
18
18
Embedded Software Lab.
• $ vim ~/.vimrc
Vimrc configuration