linux中国_ 发布的文章

lmctfy (Let Me Contain That For you,发音是lem-kut-fee)是谷歌Google开发的容器栈,可以为Linux应用提供容器(container)。这些容器可以让一台机器上的不同应用使用相互隔离的资源,以独占的方式运行在同一台机器上。这些应用也可以拥有容器,因此能够创建和管理属于他们自己的子容器。

这项项目旨在提供一组以用户的意图为原点的高级API,来实现对容器概念的抽象化。这些创建的容器自身也通过继承也可以拥有了自己的容器、也能够被其他的用户程序所管理。

Lmctfy是为某些特定的场景(配置环境)设计、实现的,所以可能不能在所有场景(配置环境)中正常运作。我们的目标是为更多的场景(配置环境)提供更多的支持,所以你可以为这项项目贡献你的补丁或是在邮件列表中发送邮件,这样我们可以朝着既定的路线图前进。

lmctfy 内包含一个C++库和一个CLI(命令行界面程序)

最新进展

lmctfy 还是一个在beta阶段的应用,目前仍在主要开发中。最新的版本是0.1。她目前只支持CPU和内存资源的隔离。点击查看我们的路线图来了解各部分的开发情况,点击查看贡献

从此开始

这一节描述如何编译你的CLI,运行所有的UI测试,和初始化机器的细节。 CLI这节提供了一些CLI操作的例子,C++ 库描述了这个库的使用详情。

依赖

编译本程序需要使用make和g++4.7。 lmcfy使用了C++11,所以需要支持这项功能的编译器。我们在 Ubuntu 12.04+ 上测试过编译。如果有为其他环境的编译提供支持的补丁,我们很高兴而且希望这越多越好。

lmctfy 依赖下列几个库,需要这些库存在于你的计算机系统里。

编译CLI

编译lmctfy的CLI:

make -j <线程数> lmctfy

CLI程序会生成在 bin/lmctfy/cli/lmctfy

编译C++库

编译lmctfy的库:

make -j <线程数> liblmctfy.a

库文件会生成在 bin/liblmctfy.a.

运行测试

编译和运行所有的UI测试:

make -j <线程数> check

初始化

lmctfy已经在 Ubuntu 12.04+ 上的 3.33.8 内核上测试过。 lmctfy在一台机器的所有容器都是运行它的时候运转得最好,所以不建议让她运行在LXC或者其他container系统上(尽管在某些特殊得配置下这能够跑起来)。

为了运行lmctfy,我们必须首先初始化计算机。这只需要运行一次就可以,而且一般是在计算机第一次启动时候就完成了。当cgroup的hierarchies已经挂载了,接下来通常一个空的配置会可以让lmctfy自动监测到目前的挂载。

lmctfy init ""

如果cgroup的hierarchies没有被挂载,那么必须指明这些资源,这样lmctfy才可以挂载他们。目前版本需要以下cgroup的hierarchies资源cpu,cpuset,cpuacct,memory和freezer。 cpu和cpuacct 是目前唯一可以被共享挂载的,其他的必须被单独地挂载。具体配置说明可以查看lmctfy.proto中的InitSpec节。以下的例子是一个挂载了/dev/cgroup中的所有hierarachies的配置文件:

lmctfy init "
  cgroup_mount:{
    mount_path:'/dev/cgroup/cpu'
    hierarchy:CGROUP_CPU hierarchy:CGROUP_CPUACCT
  }
  cgroup_mount:{
    mount_path:'/dev/cgroup/cpuset' hierarchy:CGROUP_CPUSET
  }
  cgroup_mount:{
    mount_path:'/dev/cgroup/freezer' hierarchy:CGROUP_FREEZER
  }
  cgroup_mount:{
    mount_path:'/dev/cgroup/memory' hierarchy:CGROUP_MEMORY
  }"

这样,机器就可以被lmctfy使用、进行容器的操作。

容器的命名

容器的命名系统简化了文件系统的路径,因为以后只需要一系列容器的继承(容器的容器、子容器、子子容器)就可以了♪───O(≧∇≦)O──── ♪。

容器名称允许的字符集:

  • 英文字母+阿拉伯数字 ([a-zA-Z0-9]+)
  • 下划线 (\_)
  • 横县 (-)
  • 英文句号 (.)

绝对路径是从容器(比如是/sys/subcont)的根目录(/)开始计算的。容器的名字也可以是相对的(比如subcont)。一般地(除非特殊情况说明),都是沿用一般的文件路径方式。

例子

    /         : 容器的根目录
    /sys         : "sys" 容器
    /sys/sub    : "sub" 容器,"sys"容器的子容器
    .         : 当前的容器
    ./         : 当前的容器
    ..         : 当前的容器的父容器
    sub         : 当前的容器的"sub" 子容器
    ./sub     : 当前的容器的"sub" 子容器
    /sub         : "sub" 容器
    ../sibling    : 当前的父容器的“sibling”子容器

CLI

创建

创建一个容器:

lmctfy create <名称> <参数>

更完整的细节参见lmctfy.proto

例子 (创建一个内存限制在100MB的容器):

lmctfy create memory\_only "memory:{limit:100000000}"

销毁

销毁一个容器:

lmctfy destroy<名称>

列表

从根目录递归显示当前机器的所有容器:

lmctfy list containers -r /

你也可以只列出当前的子容器:

lmctfy list containers

运行

在一台容器中运行命令:

lmctfy run <名称> <命令行>

例子:

lmctfy run test "echo hello world"

lmctfy run /test/sub bash

lmctfy run -n /test "echo hello from a daemon"

其他

键入lmctfy help查看全部的命令和文档

C++ Library

此库包含了::containers::lmctfy::ContainerApi 用来创建、获取、销毁、监测::containers::lmctfy::Container类型的对象,并且被独立的容器相互交流。具体的lmctfy C++库的文档可以查看头文件lmctfy.h(你是认真的吗( ̄▽ ̄))。

路线图

lmctfy项目通过两个层(CL1、CL2)来实现一个容器栈。CL1围绕着驱动进程,并执行CL2制定的容器策略。CL1会为更高层创建和维护容器的抽象。她应当是唯一直接和内核交流以维护容器的层。 CL2发展和设定容器策略,她使用CL1来执行策略和操控容器。比如,CL2(后台进程)实现了一个策略:所有容器的CPU和内存使用总和不可以超过现提供的CPU和内存资源(以防止对内存资源的过度使用)。为了执行这条策略,她(CL2)会使用CL1(library/CLI)来创建带这条内存限制规则的容器。另一条对应的策略可能包括了允许过度使用X%的机器资源或者对不同资源的多重层次控制。

lmcfty项目现在提供了CL1组件,CL2还没有实现。

CL1

现在只提供高性能CPU和内存隔离。在我们的路线图中我们还需要实现以下几项:

  • 磁盘IO隔离: 这部分几乎完成了,但是我们还缺少控制器和资源处理器。
  • 网络隔离: 这部分和cgroup实现还在计划中。
  • 命名空间支援: 给所有命名空间支援并且整合到相关的资源中。
  • 根文件系统支援: 识别并建立根文件系统。
  • 磁盘镜像: 可以导入和导出容器的根文件系统的镜像。
  • 支持暂停/继续: 使用继承的freezer。
  • 还原点恢复: 可以建立还原点并恢复到不同机器的容器中。

CL2

最基础的CL2 应当有一个容器策略来保证在机器不允许超载运行情况下的资源合理分配。我们的目标是CL2最终实现提供不同层次的服务。在这个框架下一些层次可以比其他的获得更多好的服务。

  • 监控和统计支持。
  • 管理功能和功能检查。
  • 服务的质量保证和执行。

内核支持

lmctfy 最初的设计和实现是在一个自定义的内核上(一个原生linux内核外加一些列自选的补丁)上。由此,一些特性在这些内核补丁上跑得最理想。但是lmctfy应该在没有他们得情况下正常运行。她应当监测可用得内核支援并且与之适应。我们已经在原生的 Ubuntu3.33.8 系列内核上测试过。如果你发现在其他版本内核下的问题,请汇报。

一些相关的内核补丁:

  • CPU 延时: 这个补丁为cpu hierarchy增加了cpu.lat的cgroup 文件。她限制了cgroup能预测的CPU唤醒延时时间。
  • CPU 柱状图统计: 这个补丁为cpuacct hierarchy增加了cpuacct.histogram cgroup 文件。她为CPU计划行为提供了多种柱状图方案。
  • OOM 管理: 一系列的补丁,用于在内存用尽的情况下执行优先权。

贡献

对项目感到兴趣了?看看我们的路线图,看你是不是由很多想贡献的方向呢? 从此开始,你应该可以运行我们的程序。如果无法运行,请让我们知道,这样我们可以改进这份指南。

邮件列表

本项目的邮件列表是[email protected]。本邮件列表用来发布、讨论、一般性支持。

原文: https://github.com/google/lmctfy/

本文由LCTT 原创翻译,Linux中国 荣誉推出

译者:Chilledheart 校对:wxy

最近几周里,我总是收到人们询问一些快速零散的问题。有时候一个人是在寻找一个有帮助的建议,或者一个具体的命令,或者一个命令行捷径,以完成一个特定的任务。本篇将介绍最近人们向我提出的三个问题,以及完成这些任务的简单方法。

第一个场景

我们要找到那些在过去的一个月中被改动过的文件,并将他们从当前的位置复制到另一个目录中去。

在这种情况下,能否精确的解决取决于你复制文件的时候是否保持了原来的文件树结构,还是你仅仅只是把所有文件全部复制到了一个指定的地方。如果我们只是想把所有的文件保存到一个文件夹中,或许这样做是为了将这些文件归档,那么我们可以使用find这条命令。通过使用find命令,我们能够根据文件被修改的时间查找到他们的位置,然后复制他们到指定的地方。这条命令看起来是这样:

find Documents -mtime -30 -exec cp "{}" Backup \;

上面这条命令会在Documents文件夹中查找在过去30天内被修改过的文件。这些文件之后将会被复制到另一个叫Backup的目录中去。find命令将会通过调用cp命令来执行复制这一操作。通过修改mtime这条参数,我们可以查找到最近某个时间内被修改过的文件,在上面这个例子中它被设定为在过去的30天内。

更多的时候,我们会想要在把文件复制到目标文件夹后,仍然能够保留源文件夹的目录结构。很多时候,人们都希望两个文件夹的内容同步,然后他们会运行一个脚本来使他们保持一致。这种情况下,我们可能会用到rsync这条命令了。这个工具会把新文件、修改过的文件从一个复制到另一个目录中去,同时保持源目录的展示结构:

rsync -a Documents/ Backup

上面的例子,它会先找到哪些文件在Documents中和Backup中都存在,以便不再复制这些不必要的文件。

第二个场景

有一个我们都会做的很普遍的工作,就是在一个文本文件中找到一个单词,然后用另一个单词把这个词在文本中的所有实例都替换掉。

比如,假设我有一个文档中提到一个人名叫“Becky”,但是我后来决定还是用稍微正式点的称呼“Rebecca”为好。对文件中的这个简单的改动,下面这条命令会起到作用:

perl -pi -e 's/Becky/Rebecca/' mydocument.txt

这条微型的Perl脚本会查询文档中所有“Becky”的实例,并且将之改为“Rebecca”。程序首先读取名为mydocument.txt这个要改动的文档,待修改完毕后再保存回去。

第三个场景

一个普遍关注的问题是,在一个硬盘要给别人或者被扔掉之前,需要对其中存储的敏感数据做些什么。

有些人会在电脑里保存一些银行的业务数据或者税务信息,那么这些数据最好在你的硬盘被转手到别人之前被彻底清理掉。现在有一些方法和工具可以让你使用。我最喜欢的一个是shred这条命令,它不仅能对单一文件进行处理,同样也能对整个设备进行处理。要重写一个文件里面的内容,我们可以这样运行shred

shred mytaxes.odt

上面这个例子中,它会移除文件里存的内容,但并不会把文件本身从硬盘中删除掉。如果要清除文件的内容同时删除掉这个文件,我们可以这样运行:

shred -u mytaxes.odt

需要强调的一点是,shred并不是在所有的文件系统中都能正常运行,尤其是那些带有日志功能的比较新的文件系统。在shred的操作手册中写明了哪些文件系统运行这个程序的时候会出问题。当处理敏感数据的时候,最好的方法也许是清除掉整张硬盘。shred同样也能办到。下面这个例子中,显示了如何移除掉我们电脑中第一块硬盘内的所有数据。使用这条命令一定要非常小心:

shred /dev/sda

via: http://distrowatch.com/weekly.php?issue=20130923

本文由 LCTT 原创翻译,Linux中国 荣誉推出

译者:markvv 校对:wxy

Linus Torvalds

Torvalds对美国政府是否曾要求他在Linux中植入后门的问题进行了回应,他还解释了为何说自己是一名开发者,并向其他开发人员介绍了经验。

Linus Torvalds,于22年前发明了开源操作系统Linux的他,在9月18日,在新奥尔良举办的LinuxCon大会上作主题演讲,并与其他内核开发者一道,共同讨论Linux内核的发展问题。

该日的讨论持续了一个小时之久,座谈小组被问以各种五花八门的问题,健谈的Torvalds均给出了精彩回答。

首先被问到的其中一个问题是,想要切实加入Linux内核开发到底有多难?

Torvalds回答说,“我们有数量惊人的开发者,在有些方面确实比较难上手,但在开源项目的其他大部分方面就要容易的多,因为Linux还有太多太多工作等着我们去做。”

Torvalds指出,从目前参与Linux开发的人数来说,“其实这并不难企及”。

对Torvalds来说,面对硬件的不断创新是内核开发过程中的乐趣之一。他说22年前刚开始开发Linux的时候,那时的硬件和现在很不一样。他期待着20年后硬件能发展的更加超乎想象。

硬件创新的未来

然而Torvalds认为硬件的创新在某些方面已经开始放缓,面对摩尔定律失效的那天,现代工业将如何应对,Torvalds说他对此很感兴趣。在他看来,这其实是个物理问题,就看硅片上的创新能走多远。

“Linux之所以能在手机上运行如此流畅,是因为手机本身的性能一直在不断增长,现在的手机比我当年用来开发Linux的原型机性能强大好几千倍”,Torvalds说,“人们总是乐观地敷衍摩尔定律,但是未来10年内,这将变得非常非常难。”

虚拟化正在成为越来越多硬件社区的趋势,但是Torvalds对此却并不感兴趣。

“我不想与任何跟虚拟化有关的东西沾边,”Torvalds说,“我喜欢直接在硬件上运行;我是个‘实在’人”。

NSA后门

Torvalds还被问到是否美国政府曾要求他在Linux中植入后门。Torvalds的回答很有意思,他嘴里回答“NO”,同时却用力点着头好像在说“Yes”,引来会场听众哈哈大笑。(译注,实际上,他在其后又严肃的补充说了一个No,可以参看本站另外一篇文章:Linux有后门?看Linus Torvalds在LinuxCon大会上怎么说

如何成为一名真正的开发者

讨论中,Torvalds还解释了为何将开发者作为自己的第一身份。他是如何踏上这条道路的呢?那时,他没钱买Unix,同时他发现,他的高富帅朋友们都在配置牛逼的电脑上玩游戏,自己却只能穷守着台破电脑啥也干不了,于是,屌丝逆袭,他就这么开始学习编程了。

“现实逼着我必须干点什么了,”屌丝Torvalds说。

当Torvalds全身心投入到Linux中时,他说,Linux成为了他生命的中心。

“我觉得没有任何项目能比Linux更让我感兴趣,”Torvalds说,“如果没有了Linux,我无法想象我一片虚无的生命还有什么意义”。

via : http://www.eweek.com/developer/linus-torvalds-talks-linux-development-at-linuxcon.html

本文由 LCTT 原创翻译,Linux中国 荣誉推出

译者:Mr小眼儿 校对:wxy

我们时不时需要帮助我们的朋友、家人、熟人、商业伙伴或者其他杂七杂八的人摆脱使用Windows的时候遇到的困境。尽管我们不像他们一样日常遇到各种问题,却经常是在他们有难的时候会求助的人。此外,甚至我们自己的Windows分区/驱动器也会出现问题(毕竟,有时候我们还是需要玩儿会儿游戏,而且,尽管Steam在努力,但Linux还不是游戏玩家的梦想之地),但愿不会如此。下面让我们看一两个我们可能会遇到的状况,那时我们可以用手边的Linux环境和一些NTFS分区恢复工具来修复它们。

简单修复

Windows 系统通常能很好的处理异常的“冷重启”(断电,关闭插线板的电源,或家里的小人儿手指随意按导致关机)。事实上,至今为止,最有效的修复Windows桌面问题的方法就是简单的重启系统。但是,Windows分区偶尔会显示系统需要进行驱动器一致性检测。不这么做的话,在几次重启后可能会引起文件系统状况恶化而使系统变得更糟。众所周知,Windows文件系统检查超级慢,而且经常不得不做好几次才能清理掉文件系统的“脏(dirty)”标志。

下面介绍一个叫“ntfsfix”的小工具,在基于Debian的系统(如 Ubuntu)可以通过下面的命令下载:

sudo apt-get install ntfsfix

或者在基于RPM的系统(如 Red Hat 或 CentOS)中通过下面的命令下载:

sudo yum install ntfsfix

这个‘ntfsfix’工具能快速的修复常见的错误以及NTFS分区不一致的问题。最常用的命令不用带任何参数。 它也可以报出来那些没有修复掉的项,然后我们能通过以下选项来修复它们:

  • -b: 清除磁盘上的坏的扇区 (可以在从一个旧磁盘往新的磁盘上克隆之后使用)
  • -d: 清除“脏”标志。“脏”标志是Linux不能挂载一个Windows分区的最常见的原因,通常发生在Windows断电前没有正常关机的情况。
  • -n: 除了在标准输出上显示它要完成的(换句话说,就是需要修复哪些)之外不做任何事。

过去Windows在启动前,用NTFS Disk Check来重置“脏”标志,常常要花几个小时。而‘ntfsfix’完成这个仅仅只需要大约三秒的时。

深度修复

不幸的是, 并非所有的问题都能被快速修复。事实上,有非常多的昂贵的磁盘恢复软件(通常属于“磁盘取证”类的软件,因为是在筛选损坏磁盘的时候调查人员使用的)用来修复那些加电但不能启动或者不能访问文件系统的磁盘。

有一个神奇的工具,免费而强大(而且如果在你本地电脑使用的话,可以放到一个可引导的救援Live CD里面)可以用来恢复你的Windows NTFS分区(而且,也能恢复EXT2/3/4,FAT/FAT32、exFAT、HFS和SunFS文件系统)。这个工具叫做TestDisk,在Debian和CentOS 的软件仓库中可用。Red Hat的软件仓库中并没有这个软件,但是安装它很容易。

sudo apt-get install testdisk

在基于 RPM 的系统(如 Red Hat 或 CentOS):

sudo yum install testdisk

这个工具简直无与伦比。如果驱动器加电并且运转了,甚至当驱动器有物理损坏时,这个小工具仍会奇迹般的取出一些文件来。 你可以通过一个旧式风格的命令“sudo testdisk /dev/sdX”来启动它,这里‘X’是你的驱动器号,之后你会看到下面的界面:

TestDisk在终端中运行

这个工具使用起来很简单,只需要根据菜单提示进行操作,而且它是交互式的。它会扫描你指定的某个分区,然后把重建的目录和文件显示出来,然后你可以标记,并存到另外一磁盘或者分区里面。我已经成功地从Windows,OSX和linux分区里面恢复过文件,这些分区要么因为这种或那种原因不能启动,要么害怕启动之后可能彻底完蛋,总之,这些分区用不了多久就会彻底完蛋了。

说句实在的,你不能期望文件系统100%的恢复,尤其是你的驱动器已经有损坏了,不过至少聊胜于无吧,而且不用像去请专业人员处理那样花很多钱(实际上一分也不用花)。所以如果你的驱动器现在有问题了,那你可以用下这个工具。

结束语

当你使用Linux的时候,磁盘修复要容易得多,当然也便宜的多,要么用USB转接器连接有问题的磁盘,要么从一个LiveCD启动,然后用CD里面的修复工具。本文中我们谈到的所有的工具都是免费使用,而且是在持续开发(更新)中。您可以在下面留言,谈一下你曾经不得不使用什么工具来从您磁盘的问题中恢复。

via: http://blog.linuxacademy.com/linux/ntfs-partition-repair-and-recovery-in-linux/

本文由 LCTT 原创翻译,Linux中国 荣誉推出

译者:younel0925 校对:jasminepeng

 title=

Sarah Sharp(照片中的白富美)和Linus Torvalds(右起第二位)在LinuxCon大会上。照片提供:Linux基金会

上周三,Linus Torvalds和来自Intel的程序媛Sarah Sharp终于面对面坐在了一起。这是他们俩自邮件风波之后的第一次公开会面。(所谓邮件风波,前段时间,他俩就对待Linux程序员时是否该讲礼貌的问题而在Linux内核圈子的邮件列表中公开叫板。)

但这次面对面的会面,他俩之间并没有产生任何火花。他们甚至都没有提到Sharp这个夏天刚刚发起的议题。

本次Linux大会在新奥尔良召开并全程网络直播,Sharp在大会的演讲中回避了所有争议性话题,但她还是向听众们表达,Linux需要寻找新的方法为它的心脏——内核——寻找更多愿意为之做出贡献的人。

谈及到贡献量大小时,她说,“我们带动了很多人加入到内核开发中来,但是这些人很多只是‘一次性’工作。因此,我们真的需要找到一种方法,好让人们在内核的项目中做的更多更持久,我们需要更多一对一师徒间的传帮带。”

‘我们需要找到一种方法,例如一对一师徒传帮带,好让人们在内核的项目中做的更多更持久。’

— Sarah Sharp

Torvalds承认,尽管在有些方面内核工作看起来很难,但实际上写写代码并入内核其实是很容易的。“人们总说内核多么多么难,但同时,只需看看相关数据,并不能说很难涉足。”

Linux基金会公布的数字显示,从2005年至今已有10000多位开发者为Linux内核做出了贡献。这是一个庞大的数字,但社区仍然远未达到多元化的程度,仍然需要大量新鲜血液。Sharp就是在内核项目中工作的极少数女性之一,她估计内核开发者中程序媛只占到1%-2%。另外,程序员中的少数民族数量并不清楚。

早在7月份,Sharp就指出,一些程序员可能会因为内核圈子里粗鲁无礼的氛围而感到不快。如果某些人无法适应这种长久以来在开发领域中占统治地位的白种男人文化,他们是非常郁闷和沮丧的。

Torvalds有埋怨人嘴不饶人的习惯,这个夏天,Sharp曾因此在内核邮件列表中公开向Torvalds叫板。Sharp在邮件列表推送中写道:“Linus,你满嘴脏话,公然践踏别人的感情,你是最恶毒的毒舌妇,没有之一。”

但Torvalds却说,他最不喜欢的就是“一本正经”,恰好非企业自由化的Linux帮他远离了这些。从家里到办公室,从车库到浴缸,他可以在地球上的任何地方掌控Linux最重要的核心组件。

迟早Torvalds和Sharp会讨论清楚他俩之间的不同。也许就在下个月的艾丁伯格Linux内核闭门高层会议上他俩就会好好聊一聊,只是我们可能就没有机会听到了。

尽管Linux大部分都是由白种男人们写就,但是社区正在朝着改变的方向艰难前进。Sharp自己就协调了一个实习生计划,用来帮助女程序媛加入开源项目。(当时在大会上,她说现场就有两位她的程序媛小伙伴也来参会,为的就是能在这里找份工作)。同时,这也是LinuxCon有史以来的首次,有妹纸在午餐会上出现。

此次大会共有60位左右的女性参会,Linux基金会的一位女发言人Jennifer Cloer说,“我真没想到会有这么多妹纸……”。

对了,还有件事值得一提。从去年开始,LinuxCon已经开始提供女性尺码的大会T恤了。

东部时间2013年9月19日17:55 更正:稍早的一篇报道中写道,今年是第一年LinuxCon大会提供女性T恤。其实他们从去年2012年就已开始。特此更正。

via: http://www.wired.com/wiredenterprise/2013/09/linuxcon/

本文由 LCTT 原创翻译,Linux中国 荣誉推出

译者:Mr小眼儿 校对:wxy

已同步至 linux的微博

轻量级标记语言是一种时髦的系统语言,它用不同的方式标注文档,并且设计了简单易读的语法。事实上,它的语法非常之简单以至于任何人都能快速的掌握这些标记语言。这类语言最大的优点在于,用户使用一个普通的文本编辑器就可以在源文档中方便的输入注释文本。

这类语言使用简单的格式以及几个简单的特殊字符或字符串来标记段落标题、列表、表格、引用、字体等内容。

轻量级标记语言有许多用处。我们的生活被电子邮件、便笺、文章、报道以及推特包围着。许多人会先写好文本,然后重新排列、重新使用这些文本。轻量级标记语言在这方面非常有用,节约了大量手工敲打html标记的时间,加快了文字处理的速度。当读者想要阅读源文件和已输出文档时,他们也具有很强大的可读性。此外,他们也被频繁的使用于基于网络的出版物中,包括维基和博客等。

通过使用这些开源的工具,用户能够在很短的时间里做出高质量的注释文本,这不需要任何成本。代码完全是可移植的,并且可以输出成各种格式的文档。

现在,让我们来看看7个最常用的轻量级标记语言。下面每一个语言的标题都带有指向他自己首页的链接,里面有详细的描述,包括它本身语言特点的深度分析,以及一些相关资源的链接和评论。

  • Markdown --标记语言以及文本到HTML的转换工具
  • MultiMarkdown --基于Markdown但具有更多功能
  • AsciiDoc --漂亮的文本文档格式用于写作
  • Textile --被称为“人类网络文本生成器”
  • Texy --文本到XHTML格式化和转化库
  • Tome --作者的标记语言和工具包
  • reStructuredText --Docutils的标记语法分析组件

via: http://www.linuxlinks.com/article/20130921022758982/LightweightMarkupLanguages.html

本文由 LCTT 原创翻译,Linux中国 荣誉推出

译者:markvv 校对:Caroline