hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
티에시
티에시(Thiesi, 사르데냐어: Tiesi)는 이탈리아 사르데냐의 사사리도 북부에 위치한 마을이자 코무네이다. 인구는 2,717명이다.
틴누라
틴누라(Tinnura)는 사르데냐의 이탈리아 오리스타노도에 있는 코무네로, 칼리아리에서 북서쪽으로 약 130 킬로미터 (81 mi), 오리스타노에서 북쪽으로 약 40 킬로미터 (25 mi) 떨어져 있다. 2004년 12월 31일 기준으로 인구는 268명이며 면적은 3.8 제곱킬로미터 (1.5 mi2)이다.
틴누라는 다음 지방 자치체와 접해 있다: 플루시오, 사가마, 수니.
티시 (사르데냐)
티시는 사르데냐 이탈리아 지방의 사사리도에 있는 코무네로, 칼리아리에서 북서쪽으로 약 170 킬로미터 (110 mi) 떨어진 곳에 있으며 사사리 (사르데냐)에서 남쪽으로 약 6 킬로미터 (4 mi) 떨어진 곳에 있다. 2004년 12월 31일 기준으로 인구는 2,017명이며 면적은 10.3 제곱킬로미터 (4.0 mi2)이다.
티시는 다음 지방 자치체와 접해 있다: 오시 (사사리도), 사사리 (사르데냐), 우시니.
트라마차
트라마차(Tramatza)는 이탈리아의 사르데냐주 오리스타노도에 있는 코무네이다. 칼리아리에서 북서쪽으로 약 100 km (62 mi), 오리스타노에서 북동쪽으로 약 12 km (7.5 mi) 거리에 있다. 2004년 12월 31일 기준으로 인구는 1,007명이고 면적은 16.8 km2 (6.5 mi2)이다.
트라마차는 다음 코무네들과 경계를 이룬다: 바울라두, 밀리스, 산베로밀리스, 시아마조레, 솔라루사, 체디아니.
트레스누라게스
트레스누라게스(Tresnuraghes)는 이탈리아 사르데냐 주 오리스타노도의 코무네로, 칼리아리에서 북서쪽으로 약 130 킬로미터 (81 mi), 오리스타노에서 북쪽으로 약 40 킬로미터 (25 mi) 떨어져 있다. 지명은 사르데냐어로 세 개의 누라게를 의미한다.
트레스누라게스 지리
트레스누라게스는 다음 코무네들과 경계를 이룬다: 쿨리에리, 플루시오, 마고마다스, 센나리올로.
트레스누라게스 축제
성 마르코 축일은 전통적인 사르데냐 축제로, 가장 중요한 축제이며 사회 공동체를 결속시키는 데 도움이 되는 과도한 소비의 시간이다. 이 주로 목축 공동체의 지역 양치기 가족들은 섭리에 대한 감사의 표시로 양을 바치고 요리를 감독한다. 다른 가족들은 추수감사절이나 원하는 호의를 위해 빵을 바친다. 주로 트레스누라게스 출신이지만 많은 외부인도 포함된 수백 명의 사람들이 함께 배불리 먹고 마신다.
트리니타다굴투에비뇰라
트리니타다굴투에비뇰라(Trinità d'Agultu e Vignola, 언어 오류(sdn): Trinitài e Vignòla)는 사르데냐 이탈리아 지역의 사사리도에 있는 코무네 (지방 자치체)로, 칼리아리 북쪽으로 약 200 킬로미터 (120 mi), 올비아 서쪽으로 약 50 킬로미터 (31 mi) 떨어져 있다.
트리니타다굴투에비뇰라는 다음 지방 자치체와 접해 있다: 아주스, 아글리엔투, 바데시, 비달바. 주요 경제 활동은 여름 관광이다.
울라티르소
울라티르소(Ula Tirso, 사르데냐어로는 Ula)는 이탈리아 사르데냐주 오리스타노도에 있는 코무네이다. 칼리아리 북쪽으로 약 90 킬로미터 (56 mi), 오리스타노 북동쪽으로 약 30 킬로미터 (19 mi) 떨어져 있다. 2004년 12월 31일 기준으로 인구는 616명이고 면적은 18.8 제곱킬로미터 (7.3 mi2)이다.
울라티르소는 아르다울리, 부사키, 길라르차, 네오넬리, 오르투에리 등의 코무네와 접한다.
우라스
우라스(Uras)는 이탈리아 사르데냐 주 오리스타노도에 있는 코무네이다. 칼리아리에서 북서쪽으로 약 60 km, 오리스타노에서 남동쪽으로 약 25 km 떨어진 곳에 있다. 2022년 7월 8일 기준으로 인구는 2,714명이었고, 면적은 39.4 km2이다.
우라스는 다음 코무네들과 경계를 이룬다: 마루비우, 마술라스, 모고로, 모르곤조리, 산니콜로다르치다노, 테랄바.
우르출레이
우르출레이 (사르데냐어: Orthullè)는 이탈리아 사르데냐주 누오로도에 있는 코무네로, 칼리아리 북동쪽으로 약 100 킬로미터 (62 mi), 토르톨리 북서쪽으로 약 25 킬로미터 (16 mi) 떨어져 있다. 2004년 12월 31일 기준으로 인구는 1,412명이고 면적은 130.0 제곱킬로미터 (50.2 mi2)이다.
우르출레이 코무네는 프라치오네 실라나를 포함한다.
우르출레이는 다음 코무네와 접한다: 바우네이, 도르갈리, 오르고솔로, 탈라나, 트리에이.
빌라산탄토니오
빌라산탄토니오(Villa Sant'Antonio, 사르데냐어: Sant'Antoni)는 이탈리아 사르데냐 주 오리스타노도에 있는 코무네이다. 칼리아리에서 북쪽으로 약 70 킬로미터 (43 mi), 오리스타노에서 동쪽으로 약 25 킬로미터 (16 mi) 떨어져 있다.
빌라산탄토니오는 다음 지방 자치체와 접한다: 알바자라, 아솔로, 아수니, 모고렐라, 루이나스, 세니스.
체르팔리우
체르팔리우(Zerfaliu, 사르데냐어: Zrofollìu)는 이탈리아 사르데냐 지역의 오리스타노도에 있는 코무네이다. 칼리아리에서 북서쪽으로 약 90 킬로미터 (56 mi) 떨어져 있고, 오리스타노에서 북동쪽으로 약 14 킬로미터 (9 mi) 떨어져 있다.
체르팔리우는 다음 코무네와 접한다: 올라스트라, 파울릴라티노, 시막시스, 솔라루사, 빌라노바트루스케두.
치드케누
주식회사 치드케누(영어: TSIDKENU)는 대한민국의 미용 의료기기 기업이다.
치드케누 역사
2020.03 설립하였으며, 의료기기 무역 및 수출업체이다.
치드케누 제품
의료용 실 'Liftera', 산소테라피 미용기기 O2toderm, Filler, Skin Booster
UX 스튜디오
2021년에 개관한 UX 스튜디오는 현대자동차와 기아의 상품, 디자인, 설계 등 담당 연구원들이 차량 UX 개발 과정에 활용하던 사내 협업 플랫폼으로 비공개로 운영했었으며, 2025년에 현대자동차그룹을 대표하는 사용자 경험 공간 플랫폼으로 새롭게 개관했다.
UX 스튜디오 국내
현대자동차 강남대로 사옥에 위치한 UX 스튜디오 서울은 2025년 7월 3일에 오픈했다. 현장 방문을 통해 UX 기반의 미래 모빌리티 콘텐츠와 UX 연구 과정을 직접 체험할 수 있다. 전시체험과 리서치 참여를 위해 가이드가 설명하는 상설 프로그램도 운영하며, 홈페이지에서 사전 예약 후 참여할 수 있다.
UX 연구의 전 과정을 살펴보고, SDV 기반의 미래 모빌리티 기술을 체험할 수 있는 공간이며, UX 테스트 존, SDV 존, UX 아카이브 존, UX 라운지로 구성되어 있다.
사전에 초청된 사용자를 대상으로 고도화된 시뮬레이터, 프로토타입, 테스트 벅 등을 활용한 UX 연구가 진행되는 공간이며, UX 캔버스, 피쳐 개발 룸, 시뮬레이션 룸 – ARC로 구성되어 있다
UX 스튜디오 글로벌
2023년 11월 30일에 오픈한 UX 스튜디오 프랑크푸르트는 유럽 지역의 Feature & UX 허브로서, 모빌리티 개발 초기 단계의 사용자 리서치와 개발 과정 중 방문객 검증 및 사용성 테스트까지 다양한 UX 활동을 하고 있다.
2025년 하반기 재개장을 앞두고 있다.
UX 스튜디오 상하이는 2026년 초에 확장 이전 예정이다.
2024년 태국 상원 선거
태국 상원 선거는 2024년 6월 9일부터 26일까지 치러졌으며, 2017년 헌법 하에서 처음으로 실시되는 선거이다. 헌법에 따라 과도 상원은 2024년 5월 10일에 임기가 만료되었다. 이후 상원은 200명으로 구성되며 총리를 선출할 권한이 없다.
이는 2018년 상원의원 취득에 관한 조직법에 의해 구상된 고도로 복잡한 선거 제도를 활용한 첫 번째 선거였다. 상원의원은 후보군 외부의 참여 없이 무소속 후보들 중에서 선출될 예정이다. 이 선거는 투표 시스템의 복잡성, 비밀성, 혼란으로 인해 이미 비판을 받았다.
2024년 태국 상원 선거 배경
태국 상원은 1947년 처음 설립된 이후 여러 차례 개혁을 거쳤다. 상원은 다양한 경우에 임명되거나, 직접 선출되거나, 간접 선출되거나, 또는 이들의 조합으로 구성되었다. 2014년 태국 쿠데타 이후 공포된 현재의 2017년 헌법은 2014년 쿠데타부터 2019년까지 태국을 통치한 군정인 국가평화유지위원회가 임명한 5년 임기의 과도 상원을 규정했으며, 이후 "영구" 상원이 뒤따른다.
과도 상원은 군정이 직접 선별한 250명의 위원으로 구성되었다. 이들은 인민대표원 의원들과 함께 총리 투표권을 가졌다. 2019년에는 쁘라윳 짠오차에게, 2023년에는 세타 타위신에게 압도적으로 투표했다. 이 규정은 2023년 총리 선거 당시 상원의원들이 피타 림짜른랏의 후보 지지를 거부하여 인민대표원의 대다수가 그의 입후보를 지지했음에도 불구하고 거부하면서 대중의 집중적인 감시를 받았다.
2024년 태국 상원 선거 배경
과도 상원이 2024년 5월 10일 만료된 후, 다음 상원은 기술관료적 기관을 생산하기 위한 고도로 복잡한 선거 시스템을 통해 간접 선출된다. 2024년 선거는 이 시스템을 사용하는 첫 번째 선거가 될 것이다. 영구 상원은 총리 투표권을 가지지 않는다.
쁘라윳 짠오차 정부는 2023년 인민대표원 선거에서 압도적인 패배를 겪었다. 전진당이 가장 많은 의석을 얻었고, 프아타이당이 그 뒤를 이었다. 두 정당 간의 연립 정부 구성 시도는 전진당 지도자 피타 림짜른랏이 보수적인 상원의 반대로 인해 총리로 선출되지 못하면서 실패했다.
대신, 정부는 프아타이당의 세타 타위신에 의해 구성되었다. 세타 내각은 보수적인 품짜이타이당과 차트 타이 파타나당은 물론, 쁘라윳과 연계된 국민국가권력당 및 연합태국국민당의 지지를 받는다.
2024년 태국 상원 선거 선거 제도
태국 상원 영구 의원은 "사회 다양한 분야에서 지식, 전문성, 경험, 직업, 특성 또는 공통의 이익을 가지거나 일했거나 일하고 있는 사람" 중에서 200명의 상원의원으로 구성된다. 이는 초당적 기구이며, 모든 후보는 무소속으로 출마한다. 상원의원은 5년 임기이며 재선될 수 없다. 선거 규칙은 2018년 조직법인 상원의원 취득에 관한 법률에 명시되어 있다.
후보는 태국에서 태어난 국민이어야 하며, 만 40세 이상이고 해당 분야에서 최소 10년의 경력이 있어야 한다. 20개 그룹은 다음과 같다:
이들은 출마하려는 지역구와 어느 정도 연관성이 있어야 한다. 또한 2,500 바트의 신청 수수료를 지불해야 한다. 후보자는 정당 소속일 수 없다. 또한 공무원, 현직 및 전직 국회의원, 전직 장관, 전직 지방 행정관, 전직 정당 임원 (최소 5년 이상 직책을 떠나지 않은 경우), 상원의원 후보의 부모, 배우자, 자녀는 출마가 금지된다. 과도 상원 의원은 출마할 수 없다.
2024년 태국 상원 선거 선거 제도
상원의원은 신청자 풀에서 선출되며, 비후보자의 참여는 없다. 각 후보자는 20개의 자격 있는 그룹 중 하나를 대표하기 위해 신청하며, 각 그룹에서 10명의 상원의원이 선출된다. 투표는 6라운드로 진행되며, 지역구, 주, 전국 단위에서 각각 두 라운드씩 진행된다. 특히, 후보자 자신을 제외하고는 대중은 투표 과정을 참관할 수 없다.
지역구 단위에서는 후보자들이 자신의 그룹 내에서 투표한다. 각 지역구에서 각 그룹에서 가장 많은 표를 얻은 상위 5명의 후보자가 2라운드로 진출한다. 2라운드에서는 각 후보자에게 3~5개의 무작위 그룹(자신의 그룹 제외)이 할당되며, 해당 그룹의 후보자에게 투표한다. 각 지역구의 각 그룹에서 상위 3명의 후보자가 진출하여 각 지역구에 총 60명의 후보자가 남게 된다.
2024년 태국 상원 선거 선거 제도
주 단위 절차는 6월 16일에 진행될 예정이다. 각 주에 속한 지역구의 수가 다양하기 때문에(3개에서 50개 사이), 각 주의 후보자 수는 크게 달라질 것이다. 후보자들은 먼저 자신의 그룹에서 후보자 수를 5명으로 줄인다. 그 다음 다른 그룹의 후보자들에게 다시 투표한다. 주 단위에서 지역구 단위와 동일한 그룹에 투표하도록 할당될 수도 있고 아닐 수도 있다. 이제 각 주의 각 그룹에 2명의 후보자가 남게 되어 전국적으로 총 3,080명의 후보자가 남게 된다.
그 다음 과정은 전국 단위로 이동하여, 남아있는 3,080명의 후보자가 그룹 내 및 그룹 간 투표를 반복하여 20개 그룹 각각에서 10명의 상원의원을 선출한다.
각 유권자가 투표할 수 있는 후보자의 수는 라운드에 따라 달라진다. 이 시스템은 제한 투표에 적합하다. 지역구 및 주 단위에서는 각 유권자가 자신의 그룹 내에서 2표, 그룹 간 선거에서 1표를 갖는다. 전국 단위에서는 유권자가 그룹 내 선거에서 10표, 그룹 간 선거에서 5표를 가질 수 있다. 가장 많은 득표를 한 후보자가 진출하고, 다른 모든 후보자는 탈락한다. 당선에 필요한 최소 득표수는 없다. 후보자는 그룹 내 선거에서 자신에게 투표할 수 있다. 유권자는 한 명의 후보자에게 두 표 이상을 던질 수 없다. 유권자는 자신의 모든 투표권을 사용할 필요는 없다.
2024년 태국 상원 선거 비판
선거 시스템은 논란이 되고 있다. 비평가들은 이를 "세계에서 가장 복잡한 선거"라고 언급했다.
다른 비판은 시스템이 조작에 취약하다는 점에 초점을 맞추고 있다. 자격이 있는 사람은 누구나 출마할 수 있기 때문에 특정 후보의 당선을 확실히 하기 위해 지역구 선거가 '채워질' 수 있다. 2018년 과도 상원 선거에서도 비슷한 시스템이 사용되었지만, 대부분의 상원의원은 결국 군정에 의해 선택되었다. 이 과정에 참여한 후보들은 표 매수를 주장하며, 원하는 후보들이 자신의 전문적인 연줄을 이용하여 당선되었다고 말했다.
2024년 태국 상원 선거 결과
선거관리위원회는 왕실 관보에 선출된 상원의원 명단을 공개하고 7월 10일 취임시켰다.
2024년 7월 23일, 새로 선출된 상원의원들이 모여 상원 의장을 선출했다. 결과는 품짜이타이당과 연계된 것으로 알려진 소위 "블루 상원의원"이 153표, 자유롭고 진보적인 대의를 추진하겠다고 공언한 소위 "신진 상원의원"이 19표(사전 공약은 30명이었으나), 앞서 언급된 두 진영에 속하지 않는 무소속이 13표를 얻었다. 여기에는 무효표와 공백표가 포함되었다.
2024년 태국 상원 선거 돈세탁 및 부정선거 스캔들
2025년에 태국 선거관리위원회 (EC)와 특별수사국 (DSI)은 2024년 선거 중 부정선거 및 돈세탁 혐의에 대한 상원의원 조사를 시작했다.
Runit
runit은 유닉스 계열 운영체제를 위한 init 및 서비스 관리 체계로, 운영체제 전반에 걸쳐 프로세스를 초기화하고, 관리하고, 종료한다. Runit은 많은 리눅스 기반 운영체제뿐만 아니라 BSD, 솔라리스 운영체제에서도 실행되는 daemontools 프로세스 관리 도구의 재구현이다. Runit은 시스템 서비스 시작을 병렬화하여 운영체제의 부팅 시간을 단축할 수 있는 기능을 제공한다.
init 데몬으로 실행될 때, Runit은 다른 모든 프로세스의 직접 또는 간접적인 조상이다. 부팅 중에 시작되는 첫 번째 프로세스이며, 시스템이 종료될 때까지 계속 실행된다. 종종 다른 init 시스템과 함께 별도의 서비스 관리자로 사용된다. 서비스 관리자 역할에서는 비특권 사용자가 개인 서비스를 조직하거나, 슈퍼유저가 현재 사용 중인 init 시스템이 관리하지 않는 서비스를 관리하는 데 사용할 수 있다.
Runit 설계
Runit은 작고, 모듈화되어 있으며, 이식성 있는 코드베이스에 중점을 둔다. Init 역할에서 Runit은 세 가지 단계로 나뉜다: 일회성 초기화, 프로세스 관리, 그리고 정지 또는 재부팅. 첫 번째 및 세 번째 단계는 실행되는 특정 운영체제에 맞춰야 하지만, 두 번째 단계는 모든 POSIX 호환 운영체제에서 이식 가능하다.
3단계는 각각 1, 2, 3으로 명명된 3개의 실행 파일(일반적으로 셸 스크립트)을 통해 구성할 수 있다.
2단계는 일반적으로 runsvdir이라는 바이너리를 호출하는데, 이는 전역 데몬 관리를 담당하는 프로세스이다. 인수로 전달된 폴더에서 발견되는 모든 데몬에 대해 개별 워치독을 생성하며, 각 워치독은 데몬(및 최종적으로 연결된 로거 서비스)을 시작하고 데몬이 죽으면 다시 시작한다. 데몬이 추가되거나 제거되면 워치독을 죽이거나 새로운 워치독을 시작한다.
특정 이름의 실행 파일은 데몬의 다양한 단계(실행, 확인, 완료 등)를 설명하는 데 사용되며, 존재할 경우 특정 스크립트에 의해 전송되고 실행되는 신호를 가로챌 수 있고, 데몬을 제어하는 인터페이스를 노출하기 위해 명명된 파이프가 생성된다.
Runit 사용법
Runit은 sysvinit의 대체제로 사용될 수 있거나 서비스 관리자(inittab 파일에 지정된 프로세스를 실행하는 부모 PID 1 프로세스로 sysvinit 또는 다른 init 시스템을 사용하는 경우)로 사용될 수 있다. 루비 온 레일즈를 실행할 수 있는 RubyWorks 소프트웨어 스택은 Runit을 스위트에 통합했다.
Runit은 다음의 기본 init 시스템이다:
Runit은 다음의 "공식적으로" 사용 가능한 init 시스템이다:
댕댕 어드벤처
《댕댕 어드벤처》는 오즈콘텐츠가 제작한 대한민국의 애니메이션으로, 2025년 7월 12일부터 KBS 1TV에서 방영 중이다. 또한 성우인 오주희의 프로듀서 데뷔작이기도 하다.
W 윈도 시스템
W 윈도 시스템(W Window System) 또는 간단히 W는 현대 X 윈도 시스템의 이름과 개념상의 선구자인 더 이상 개발되지 않는 윈도 시스템이다.
W는 원래 폴 아센테와 브라이언 리드가 스탠퍼드 대학교에서 V 운영체제를 위해 개발했다. 1983년, 폴 아센테와 크리스 켄트는 VS100에서 이 시스템을 UNIX로 포팅하여 MIT 컴퓨터 과학 연구소에서 일하는 사람들에게 복사본을 제공했다.
1984년, MIT의 밥 샤이플러는 W의 동기 프로토콜을 비동기 방식으로 대체하고 그 결과를 X라고 명명했다.
이후 X 윈도 시스템은 많은 근본적인 변화를 겪었으며 더 이상 W와 중요한 유사성을 지니지 않는다.
X 툴킷 인트린식스
X 툴킷 인트린식스(X Toolkit Intrinsics, X 툴킷의 경우 Xt라고도 함)는 X 윈도 시스템용 그래픽 사용자 인터페이스(GUI)를 사용하여 프로그램 개발을 용이하게 하는 애플리케이션 프로그래밍 인터페이스를 구현하는 라이브러리이다. C 언어(또는 C++와 같이 C API를 사용할 수 있는 모든 언어)에서 사용할 수 있다. 설계는 1980년대 후반부터 1990년대 초반에 이루어졌다.
하위 레벨 라이브러리인 Xlib은 X11 프로토콜의 클라이언트 측 구현이다. X 서버와 통신하지만, 버튼이나 메뉴와 같은 그래픽 컨트롤 요소("위젯")를 구현하는 기능을 제공하지는 않는다. Xt 라이브러리는 위젯 유형 생성을 지원하지만, 자체적으로는 아무것도 제공하지 않는다. 프로그래머는 Xt 라이브러리를 사용하여 새로운 유형의 위젯을 생성하고 사용할 수 있다. Xt는 상속(사용자가 다른 유형의 버튼을 위해 작성된 코드를 재사용하여 자신만의 버튼을 만들 수 있음), 이벤트 및 콜백과 같은 일부 객체 지향 개념을 구현했다.
X 툴킷 인트린식스
애플리케이션의 그래픽 사용자 인터페이스는 일반적으로 여러 위젯 유형을 필요로 하므로, 대부분의 개발자는 자체 위젯을 작성하는 것을 꺼려했고, 대신 Xaw, 모티프, OLIT과 같이 위젯 세트를 제공하는 라이브러리를 사용하는 것을 선호했다.
Xt 프로그램은 모든 위젯을 설명하는 텍스트 파일인 "앱 기본 Xrm 데이터베이스"를 찾을 수 없을 때 사용할 수 없다는 악명 높은 문제가 있었다. GTK 및 Qt와 같이 현대에 널리 사용되는 대부분의 툴킷은 Xt 라이브러리를 사용하지 않는다. 대신 Xlib 또는 XCB를 직접 사용한다.
인덴트
인덴트(indent)는 다음 뜻이 있다.
들여쓰기를 의미하는 인덴테이션(indentation)의 준말
indent (유닉스): 특정 들여쓰기 스타일로 프로그래밍 언어 파일을 포맷하는 컴퓨터 프로그램
인덴트(indent): 특별한 유형의 구매 주문서
Indent (유닉스)
indent(인덴트)는 유닉스 프로그래밍 도구로, C 및 C++ 코드를 사용자 정의 들여쓰기 방식 및 코딩 스타일에 따라 재포맷하는 유틸리티이다. C++ 코드에 대한 지원은 최소화되어 있다.
indent의 원본 버전은 1976년 11월 일리노이 대학교의 데이비드 윌콕스에 의해 작성되었다. 1982년 10월 4.1BSD에 통합되었다. GNU indent는 짐 킹던이 1989년에 처음 작성했다. 이 명령어는 일반적인 GNU 유닉스 계열 유틸리티의 Win32 포트의 네이티브 컬렉션인 UnxUtils의 일부로 마이크로소프트 윈도우용 별도 패키지로 제공된다.
Indent (유닉스) 사용 예시
다음 명령어
는 some_file.c를 BSD/올맨 스타일과 유사한 스타일로 들여쓰기하고 결과를 표준 출력으로 내보낸다.
Indent (유닉스) GNU indent
GNU indent는 GNU 프로젝트의 indent 버전이다. 기본적으로 다른 들여쓰기 스타일인 GNU 스타일이 사용된다.
생방송 선생님 질문 있어요
1995년 3월 4일부터 2000년까지 방영된 프로그램으로, 초기에는 토요일 오후 6시 15분에 방송되었다가, 후기엔 매주 금요일 오후 5시 55분에 EBS(現 EBS 1TV)에서 방송되었다. 이 방송 프로그램으로 전화나 팩스를 통해서 쌍방향으로 스튜디오에 있는 강사와 연결해서 직접 질의응답을 할 수 있었다.
방송 당시 진행자는 초기엔 서경석, 이윤석이었으나 97년 이후엔 현직 강사가 진행하는 것으로 변경되었다.
GPL 링크 예외
GPL 링크 예외(GPL linking exception)는 GNU 일반 공중 사용 허가서(GPL)를 수정하여 라이브러리 코드를 제공하는 소프트웨어 프로젝트가 해당 코드를 사용하는 프로그램에 GPL의 모든 약관을 적용하지 않고도 "링크"될 수 있도록 하는 방식이다. 링킹은 라이브러리의 코드를 사용하는 코드와 연결하여 단일 실행 파일을 생성하는 기술적인 과정이다. 이 과정은 기능적인 기계 판독 코드를 생성하기 위해 컴파일 타임 또는 런타임에 수행된다. 자유 소프트웨어 재단은 링킹 예외를 적용하지 않으면 GPL 라이브러리 코드에 링크된 프로그램은 GPL 호환 라이선스 하에서만 배포될 수 있다고 명시한다. 이는 법원에서 명시적으로 테스트되지는 않았지만, 링킹 위반으로 인해 합의가 이루어진 경우가 있었다. GNU 클래스패스 프로젝트의 라이선스에는 이러한 내용이 명시적으로 포함되어 있다.
GPL에 따라 배포되는 많은 자유 소프트웨어 라이브러리는 예외의 문구는 다르지만 동일한 예외를 사용한다. 주목할 만한 프로젝트로는 ERIKA Enterprise, GNU 가일, GNAT의 런타임 라이브러리, GNU 클래스패스 및 GCC 런타임 라이브러리 예외가 있다.
GPL 링크 예외
컴파일러 런타임 라이브러리도 종종 이 라이선스 수정 또는 이에 상응하는 것을 사용한다. 예를 들어, GNU 컴파일러 모음의 libgcc 라이브러리, 그리고 프리 파스칼 프로젝트의 모든 라이브러리가 그러하다.
2007년에 썬 마이크로시스템즈는 자바 SE 및 자바 EE 프로젝트를 위한 클래스 라이브러리의 소스 코드 대부분을 GPL 버전 2와 클래스패스 링킹 예외 조항에 따라 출시했으며, 그들의 엔터프라이즈 서버인 글래스피시 및 넷빈즈 자바 IDE에 대한 가능한 라이선스 중 하나로 동일한 라이선스를 사용했다.
GNU 약소 일반 공중 사용 허가서(LGPL) 버전 3도 마찬가지로 GPL에 대한 예외로 구성되어 있다.
GPL 링크 예외 클래스패스 예외
GNU 클래스패스 프로젝트는 이러한 GPL 링크 예외 사용의 한 예시를 제공한다. GNU 클래스패스 라이브러리는 다음 라이선스를 사용한다.
클래스패스는 GNU 일반 공중 사용 허가서의 조항에 따라 다음 설명 및 특별 예외 조항과 함께 배포됩니다.
이 라이브러리를 다른 모듈과 정적으로 또는 동적으로 연결하는 것은 이 라이브러리를 기반으로 하는 결합된 작업을 만드는 것입니다. 따라서 GNU 일반 공중 사용 허가서의 조건이 전체 결합물에 적용됩니다.
특별 예외 조항으로, 이 라이브러리의 저작권자는 이 라이브러리를 독립적인 모듈과 연결하여 실행 파일을 생성할 수 있는 권한을 부여하며, 이 독립적인 모듈의 라이선스 조항에 관계없이 해당 결과 실행 파일을 귀하가 선택하는 조건에 따라 복사 및 배포할 수 있습니다. 단, 각 링크된 독립 모듈에 대해 해당 모듈의 라이선스 조항을 준수해야 합니다. 독립 모듈은 이 라이브러리에서 파생되거나 이를 기반으로 하지 않는 모듈입니다. 이 라이브러리를 수정하는 경우, 이 예외를 귀하의 라이브러리 버전에 확장할 수 있지만, 그렇게 할 의무는 없습니다. 그렇게 하지 않으려면, 귀하의 버전에서 이 예외 문구를 삭제하십시오.
GPL 링크 예외 클래스패스 예외
따라서 이는 많은 종류의 애플리케이션과 애플릿을 실행, 생성 및 배포하는 데 사용될 수 있다. GNU 클래스패스가 가상 머신, 자바 언어용 컴파일러 또는 자바 프로그래밍 언어로 작성된 프로그램의 핵심 클래스 라이브러리로 수정되지 않은 채 사용되는 경우, 해당 프로그램을 직접 배포하는 라이선싱에는 영향을 미치지 않는다.
GPL 링크 예외 GNU 약소 일반 공중 사용 허가서
LGPL 버전 2.1은 독립형 라이선스였지만, 현재 LGPL 버전 3은 GPL에 대한 참조를 기반으로 한다.
위의 GNU 클래스패스 라이선스와 비교하여 LGPL은 링킹 예외에 대해 더 많은 요구 사항을 명시한다. 라이선스 보유자는 자신이 사용하는 라이브러리 부분의 수정과 이러한 수정 사항을 디버깅하기 위한 (자신들의 소프트웨어 및 라이브러리에 대한) 역공학을 허용해야 한다.
GPL 글꼴 예외
GPL 글꼴 예외(GPL font exception) 조항(줄여서 GPL+FE)은 GNU 일반 공중 사용 허가서에 추가될 수 있는 선택적 조항으로, 해당 라이선스로 공유되는 디지털 글꼴이 디지털 문서 파일에 포함될 수 있도록 허용하며, 문서 자체는 GPL로 공유할 필요가 없다. 이 조항이 없으면 탁상출판에 사용될 수 있는 디지털 글꼴을 배포하는 오픈 소스 프로젝트와 충돌이 발생할 수 있다. 데이브 크로스랜드가 리브르 그래픽스 매거진에서 설명했듯이: "카피레프트 글꼴은 일반적인 조항에 대한 예외가 없는 한, 글꼴을 사용하는 문서에 과도하게 영향을 미칠 수 있습니다. 이는 사람들이 글꼴의 일부를 문서와 결합할 때 텍스트, 사진, 삽화, 디자인의 라이선스에 영향을 미치지 않도록 허용하는 추가적인 권한입니다. 오늘날 대부분의 자유 글꼴은 그러한 카피레프트 라이선스를 가지고 있습니다. 즉, SIL OFL 또는 GPL FAQ에 설명된 글꼴 예외가 있는 GNU GPL입니다."
GPL 글꼴 예외 유래
글꼴 예외 조항은 2005년 4월 자유 소프트웨어 재단 GPL 준수 엔지니어인 데이비드 "노발리스" 터너가 작성했다. 그가 설명했듯이, "우리가 고려했던 상황은 글꼴이 문서에 단순히 참조되는 것이 아니라 포함된 경우였습니다. 포함은 문서 작성자가 의도한 대로 해당 글꼴이 설치되지 않은 컴퓨터에서도 문서를 볼 수 있게 합니다. 따라서 문서(저작권이 있는 저작물)는 글꼴 프로그램(다른 저작물)에서 파생될 것입니다. 물론 문서의 텍스트는 글꼴 없이 배포될 때 제한이 없습니다."
GPL을 준수하기 위해 레드햇의 페도라 리눅스 프로젝트는 2007년에 추가적인 제한 사항과 함께 리버레이션 글꼴 패키지의 라이선스에 글꼴 예외를 포함했다. 이러한 제한 사항은 데비안 GNU/리눅스 배포판 커뮤니티 회원들 사이에서 GPL+FE에 대한 추가적인 논의를 촉발시켰다. 이러한 관심은 우분투가 SIL OFL이나 GPL+FE에 만족하지 못했기 때문에 우분투 글꼴 라이선스를 만들도록 촉발시켰다.
GPL 글꼴 예외 사용법
GPL에 대한 글꼴 예외를 나타내기 위해 디지털 글꼴 제작자는 글꼴과 함께 배포되는 GPL 텍스트 끝에 다음 언어를 추가한다.
특별한 예외로, 이 글꼴을 사용하는 문서를 만들고, 이 글꼴 또는 이 글꼴의 변경되지 않은 부분을 문서에 포함하는 경우, 이 글꼴 자체는 결과 문서를 GNU 일반 공중 사용 허가서의 적용을 받도록 하지 않습니다. 그러나 이 예외는 문서가 GNU 일반 공중 사용 허가서의 적용을 받을 수 있는 다른 이유를 무효화하지 않습니다. 이 글꼴을 수정하는 경우, 이 예외를 해당 글꼴 버전에 확장할 수 있지만, 그렇게 할 의무는 없습니다. 그렇게 하지 않으려면, 해당 버전에서 이 예외 문구를 삭제하십시오.
GNAT 수정 일반 공중 사용 허가서
GNAT 수정 일반 공중 사용 허가서(GNAT Modified General Public License, 약칭: 수정 GPL, GMGPL)는 컴파일된 단위와 에이다 프로그래밍 언어에 있는 제네릭 기능을 위해 특별히 수정된 GNU 일반 공중 사용 허가서 버전이다.
수정된 내용은 다음과 같다.
특별한 예외로, 다른 파일이 이 단위에서 제네릭을 인스턴스화하거나, 실행 파일을 생성하기 위해 이 단위를 다른 파일과 연결하는 경우, 이 단위 자체는 결과 실행 파일이 GNU 일반 공중 사용 허가서의 적용을 받도록 하지 않는다. 그러나 이 예외는 실행 파일이 GNU 공중 사용 허가서의 적용을 받을 수 있는 다른 어떠한 이유도 무효화하지 않는다.
GNAT 에이다 컴파일러는 컴파일러 지시문을 통해 일부 GPL 소프트웨어 라이선스 문제에 대한 적합성 검사를 자동화할 수 있다. pragma License (Modified_GPL);를 사용하여 수정 GPL에 대한 검사를 활성화한다. GNAT 참조 설명서는 다른 컴파일러 지시문과 함께 라이선스 프라그마를 문서화한다.
Jami
Jami는 피어 투 피어 및 분산 화상통화, 화상회의, 음성 통화를 위한 자유-오픈 소스 통신 플랫폼이다. 또한 인스턴트 메시징, 파일 전송, 유선전화 및 이동 전화(영내 전통 전화망을 통해) 통화 지원 및 기타 기능을 제공한다.
Jami는 페이스북 메신저, 구글 행아웃, 구글 미트, 스카이프, WhatsApp, 및 줌에 대한 윤리적이고 사용하기 쉬우며 개인 정보 보호에 중점을 둔 대안이다.
Jami는 다양한 데스크톱(GNU/리눅스, macOS, 및 마이크로소프트 윈도우), 모바일(안드로이드 및 iOS), TV(안드로이드 TV), 그리고 서버 플랫폼에서 사용할 수 있다. 웹 브라우저로 접근할 수 있는 Jami for Web은 아직 대중에 공개되지 않았다.
Jami는 Savoir-faire Linux (SFL)와 커뮤니티 기여자들에 의해 개발되었다.
Jami는 GNU GPL-3.0-or-later 하에 배포되는 자유-오픈 소스 소프트웨어이다.
Jami
기본적으로 Jami는 사용자가 처음 연결할 때 네트워크에 접속하기 위해 OpenDHT 노드를 사용하며, 이는 Savoir-faire Linux에 의해 유지 관리된다. 그러나 이 응용 프로그램은 고급 설정에서 사용자에게 자체 부트스트랩 서버를 통해 이 작업을 실행할 수 있는 선택권을 제공한다.
분산 해시 테이블 기술(예를 들어 비트토렌트 네트워크에서 사용됨)을 채택함으로써 Jami는 자체 네트워크를 생성하여 디렉터리 기능, 인증 및 암호화를 연결된 모든 시스템에 분산할 수 있다.
패키지는 데비안, 페도라 리눅스, 리눅스 민트, 오픈수세, 트리스퀠, 우분투를 포함한 모든 주요 GNU/리눅스 배포판에서 사용할 수 있다.
지원은 Jami 문서, Jami 블로그, Jami 포럼, 및 마스토돈 사이트에서 제공된다.
Jami 역사
Jami는 처음에는 SFLphone으로 알려졌으며, 리눅스에서 기본적으로 펄스오디오를 지원하는 몇 안 되는 소프트폰 중 하나였다. 우분투 문서에서는 회의 및 연결된 통화 전송과 같은 기능 때문에 기업용으로 권장되었다. 2009년, CIO 매거진은 SFLphone을 주목해야 할 5대 오픈 소스 VoIP 소프트폰 중 하나로 선정했다. SFLphone은 2015년에 링(Ring)으로 이름이 변경되었고, 이후 2018년에 Jami로 다시 이름이 변경되었다.
Jami 설계
Jami는 MVC 모델을 기반으로 하며, 데몬(모델)과 클라이언트(뷰)가 통신한다. 데몬은 통신 계층(SIP/IAX), 오디오 캡처 및 재생 등 모든 처리를 담당한다. 클라이언트는 그래픽 사용자 인터페이스이다. D-Bus는 클라이언트와 데몬 간의 통신을 가능하게 하는 컨트롤러 역할을 할 수 있다.
Jami 출시 역사
Jami의 전체 변경 목록은 공식 블로그 및 변경 로그를 참조한다.
GNU 헬스
GNU 헬스(GNU Health)는 자유 소프트웨어 건강 및 병원정보시스템으로, 공중보건 및 사회 의학에 중점을 두고 있다. 기능에는 전자의무기록 및 실험실 정보 관리 시스템 관리가 포함된다.
이 시스템은 멀티 플랫폼을 지원하도록 설계되었으며, 서버 측에서 리눅스 배포판 및 FreeBSD를 지원한다. 데이터베이스 엔진으로 PostgreSQL을 사용한다. 파이썬으로 작성되었으며, Tryton 프레임워크를 구성 요소 중 하나로 사용한다.
GNU 헬스는 유엔 대학교에 채택되었다. 2011년에는 GNU 공식 패키지가 되었다. 자유 소프트웨어 재단에서 매사추세츠 대학교 보스턴의 LibrePlanet 2012에서 사회적 이익을 위한 최우수 프로젝트 상을 수상했다.
GNU 헬스는 자유 소프트웨어를 통해 보건 및 교육 분야에서 활동하는 비영리 비정부 기구(NGO)인 GNU Solidario의 프로젝트이다.
GNU 헬스 역사
GNU 헬스는 2008년 루이스 팔콘이 농촌 지역의 보건 증진 및 질병 예방을 위한 프로젝트로 시작했다. 초기 이름은 메디컬(Medical)이었다. 그 이후 다학제적인 국제 기여 팀과 함께 병원 정보 시스템으로 발전했다.
2011년 8월, 리처드 스톨먼은 GNU 헬스를 공식 GNU 패키지로 선언했다. 이에 따라 개발 환경은 소스포지에서 GNU 사바나(GNU Savannah)로 이전되었다.
GNU 헬스 사용법
GNU 헬스는 의료 기관과 정부를 대상으로 하며, 일상적인 임상 업무를 처리하고, 자원을 관리하며, 공중보건을 개선하는 기능을 제공한다.
GNU 헬스 기능
GNU 헬스는 커널을 중심으로 모듈형 접근 방식을 사용하며, 의료 센터의 요구 사항을 충족하기 위해 다양한 기능을 포함할 수 있다. 주요 패키지 중 일부는 다음과 같다.
GNU 헬스 프로젝트 이정표
2013년 7월 7일: 버전 2.0.0 출시. Tryton 2.8과 호환되며, 소외열대질환을 위한 새로운 모듈이 샤가스병부터 시작됨. 새로운 인구 통계 섹션 및 주거 단위 관리; 새로운 서버 설치 프로그램; 수술 모듈 개선 (ASA physical status classification system 및 Revised Cardiac Risk Index).
2016년 1월 11일: 버전 3.0.0 출시: Tryton 3.8 호환성 (웹 클라이언트 지원 포함); WHO International Classification of Functioning, Disability and Health에서 영감을 받은 인원 기능 및 장애 모듈; 기본 안과 및 검안 기능, WHO ICD9 CM Volume 3 시술 코드
2017년 7월 2일: 3.2 시리즈 출시. GNU Health HMIS 패키지는 이제 파이썬 3으로 작성됨. 향상된 유전 병력 및 인간 단백질 관련 조건에 대한 UniProt 패키지; 응급 관리 시스템; 보험 가격표; 실험실 및 서비스에 대한 향상된 암호화 모듈; GNU Health Federation 및 Thalamus 초기 개발.
GNU 헬스 프로젝트 이정표
2019년 11월 10일: 버전 3.6 출시. Thalamus 및 GNU Health Federation Health Information 시스템과 인원 이벤트("Pages of Life") 통합. HIS 구성 요소에 대해 MongoDB에서 PostgreSQL로 마이그레이션. Orthanc DICOM 서버 통합. GNU Health 에코시스템의 모든 구성 요소는 Python3를 사용한다.
GNU 헬스 GNUHealthCon
GNUHealthCon은 GNU Solidario가 주최하는 연례 컨퍼런스이다. 개발자, 구현자 및 커뮤니티 구성원이 3일 동안 직접 만날 수 있는 공간을 제공한다. 사회 의학, 기술 토론, 구현 사례 및 워크숍에 대한 세션이 포함된다.
GNU 헬스 GNU 헬스 사회 의학상
GNU 헬스 사회 의학상 시상식은 GNUHealthCon의 일부이다. 이 상은 소외된 사람들의 삶을 개선하기 위해 헌신하는 개인과 조직의 역할을 인정한다. 개인, 조직 및 GNU Health 구현의 세 가지 수상 부문이 있다.
GNU 헬스 사회 의학상
GNUmed
GNUmed는 유닉스 계열 시스템(BSD, 리눅스, 유닉스 시스템), 마이크로소프트 윈도우, macOS 및 기타 플랫폼을 위한 자유/오픈 소스 전자의무기록(EMR)이다. GNUmed는 환자의 개인 정보를 존중하고 개방형 표준을 기반으로 하는 의료 소프트웨어를 제공하는 것을 목표로 한다.
GNUmed는 자유 소프트웨어/오픈 소스 DBMS PostgreSQL과 같은 타사 프로젝트를 기반으로 하며 대부분 파이썬으로 작성되었다. 이는 WxPython을 기반으로 하는 그래픽 사용자 인터페이스(GUI)로 지원된다.
GNUmed 역사
GNUmed의 첫 번째 버전은 호르스트 허브가 만들었다. 허브가 적극적인 개발을 중단했을 때, GNUmed의 개발은 프로젝트 리더를 맡아 프로젝트를 부분적으로 개편한 카르스텐 힐베르트에 의해 이어졌다.
카르스텐 힐베르트는 혼자가 아니었다. 여러 다른 개발자들이 팀에 합류하여 때때로 도움을 주었다. 시안 탄, 이안 헤이우드, 힐마르 베르거, 세바스티안 힐베르트, 카를로스 모로, 마이클 보너트, 리차드 테리, 토니 렘케 등이 있다. 일부는 코딩에 집중했지만, 짐 버서와 로저리오 루스 코엘류와 같은 많은 다른 사람들은 문서 작성이나 다른 의견 제출을 통해 도왔다.
이 이름은 처음에는 GNU 프로젝트와 GNUmed의 의료 전문가와의 연결에 경의를 표하기 위해 선택되었다. 로고는 GNU 프로젝트를 참조하여 누를 묘사하며, 프로그래밍 언어와 의료 전문가를 참조하여 파이썬이 함께 있다.
당시 GNUmed는 기존 EMR에 대한 대안이 되는 것을 목표로 하는 또 다른 자유 소프트웨어 프로젝트였다. 이후 기능 및 성능 면에서 다른 EMR과 경쟁할 정도로 발전했다.
GNUmed 사용
GNUmed는 주로 전자의무기록을 관리하는 데 사용된다. 이는 종이 기록을 보관하는 수단뿐만 아니라 이 기록에 대한 메타데이터를 수집하는 수단을 제공한다. 일부 사용에는 환자 추가 및 활성화와 같은 관리 작업, 그리고 환자의 알레르기 또는 예방 접종 기록에 대한 데이터와 같은 기록 작업이 포함된다.
GNUmed 기능
GNUmed는 다양한 기능을 지원하며, 많은 기능이 핵심 기능을 확장하는 플러그인으로 구현되어 있다. 이는 의료 종이 기록 보관 시스템부터 예방 접종 상태 처리까지 다양하다. 기능 목록은 GNUmed의 문서 시스템에 제공된다.
GNUmed의 인터페이스를 활용하면 타사 소프트웨어가 GNUmed와 상호 작용하여 기능을 활용할 수 있다.
GNUmed 일반 참조
Kantor, Gareth S.;  외. (2003). 《Open-source Software and the Primary Care EMR》. 《J Am Med Inform Assoc》 10. 616; author reply 617쪽. doi:10.1197/jamia.M1403. PMC 264443. PMID 12925540.
GNUmed 추가 자료
Hilbert, Sebastian (2006년 5월 19일). 《Freie Software in der Arztpraxis: Open Source statt Blackbox》 [Free Software in the doctor's office: Open Source instead of black box]. 《Deutsches Ärzteblatt》 (독일어). 26쪽. 2015년 11월 6일에 확인함.
GNU Go
GNU Go는 자유 소프트웨어 재단의 자유 소프트웨어 프로그램으로 바둑을 둔다. 소스 코드는 이식성이 뛰어나 리눅스와 다른 유닉스 계열 시스템, 마이크로소프트 윈도우 및 macOS용으로 쉽게 컴파일할 수 있으며, 다른 플랫폼을 위한 이식 버전도 존재한다.
이 프로그램은 사용자와 바둑을 두며, 9×9 바둑판에서 약 5단에서 7급 정도의 실력을 보여준다. 5×5에서 19×19까지 다양한 바둑판 크기를 지원한다.
GNU Go 실력
이러한 성능 수준에서 GnuGo는 2009년 초 기준으로 우수한 하드웨어에서 최고 상용 프로그램보다 여섯에서 일곱 점 약했지만, 몬테카를로 방법을 사용하지 않는 가장 강력한 프로그램들과는 실력이 비슷했다. 많은 컴퓨터 바둑 토너먼트에서 좋은 성적을 거두었다. 예를 들어, 2003년과 2006년 컴퓨터 올림피아드에서 금메달을 획득했고 2006년 기후 챌린지에서는 2위를 차지했다.
GNU Go 프로토콜
ASCII 기반임에도 불구하고 GNU Go는 Go 모뎀 프로토콜과 Go 텍스트 프로토콜이라는 두 가지 프로토콜을 지원하며, 이를 통해 GUI가 그래픽 디스플레이를 제공하기 위해 인터페이스할 수 있다. 이러한 GUI는 여러 가지가 존재한다. GTP는 또한 (브리지 프로그램을 통해) 바둑 서버에서 온라인으로 플레이할 수 있게 하며, NNGS, KGS 및 아마도 다른 서버에서도 실행되는 복사본을 찾을 수 있다.
GNU Go 버전
현재 (안정) GNU Go 버전은 3.8이다. 최신 실험판은 3.9.1이었다. 9×9 바둑판 플레이를 위한 몬테카를로 방법을 사용하는 실험적 기능도 있다.
GNU Go 2.6 기반의 Pocket GNU Go라는 버전은 윈도우 임베디드 컴팩트 운영 체제(포켓 PC)에서 사용할 수 있다. 훨씬 약한 1.2 엔진을 기반으로 한 버전도 게임보이 어드밴스와 팜 파일럿용으로 존재한다.
GNU Guix
GNU Guix(/ɡiːks/; 가일과 닉스의 혼성어)는 닉스 패키지 관리자를 기반으로 하는 함수형 크로스 플랫폼 패키지 관리자이자 리스프 머신 및 유닉스 계열 운영 체제를 인스턴스화하고 관리하는 도구이다. 구성 및 패키지 레시피는 가일 스킴으로 작성된다. GNU Guix는 GNU Guix 시스템 배포판의 기본 패키지 관리자이다.
기존 패키지 관리자와는 달리 Guix는 (Nix처럼) 소프트웨어가 암호화 해시를 통해 생성된 고유 디렉터리에 설치되는 순수한 함수형 배포 모델을 사용한다. 각 소프트웨어의 모든 종속성은 각 해시의 입력에 포함된다. 이는 의존성 지옥 문제를 해결하여 동일한 소프트웨어의 여러 버전이 공존하도록 허용하여 패키지를 이식 가능하고 재현 가능하게 만든다. Guix 설정에서 과학적 계산을 수행하는 것은 복제 위기에 대한 유망한 대응으로 제안되었다.
GNU Guix의 개발은 Linux-libre 커널과 GNU Shepherd init 시스템을 사용하는 설치 가능한 운영체제 배포판인 GNU Guix 시스템과 밀접하게 관련되어 있다.
GNU Guix 일반적인 기능
Guix 패키지는 패키지 관리를 위해 특별히 설계된 함수형 가일 스킴 API를 통해 정의된다.
종속성은 "파생"이라고 하는 특수 값을 통해 이 언어에서 직접 추적되며, 이는 Guix 데몬에 의해 느긋하게 평가된다.
Guix는 이러한 참조를 자동으로 추적하여 설치된 패키지가 다른 패키지에 종속되지 않을 때 가비지 컬렉션될 수 있도록 한다. 더 큰 저장 공간 요구 사항을 대가로, Guix의 모든 업그레이드는 원자적이며 롤백할 수 있다.
Guix의 롤백 기능은 Nix의 설계에서 상속되었으며 다른 운영체제에서는 거의 찾아볼 수 없는데, 이는 시스템이 작동하는 방식에 대한 이단적인 접근 방식(예: MicroOS)을 요구하기 때문이다.
Guix 패키지 관리자는 Nix와 마찬가지로 데비안 및 Parabola와 같은 많은 배포판에서 사용할 수 있다.
이를 통해 여러 사용자가 관리자 권한 없이 동일한 시스템에 소프트웨어를 안전하게 설치할 수도 있다.
GNU Guix 일반적인 기능
기존 패키지 관리자와 비교할 때 Guix 패키지 스토어는 상당히 커질 수 있으므로 더 많은 대역폭을 필요로 한다. 그러나 의존성 지옥을 해결하는 데 일반적으로 사용되는 컨테이너 솔루션(예: 도커)과 비교할 때 Guix는 더 가볍고 중복배제 및 단일 진실 공급원과 같은 관행을 준수한다. 사용자가 모든 것을 소스에서 빌드하도록 선택하면 훨씬 더 많은 저장 공간과 대역폭이 필요하다.
GNU Guix 저장소
Nix의 설계에서 상속된 대로, 패키지 관리자의 대부분의 내용은 Guix 데몬만이 쓰기 권한을 가지는 `/gnu/store` 디렉토리에 보관된다. 이는 특수 바인드 마운트를 통해 이루어진다. 이 마운트를 통해 스토어는 파일 시스템으로 읽기 전용으로 마운트되어 루트 사용자조차도 간섭할 수 없으며, Guix 데몬은 자체 프라이빗 네임스페이스에서 스토어를 읽기/쓰기 가능으로 다시 마운트한다. Guix는 이 데몬과 통신하여 스토어에 보관되는 항목을 빌드하거나 대체 항목을 가져온다. 사용자는 스토어를 쓰기 가능으로 다시 마운트하여 수동으로 만지는 것을 권장하지 않는다. 이는 스토어의 전체 목적을 상실시키기 때문이다.
Guix는 Nix와 마찬가지로 사용되지 않는 저장소 항목을 제거하고 활성 항목을 유지하는 데 도움이 되는 내장 가비지 컬렉션 기능을 가지고 있다.
GNU Guix 패키지 정의
다음은 헬로 패키지에 대한 패키지 정의의 예시이다.
이것은 Guile을 사용하여 작성되었다. 패키지 레시피는 Guix에서 쉽게 검사(예: `guix edit hello` 실행)하고 변경할 수 있어 시스템을 투명하고 쉽게 수정할 수 있다.
GNU Guix 트랜잭션 업그레이드
Nix의 설계에서 상속된 대로, 저장소 항목의 모든 조작은 서로 독립적이며, 저장소의 디렉터리는 파생 소스 코드와 해당 입력의 base32 인코딩 해시로 시작한다.
GNU Guix 프로필
Guix 패키지는 프로필 세대를 사용하는데, 이는 사용자가 프로필에 설치한 것을 모두 포함하는 특정 저장소 항목에 대한 심볼릭 링크("심링크"라고도 함) 모음이다. 패키지가 설치되거나 제거될 때마다 새 세대가 빌드된다. 예를 들어, GNU Hello만 설치한 사용자의 프로필에는 현재 사용 중인 Guix로 설치된 Hello 버전이 포함된 저장소 항목에 대한 링크가 포함되어 있다. Guix 버전 `c087a90e06d7b9451f802323e24deb1862a21e0f`에서는 이 항목이 `md2plii4g5sk66wg9cgwc964l3xwhrm9-hello-2.10`에 해당한다(위 레시피에서 빌드됨).
GNU Guix 프로필
심볼릭 링크 외에도 Guix가 빌드하는 각 프로필에는 모든 인포 매뉴얼과 맨 페이지, 아이콘, 글꼴 등이 통합되어 있어 사용자가 문서를 탐색하고 설치된 모든 아이콘과 글꼴에 접근할 수 있다. 프로필 세대에 대한 기본 심볼릭 링크는 `/var/guix` 아래에 저장된다.
사용자는 guix package -p PROFILE-NAME COMMAND를 호출하여 원하는 수의 프로필을 생성할 수 있다. 그러면 현재 디렉토리에 프로필 이름과 프로필 세대 심링크가 있는 새 디렉토리가 생성된다.
GNU Guix 롤백
Guix 패키지는 이전 프로필 세대로의 심링크를 변경하여 이전 프로필 세대로 즉시 롤백할 수 있다. 프로필은 또한 저장소에 저장된다. 예를 들어, 이 항목은 위에 있는 hello를 포함하는 프로필이다: /gnu/store/b4wipjlsapvnijmbawl7sh76087vpl4n-profile (guix install hello를 실행할 때 빌드 및 활성화됨).
GNU Guix 셸 환경
Guix 셸을 사용하면 사용자는 여러 프로젝트의 종속성으로 인해 기본 프로필이 지저분해지지 않고도 소프트웨어 개발에 필요한 모든 패키지가 있는 환경에 쉽게 진입할 수 있다.
예를 들어, guix shell --development hello를 실행하면 Guix에서 hello를 컴파일하는 데 필요한 모든 것(gcc, guile 등)이 존재하는 일회성 환경으로 진입한다.
--development 플래그 없이는 hello 패키지만 설치되고 빌드 종속성은 설치되지 않는다. 이는 패키지의 종속성을 기본적으로 설치하는 guix environment 명령을 대체하는데, 이 명령은 기본적으로 지정된 패키지를 설치하고 개발 종속성은 플래그를 통해서만 설치하는 것이 더 직관적이라고 생각되었기 때문이다.
사용자가 다음 Guix 가비지 컬렉터 실행 시 가비지 컬렉션되지 않는 영구적인 gc-루트 환경을 원하면 루트를 생성할 수 있다. 예를 들어, guix shell --root=hello-root --development hello를 실행하면 Guix를 컴파일하는 데 필요한 모든 것이 존재하는 환경으로 진입하며, 현재 디렉터리에 루트로 등록된다(저장소의 항목에 심링크를 통해).
GNU Guix 팩
Guix pack을 사용하면 사용자가 저장소 항목을 묶어 도커 바이너리 이미지, 재배치 가능한 tarball, 데비안 패키지 파일, RPM 패키지 파일, AppImage 또는 squashfs 바이너리로 출력할 수 있다.
GNU Guix 그래프
Guix 그래프 기능을 통해 사용자는 패키지와 해당 종속성의 다양한 그래프를 볼 수 있다.
GNU Guix 타사 채널
Guix를 사용하면 사용자가 패키지 정의를 위한 추가 채널을 지정할 수 있다.
이 기능은 주 프로젝트에 패키징할 수 없는 비자유 소프트웨어 및 펌웨어를 설치하는 데도 사용할 수 있다.