요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
digraph T {
/* Make sure our payloads are always drawn below the driver node */
subgraph cluster_driver {
fillcolor = grey;
style = filled;
edge [dir=none];
driver -> payload1;
driver -> payload2 [penwidth=3];
edge [dir=""];
}
/* Driver malloc references */
edge [style=dashed];
driver -> port1;
driver -> port2;
driver -> port3:e;
driver -> port4 [color=grey];
payload1:s -> port1:e;
payload2:s -> port3:e [penwidth=3];
edge [style=""];
subgraph cluster_topology {
label="Topology Manager";
labelloc=bottom;
/* Topology references */
mstb1 -> {port1, port2};
port1 -> mstb2;
edge [color=grey];
port2 -> mstb3 -> {port3, port4};
port3 -> mstb4;
edge [color=""];
/* Malloc references */
edge [style=dashed;dir=back];
mstb1 -> {port1, port2};
port1 -> mstb2;
port2 -> mstb3 [penwidth=3];
mstb3 -> port3 [penwidth=3];
edge [color=grey];
mstb3 -> port4;
port3 -> mstb4;
}
mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen];
mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen];
mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen;penwidth=3];
mstb4 [label="MSTB #4";style=filled;fillcolor=grey];
port1 [label="Port #1"];
port2 [label="Port #2";penwidth=5];
port3 [label="Port #3";penwidth=3];
port4 [label="Port #4";style=filled;fillcolor=grey];
driver [label="DRM driver";style=filled;shape=box;fillcolor=lightblue];
payload1 [label="Payload #1";style=filled;shape=box;fillcolor=lightblue];
payload2 [label="Payload #2";style=filled;shape=box;fillcolor=lightblue;penwidth=3];
}
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
DOT 토폴로지 도식 3 전문 번역
1-59Port #4·MSTB #4 분기를 회색으로 낮추고 Payload #2에서 Port #3과 MSTB #3으로 이어지는 참조 경로를 굵게 표시한 MST 토폴로지를 구조화합니다.
Graphviz `digraph T`는 회색 `cluster_driver`와 `cluster_topology` 두 영역을 사용합니다. 드라이버 영역에는 `driver`, `payload1`, `payload2`가 있고 토폴로지 영역에는 `mstb1`-`mstb4`와 `port1`-`port4`가 있습니다. 노드 ID와 포트 방향 `:s`, `:e`, 간선 방향 및 모든 Graphviz 속성은 번역에서 그대로 보존합니다.
실선은 주석상 `Topology references`, 점선은 `malloc references`입니다. 토폴로지 안 점선에는 `dir=back`이 지정되어 화살표가 선언 방향의 반대로 그려집니다. `driver`와 payload 사이 간선은 `dir=none`이라 방향 화살표가 없습니다.
이 도식의 붉은색·회색·굵은 선이 어떤 수명주기 상태를 뜻하는지는 DOT 원문에 범례가 없습니다. 번역은 적용된 노드와 간선을 정확히 열거하되 의미를 임의로 확정하지 않습니다.
DOT 노드 ID, 화면 라벨과 한국어 역할입니다.
세 도식에 공통으로 선언된 MSTB와 Port 연결입니다.
드라이버 아래의 두 payload가 각각 Port #1과 Port #3에 연결됩니다.
원문 DOT에 선언된 색·채움·선 종류를 추정 없이 정리했습니다.
같은 노드 사이에도 실선 토폴로지 참조와 점선 메모리 참조가 별도로 존재합니다.
59줄 DOT 원문의 구성 범위입니다.
아래 첫 코드 블록은 주석과 표시 라벨만 한국어로 옮긴 전문 번역입니다. 노드 ID, 간선, 속성, 괄호, 세미콜론과 줄 순서는 원문과 같습니다.
digraph T {
/* 페이로드가 항상 드라이버 노드 아래에 그려지도록 한다 */
subgraph cluster_driver {
fillcolor = grey;
style = filled;
edge [dir=none];
driver -> payload1;
driver -> payload2 [penwidth=3];
edge [dir=""];
}
/* 드라이버의 malloc 참조 */
edge [style=dashed];
driver -> port1;
driver -> port2;
driver -> port3:e;
driver -> port4 [color=grey];
payload1:s -> port1:e;
payload2:s -> port3:e [penwidth=3];
edge [style=""];
subgraph cluster_topology {
label="토폴로지 관리자";
labelloc=bottom;
/* 토폴로지 참조 */
mstb1 -> {port1, port2};
port1 -> mstb2;
edge [color=grey];
port2 -> mstb3 -> {port3, port4};
port3 -> mstb4;
edge [color=""];
/* malloc 참조 */
edge [style=dashed;dir=back];
mstb1 -> {port1, port2};
port1 -> mstb2;
port2 -> mstb3 [penwidth=3];
mstb3 -> port3 [penwidth=3];
edge [color=grey];
mstb3 -> port4;
port3 -> mstb4;
}
mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen];
mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen];
mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen;penwidth=3];
mstb4 [label="MSTB #4";style=filled;fillcolor=grey];
port1 [label="포트 #1"];
port2 [label="포트 #2";penwidth=5];
port3 [label="포트 #3";penwidth=3];
port4 [label="포트 #4";style=filled;fillcolor=grey];
driver [label="DRM 드라이버";style=filled;shape=box;fillcolor=lightblue];
payload1 [label="페이로드 #1";style=filled;shape=box;fillcolor=lightblue];
payload2 [label="페이로드 #2";style=filled;shape=box;fillcolor=lightblue;penwidth=3];
}
아래 두 번째 코드 블록은 Linux v6.18.37의 59줄 DOT 원문 전체입니다.
digraph T {
/* Make sure our payloads are always drawn below the driver node */
subgraph cluster_driver {
fillcolor = grey;
style = filled;
edge [dir=none];
driver -> payload1;
driver -> payload2 [penwidth=3];
edge [dir=""];
}
/* Driver malloc references */
edge [style=dashed];
driver -> port1;
driver -> port2;
driver -> port3:e;
driver -> port4 [color=grey];
payload1:s -> port1:e;
payload2:s -> port3:e [penwidth=3];
edge [style=""];
subgraph cluster_topology {
label="Topology Manager";
labelloc=bottom;
/* Topology references */
mstb1 -> {port1, port2};
port1 -> mstb2;
edge [color=grey];
port2 -> mstb3 -> {port3, port4};
port3 -> mstb4;
edge [color=""];
/* Malloc references */
edge [style=dashed;dir=back];
mstb1 -> {port1, port2};
port1 -> mstb2;
port2 -> mstb3 [penwidth=3];
mstb3 -> port3 [penwidth=3];
edge [color=grey];
mstb3 -> port4;
port3 -> mstb4;
}
mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen];
mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen];
mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen;penwidth=3];
mstb4 [label="MSTB #4";style=filled;fillcolor=grey];
port1 [label="Port #1"];
port2 [label="Port #2";penwidth=5];
port3 [label="Port #3";penwidth=3];
port4 [label="Port #4";style=filled;fillcolor=grey];
driver [label="DRM driver";style=filled;shape=box;fillcolor=lightblue];
payload1 [label="Payload #1";style=filled;shape=box;fillcolor=lightblue];
payload2 [label="Payload #2";style=filled;shape=box;fillcolor=lightblue;penwidth=3];
}
요약·해설
topology-figure-3.dot:1-59Port #4·MSTB #4 분기를 회색으로 낮추고 Payload #2에서 Port #3과 MSTB #3으로 이어지는 참조 경로를 굵게 표시한 MST 토폴로지를 구조화합니다.
노드와 간선은 원문 DOT의 식별자와 방향을 유지하고, 표시 라벨과 주석만 한국어로 옮겼습니다. 색이나 굵기의 의미가 원문에 명시되지 않은 경우에는 적용 대상을 보여 주고 의미를 추정하지 않습니다.
MSTB #1에서 두 하위 분기로 갈라지는 공통 토폴로지입니다.