[라즈베리파이] 프로세스 - 커널 스레드 종류
By Guillermo Austin Kim | 2018년 10월 29일 |
리눅스 커널에서 구동중인 대표적인 커널 스레드를 알아보기 위해 라즈베리파이에서 다음 명령어를 입력합시다.root@raspberrypi:/home/pi# ps -ejH1 PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND2 0 2 0 0 ? -1 S 0 0:00 [kthreadd]3 2 4 0 0 ? -1 I< 0 0:00 \_ [kworker/0:0H]4 2 7 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/0]5 2 10
리눅스에서 sudo 명령 실행 권한 부여/삭제하기 (우분투 계열)
By 반달가면 | 2017년 11월 20일 |
루트(root) 권한으로 명령을 실행시킬 수 있는 sudo 명령에 대한 사용 권한은 해당 사용자 계정이 sudo 그룹(group)에 소속되어 있느냐에 의해 결정된다. sudo 그룹에 소속된 사용자만이 sudo 명령을 사용할 수 있다. 사용자에게 sudo 권한을 부여하거나 삭제하고 싶으면 sudo 그룹에 사용자를 추가/삭제하면 된다. 우분투 기준으로 아래의 예시와 같이 adduser 명령으로 사용자 계정을 sudo 그룹에 추가할 수 있다. # 사용자 계정 john을 sudo 그룹에 추가(adduser) sudo adduser john sudo usermod 명령에 -a(추가, append) 옵션으로도 가능하다. # 사용자 계정 john을 sudo 그룹에 추가(usermod) sudo us
[ARM] ARM 프로세서의 특징을 활용한 최적화는 왜 중요할까?
By Guillermo Austin Kim | 2020년 7월 4일 |
이번 포스팅에서는 'ARM 프로세서의 특징을 활용한 최적화는 왜 중요할까?'에 대해서 이야기하려고 합니다.본론에 들어가기 앞서 일반적인 SW 개발자들이 최적화에 대해 어떻게 생각하는지 짚어 보겠습니다. 생각보다 성능과 최적화는 중요하다 대부분 SW 개발자들은 주어진 스팩을 구현하기 위해 프로그램을 작성합니다. 화면을 꾸미는 프론트 엔드 개발자들은 화면이 제대로 구성됐는지, 메뉴나 폰트가 제대로 보이는 지 체크를 합니다. 네트워크 개발자들은 데이터 패킷이 제대로 전달이 됐는지 테스트를 할 것입니다. 프로그래머는 주로 주어진 스팩을 만족하면서 버그가 없도록 프로그래밍을 합니다. 하지만 프로그램이 스팩 내에서 올바르게 실행되도록 결함을 찾아 다듬는 것만으로는 충분하지 않을 수 있습니다. 고객이 사용
[리눅스커널] 시스템 콜: GNU C 라이브러리 실행 흐름
By Guillermo Austin Kim | 2019년 9월 6일 |
유저 공간에서 시스템 콜을 실행하려면 리눅스 저수준 표준 함수를 호출해야 합니다.저수준 표준 함수는 glibc 라이브러리에 구현돼 있습니다. 그래서 실제 시스템 콜을 발생하는 코드를 확인하기 어렵습니다. glibc 라이브러리 파일은 어디있을까요? 리눅스 배포판마다 다르지만 라즈베리파이에서는 glibc는 라즈베리파이에서 다음 경로에 있는 libc.a란 파일입니다.root@raspberrypi:/home/pi# ls /usr/lib/arm-linux-gnueabihf/libc.a/usr/lib/arm-linux-gnueabihf/libc.a libc.a 를 리눅스에서 제공하는 라이브러리라고 하며 표준 입출력 함수과 프로세스 생성 요청과 같은 핵심 동작을 수행합니다. 이번 시간에는 libc.a 파일에