ARM64 - 각 익셉션(Exception) 레벨 소개
By Guillermo Austin Kim | 2017년 12월 23일 |
64비트의 ARM 아키텍쳐(ARMv8)의 익셉션 레벨에 대해 간단히 살펴보고자 합니다. 각 Exception Level(EL) 특징을 간단하게 적을께요.1> EL0 -> EL1 -> EL2 -> EL3로 갈수록 execution privilege가 증가해요. 볼 수 있는 코드나 파일에 대한 Permission이 더 있다는 거죠. 2> EL0는 유일한 unprivileged 특성을 가져요.3> EL2는 Non-secure 모드에서 가상화를 구현하기 위해서 사용되곤 하는데 자주 쓰지는 않아요.4> EL3는 secure 와 Non-secure 모드 전환을 위해서 사용되죠.5> ARMv8에서 EL0, EL1은 필수 구현 사항이며 나머지는 Option이에요.즉 ARMv8을
리눅스에서 FAT32 포맷하기
By 반달가면 | 2016년 11월 2일 |
데비안(Debian)/우분투(Ubuntu) 계열 리눅스에서 FAT32로 포맷하는 방법이다. USB메모리를 윈도우나 DOS와 호환되도록 포맷해야 할 경우 유용하다. 우선 dosfstools 패키지가 설치되어 있어야 한다. 설치되어 있지 않다면 아래와 같이 입력하여 설치. # dosfstools 패키지 설치 sudo apt-get install dosfstools 포맷하고자 하는 USB메모리를 연결하면 통상 자동으로 마운트될 것이다. 디스크의 빈 공간을 출력하는 df 명령으로 USB메모리의 장치 이름을 확인해 보자. # 디스크 현황 확인 df -h df 명령어의 결과를 보면 USB메모리는 통상 /media/ 디렉토리 아래에 마운트되어 있으며 장치 이름은 /dev/sdc, 또는
MX 리눅스(MX Linux) 라이브 세션에서 루트 암호
By 반달가면 | 2019년 6월 20일 |
MX 리눅스 iso 이미지를 부팅해서 라이브(live) 세션으로 들어갔을 때, 관리자 권한으로 뭔가 작업을 하려고 하면 루트(root) 암호가 필요하다. 초기 루트 암호는 아래와 같다. root
[ARM64]signal - sa_handler signal handler 실행 (code walk-through)
By Guillermo Austin Kim | 2017년 12월 30일 |
signal에 대해서는 리눅스 시스템 프로그램에서 많이 들어본 적이 있을 꺼에요.쓰레드에 특정 시그날이 전달되면 해당 시그널 핸들러 함수가 호출된다는 내용이죠. 아래 시스템 프로그램의 경우에는 SIGINT 시그널을 전달 받으면 sig_handler 함수가 호출되겠지오.#include<stdio.h>#include<signal.h>#include<unistd.h> void sig_handler(int signo){ if (signo == SIGINT) printf("received SIGINT\n");} int main(void){ if (signal(SIGINT, sig_handler) == SIG_ERR) printf("\ncan't catch SIGINT\