“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
Ubuntu on Windows:当微软拥抱Linux用户空间
微软与Canonical合作,在Windows 10中原生运行Ubuntu用户空间和bash,无需虚拟机或容器,通过实时系统调用翻译实现Linux ELF二进制直接执行。
2016年3月30日,微软Build开发者大会上,一个看似疯狂的演示震撼了开发者社区:Windows 10的cmd.exe控制台里,居然跑起了原生的Ubuntu bash shell。这个项目背后,是微软和Canonical(Ubuntu母公司)数月秘密合作的成果。作为受邀嘉宾,Canonical的Dustin Kirkland在博客中详细揭秘了这一技术,而此前他已近16年没用过Windows。
这不是虚拟机,也不是容器
当Kirkland第一次听到这个构想时,他也花了好几圈才完全理解。关键点在于:
- 不是虚拟机:没有hypervisor,没有Linux内核在虚拟机中启动。整个Ubuntu用户空间直接跑在Windows上。
- 不是容器:容器共享宿主机内核,而这里Windows内核和Linux用户空间之间,没有传统意义上的内核隔离层。
- 不是Cygwin:Cygwin是把开源工具从源码重新编译成Windows原生可执行文件。而这里跑的是逐位相同、校验和一致的原生Ubuntu ELF二进制文件——就是Ubuntu仓库里那些编译好的Linux可执行文件,原封不动在Windows里运行。
核心机制:实时系统调用翻译
那么,没有Linux内核,Ubuntu的二进制怎么调用系统功能?微软一支精英开发团队,将微软研究院的技术改造为实时翻译层:把Linux系统调用(syscall)动态转换成Windows系统调用。技术上讲,这类似于Wine的逆向操作——Wine让Windows程序跑在Linux上,而这里让Linux程序跑在Windows上。微软官方称之为"Windows Subsystem for Linux"(WSL)。
需要强调的是,这个翻译层不是模拟器,不模拟整个CPU指令集,只是翻译操作系统接口。因此性能损失非常小。Kirkland用sysbench工具测试,CPU、内存和I/O性能几乎与原生Linux持平("totally shit hot"——他原话如此)。
用户空间:完整的Ubuntu生态
Windows 10用户只需在开始菜单输入bash回车,一个cmd.exe控制台就会出现,里面运行的是Ubuntu的/bin/bash。这意味着你可以直接使用:
- 基础工具:
apt、ssh、rsync、find、grep、awk、sed、sort、xargs、md5sum、gpg、curl、wget - 服务器软件:Apache、MySQL
- 脚本语言:Python、Perl、Ruby、PHP
- 编译工具:GCC
- 编辑器:Vim、Emacs
- 文件处理:tar、diff、patch
以及Ubuntu软件仓库中成千上万个二进制包——几乎全部可用。因为它们是原生Ubuntu ELF二进制,依赖关系、库文件、shell脚本都能按预期工作,无需重新编译。
文件系统互操作
Kirkland特别指出一个炫酷的细节:Windows的所有盘符(如C:)会直接挂载在Ubuntu的/mnt目录下,可读写。反过来,在Windows资源管理器中,也可以访问Ubuntu的文件系统,路径在C:\Users\<用户名>\AppData\Local\Lxss\rootfs\。这意味着两个世界的文件可以无缝交互,不需要SFTP或共享文件夹。
实际开发体验:一场自举的胜利
为了把Ubuntu根文件系统打包成Windows应用包(.appx)上传至Windows Store,Kirkland需要修改示例应用、编辑几十个XML文件、生成各种尺寸的PNG图标——这些本该用Visual Studio完成。作为一个非Windows开发者,他在Visual Studio里挣扎了几个小时,几乎要砸屏幕。
然后他灵机一动:按下Windows键,输入bash,回车。在Ubuntu shell里,他找到了位于/mnt/c/Users/Kirkland/Downloads的示例目录,用熟悉的命令完成了所有工作:
cp -a复制目录find | xargs | rename批量改文件名grep | xargs | sed全局搜索替换s/SampleApp/UbuntuOnWindows/- Ubuntu的
convert工具快速调整图标大小
最后,让Visual Studio完成编译和上传。整个过程体现了WSL的实用价值:在Windows上开发Windows应用,却能使用最顺手的Linux工具链——这正是目标用户群的写照。
同时,Kirkland发现不再需要PuTTY来SSH到其他Ubuntu服务器,直接在shell里ssh即可。apt install和apt upgrade也完全符合预期。
尚存的不足
一切并非完美。Kirkland坦诚指出:
- 终端兼容性:大部分Linux Test Project(LTP)测试通过,但TTY和VT100方面仍有瑕疵。
- 终端复用器:他钟爱的byobu、screen、tmux还不能正常工作,但已经接近可用。
- 版本:当时内置的是Ubuntu 14.04 LTS,但16.04 LTS很快会替换它上架Windows Store。
为什么?微软的战略逻辑
对于长期Windows和Ubuntu用户,Kirkland预测会有"为什么"的疑问。作为近二十年开源生涯的老兵,他感叹这是微软对开源重要性的一种超现实背书——让自由开源技术直接桥接到地球上的每一台Windows 10桌面。这也是引导用户在Azure等公共云中更多使用Ubuntu和Linux的绝佳入口。
从微软视角看,多项调查和用户研究都指出:开发者希望Windows上能有bash和Linux工具——尤其特指Ubuntu——而且不希望付出完整虚拟化的资源开销。WSL正好满足这两点:轻量、原生、无需重启或双系统。
历史回响与影响
今天的我们回看这个2016年的帖子,知道WSL最终发展成WSL2(后者引入了真正的轻量级虚拟机),但当初的"实时翻译"思路为微软打开了新方向。这篇博文公布的技术——/mnt挂载、ELF二进制直接执行、syscall翻译——构成了WSL1的基石。即使后来WSL2改为虚拟化方案,WSL1的遗产依然在于证明了:Linux的用户空间生态可以脱离内核,在完全不同的操作系统上以惊人性能运行。
Kirkland的工程方法论也值得纪念:当被困在陌生的Windows开发环境时,他用Ubuntu shell自举解决了打包Ubuntu自身的问题——这是对"吃自己的狗粮"最诗意的实践。
原文链接:http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html?m=1