스피드크런치(SpeedCrunch) - 리눅스용 공학계산기
By 반달가면 | 2019년 12월 11일 |
MX리눅스(MX Linux)에 기본으로 딸려 오는 계산기 프로그램인 갈큘레이터(Galculator)가 별로 마음에 들지 않아서 다른 계산기를 찾아보다가, 꽤 오래전부터 윈도우에서 사용했던 스피드크런치(SpeedCrunch)가 리눅스용 버전도 있다는 사실을 알게 되었다. 처음 스피드크런치를 알았을 당시에는 리눅스용 버전이 없었던 것 같기도 한데, 아무튼 있으니 다행. 스피드크런치 공식 웹사이트는 아래와 같다. 공식 웹사이트에서 리눅스용 패키지 파일을 다운로드할 수도 있으나, 주요 배포판의 S/W저장소에서 기본적으로 제공하는 듯하다. 데비안/우분투 계열 배포판에서는 아래와 같이 설치하면 되겠다. # S/W 저장소 정보 갱신 sudo apt-get update # speedcrunch 설치
[라즈베리파이] 워크큐(Workqueue) - 워크(struct work_struct) 란
By Guillermo Austin Kim | 2018년 8월 24일 |
리눅스 커널에서 work라고 부르나 워크(struct work_struct)로 명시 하겠습니다. 워크란 무엇이고 어떤 동작을 할까요? 워크는 워크큐 실행 단위이며 워커 쓰레드에서 실행합니다. 커널 후반부 처리 기법으로 워크큐를 많이 쓴다고 했는데 워크가 바로 후반부 처리를 합니다. 워크가 어떻게 동작하는지 이번 장에서 코드를 분석하면서 상세히 알아볼 예정입니다. struct work_struct 구조체워크를 표현하는 자료구조는 무엇일까요? 정답은 struct work_struct 이며 다음 코드와 같습니다.[https://elixir.bootlin.com/linux/v4.14.43/source/include/linux/workqueue.h]1 struct work_struct {2 atomic_long
[리눅스커널] 동기화: 스핀락과 뮤텍스 기법 차이점 알아보기
By Guillermo Austin Kim | 2019년 9월 14일 |
이번에는 스핀락과 뮤텍스의 자료구조와 함께 두 기법의 차이점을 살펴보겠습니다. 스핀락과 뮤텍스의 구현 방식의 차이점은 다음과 같습니다. 스핀락은 코드가 간결합니다. 다른 프로세스가 스핀락을 누군가 획득하고 있으면 밖에서 계속 기다리는 동작입니다. 뮤텍스는 스핀락에 비해 코드 복잡도가 높습니다. 다른 프로세스가 뮤텍스를 획득하면 휴면에 들어가고 깨어나는 추가 동작을 하기 때문입니다. 스핀락은 아키텍처에 의존적인 코드로 구현됐습니다. 대신 뮤텍스는 아키텍처에 의존적이지 않은 리눅스 커널 함수로 구현됐습니다. 이번에도 화장실에서 B 프로세스가 기다리는 상황을 그리면서 두 기법의 차이점을 알아보겠습니다. 자물쇠(락)가 잠겼는지 알아보는 방법 기법 특징스핀락: 스핀락 구조체 중 owner와 next 필드가
[Docker] 컨테이너 내에서 외부 호스트의 API 이용하기
By 지훈현서 | 2020년 6월 22일 |
오랫만에 글을 올립니다.이번에는 같이 일을 하고 있는 동료가 요청한 내용인데필요에 따라 도커 이미지를 미리 다 만들어 놓은 상태에서컨테이너를 새롭게 더 띄우거나 하는 것을 외부에서가 아니라내부 컨테이너에서 해야 하는 필요가 생겼습니다. 해당 내용을 리서치하고 우분투 서버 20.04에서 테스트해 보았습니다. 다음은 그 내용입니다. 우선 결론적으로 다음과 같은 docker-compose.yaml 을 만들었습니다. version: "3.1"services: my-service: image: python:3.8-buster container_name: pydocker environment: - DOCKER_HOST=tcp://docker-socket-proxy:2375 com