[Linux/Ubuntu] 나의 Ubuntu 초기 세팅
·
Linux/Ubuntu
내가 보기 위한 나의 Ubuntu 초기 세팅 글sudo 비밀번호 생략 (필요없으면 패스)sudo 입력 시 비밀번호를 생략할 수 있게 설정하자.sudo visudo위 명령어 입력 후 가장 아래줄에 다음 문장을 추가해주자.{user-name} ALL=(ALL) NOPASSWD:ALLCtrl+s로 저장 후 Ctrl+x로 나오면 된다.root 계정 비밀번호 설정sudo passwd root위 명령어 입력 후 원하는 비밀번호로 설정SSH 서버 세팅VMware 터미널은 불편하니 일단 ssh 세팅 가장 먼저 하자.sudo apt update && sudo apt install -y openssh-server그 뒤에 root 계정으로 ssh 접속을 허용하자. (필요없으면 패스)sudo vi /etc/ssh/sshd_c..
Linux/Ubuntu 시간대 한국으로 변경
·
Linux/Ubuntu
Ubuntu를 설치하면 시간이 다른 국가를 기준으로 설정되어 있는 경우가 있다.한국 시간대로 시간을 변경하려면 아래 명령어를 입력하면 된다.sudo timedatectl set-timezone Asia/Seoul
리눅스 커널 소스의 구조 및 objdump 바이너리 유틸리티
·
Linux/Linux Kernel
리눅스 커널 소스의 구조arch : 아키텍처별로 동작하는 커널 코드arm : 32bit 계열 ARM 아키텍처 코드가 있으며, 라즈비안도 이 하부 디렉터리 코드를 실행함arm64 : 64bit 계열 ARM 아키텍처 코드가 있음x86 : 폴더 이름과 같이 인텔 x86 아키텍처 코드가 있음include : 커널 코드 빌드에 필요한 헤더파일이 있음Documentation : 커널 기술 문서가 있는 디렉터리로, 커널 시스템에 대한 기본 동작을 설명하는 문서를 찾을 수 있음kernel : 커널의 핵심 코드가 있는 디렉터리, 아키텍처와 무관한 커널 공통 코드가 있음 아키텍처별로 동작하는 메모리 관리 코드는 arch/*/mm/ 아래에 있음irq : 인터럽트 관련 코드sched : 스케줄링 코드power : 커널..
리눅스 커널에 시스템 콜 추가 및 커널 설치
·
Linux/Linux Kernel
리눅스 커널에 시스템 콜 추가시스템 콜을 추가하려면 기본적으로 3개의 파일을 수정해야 한다.kernel/파일명.ckernel/Makefilearch/x86/entry/syscalls/syscall_64.tbl각 파일들을 보며 시스템 콜을 추가해보자.kernel/파일명.c이 파일이 시스템 콜이 실제로 구현될 위치이다.my_syscall.c 파일을 추가해보자.// kernel/my_syscall.c#include #include SYSCALL_DEFINE2(my_syscall, int, num1, int, num2){ int result = num1 * num2; printk(KERN_INFO "my_syscall result: %d * %d = %d\n", num1, num2, result); ..
커널 v6.x 컴파일
·
Linux/Linux Kernel
앞으로 "김동현"님의 [디버깅을 통해 배우는 리눅스 커널의 구조와 원리] 책을 공부하며, 공부한 내용을 정리해보려고 한다. 책에서는 라즈베리파이를 가지고 내용이 진행되는데, 나는 VMWare에 Ubuntu 24.04를 올려서 진행했다.커널 컴파일가상머신 Ubuntu 24.04(커널 v6.8)에서 커널 컴파일을 해보겠다.컴파일하고 나면 용량이 16GB 정도 사용된다. Ubuntu의 기본 사용 용량 등을 고려해서 Disk 크기를 64GB 정도는 잡는 것이 여유로울 것이다.그렇지 않으면 오랜 컴파일의 결과가 디스크 부족일 수도 있다.. 일단 빌드 툴 설치부터 하자.sudo apt updatesudo apt install -y build-essential libncurses-dev bison flex libss..
커널 전처리 코드 생성
·
Linux/Linux Kernel
전처리 코드 생성리눅스 커널 소스코드를 분석하다 보면 수많은 매크로를 만나게 된다.리눅스 커널을 캡슐화나 다형성과 같은 객체지향 방식으로 구현하다 보니 매크로로 구현된 코드가 많다.그런데, 이 매크로들이 소스 분석의 걸림돌이 되기 때문에 전처리 코드로 이러한 매크로들을 풀 수 있다. 전처리 코드는 GCC 컴파일 오브젝트를 생성하는 과정에서 추출되고, 방식은 크게 2가지가 있다.전체 전처리 파일을 추출특정 전처리 파일을 추출전체 전처리 파일을 추출하는 방법리눅스 커널의 전체 소스코드를 전처리 파일로 추출하기 위해서는 Makefile을 수정해야 한다.아래 부분의 빨간 줄을 추가하면 된다.전처리 파일을 추출하기 위해 커널 빌드를 다시 수행해야 한다. (build_kernel.sh 실행)아래 글에서 커널 빌드 ..
[Linux, Ubuntu] tmux 설정
·
Linux/Ubuntu
아래 명령어로 tmux와 필요한 플러그인을 설치하자.sudo apt-get install tmuxgit clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm아래 내용을 ~/.tmux.conf 파일에 입력 후 설정 파일을 적용시키고, 플러그인을 설치해야 한다.Ctrl+a 입력 후 :source-file ~/.tmux.conf 를 입력하면 설정 파일을 적용시킬 수 있다.후에 Ctrl+a 입력 후 대문자 i를 입력하면 플러그인이 설치된다.set -g default-terminal "screen-256color"set -g prefix C-aunbind C-bbind-key C-a send-prefixunbind %bind | split-window -h..
[Linux, Ubuntu] vim 파일 탐색기 netrw 사용법
·
Linux/Ubuntu
netrw는 vim에서 기본으로 제공하는 파일 탐색기이다.기본 프로그램이기 때문에 별도의 설치나 설정 없이도 사용할 수 있다.vim 화면에서 :Explore 명령어를 사용하거나 터미널 화면에서 vi . 를 통해 진입할 수 있다.(블로그 주인장은 .vimrc에서 지정한 단축키로 진입함, 아래 글에 있음)netrw에 오게되면 vim에서와 같이 j/k로 위아래 이동한 뒤 파일/디렉토리를 엔터키로 선택할 수 있다. [Linux, Ubuntu] 나의 .vimrc 설정vim의 설정파일 .vimrc은 다음과 같이 설정되어 있다.마지막 세션 Key Setting 파트는 단축키 설정이라 취향에 맞게 설정하면 될 것 같다."""""""""""""""""""""""" GENERAL """""""""""""""""""""""..