고급 개발자로 가는 길
반응형

OS/Linux 22

[Linux] vim 에디터 설치

보드 초기 셋팅 시 에디터로 쉘 Script 등 여러 Script 를 수정 할 일이 생긴다. 이럴때 vim apt-get 에디터 설치가 안되어있으면, vi, nano 에디터를 사용해야 하며, 키가 basic 상태로 일반 키와 많이 다르다. 물론 basic 상태 hjkl 등을 사용하여 익히는 것도 좋지만, 편리한 방법도 고려해볼 수 있다. 아래 명령어를 진행한다. sudo apt-get update sudo apt-get install vim 아래와 같은 진행이 이루어진다. Get:1 http://archive.raspberrypi.org/debian buster InRelease [32.6 kB] Get:2 http://raspbian.raspberrypi.org/raspbian buster InRele..

OS/Linux 2022.01.20

[Linux] Alias 에일리어스 등록하기

처음 보드 등을 설정하게 되면 Alias의 필요성을 가장 느끼게될 것이다. 바로 ll... alias 는 별칭의 뜻으로 재부팅 시 지정해준 별칭을 잃어버리지 않고 기억해두어 다시금 원하는 별칭을 사용할 수 있게 해준다. 아래 경로 접속 시 초기에 되어있는 Alias 등을 확인 할 수 있다. cd /home/pi vi .bashrc 아래와 같이 되어있으며, # 주석 해제 후 사용할 수도 있으며, 추가도 가능하다. 개발을 진행하다보면 길고 많은 명령어를 저장하게 될 것이다. # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # ..

OS/Linux 2022.01.20

Linux bash 에서 oh my zsh agnoster 적용하기

본인은 리눅스 Moba x Term 을 개인적으로 자주 사용한다. 현재 사용중인 shell 은 bash 이다. 요즘 대세인 zsh 로 변경을 해보겠다. Install $ sudo apt-get install zsh 자동 shell script install 자동 설치 스크립트를 받기위해 아래 curl or wget 을 먼저 설치 후 아래 명령어를 진행해야 한다. sudo apt-get install wget sudo apt-get install curl Oh My Zsh install curl sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" wget sh -c "$(wg..

OS/Linux 2020.12.17

Ubuntu /var/lib/dpkg/lock-frontend 잠금 파일을 얻을 수 없습니다. 해결하기

apt-get 을 실행하려다 보면 아래와 같은 상황을 마주 할 수 있다. 간단한 해결방법 중 하나로 재부팅이다. reboot 이나 shutdown 을 사용하여 재부팅을 해도 된다. 이렇게 간단하게 해결하는 방법을 제외한 더 확실한 방법이 있다. lock 제거하기 바로 lock 이 걸린 파일을들 제거하는 방법이다. sudo rm -rf /var/lib/dpkg/lock-frontend 아주 정상적으로 잘 되는것을 확인할 수 있다. Package 설정 후 업데이트 sudo rm -rf /var/lib/dpkg/lock-frontend sudo apt-get install zsh Package 를 내려받아 Database 에 있는 의존성을 업데이트 한다. 이렇게 하면 완벽하게 해결이 된다.

OS/Linux 2020.12.17

rsync 암호 서버 동기화

블로그 비밀번호를 까먹었다는 사실을 인지한후 많이 반성했다... 바쁘다는 핑계로 관리를 너무 소홀히 했다... ㅠ 우선 rsycn 는 증분 방식의 백업을 지원한다. 나는 요녀석을 서버에서 로컬에다가 데이터를 백업 하려 한다. 추가로 백업을 자동으로 하기위해 crontab 설정을 진행 할것이다. 단,,1!!@~@!@! rsync 는 서버의 passwd 를 필요로 하는데 자동으로 하기위해 개인키를 통해 공개키를 서버와 동기화 할것이다. 그럼 crontab 에서 자동으로 rsync 사용이 가능하다. 시작해보자. crontab -e 0 0 1 * * rsync -avzc dohyeon@@********:/:/disk1/yona-1.12.0 /backup/yona/. 1>/dev/null 2>/dev/null 0..

OS/Linux 2020.11.18

커널을 분석해보자

http://www.iamroot.org/ldocs/linux.html#sec-1 Linux 3.9.11 분석 (x86_64) 64비트 efi 호출을 담당하는 루틴을 모아놓은 함수다. 64비트 호출 규약(rdi,rsi,r8,r9…)을 x64 EFI 호출규약(rcx,rdx,r8,r9)에 맞게 바꾸고 서비스를 호출한다. 여기서 efi_call 뒤에 붙는 0,1,2.. 숫자는 호출�� www.iamroot.org 진행 중 ~ 양이 방대하지만 계속 해나아가야지 지금은 STM 보드 쪽으로 개발중이라 마무리 되면 다시 kernel 을 보자 kernel 압축 풀어지는 과정 까지만 분석 완료.. 메모리 힙 스택 영역 까지만 분석함

OS/Linux 2020.05.19

uboot 모드 작업하기

uboot 에 대해 정리를 해볼까 한다. uboot 다 알겠지만 bootloader 이다. bootloader 는 bl0 bl1 bl2 로 나누어지며, bl0 은 internal ram 에서 boot type? 을 찾고 bl1 은 MLO 라는 이미지 파일로 bl2 를 실행해주는 역할을 한다. 4KB ~ 16KB 정도의 크기를 가지고 있다. bl2 는 U-boot.img 로 실제 우리가 흔히 알고있는 uboot 이다. 자 그럼 uboot Image 에 대해 더 들어가보자. uboot Image를 uart mode 를 통해 푸싱하고 uboot 모드로 들어가본다. uboot 모드에서는 ram 과 rom 에 write erase read 를 할 수 있다. 중요한 의미이다. uboot 는 rom 의 첫번째 블럭에..

OS/Linux 2020.05.09

shell script

linux 에서 엄청 유용하게 쓰이는 shell script 에 대하여 간단하게 정리를 해볼까 한다. 크게 쓰이는 용도는 여러 명령어나 빌드 과정 등을 sh 파일로 만들어 sh 만 빌드하여 복잡한 과정을 매우 간한하게 만들 수있다. 뿐만 아니라 Makefile 을 만들때도 shell script 와 매우 흡사하다. 완전 같지는 않고.. 초기 시작 시작은 vi 등의 에디터로 열어주면 된다. 그 다음 #!/bin/bash 로 설정을 해주어야 한다. bash shell 로 선택을 한다는 의미이다. 프로그래밍 언어에서 처럼 매크로를 설정해 줄 수 있는데 shell script 에서는 #define 이 아닌 TARGET=10 처럼 해준다. 단, 공백이 있어선 안된다. 문법 나머지 if else for while ..

OS/Linux 2020.05.08

UBI 혼자 끄적

두서 없이 써 나아가보겠다 UBIFS -------------------- UBI Volume -------------------- Unsorted block Image UBI -------------------- MTD Memory technology Device -------------------- NAND NOR Driver -------------------- NAND NOR Flash Memory 의 구조라고일단 정리를 해보았다. - UBI 란 우선 UBI 가 뭐하는 녀석이냐면.. UBI 는 Nand Flash memory 를 management 할 수 있는 system 이다. UBI 는 disk 와는 다르게 volum 으로 나누어져 있으며 UBI 를 통해 mtd(device) 에 mapping..

OS/Linux 2020.04.29

임베디드 리눅스의 구조

root filesystem - 어플리케이션이 존재하며, 실제 사용자의 인터페이스를 제공 ---------------------- operating system - 사용자나 어플리케이션 들의 요청사항을 처리, 하드웨어 및 전체 시스템을 제어 ---------------------- bootloader - 하드웨어 초기화 등 부팅환경 설정하고 운영체제를 실행 --------------------- 1. bootloader bootloader = bl0, bl1, bl2 구성 bl0 - 주로 전원이 들어오면 BIOS 에서부터 시작되서 MBR 을 찾게되고... 그 다음 어떤 모드로 부팅을 하면되고 셋팅하면되는지를 찾게되며 CPU internal 에 있는 iRom에 있는 코드를 읽어서, iRam에서 수행?된다...

OS/Linux 2020.04.25

Memory 에 관하여

Memory 란 무엇인가. bios에 전원이 들어와서 MBR 에서 부트로더를 메모리에 적재 시키면 부트로더는 메모리 Rom, Ram을 휘젓고 다니며 init 프로그램을 실행시켜 리눅스 커널을 동작 시킨다. 부트로더가 Rom 과 Ram 을 휘젓고 다닌다고 하였는데 사실은 블럭을 이동하며 실행된다. 우선 Memory의 구조를 이해해야 하는데, 위와 같이 간단하게 살펴보자면, Rom 은 비활성 Flash Memory 이며, Ram 은 휘발성 Memory 이다. 먼저, XIP 를 이해해야 하는데 XIP(excute in place) 로 Random access 가 가능하며, 메모리 상에서 직접 code, program 을 실행 할 수 있다는 것을 의미한다. Ram 은 모두 xip 가 지원되며, Rom 에서는 N..

OS/Linux 2020.03.17

APM 및 게시판 설치하기

APM 은 웹 서버인 apache, 웹 프로그래밍 언어인 PHP, 데이터베이스인 MariaDB 를 묶어서 APM 이라고 칭한다. php 패키지를 설치해서 APM 에 연동시켜야 하고, 이를 활용한 웹 응용프로그램으로 게시판을 만들어 보자. /var/www/html/ 경로에 phpinfo.php 파일을 아래와 같이 생성해준다. 웹브라우저에서 ip주소/phpinfo.php 접속 했을 때 정상 접속 확인을 위한 절차이다. 아래와 같이 생성되면 정상 php 가 설치됨을 확인할 수 있다. APM 환경에서 제공하는 게시판 중 제로보드와 그누보드가 있는데 본인은 그누보드로 사용해보겠다. 그누 아카이브 파일을 해제하여 아래 경로에 압축을 해제하여 준다. 아카이브 파일을 경로로 웹브라우저로 접속하면 아래와 같은 창이 뜬다..

OS/Linux 2020.03.14

Network Manager

리눅스에서는 windows 와 같은 ip를 사용하며 network manager라는 패키지를 제공한다. 데몬의 동작 유무를 확인하며, active 가 아닐 시 start 해준다. Network Manager 에는 nmcli, ip, ipconfig 등이 존재하지만 본인은 nmcli 를 사용해 보겠다. general 을 사용하여 현재 net 연결 상태를 확인해본다, 정상적으로 연결 되어있음을 확인할 수 있다. 우선 networking 을 활성화 해야 한다. ens33 디바이스 장치에 연결이 되어있으며, 프로파일은 유선 연결 1 이다. connection 을 사용하여 원하는 ip 와 type 을 설정할 수 있다. /24 는 24bit 를 서브넷마스크로 설정하겠다는 의미이다. 설정한 ip 와 type 으로 연..

OS/Linux 2020.03.14

웹 서버 설치 및 사용해보기

리눅스에서는 아파치를 통해 웹 서버를 제공한다. 아파치 사용을 위해 apt 로 apache2 를 설치한다. systemctl 을 통해 데몬의 동작 유무를 확인한다. ps를 통해 보았을 때 apache가 여러 프로세스로 실행 중이며, 독자형 데몬이라는 것을 알 수 있다. /var/www/html 이라는 경로는 아파치 데몬의 고유 경로로 이곳에 html 을 아래와 같이 생성한다. ip는 리눅스 의 ip로 접속하여 html 파일 이름을 동일하게 작성하여 접속하면 아래처럼 생성된다. 위 웹서버를 관리하는 디렉터리인 /var/www/html 은 리눅스를 사용하는 여러 사용자가 공용으로 사용할 수 있는 디렉터리가 아니다. 일반 사용자 계정에서 웹 페이지를 작성하고 서비스하는 방법을 알아보자. 우선 아파치 설정 파일..

OS/Linux 2020.03.14

MariaDB

리눅스에서는 mysql 과 mariadb 를 지원한다. 최근에는 mysql 에서 mariadb 를 많이 사용하는 추제이므로 mariadb 를 사용해 보겠다. 먼저 apt 를 사용하여 mariadb 패키지를 설치한다. 데몬이 실행 중인지 확인하고, sudo 를 사용해야 접속이 가능하다. 기존에 database 에는 information, mysql, performance DB 가 존재하며, 작업을 위해 새로 생성한다. st_db 이름의 database 를 생성하고 DB 안에 st_info, st_grade 테이블을 생성한다. Table 생성 시 필드명과 타입을 설정 해주어야 한다. varchar 은 가변을 뜻한다. alter 을 통하여 테이블을 수정할 수 있는데 아래는 ST_ID 라는 필드에 int 를 사..

OS/Linux 2020.03.14

디스크 파티션, 파일시스템, 마운트

Virtual Machine 으로 만들어 놓은 SCSI 하드 디스크에 이어서 3개의 디스크를 생성해보았다. 1GB 씩 3개를 추가 생성하였으며, 디스크를 추가 한 후에는 파티션을 생성해 주어야 한다. windows 에서 C: D: 처럼 사용하기 위함이라고 이해하면 편하다. sudo fdisk -l 을 사용하여 전체 디스크의 파티션 정보를 확인한다. fdisk 를 사용하여 /dev/sdb 의 파티션을 새롭게 생성한다. 500MB SIZE 인 파티션 sdb1, sdb2 를 생성하였다 파일시스템을 생성하기 위한 설정이 저장된 파일이다. sdd2 장치에 ext4 저널 가능한 파일시스템으로 생성을 해주며 -v 옵션으로 상세출력한다. 최종적으로 3개의 디스크를 추가하여 파티션을 나눈 후 파일시스템을 생성까지 해보았..

OS/Linux 2020.03.13
반응형