2025-08-13 01:02:59
手机和Mac电脑在同一个局域网(如:在家里同一个WIFI之下)。
在Mac上启动一个 http server:
cd $your_www_dir # 进入需要共享的目录 python3 -m http.server # 启动一个最简单的http服务,默认端口是 8000 # 当看到类似输出时,就是启动成功了: Serving HTTP on :: port 8000 (http://[::]:8000/) ...
可以在电脑上浏览器中,打开 http://localhost:8000/ 检查一下。
然后,手机上浏览:http://192.168.0.104:8000 (这里的192.168.x.x的IP就是电脑在局域网中的IP地址)
很方便,适合技术人员,局域网的下载速度也非常快的。
当然,如果不是在一个局域网中,那就会麻烦一些了;就选择云盘、邮箱等外部系统来中转吧。 甚至就用USB、Type-c的数据线直接连接吧。
Original article: 这才是最快的Mac向Android手机传文件的方法
©2025 笑遍世界. All Rights Reserved.
2025-08-13 00:51:43
23年初始化电脑时遇到的,只是记录一下。
安装过火狐浏览器 再安装Firefox国际版,但总是打开新安装的国际版,它的配置还是使用国内版火狐。关键是账号体系不打通,国内版火狐登录Firefox账户时,不能选择firefox.com的(只能选firefox.com.cn的),而它们2个账号体系是隔离的。我就是想同步一些之前的账户配置。
应用不是AppStore安装的 则在启动台那里长按应用也不会有删除标志(左上角小叉叉),我一般就暴力删除,注意命令别敲错了,否测删除到关键文件,系统可能出问题。
sudo rm -rf /Applications/Firefox.app/
许多 App 的缓存垃圾等都会存放于特定目录中。比较常见的,如 /Users/用户名/Library/Caches 和 /Users/用户名/Library/Application Support 等。你可以进入文件夹中按需清理。
比如: /Users/your-username/Library/Application\ Support/Firefox
卸载某些应用程序后会留下一些预置文件和缓存等,一般这些文件没有潜在坏处,但是我们确实今后也不打算再装的App,可以将其清理干净:
~/Library/Application Support/(应用程序名称)
~/Library/Preferences/(应用程序名称)
~/Library/Caches/(应用程序名称)
但请务必注意:仅在你完全了解文件夹作用后,才能考虑是否删除,否则可能造成 App 崩溃乃至系统关键功能受损等严重后果。
苹果官网也提到了两种删除App的方法:
1. 使用启动台删除从 App Store 下载的 App
2. 使用“访达”删除 App,在“访达”中点击“应用程序”,将其中的需要删除的App移到“废纸篓”即可。大多数 App 都位于“应用程序”文件夹中。
通过以下任一方式将 App 移到“废纸篓”:a. 将相应 App 拖移到“废纸篓”。 b. 选择相应 App,然后从菜单栏中选取“文件”>“移到废纸篓”。 c. 选择相应 App,然后按下键盘上的 Command-Delete 键。
参考文档:
在Mac上卸载App:https://support.apple.com/zh-cn/102610
区分火狐与Firefox国际版:https://zhuanlan.zhihu.com/p/433010918
Original article: Mac上删除App的方法(包括强制删除)
©2025 笑遍世界. All Rights Reserved.
2025-05-01 01:19:32
这两天阿里开源了Qwen3系列推理模型,里面有不少Dense模型的参数量不太大,可以用本地笔记本电脑运行,速来体验一下。
本机电脑配置:MacBook Pro (Apple M2 Pro 芯片)
模型选择:Qwen3-4B(40亿参数),模型占用磁盘空间 2.5GB
ollama --version
检查一下。ollama run qwen3:4b
,Ollama自己会去下载模型文件(2.6GB大小,需要花一点时间)然后运行的。在浏览器中打开 http://localhost:11434/ 可以查看Ollama是否正常运行,同时其API已可用,比如 http://localhost:11434/api/tags
ollama默认监听了 127.0.0.1:11434,如果需要个性化修改(一般建议不要修改了,后面open-webui等也会自动找这个端口),可以设置 OLLAMA_HOST 这个环境变量即可。
命令行交互的方式聊天对人类不友好,特别是它还输出markdown格式的文本;那么可以使用open-webui这个工具来支持用浏览器使用本地(也支持远程的大模型)。
有多重方式可以安装open-webui,这里就选择用pip安装的方式。
1. 用命令 pip install open-webui
即可安装open-webui,不过请注意open-webui当前仅支持python3.11(至于怎么安装python3.11这里就不介绍了),所以我这里执行命令其实是:pip3.11 install open-webui
。
刚开始没注意我系统默认python是3.9版本,通过pip安装时就没有找到oepn-webui包,有如下报错:
ERROR: Could not find a version that satisfies the requirement open-webui (from versions: none) ERROR: No matching distribution found for open-webui
open-webui serve
即可启动服务。 如果希望修改监听地址和段扩,可以 open-webui serve --help
查看一下帮助,通过--host、--port
参数修改即可。
浏览器通过地址 http://localhost:8080 来访问open-webui了。如果上面步骤这两个ollama已经启动qwen3:4b模型,那么此时浏览器中已经默认以选中该模型了,就可以低成本体验qwen3的推理能力。
体验下来,MBP电脑运行qwen3:4b还是比较流畅的,模型本身推理能力使用起来也算不错(粗略体验),当然还是容易有些AI幻觉的(比如,问它4B模型是多大参数,它说是400亿;而人眼一眼就是40亿)。
参考:
https://www.runoob.com/ollama/ollama-open-webui.html
https://zhuanlan.zhihu.com/p/1900866584001642539
Original article: Ollama及open-webui使用,及Qwen3开源大模型体验
©2025 笑遍世界. All Rights Reserved.
2024-12-29 00:40:54
我已在云计算行业工作多年,Gregg这里写到的东西都比较熟悉了;如下是一些摘内容摘要和我的评论。
OS虚拟化技术的劣势:
* 任何kernel panic都会影响到所有客户
* 客户不能运行不同的内核版本(评论:也不能再linux上启动Windows guest)
* 也不支持热迁移,kvm虚拟化技术是支持的 (该项是我的评论内容)
目前流行的docker也使用OS虚拟化技术,所以docker也是一样的问题;同时包括kata在内,目前其官网也未支持热迁移。
KVM中一个常见的VM Exit Reason是Guest中执行HLT指令。(评论:在较新的qemu/kvm中支持了cpu-pm=on 透传,可以让guest控制host cpu的power state,可以避免HLT/MWAIT等指令的退出
P500页,作者还有一处错误说GVA到HPA之间可以TLB缓存,是错误的。
根据豆包查了一些资料,结合个人认知。
概念解释
* GVA(Guest Virtual Address):这是客户机(Guest)操作系统所使用的虚拟地址。在 KVM 虚拟化环境中,客户机操作系统运行在虚拟机中,它看到的是自己的虚拟地址空间。
* HPA(Host Physical Address):这是宿主机(Host)的物理地址。在 KVM 中,虚拟机最终的数据存储和访问都要落实到宿主机的物理资源上。
* TLB(Translation Lookaside Buffer):是一种高速缓存,用于存储虚拟地址到物理地址的转换映射,以加速内存访问。
转换过程分析
一般情况下,在 KVM 虚拟化中,从 GVA 到 HPA 不能直接通过 TLB 转换。
原因在于地址空间的隔离和多层转换需求:
* 首先,客户机操作系统使用 GVA 进行内存访问,这个虚拟地址需要先转换为客户机物理地址(GPA - Guest Physical Address)。这个转换是由客户机操作系统的内存管理单元(MMU)基于其自身的页表来完成的。因为客户机操作系统并不知道它运行在虚拟化环境中,它按照传统的方式管理自己的虚拟地址到物理地址的映射。
* 然后,从 GPA 到 HPA 的转换需要通过 KVM 虚拟化层的介入。KVM 会维护影子页表(Shadow Page Table)或者利用硬件辅助虚拟化技术(如 Intel 的 EPT - Extended Page Table 或 AMD 的 RVI - Rapid Virtualization Indexing)来实现 GPA 到 HPA 的转换。
* TLB 通常是存储虚拟地址到物理地址的缓存,但在 KVM 虚拟化环境下,由于存在 GVA - GPA - HPA 这样的多层转换关系,TLB 缓存的内容通常是 GVA - GPA 或者 GPA - HPA 的映射,而不是直接的 GVA - HPA 映射。
Docker 容器是基于操作系统级别的虚拟化技术。容器技术利用了宿主机(Host)的内核来运行。当启动一个 Docker 容器时,容器内的进程是直接运行在宿主机的内核之上的,容器共享宿主机的内核。
Docker 是基于 Linux 容器技术构建的平台,它利用了 Linux 内核的特性(如 namespaces 和 cgroups)来实现容器的隔离和资源管理。容器本质上是在 Linux 操作系统的用户空间进行隔离,共享 Linux 内核。这种设计使得 Docker 在原生状态下主要用于运行基于 Linux 的应用程序和服务。因为 Windows 操作系统有自己独立的内核和系统架构,和 Linux 内核不兼容,所以在常规的 Docker 运行机制下不能直接启动 Windows Guest OS。
Kata Containers 是一种容器运行时技术,它结合了容器的轻量级和虚拟机的安全性优势。本质上,Kata 在每个容器启动时都会创建一个独立的轻量级虚拟机(VM)来运行容器。最重要的安全特性是内核隔离。
另外,Gregg曾经供职和在本章中多次提到Joyent公司已于2016年被三星电子收购;后来也退出了IaaS共有云的市场。
Original article: 《性能之巅》读书笔记第11章
©2025 笑遍世界. All Rights Reserved.
2024-11-16 01:12:58
PCIe 是 "Peripheral Component Interconnect Express" 的缩写,中文意思是“外设组件互连快速通道”。这是一种高速串行计算机扩展总线标准,用于计算机内部硬件设备之间的连接,特别是用于连接中央处理单元(CPU)和外设,如图形处理单元(GPU)、固态硬盘(SSD)和其他高速设备。
PCI Express是一种用于连接高速组件的高速串行计算机扩展总线标准,它取代了PCI和PCI- X总线标准,并经过了多次调整改进。PCIe 1.0最初在2002年发布,为了满足日益增长的高带宽需求,之后又相继推出了不同的版本。目前共有五种不同的PCIe标准:PCIe 1.0、PCIe 2.0、PCIe 3.0、PCIe 4.0、PCIe 5.0、PCIe 6.0(于 2022.01 发布),传输速率每过一代增加一倍,PCIe 7.0计划在2025年发布。
值得一提的是,所有的PCIe卡版本都是向后兼容的,也就是说任何版本的PCIe卡和主板都可以以最低版本的模式工作。下表展示了6个传统PCIe版本之间的传输速率和带宽比较(以原始版本N.0为例)。
由于x32并不太常见,上表中就没有写x32的速率。理论上,PCIe 6.0最高支持了256GB/s的带宽。
如果考虑一下线路编码,可以有一些更准确的吞吐量/带宽:(可以看到从PCIe 3.0之后,线路码使用128b/130b编码。这种编码方式是为了实现更高的速率,并加入了均衡、DFE等措施以保证信号完整性。与之前的8b/10b编码相比,128b/130b编码的开销从20%降低到了2%以下)
PCIe也有多种规格,x1、x4、x8、x16、x32,x 后面的数字代表 PCIe 插槽有多少条通道(数据如何进出 PCIe 卡)。一个 PCIe x1 插槽有1个通道,可以每个周期传输1位数据。一个 PCIe x4 插槽有4个通道,每个周期可以传输4位数据(依此类推)。x32接口在实际应用中并不常见,通常只在需要极高吞吐量的特殊场合中才会被使用,例如某些高性能计算或特定的企业级存储应用
Intel SPR、AMD Genoa 平台开始支持PCIe 5.0总线,有些NVMe SSD磁盘是PCIe Gen4 或 Gen5 得设备;在Mellanox的网卡中,CX6 是 PCIe Gen4.0 x16;CX7 是 PCIe Gen5.0 x16/x32。
在Linux系统中,可以通过 lspci -vvv -s $bdf 的命令查看设备是什么PCIe规格,命令输出中查看 “LnkCap”相关的信息,如:Speed 16GT/s, Width x16 就是PCIe 4.0 x16的设备(还有类似这样的信息“[V0] Vendor specific: PCIeGen4 x16”);如下图所示就是查看一个CX6网卡的信息。
参考资料:
https://knowledge.ipason.com/ipKnowledge/knowledgedetail.html/1403
https://fpga.eetrend.com/content/2022/100566300.html
https://community.fs.com/cn/article/pcie-card-selection-guide.html
https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectX-6-dx-datasheet.pdf
https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectx-7-datasheet-Final.pdf
Original article: PCIe代次及传输速率,Gen3/Gen4/Gen5等
©2025 笑遍世界. All Rights Reserved.
2024-05-04 15:58:53
就是个人记录,方便自己查找信息。
Original article: Linux Shell命令基础汇总(长期更新)
©2025 笑遍世界. All Rights Reserved.