LINUX

포스트: 487|아이템:LINUX(477)
Tags

Posts

487 posts

독하게 시작하는 C 제3장 표준 입/출력 도구 - 첫 번째

1%! 10%.|2018년 1월 6일

HCI - CLI (DOS,Linux,...) 검정 화면 ->GUI 그래픽 ->UX 경험적 ---- 정보는 대부분 문자열로 표현한다.Web,HTML,XML,HTTP 등 깊이 있는 얘기 하기에 CLI가 기본. getchar()가져와라. 문자 한 글자를. 중요한 얘기.(암기) 컴퓨터 -> H/W + S/W 소프트 웨어는 시스템 소프트웨어와 응용 소프트웨어로 나뉜다. COMPUTER LAYERED(3층)(3층 전체를 C언어로 커버 가능 그만큼 C언어로 할 수 있는 범위가 넓다. 개인(Thread)이 집(Process)에 있음. 남의 집 함부로 침범 불가. -> 이 층이 유저(User).'정부' -> 이 층이 커널(Kernel)(OS)(운영체제)영토 영해 영공(하드

리눅스에서 스왑(swap) 사용률 확인 및 우선순위 변경

반달가면|2018년 1월 5일

리눅스에서 메모리가 부족할 경우 디스크를 메모리처럼 사용하기 위해 스왑(swap) 파티션을 할당하게 되는데, 현재 어느 정도의 용량이 할당되어 있고 얼마나 사용되고 있는지 확인하는 방법이다. 스왑 파티션의 현재 상태는 /proc/swaps의 내용을 확인하면 된다. 터미널창에서 아래와 같이 입력 # 스왑 파티션 사용률 확인 cat /proc/swaps Filename Type Size Used Priority /dev/sda5 partition 1046524 0 -1 위의 예시를 보면 /dev/sda5 파티션이 스왑으로 사용되고 있으며 1046524바이트가 할당되어 있고(Size 항목), 사용되고 있는 용량은 0바이트(Used 항목)이다. 우선순위(

[ARM64]signal - sa_handler signal handler 실행 (code walk-through)

Guillermo Austin Kim|2017년 12월 30일

signal에 대해서는 리눅스 시스템 프로그램에서 많이 들어본 적이 있을 꺼에요.쓰레드에 특정 시그날이 전달되면 해당 시그널 핸들러 함수가 호출된다는 내용이죠. 아래 시스템 프로그램의 경우에는 SIGINT 시그널을 전달 받으면 sig_handler 함수가 호출되겠지오.#include #include #include 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\

Reboot - Kernel Rebooting(커널 리부팅) Sequence

Guillermo Austin Kim|2017년 12월 29일

보통 시스템이 리부팅될 때 동작에 대해 상세히 다룬 글이 없는 것 같아요.그래서 유저 스페이스에서 reboot 시스템 콜을 수행하면 어떤 흐름으로 시스템이 리셋되는지 살펴볼께요. 가끔 시스템이 리부팅하는 과정에서 락업이나 커널 크래시가 발생하거든요. 이럴 때 어떤 흐름으로 리부팅 되는지에 대한 정보를 알면 어느 포인트에서 디버깅을 해야 할 지 빨리 파악할 수 있어요. sys_reboot이란 함수는 아래 코드로 정의되어 있구요. kernel_restart() 함수가 호출되요. SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg){ struct pid_namespace *pid_ns = task_act