[태그:] gnu

  • 오픈소스 라이센스

    계측제어시스템의 소프트웨어 개발 시 오픈소스를 사용할 경우 라이센스별 제약 사항에 대하여 설명하시오

    오픈소스 소프트웨어를 사용할 경우, 해당 소프트웨어의 라이센스 조건을 준수하는 것이 매우 중요합니다. 오픈소스 라이센스는 사용자가 소프트웨어를 어떻게 사용, 수정, 공유할 수 있는지에 대한 규칙을 명시합니다. 오픈소스 라이센스는 다양하며, 각각의 라이센스는 독특한 요구 사항과 제한 사항을 가집니다. 여기 몇 가지 주요 오픈소스 라이센스 유형과 그 특징을 소개합니다:

    1. MIT 라이센스

    • 특징: 매우 관대한 라이센스로, 소프트웨어를 거의 제한 없이 사용, 수정, 재배포할 수 있습니다. 원 저작권자와 라이센스 텍스트를 포함시키는 것이 요구됩니다.
    • 적용 사례: 많은 오픈소스 프로젝트와 소프트웨어 라이브러리.

    2. GNU 일반 공중 사용 허가서 (GPL)

    • 특징: 가장 엄격한 오픈소스 라이센스 중 하나로, 수정된 소스 코드 또는 소프트웨어를 재배포할 경우 GPL 라이센스 하에 공개해야 합니다. 이는 “코피레프트” 조건으로 알려져 있습니다.
    • 적용 사례: GNU/Linux, GIMP 등.

    3. Apache 라이센스 2.0

    • 특징: 수정된 소스 코드를 비롯해 파생 작업물을 원하는 라이센스 하에 재배포할 수 있으나, 원래 작업물과 수정 사항에 대한 고지가 필요합니다. 특허 소송에 대한 보호 조항이 포함되어 있습니다.
    • 적용 사례: Apache HTTP 서버, Android 운영 체제 등.

    4. BSD 라이센스

    • 특징: MIT 라이센스와 유사하며 매우 관대합니다. 소스 코드 공개 의무가 없어 상업적 용도로 사용하기 좋습니다. 저작권 고지와 라이센스 문구를 유지해야 합니다.
    • 적용 사례: FreeBSD, Nginx 등.

    오픈소스 소프트웨어를 사용하거나 재배포할 때는 항상 해당 소프트웨어의 라이센스 조건을 확인하고 준수해야 합니다. 라이센스 위반은 법적 문제로 이어질 수 있으므로, 오픈소스 라이센스의 요구 사항을 정확히 이해하고 적절하게 대응하는 것이 중요합니다.

  • 라즈베리 파이4 사용기

    라즈베리 파이4 사용기

    회사에 있는 좋은 프로그램으로 라즈베리 파이4를 구했다. 나는 시간만 썼다. 11월 말까지 진행할 계획인데, 시간이 지날수록 그 프로그램 목적 달성하기 어려워 보인다. 나는 얻은 바 있어 거래에 만족한다. 나중에 보고서를 작성하면 된다.

    저가형 모터를 돌리려 라즈베리 파이를 사용함은 너무 비싸다. 단순 독립된 디바이스와 달리 IoT 디바이스로 라즈베리 만큼 좋은 장차가 없다. 아무리 싸게 만들어도 같은 기능을 가진 하드웨어를 라즈베리 파이보다 싸게 만들 수 없어 보인다. 맞춤형 하드웨어를 설계하는 순간 수 백만원 깨질 듯 하다. 이런 좋은 사양 디바이스를 그냥 쓰기 아까워 docker를 설치하여 mysql, ptyhon 기능을 추가했다.

    특히 요즘 뜨는 python이 데이터를 최적화하여 처리한다. 배우기도 쉽다. 모듈도 다양하여 남이 작성하여 공개한 인터넷 코드를 보면 금방 적용할 수 있다. python을 사용하지 않고 gnu c로 같은 기능을 만든다면 손해가 엄청나다.

    mysql 역시 데이터를 잘 처리한다. 파일에 데이터를 저장하나 조회하기 어렵고 python과 연계가 어렵다. mysql이 기본 라즈베리에 파이 OS에 설치되지 않아, docker로 금방 설치했다.

    PLC가 주는 데이터를 socket으로 받았고, 메인 프로세스가 인터넷에서 받은 데이터와 비교하여 모터를 특정 각도로 움직이기로 했다. 중간에 IPC를 적용하여 억지로 넣은 코드도 좀 있다.

    다음 그림과 같이 구성했다.

    gnu c에서 python을 사용하려면 fork로 child process를 만들고 exec로 대체해야 한다. 잘못 사용하면 while(1){fork();} 이런 식으로 전개되는 수가 있다. 이 코드를 실행하는 순간 ssh가 먹통되고 아무 작업을 할 수 없다.