找书的话首推Z-Library,一般不是太冷门的书都有,如果实在冷门只能另寻他法

    苹果支持甩锅给 curl 维护者

    苹果让 Curl 作者解决它的问题

    2021-11-19 15:24

    一位 IT 工程师在 Twitter 上 联络苹果支持@AppleSupport,请求更>新 macOS12 中与 Curl 有关的信息“If curl is built against Secure Transport, then the certificate string can either be the name or public key hash of a certificate/private key in the system or user keychain”,称内容已经失效。结果 @AppleSupport 让他联络 Curl。Curl 作者 Daniel Stenberg 回应说,“想象一下,你经营着一家市值万亿美元的公司,将各种开源组件捆绑到产品中,每年获利数十亿美元。当用户就你提供的产品寻求帮助时,你却把用户推给开源项目。这个项目是由志愿者管理的,你从未赞助过一分钱。” Who would do something like that?

    作为开源管理者,没有义务提供客户服务,但作为商品售卖者,苹果却有义务。苹果在自己有义务负责的产品里捆绑了不对客户负责的开源软件,却没有接管这部分没有客户负责的组件,而是依然将负责任务推给依靠道德和兴趣的志愿者,这合理么?更简单一点说,你卖钱了,当然要完全为客户负责,客户可不是自行下载的curl,而是你苹果带的。src

    没有那么好的表达能力,但是上面就是我认同的观点

    前几天看到中二物理所的一个视频,说到科普这件事情。
    大致体会就是呢,知识是永远学不完的,也未必能够学以致用。但是,科普的思维方式可以举一反三。(

    平成物语看着好压抑啊

    属于是烂在自己的舒适圈里了。

    属于是烂在自己的舒适圈里了。

    所以我折腾 Nextcloud 的意义何在呢?体验也不好(带宽不够),APP 体验不好(Nextloud Android 不流畅好用) ::2233:2233E5A898_E697A0E8AFAD::

    开源相册管理 https://piwigo.org/

    疫情

    开始封校了。

    Apple 开源的东西不少,不过有个特点,很多项目都是买过来之后开源的(或者说不是完全原创的)
    Swift 所依赖的 LLVM 是买 UIUC 的,但是 Apple 前期的支持对 LLVM 的成长起了非常重要的作用,现在 LLVM 社区已经是典型的大公司支配的开源社区,Apple 的主导权被 Google 分了一半了
    另外 LLVM 不是单独一个项目,还有 Clang 前端、libc++ 标准库、LLDB 调试器、lld 链接器等子项目,当然 Apple 应该不是在所有子项目中都活跃的。Swift 和 LLVM/Clang 同出 Chris Lattner 之手,翻一下会发现这些项目的代码风格是非常相似的
    除了 Swift 之外,LLVM 还是 Rust、Julia 等语言的基础,AMD 的 AOCC 以及 GPU 驱动也是基于 LLVM 的
    Swift 所依赖的基础库 Foundation 也是一块开源的,但是 Objective-C 版本的 Foundation 貌似并没有开源,虽然如此,这俩库共同依赖的 C 库 CoreFoundation 却是开源的
    为 Swift 提供智能提示功能的 SourceKit 是开源的,我没看过源码,猜测这个应该是严重依赖于 Swift 编译器本身的
    Apple 为 Swift 和 OC 钦定的并行解决方案 libdispatch 是开源且跨平台的
    WebKit 是当年 OS X 需要一个浏览器,于是就 fork 了 KDE 的 KHTML 和 KJS,由于 KHTML 当时貌似是 LGPL 协议,所以 WebKit 原则上是必须开源的。后来乱拳打死老师傅,现在没人知道 KHTML 了。之后历史又重复了自身,WebKit 被 Google fork 出的 Blink 乱拳打死老师傅
    需要注意的是 WebKit 也是个巨型项目,内部包含 WTF、WebCore、WebKit、JavaScriptCore 和 WebInspector 等多个子项目

    UNIX 系统标准的打印机管理系统 CUPS 是 Apple 买过来的,现在是开源的,之前是不是不知道
    Apple 还买了个数据库软件 FoundationDB 开源在 github 上
    此外 Apple 平台的 OS 内核 XNU 一直都是开源的,这个也是拼的 BSD 和 Mach,需要注意的是虽然 kernel 开源,但是在换到 x86 之后就没有完整的开源驱动栈了,Apple 官方关于驱动的资料也非常稀有(尤其是非桌面平台),间接导致 XNU 内核的开源系统失去了意义。XNU 源码树里面还包含 Apple 的驱动框架 IOKit,号称可以写跨平台驱动,然而实际只能写 XNU。总之摆明了就是跑 Apple 系统只能用 Apple 硬件。所以这个应该算是 Apple 最没用的开源项目 ...
    此外还有一些底层组件如 dyld、Security、Objective-C 和 Swift 的 Runtime 等是开源的,不过这些东西如果不是 hack Apple 平台的话貌似没人关注

    除此之外 Apple 还合作参与了若干技术标准和开源项目,比如和微软合作的 TrueType,Apple 自己还提出了 OpenCL (可以看下 OpenCL 的 Logo,很明显的 Apple 风,和 Khronos 其他标准都不一样)。Apple 在 W3C 也有很强的存在感,不过这个不好统计具体有哪些工作。
    不过 Apple 对技术标准的态度让人很纠结,比如对 OpenType 的支持不是很好,为了推 Metal 直接 deprecate 了 OpenGL 和 OpenCL,并且一直没有 Vulkan 的官方实现之类的奇葩事情

    Apple 曾经试图把最好的文件系统 ZFS 集成到自己平台上,不过最后项目死了,直到最近几年才换到了 APFS。Apple 也集成了最好的动态跟踪工具 DTrace,现在的 Instruments 就是基于这玩意的。这俩东西一开始都是 Sun 开发的,不知道 Apple 参与了多少。现在 Linux 上面的支持貌似还不是很成熟,想用的话欢迎入 FreeBSD。

    有一点需要注意的是 Apple 技术上的核心竞争优势之一:桌面环境和 GUI 框架( AppKit 和 UIKit )一直没有开源,很多周边的核心框架( CoreGraphics 等)也没有开源,不过我个人倒是觉得对于学习目的来说,这类项目的 API 设计重要性远超实现,倒是 LLVM、JavaScriptCore、Security、RTS 和 libdispatch 这些库的实现、优化细节都是非常重要的。

    哦对了还有最重要的:Apple 最大的优势其实还是钱,Apple 的母公司曾经向 OpenSSL、OpenBSD 等开源项目捐赠数百万元



    ::2233:2233E5A898_E98381E997B7:: 养大白菜

    熬夜不可取
    得有原则

    Handsome 体验极差的夜间模式

    Markdown 的空格什么的讲究还挺多,这个基础篇讲得还不错。

    推荐个刚发现的开源应用,DarQ(https://github.com/KieronQuinn/DarQ/ ),通过 shizuku 授权后可以针对某个应用进行强制暗色主题着色。

    效果肯定不如软件自身适配来得好,但可以打一打那些死活不肯适配暗色的国产应用,以及某些莫名其妙把暗色主题当作付费点的应用。


    src 笑死


    钱钱,嘿嘿

    又是破防的一天
    全寝脱单和全寝单身


    把 TT-RSS 也搬一起了,内存还行。
    Qbittorrent 是真的占内存


    白丝和肉肉绝了

联系方式

关于我

那年今日
19 月前

PVE开启网卡直通,显卡直通,USB直通。请务必看完此文章,再结合自己实际,操作,如果成功,请再下面评论,自己的平台,有助于网友交流。# 第一步:确认自己的主板CPU是否支持Vt-d功能不支持就搞不了直通。intel要b75以上芯片组才支持。也就是说intel4代酷睿处理器以上,都支持。amd不明。VT-D是io虚拟化。不是VT-X,具体请参考下面文章https://zhuanlan.zhihu.com/p/50640466有很多新手,以为主板开启虚拟化功能,就能直通了,其实不是!要开启vt-d才能io虚拟化。AMD平台是iommu,某些OEM主板上叫SRIOV。请注意。# 第二步:开启iommu#编辑grub,请不要盲目改。根据自己的环境,选择设置 vi /etc/default/grub #在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet" 然后修改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" 如果是amd cpu请改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"如果是需要显卡直通,建议在cmdline再加一句video=vesafb:off video=efifb:off video=simplefb:off,加了之后,pve重启进内核后停留在一个画面,这是正常情况GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=vesafb:off video=efifb:off video=simplefb:off"修改完成之后,直接更新grub update-grub注意,如果此方法还不能开启iommu,请修改  /etc/kernel/cmdline文件并且使用proxmox-boot-tool refresh 更新启动项# 第三步 加载相应的内核模块echo vfio >> /etc/modules echo vfio_iommu_type1 >> /etc/modules echo vfio_pci >> /etc/modules echo vfio_virqfd >> /etc/modules使用update-initramfs -k all -u命令更新内核参数重启主机# 第四步 验证是否开启iommu重启之后,在终端输入dmesg | grep iommu出现如下例子。则代表成功[ 1.341100] pci 0000:00:00.0: Adding to iommu group 0[ 1.341116] pci 0000:00:01.0: Adding to iommu group 1[ 1.341126] pci 0000:00:02.0: Adding to iommu group 2[ 1.341137] pci 0000:00:14.0: Adding to iommu group 3[ 1.341146] pci 0000:00:17.0: Adding to iommu group 4此时输入命令find /sys/kernel/iommu_groups/ -type l #出现很多直通组,就代表成功了。如果没有任何东西,就是没有开启# 显卡直通理论上AMD RADEON 5xxx, 6xxx, 7xxx, Navi 5XXX(XT), NVIDIA GEFORCE 7, 8, GTX 4xx, 5xx, 6xx, 7xx, 9xx, 10xx and RTX 16xx/20xx/30xx都可以成功直通。但是对于NVIDIA显卡,建议使用9代以上中端卡直通,且使用最新的驱动。对于AMD的APU3/5系列核显/RX4XX/5XX/6XXX均无法完美直通。无法使用本文提供的教程直通,请注意,有其他的教程,但由于我没有卡,无法撰写教程## 1、直接屏蔽显卡驱动直通AMD显卡,请使用下面命令echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf #直通NVIDIA显卡,请使用下面命令 echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf #直通INTEL核显,请使用下面命令,注意!如果使用Gvt-G,请不要使用下面的命令 echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/blacklist.conf echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf ## 2、把显卡绑定到vfio-pci使用lspci 查看自己的显卡PCI地址,如02:00使用lspci -n 查看显卡的did和vid。我这边是02:00,可以看到下面输出root@pve1:~ lspci -n 00:00.0 0600: 8086:3ec4 (rev 0a) 00:01.0 0604: 8086:1901 (rev 0a) 00:02.0 0300: 8086:3e9b 00:14.0 0c03: 8086:a12f (rev 31) 00:17.0 0106: 8086:a102 (rev 31) 00:1c.0 0604: 8086:a114 (rev f1) 00:1d.0 0604: 8086:a118 (rev f1) 00:1d.2 0604: 8086:a11a (rev f1) 00:1d.3 0604: 8086:a11b (rev f1) 00:1f.0 0601: 8086:a148 (rev 31) 00:1f.2 0580: 8086:a121 (rev 31) 00:1f.3 0403: 8086:a170 (rev 31) 00:1f.4 0c05: 8086:a123 (rev 31) 00:1f.6 0200: 8086:15b8 (rev 31) 01:00.0 0200: 15b3:1003 02:00.0 0100: 10de:1381 (rev 03)02:00.1 0100: 10de:0fbc (rev 03) 03:00.0 0108: 8086:f1a6 (rev 03) 04:00.0 0604: 1b21:1080 (rev 04) 02:00.0 02:00.1一个是GPU,一个是声卡,两者都要一起直通,所以通过命令,把2者都绑定到vfio-pci上。echo "options vfio-pci ids=10de:1381,10de:0fbc" > /etc/modprobe.d/vfio.conf #注意,上面这条命令,ids=后面跟直通组的所有设备。中间以英文逗号隔开。自己的设备自己替换。上述操作完成之后,再检查一下,是否将例子内容替换成自己的。使用以下命令查看。cat /etc/modprobe.d/blacklist.conf cat /etc/modprobe.d/vfio.conf## 3、更新内核对于nvidia显卡,需要echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.confupdate-initramfs -k all -u 随后重启## 4、开始直通新建一个虚拟机。根据自己的爱好,选择ovmf或者seabios,通常来说两者对独显直通没有影响,建议nvidia 9系以上选择OVMF,其他选择seabios。打开虚拟机面板,正常安装系统,并且开启远程桌面或者安装好向日葵。随后点击添加 PCI设备 如下图,注意!!!不要勾选主GPU!。如果不能勾选PCIE,那么一定要把虚拟机改成Q35类型。随后开机,如果能正常启动,那么就安装NVIDIA最新驱动。提示:由于某些消费级主板PCI的设计问题,你可能只能直通第一个PCIe x16槽的显卡。# 核显直通如果想要核显显示到显示器。虚拟机请使用Seabios,机型为i440fx并且在bios中开启CSM。估摸着核显需要到pci的00:02位置才能亮。目前IGD( Intel Graphics Device)直通理论上支持3代酷睿以上。但是从目前的直通结果看,比较容易的是5代-10代。3-4代直通成功概率低,受多方面影响。11代及其之后,直到目前,也能正常直通,建议11代以上,升级到内核6.2,再直通amd 3400g 5xxg 需要vender reset才能直通(本文教程不适合)。## 基于5-10代的CPU核显和11-13代直通给linux。请优先以下面这种方式直通:针对于qemu-sever大于6.2-3版本,就是pve6.3以上版本。将bios改成seabios,机器类型选择i440fx,使用传统模式装好系统,开启远程。将显卡设置成无,在核显后面添加legacy-igd=1,如hostpci0: 0000:00:02.0,legacy-igd=1。此时机器会出现显示器画面。如果出现画面,但是核显不能正确驱动,添加一个args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on 最后的配置文件,加上声卡可以参考如下:args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on hostpci0: 0000:00:02.0,legacy-igd=1 hostpci1: 0000:00:1f.3 machine: pc-i440fx-7.2如果上面操作还是不行,请尝试添加vbios,关于什么是vbios,请百度一下,如何提取vbios,请参考下面文章https://foxi.buduanwang.vip/yj/1602.html/,本文不适用。## 基于5-10代的CPU核显直通黑苹果。请优先以下面这种方式直通:黑苹果需要OVMF启动,一般需要定制虚拟机bios,以在虚拟机启动的时候,在虚拟机内驱动核显。定制bios,请加QQ 70083721,需要付费定制。## 基于11-13代的CPU核显直通。请优先以下面这种方式直通:看这个吧,https://blog.csdn.net/coolhz/article/details/130234903心态炸了。不想写了。如果是要显示虚拟机bios,请加QQ 70083721,需要付费定制虚拟机bios。# 硬盘直通此部分请参考https://foxi.buduanwang.vip/virtualization/1754.html/# 网卡直通正常情况下,网卡直通不会有什么困难。在开启iommu之后,即可在Web页面上,将网卡作为PCIe设备添加即可。但,你需要确保没有直通到PVE的管理网口。否则你的PVE会失联。且PVE没有使用此网卡。下图为PVE7.2直通网卡的界面。注意!由于供应商的问题,可能一张物理网卡会有多个逻辑的网口,这些网口会在同一个PCIe地址上,如下这有2个I350的网卡,均在07:00这个位置上。将此类网卡直通,有2种情况。1、一个网口为PVE管理口,一个网口直通给虚拟机此种情况,请参考上面,进行直通,如上上图,请勿勾选 所有功能。2、分别直通给虚拟机。由于多个网卡位于同一个PCI地址上,可能会在一个iommu组里,只能将这些网卡同时直通给一个虚拟机,否则会报错。你需要确认网卡是否在同一个iommu组,执行下面命令:for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU Group %s ' "$n"; lspci -nns "${d#*/}"; done|grep Eth  如下输出:root@pve3:~ for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU Group %s ' "$n"; lspc IOMMU Group 17 04:00.0 Ethernet controller [0200]: Mellanox Technologies MT27500 Family [ConnectX-3] [15b3:1003] IOMMU Group 19 07:00.0 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01) IOMMU Group 20 07:00.1 Ethernet controller [0200]: Intel Corporation I350 Gigabit Network Connection [8086:1521] (rev 01) 从上面输出看,这上面的2个I350网卡分别在组19和20上,就意味着可以分开直通给虚拟机。如果同一个iommu组,那么就需要利用PCIe桥的ACS特性,这部分请参考IOMMU是如何划分PCI device group的? - 知乎 (zhihu.com)情况1: 版本低于7.1你需要安装破解内核,才能开启ACS强制。这部分参考:https://foxi.buduanwang.vip/linux/1522.html/情况2:PVE版本为7.1+你可以在GRUB上配置一个命令即可完成。在grub文件里添加一个参数pcie_acs_override=downstreamgrub如下GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream" GRUB_CMDLINE_LINUX="" 随后进行保存,并且更新内核,更新grubupdate-grub update-initramfs -k all -u 随后重启# 黑苹果虚拟机可以创建黑苹果,随后直通硬件到虚拟机,可以获得相关的性能提升。黑苹果,你需要以PCI方式直通硬件(请勿勾选PCIe)。最好使用免驱显卡,这样可以直接输出到显示器。如果不是免驱显卡,那么请自行进系统之后,配置Opencore。黑苹果不支持gvt-g