latex,tex,ctex三者的关系?
CTeX是LaTeX排版软件。是一个文本编辑器,特别适合小文本文件。它支持拖放、支持AppleScript等等。
LaTeX(LATEX)是一种基于TeX的排版系统,由美国计算机学家Leslie Lamport在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。
Leslie Lamport开发的LATEX是当今世界上最流行和使用最为广泛的TEX宏集。它构筑在Plain TEX ~~ 的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用TEX的强大功能.使用LATEX基本上不需要使用者自己设计命令和宏等,因为LATEX已经替你做好了。因此,即使使用者并不是很了解TEX,也可以在短短的时间内生成高质量的文档。对于生成复杂的数学公式,LATEX表现的更为出色。LATEX自从八十年代初问世以来,也在不断的发展.最初的正式版本为2.09,在经过几年的发展之后,许多新的功能,机制被引入到LATEX中。在享受这些新功能带来的便利的同时,它所伴随的副作用也开始显现,这就是不兼容性.标准的LATEX 2.09引入了“新字体选择框架”(NFSS)的LATEX,SLiTEX,AMSLATEX等等,相互之间并不兼容.这给使用者和维护者都带来很大的麻烦。为结束这中糟糕的状况,FrankMittelbach等人成立了ATEX3项目小组,目标是建立一个最优的,有效的,统一的,标准的命令集合。即得到LATEX的一个新版本3.这是一个长期目标,向这个目标迈出第一步就是在1994年发布的LATEX2e。LATEX2e采用了NFSS作为标准,加入了很多新的功能,同时还兼容旧LATEX 2.09。LATEX2e每6个月更新一次,修正发现的错误并加入前,LATEX2e将是标准的。
Latex与Winedit之间到底是什么关系?
有点像 HTML 和 dreamweaver 之间的关系,但不如 dreamweaver。LaTeX 是一种格式语言,由一堆规则构成,有另外一些软件能够把 LaTeX 文件编译(排版)为 DVI 文件或 PDF 文件,其中包含诸如 latex.exe, pdflatex.exe 这样的可执行文件,而 WinEdt 只是一个编辑器,你可以用它编辑 LaTeX 文件、C 程序、HTML 文件、文本文件等等。编辑 LaTeX 文件的时候,WinEdt 可以为你运行 latex.exe 或 pdflatex.exe 来编译你的文件,还可以打开或刷新浏览 DVI 文件或 PDF 文件的浏览器。
说它不如 dreamweaver,是因为 dreamweaver 本身就具备浏览器的功能,而 WinEdt 不具备编译和浏览的功能。它只是运行其它软件来实现这些功能而已。
Docker 基础镜像
buster 现在更常见,未来 bullseye 会越来越多。 一般情况下,其它几个都不是我们的第一选择。 Alpine 是众多 Linux 发行版中的一员,和 CentOS、Ubuntu、Archlinux 之类一样,只是一个发行版的名字,号称小巧安全,有自己的包管理工具 apk 。 Alpine 非常非常小:100M vs 5M ! 官方 Alpine 镜像的文档: http://gliderlabs.viewdocs.io/docker-alpine/ 但是 Alpine 的小是有代价的,在不轻易间可能会给你造成麻烦! Alpine Linux 除了插件了一些不必要的软件之外,特别重要的是,它使用了 musl libc 代替了大名鼎鼎的 glibc 。 musl libc 含有和 glibc 一样的标准功能,但是问题是 glibc 还有标准功能之外的扩展功能,由于 glibc 的历史地位和市场占有率,导致 glibc 的扩展功能实际上的使用也很广泛!有不少软件的编译、安装和运行都用到了 glibc 的扩展功能,因此这些软件在使用了 glibc 的基础颈项上就能运行,在使用了 musl libc 的 alpine 上则不行。 另外,Alpine 并没有像 Red Hat 或 Canonical 之类的大公司为其提供维护支持,软件包的数量也比这些发行版少很多(如果只看开箱即用的默认软件仓库,Alpine 只有 10000 个软件包,而 Ubuntu、Debian 和 Fedora 的软件包数量均大于 50000。) 如果实在不想折腾,可以选择一个折衷的镜像 xxx:slim。slim 镜像一般都基于 Debian 和 glibc,删除了许多非必需的软件包,优化了体积。如果构建过程中需要编译器,那么 slim 镜像不适合,除此之外大多数情况下还是可以使用 slim 作为基础镜像的。
Docker镜像
1.像一个文件联合系统UnionFS,是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。 bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。 rootfs (root file system) ,在bootfs之上。包含的就是典型 Linux 系统中的 /dev, /proc, /bin, /etc 等标准目录和文件 对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了,因为底层直接用Host的kernel,自己只需要提供 rootfs 就行了。由此可见对于不同的linux发行版, bootfs基本是一致的, rootfs会有差别, 因此不同的发行版可以公用bootfs。 3.镜像分层的好处就是资源共享 列如:有多个镜像都从相同的 base 镜像构建而来,那么宿主机只需在磁盘上保存一份base镜像, 同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。 4.docker 镜像都是只读的,当容器启动时,一个新的可写层会加载到镜像的顶部,这一层被称为容器层,容器层之下都称为镜像层。 5.镜像的构建可以通过 Dockfile 和docker commit 这两种方式 docker commit 方式是在一个镜像的基础上,重新对该镜像操作后重新生成的一个专属的镜像。 命令格式 docker commit -m "提交的描述信息" -a "作者信息" 容器ID 要创建的目标的镜像名:[标签名] 示例