博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于一个插图的翻译
阅读量:6998 次
发布时间:2019-06-27

本文共 1051 字,大约阅读时间需要 3 分钟。

先看一下图片对比效果

原图

图片描述

译文

图片描述

这个示意图没有什么特别的, 表现的就是tty的软硬件的关系

因为原文中有多个类似的图, 想找一个与原文尽量接近的方式进行表达. 一开始想用PlantUML来实现, 发现受UML的局限,画一个双向箭头都很麻烦. PlantUML底层用的dot语言, 所以直接用Graphviz的dot语言更方便.
简单地学习了一下, 效果不错, 特分享给大家.

我用的是mac, 安装graphviz

$ brew install graphviz

安装一个Atom或Sublime Text的插件, 我最后用的是Atom里的Graphviz preview+, 用起来很方便, 可以做到实时重绘, 不用了解命令行参数了.截图如下:

图片描述

最后放上上面插图的源码,供有兴趣的同学参考,回头我会把全部译文和源码放到github上.

digraph TTY{edge [dir="both"]rankdir="LR";subgraph cluster  {   //[ID="dd"];     label="硬件"     color="#e3e3d1"     style=filled     fillcolor="#e3e3d1"     终端[shape=box3d];     物理线路[shape=box3d];     UART[shape=box3d];    终端 -> 物理线路 ->UART: 万能异部收发器;}subgraph cluster软件 {style=filledcolor="#e3e3d1"label="软件"fillcolor="#e3e3d1"UART->"UART\n驱动" ;   subgraph cluster内核 {     color="#000000"     style="dashed"     label="内核"      "行\n规程" [comment="线路规程"];    "UART\n驱动" -> "行\n规程";        "行\n规程" -> "TTY\n驱动";   }     用户进程1 [label = "用户\n进程"]  ;     用户进程2 [label = "用户\n进程"]  ;     用户进程3 [label = "用户\n进程"]  ;    "TTY\n驱动" -> 用户进程1  ;    "TTY\n驱动" -> 用户进程2;    "TTY\n驱动" -> 用户进程3;}}

转载地址:http://edzvl.baihongyu.com/

你可能感兴趣的文章
复习模块
查看>>
Codeforces 691C Exponential notation(模拟)
查看>>
spring-excel-导出
查看>>
利用jenkins打造通过自定义参数更新svn 指定文件任务
查看>>
PID三种参数的理解
查看>>
07.移动端类库
查看>>
nginx支持https
查看>>
target与currentTarget与this的区别
查看>>
查看进程信息
查看>>
转载:DIV+CSS有可能遇到的问题
查看>>
protocol buffer
查看>>
web常用模块测试用例
查看>>
【转】分布式数据层 TDDL 来自:阿里巴巴
查看>>
swing常用布局
查看>>
#学习笔记#e2e学习使用(二)
查看>>
LeetCode 222.完全二叉树的节点个数(C++)
查看>>
MyBatis(增删改查)
查看>>
.net编译指令
查看>>
java调用python的几种用法(看这篇就够了)
查看>>
20180307-Xen、KVM、VMware、hyper-v等虚拟化技术的比较
查看>>