Unix & Linux 59

Raspberry Pi Zero W, 커널 컴파일 및 빌드

1. Kernel ( 커널 ) ? 운영체제 (OS) 에서 가장 코어 파트에 해당 커널은 컴퓨터의 각종 드라이버, 메모리, 프로세스 등을 관리하는 역할을 수행 일반적으로 배포판으로 제공되는 커널은 이미 일반적인 기능이 포함 라즈베리파이는 Debian 기반의 os를 사용하는데 부품과 적절히 호환될 수 있는 형태로 제공된다. 기본적인 커널에서 제공하지 않는 기능을 사용하고 싶을 때, 커널을 변경하여 컴파일해볼 필요가 있다. 예를들어 특정한 하드웨어를 관리하기 위한 디바이스 드라이버 (Device Driver) 를 작성할 때 커널 모듈 형태로 작성할 수 있다. 1-1 커널의 주요 디렉토리 - linux/kernel : 커널 핵심 소스 코드 - linux/include : 커널 소스코드의 헤더 파일 - linux..

Unix & Linux/Kernel 2022.01.13

우분투 텔레그램 봇 만들기 (UBUNTU / TELEGRAM BOT )

어플리케이션 설치를 위해 타사 저장소를 지원합니다. sudo add-apt-repository ppa:atareao/telegram 이제 텔레그램을 설치합니다. apt-get install telegram /opt/telegram 폴더에 설치된 것을 확인할 수 있다. 봇 설치? Seach 에 BotFather 를 서칭하면 위 그림처럼 보이고 더블클릭한다. /newbot --> 새로운 봇 생성 봇 이름을 생성한다 " leehands" 더보기 Done! Congratulations on your new bot. You will find it at t.me/leehands_bot. You can now add a description, about section and profile picture for you..

Unix & Linux 2022.01.07

GCC ( GNU Compiler Collection ) 는 무엇인가?

GNU(GNU is Not Unix) 프로젝트의 프리웨어(freeware) 컴파일러. 본래 C 언어용 컴파일러로 시작하였으므로 GNU C Compiler의 약자였으나 2.9 버전에 이르러 C뿐만이 아니라 오브젝티브(Objective) C, 파스칼(Pascal), 에이다(Ada)와 같은 언어도 지원하였으므로 GNU Compiler Collection으로 개명하였다. GNU/Linux부터 Solaris 2, 윈도즈 NT에 이르기까지 수많은 운영 체계(OS)를 지원할 정도로 높은 호환성을 가지고 있다. 또한 자동 레지스터 할당, 반복되는 코드 제거, 상수 곱셈 최적화 등 매우 많은 최적화를 수행하는 컴파일러이다. GNU 프로젝트의 오픈 소스 컴파일러 컬렉션. 유닉스/리눅스 계열 플랫폼의 사실상 표준 컴파일러다..

Unix & Linux 2022.01.06

( tmux ) 터미널 멀티플렉서 , 꺼져도 돌아간다

https://seongkyun.github.io/others/2019/01/05/tmux/ 우분투(Ubuntu)에 tmux 설치/세팅하기 · Seongkyun Han's blog 우분투(Ubuntu)에 tmux 설치/세팅하기 05 Jan 2019 | Ubuntu tmux [Ubuntu] 우분투(Ubuntu)에 tmux 설치/세팅하기 우분투는 주로 Server로 사용하며 작업을 하다보니.. 가끔 연결이 끊기는 경우엔 작업하던 내용이 seongkyun.github.io TMUX 설치 및 실행 sudo apt-get install tmux 실행은 "tmux" TMUX 사용 법 Putty, 또는 Server단에서 터미널을 연 후 tmux를 쳐 터미널 실행 모든 tmux 명령어는 Ctrl + b를 눌러 명령어 ..

Device Tree (디바이스 트리) 에 대해

ARM 리눅스에서 x86 과 같은 bios 역할을 해주는 것이 device tree 1. 동작 : bootloader 는 kernel 을 시작 시키기전에 dtb 를 memory 영역으로 복사한 후 kernel 을 시작한다. 2. dts 표기법 dts = device tree specification (사람이 이해 할 수 있는 수준으로 기술) dtb = device tree blob (DT를 binary로 변환 한 것) dtc = device tree compiler 3. Device Tree Overlay DT 는 검색할 수 없는 하드웨어를 설명하는 이름이 지정된 노드와 속성의 데이터 구조입니다. Android에서 사용되는 Linux 커널과 같은 운영체제는 DT를 사용하여 Android 기반 기기에 사용..

Unix & Linux/Kernel 2021.09.04

리눅스 커널 소스 ( Linux Kernel Source )

참고 사이트 : http://wiki.kldp.org/Translations/html/The_Linux_Kernel-KLDP/ 1. Kernel : 리눅스 커널 동작을 제어하는 기본 기능 2. mm : 리눅스 커널의 메모리 관리 (물리메모리, 가상메모리) 3. fs : 가상 파일 시스템 , 서브 디렉토리 아래에 각종 파일 시스템이 존재 : vfat / ext2 같은 서브디렉토리가 있다. 4. net : 각종 네트워크 프로토콜에 관한 코드 5. ipc : System V IPC ( 공유메모리, 세마포어, 메시지) : IPC 란 : Inter-Process Communication, 프로세스 간 통신 6. init : 리눅스 커널을 부팅할 때 호출되는 각종 초기화 처리의 본체 : 커널이 어떻게 동작하는지 보..

Unix & Linux/Kernel 2021.07.21

라즈베리파이 크로스컴파일

참고사이트 : https://wikidocs.net/3243 1. 툴체인 설치 git clone https://github.com/raspberrypi/tools ~/tools 2. $ PATH 환경 변수를 업데이트 echo PATH=\$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin >> ~/.bashrc source ~/.bashrc 3. 소스 받기 git clone --depth=1 https://github.com/raspberrypi/linux 4. 소스 빌드 sudo apt install git bc bison flex libssl-dev make 5. 소스 및 장치 트리 파일을 빌드하려면 다음 명령 cd lin..

Unix & Linux/Kernel 2021.07.19

리눅스, 쉘 스크립트 (1) - Hello world

vim 에디트를 통해 파일을 만들어줍니다. vim hello_world.sh 그러면 에디트 화면이 열립니다. 쉘스크립트 언어라는 것을 알려주는 중요한 식별자를 추가하고 아래와 같이 예제 코드를 작성해봅니다. #!/bin/bash #example echo "hello world" 이렇게 작성하고 저장하고 나옵니다. 그리고 실행하면 ( ./hello_world.sh) 당연히 실행이 안됩니다. 기본적으로 파일 생성하면 실행가능한 파일이 아니라고 선언됩니다. 그래서 아래와 같이 실행가능한 파일이라고 변경합니다. chmod 755 hello_world.sh 이렇게 변경해주고 실행하면 hello world 가 출력됨을 확인할 수 있습니다.

Unix & Linux 2021.06.17

( cp ) 리눅스 기본 문법, cp (copy)

option description cp -a archive files cp -f force copy by removing the destination file if needed cp -i interactive - ask before overwrite cp -l link files instead of copy cl -L follow symbolic links cp -n no file overwrite cp -R recursive copy (including hidden files) cp -u update - copy when source is newer than dest cp -v verbose - print informative messages -i : 복사될 파일이 이름이 이미 존재할 경우, 사용자에게..