Guillermo Austin Kim

Sources

Posts

998 posts

[리눅스커널] 시그널: 유저 공간에서 pause() 함수 호출 시 커널 실행 흐름 파악하기

Guillermo Austin Kim|2019년 6월 22일

유저 공간에서 pause() 함수를 호출하면 커널 공간에서 어떤 함수가 실행할까요? 다음 시그널 설정 흐름도에서 가장 하단에 표시된 박스를 확인합시다. [그림 ] 유저 공간에서 pause() 함수 호출 시 실행 흐름도 pause() 함수는 시그널을 기다릴 때 호출합니다. 라즈베리파이에서 다음 명령어를 입력해 pause 명령어에 대한 매뉴얼을 확인합시다. root@raspberrypi:/home/pi# info pausePAUSE(2) Linux Programmer's Manual PAUSE(2)NAME top pause - wait for signal 매뉴얼에서 출력하는 결과와 같이 시그널을 기다리는 역할을 수행합니다

고참 임베디드 개발자의 분노와 분통(영어 스트레스?)

Guillermo Austin Kim|2019년 6월 20일

실제 내가 어떤 고참 임베디드 개발자와 나눈 대화다. "전 오랫동안 개발을 하고 싶은데 계속 관리를 하라고 합니다." "개발 업무를 더 하겠다고 해도 말이 안 통하더군요." " 모르시는 분들이 없을 정도의 프로젝트 몇건 뛰어 봤지만 이쑤시개, 설거지였어요." 혹시 다른 회사를 알아보셨나요? " 개발직으로 PM 또는 책임 연구원으로 구인한다고해서 가보면 설거지 또는 울트라 슈퍼맨으로 개발을 원하면서 임금은 깍으려고 하고... 정말 힘드네요." 한국 SW 회사에서 고참 개발자에게 관리를 강요하고 월급을 깍는다고요? 그렇다면 외국계 SW 회사를 알아보세요.외국계 SW 회사에서는 한국 회사보다 개발자로 더 오랫동안 일할 수 있습니다. 외국계 SW 회사를 알아보세요. 영어만 조

[리눅스커널] 워크큐: 워크 실행의 출발점인 worker_thread() 함수 분석

Guillermo Austin Kim|2019년 6월 19일

워커 스레드가 깨어나면 스레드 핸들러인 worker_thread() 함수가 실행됩니다.worker_thread() 함수는 워커 스레드를 종료하거나 생성하는 기능을 수행하지만 핵심 동작은 워크를 실행하는 것입니다. 이번 소절에서는 worker_thread() 함수에서 워크를 실행하는 동작에 초점을 맞춰 분석하겠습니다. worker_thread() 함수 세부 동작은 다음 워커 스레드 절에서 상세히 다룹니다. 다음은 worker_thread() 함수에서 워크 실행에 관련된 코드 조각입니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/kernel/workqueue.c]01 static int worker_thread(void *__worker)02 {03

[리눅스] 리눅스역사 알아보기(Linux History)

Guillermo Austin Kim|2019년 6월 16일

리눅스의 모태는 유닉스이므로 유닉스가 어떻게 탄생했는지 알아볼까요? 1.2.1 유닉스가 태어난 과정유닉스는 멀틱스라는 프로젝트로 시작됐습니다. 멀틱스 운영체제1965년 MIT, AT&T 벨 연구소, General Electric 소속 개발자들이 모여 멀틱스(Multics)라는 운영체제 개발을 시작했습니다. 이들이 구현하고자 하는 운영체제의 핵심 기능은 다음과 같았습니다. " 멀티 태스킹을 지원하는 운영체제를 구현하자!" 지금 4차 산업혁명 시대를 맞이하는 시점에서 멀티 태스킹은 운영체제의 기본 기능입니다. 하지만 1960년대 중반에는 놀라운 기능이었습니다. 당시 소프트웨어 기술 수준으로 한 개의 제품에 한 개의 소프트웨어만 돌리는 수준이었기 때문입니다. 하지만 여러 가지 노력에도 불구하

[리눅스커널] 시스템 콜: 시스템 콜의 특징

Guillermo Austin Kim|2019년 6월 16일

이번 소절에서는 시스템 콜의 특징을 알아보겠습니다. 앞서 알아봤듯이 시스템 콜은 유저 모드에서 커널 모드로 진입하는 관문입니다. 소프트웨어 구조 관점으로 보면 시스템 콜은 유저 공간과 커널 공간 사이 가상 계층이자 인터페이스라고 볼 수도 있습니다. 이 계층은 다음과 같은 특징이 있습니다. 1. 시스템 콜 계층으로 시스템 안정성과 보안을 지킬 수 있습니다. 유저모드에서 어플리케이션이 커널 공간에 아무런 제약 없이 접근한다고 가정합시다. 실수로 어플리케이션이 커널 코드 영역 메모리를 오염을 시키면 시스템은 오동작할 가능성이 높습니다. 유저 모드에서 시스템 콜로만 커널 모드에 진입해서 제한된 메모리 공간에 접근하는 것입니다. 2. 유저 어플리케이션에서 추상화된 하드웨어 인터페이스를 제공합니다. 유저 모드에서