본문 바로가기

분류 전체보기

(84)
리눅스 커널 컴파일 [ubuntu kernel compile] 커널 컴파일 과정을 요약하면 커널 컴파일은 언제 하나? 커널은 시스템을 운영하기 위한 가장 기본적인 코드가 포함되어 있어야 한다. 즉, 장치 혹은 시스템의 기능과 관련된 변화가 있을 경우 새로운 커널을 생성해야 한다. 현재 시스템은 어떠한 장치가 장착되어 있으며, 어떠한 목적으로 시스템을 운영할 것인가에 따라 커널의 구성요소가 달라질 수 있다는 것을 의미하며, 현재 커널에는 어떠한 것들을 지원하는가에 대한 정보는 커널 소스 디렉토리에 존재하는 Documentation 디렉토리에서 해당 정보를 얻을 수 있다. 만약 현재 시스템을 운영하기 위해 필요로 하는 장치에 대한 정보나 기능에 대한 핵심 코드가 현재 커널에 존재한다면 굳이 커널을 업그레이드 하거나 새로 생성할 필요가 없다. 하지만 간혹 커널 자체에 보..
우분투 커널 5.0업그레이드 및 커널 수정 [How to upgrade linux Kernel 5.0~ on ubuntu 18.04 LTS with kernel compile] 전에 작성한 ukuu를 사용한 방법보다 추천하는 방법이다. 이유는 kernel source를 직접 다룰수 있고 커널에 필요한 모듈이 있으면 source해당 디렉토리에서 make하고 바로 insmod 할 수 있기 때문이다. 커널 소스다운로드 커널 컴파일 커널 설치 1) 커널 소스 다운로드 http://kernel.org [ The Linux Kernel Archives www.kernel.org ](https://www.kernel.org/) 위 사이트에서 커널 소스를 다운로드 할수 있습니다. 저는 stable인 5.1.5를 다운로드 했습니다. 2) 커널 컴파일 커널 컴파일에 앞서 필요한 패키지를 설치해야 합니다. $ sudo apt-get update $ sudo apt-get install build-..
알고리즘 입출력, 손풀기 문제 입출력은 보통 8가지 경우가 있다. boj.kr에서 A+B 문제를 찾아볼수 있다. https://www.acmicpc.net/problem/1000https://www.acmicpc.net/problem/2558https://www.acmicpc.net/problem/10950https://www.acmicpc.net/problem/10951https://www.acmicpc.net/problem/10952https://www.acmicpc.net/problem/10953https://www.acmicpc.net/problem/11021https://www.acmicpc.net/problem/11022 EOF처리//터미널에서 EOF를 반환 : (Windows)Ctrl + Z, (Linux)Ctrl + ..
우분투 커널 5.0 업그레이드 [How to upgrade linux Kernel 5.0 on ubuntu 18.04 LTS with ukuu] 해당 kernel upgrade는 간단하고 빠른 설치방법입니다. kernel source를 편집하거나 kernel source에서 모듈을 추가하거나 안정적인 동작을 원하시는 분들은 kernel complie을 통한 kernel upgrade를 추천해드립니다. 2019/05/31 - [프로그래밍/Linux] - How to upgrade linux Kernel 5.0~ on ubuntu 18.04 LTS withkernel compile How to upgrade linux Kernel 5.0~ on ubuntu 18.04 LTS withkernel compile 전에 작성한 ukuu를 사용한 방법보다 추천하는 방법이다. 이유는 kernel source를 직접 다룰수 있고 커널에 필요한 모듈이 있으면 so..
깊이 우선 탐색(DFS, Depth-First Search) ● 1. 깊이 우선 탐색의 개념● 2. 깊이 우선 탐색의 특징● 3. 깊이 우선 탐색의 구현그래프 탐색이란그래프 안에 어떤 버텍스들이 있는지 알고 싶을 때 사용한다.DFS는 버텍스의 자식들을 먼저 탐색하고, BFS는 버텍스의 형제들을 먼저 탐색한다.ex) 미로 탈출, 최단거리 탐색, 특정 지점에서 다른 점으로 갈 수 있는지 등의 문제를 해결할때 사용하는 알고리즘 1. 깊이 우선 탐색의 개념    깊이우선 탐색 (Depth First Search) : 탐색 트리의 특정 노드를 방문하여 확인한 후 그 노드와 연결된 자식노드 중에서 우선 순위가 가장 빠른 하나를 선택해 방문하며 그후 더 이상 방문할 곳이 없으면 이전 상태로 되돌아가는 탐색 방법이다.이때 탐색 과정이 한없이 깊이 진행되는 것을 막기 위해 깊이 ..
데브스택 설치, 에러해결 [To install Devstack and trouble shooting] Devstack은 git master의 모든 최신 버전을 기반으로 Openstack 환경을 간편하게 설치할 수 있는 확장 가능한 스크립트입니다. 대부분의 Openstack를 공부 하고자 하는 초심자나 Openstack에서 기능을 추가하고자 하는 분들이 개발환경을 위해 사용합니다. ※Devstack은 설치 중에 시스템을 크게 변화시킵니다. 고로 이러한 용도로만 사용되는 VM이나 서버로만 Devstack을 실행하는 것이 좋습니다. 1. 환경준비 사용되는 환경은 리눅스입니다. 테스트 가능한 환경에서 리눅스를 새로 설치하는 게 깨끗하고 최소의 리눅스 환경이기에 가장 좋습니다. 그중에서 우분투 16.04가 가장 많이 테스트되고 가장 설치가 잘 진행됩니다. 에러 검색 시에 여러 커뮤니티에서도 우분투 16.04 환경..
우분투 버전 업그레이드 방법 [How to upgrade ubuntu 18.04 LTS] ssh가 가능한 환경에서 원격으로 업그레이드하는 방법 순서는 다음과 같습니다. 1. 자신의 버전 확인 2. 패키지 업그레이드 3. 릴리즈 업그레이드 1. 자신의 버전 확인 현재 사용하고 있는 우분투의 버전은 /etc/issue파일에서 확인할 수 있습니다. jy-os@jyos-desktop:~$ cat /etc/issue Ubuntu 16.04.4 LTS \n \l 또는 jy-os@jyos-desktop:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.4 LTS Release: 16.04 Codename: xenial 2. 패키지 업그레이드 기존에 설치된 우분투 환경의 패키지등을 최..
hello 모듈 빌드하고 커널에 적재하기, hello 모듈 컴파일 hello 모듈 : "Ubuntu 16.04.5 LTS" , 4.15.0-33-generic에서 진행 함수 실행시간 측정 예제 : "Ubuntu 18.04.2 LTS", 5.1.5에서 진행(출처: https://jjudrgn.tistory.com/25 [jjudrgn's note]) 커널에 모듈을 적재하고 메세지를 띄우기 위해서는 다음과정이 필요하다. .ko파일 만들기 hello.c 와 Makefile을 만들고 make 모듈 로드 insmod hello.ko 메세지 확인하기 dmesg 먼저 hello.c파일을 만든다 hello.c #include #include #include static int __init init_hello(void){ printk(KERN_ALERT "Hello, kernel!\n..