#679 Windows 11

2021-10-15

https://www.microsoft.com/zh-cn/windows/windows-11-specifications

主要的变化

  1. 新的 UI 设计
    根据网上流传的图片,还挺好看的,令人耳目一心
  2. 支持 Android App

其他:

  1. 新的应用商城
  2. 整合了微软的 Teams 作聊天功能
  3. 游戏相关的功能
  4. DirectX 12 Ultimate
  5. DirectStorage
  6. Auto HDR
  7. XBox 相关整合

硬件要求

CPU (1GHz,双核),内存 (4G),磁盘 (64G)

  1. CPU: 1GHz,双核
  2. 内存: 4G
  3. 磁盘: 64G
  4. UEFI 安全启动
  5. TPM 2.0
  6. 显卡:支持 DirectX 12, WDDM 2.0 驱动

CPU, 内存, 磁盘方面的要求,主流的配置应该都能满足。
UEFI 安全启动

检测工具

MS 官方工具只能给出一个是否的答复,太弱了(正在开发新的监测工具)。

社区有提供一个检测工具:WhyNotWin11.exe (GitHub 下载)

第一次检测:

WhyNotWin11 Result Before

  1. 引导方式:Legacy
  2. CPU 兼容性:不支持
  3. 硬盘分区形式:分区形式不是 GPT
  4. 安全启动:禁用或未检测到
  5. TPM 版本:不存在 TPM 模块或 BIOS 禁用

除了 CPU 之外,其他几项都可以在 BIOS 中设置。
TPM:如果是 Intel 就找一下 Platform Trust Technology, AMD 可能是 fTPM。

WhyNotWin11 Result After

我的 CPU 是六代 i5,这就真的没办法了,i5 的话,最低要求是八代 (完整的 CPU 要求清单:Windows 11 supported Intel processors

抛弃才发布六年(2015/09)的六代 CPU 绝壁是一个愚蠢的决定,希望微软耗子喂汁!

Tiny11(2023-02-07)

根据微信公众号高效程序员文章《Win11 极限精简版发布:2G内存就能流畅运行!》中的信息,有人基于 Windows 11 Pro 22H2 打造了 Tiny11,不需要 TPM 和安全启动。

#676 元宇宙

2021-10-10

元宇宙

最近总听说这个词,这到底是是个啥?

元宇宙(英语:Metaverse)一词由前缀“ meta”(意思是超越)和词干“ verse”(通过逆向构词法从“宇宙(universe)”得来)组成;简称:MVS;这个词通常用来描述未来互联网迭代的概念,由连接到一个可感知的虚拟宇宙的持久、共享的3D 虚拟空间组成。广义上的元宇宙不仅指虚拟世界,还指整个互联网,包括增强现实的整个范围。

历史

这个词是在尼尔·斯蒂芬森在1992 年的科幻小说《雪崩》中创造的,其中人类作为化身,在一个使用现实世界模拟的三维虚拟空间中与彼此和软件客户端进行交互。斯蒂芬森用这个词来描述一个基于虚拟现实的互联网后继者。类似于元宇宙的概念很早就以各种名称出现在赛博朋克小说类型中,最早可以追溯到1981 年的中篇小说《真实姓名》。史蒂芬森在《雪崩》的后记中表示,在完成小说后,他了解了《Habitat》 ,这是一款类似于元宇宙的大型多人在线角色扮演游戏。

看这个解释,就是虚拟世界啊,应该是《第二人生》,《头号玩家》类似的概念。
在回头看看国内的相关新闻,这通概念炒作,估计是有人缺钱了。

Update @ 2021-10-29

扎克伯格宣布 Facebook 公司更名为 Meta,就是来自 Metaverse,股票代码也由 FB 改成 MVRS,同时更改公司发展方向为“元宇宙优先”。

社交网络中的种树、种菜、养鸡、停车、开餐厅确实有很多人喜欢玩,或许今后技术发达之后,科幻电影中的那些第二人生的场景也会真的出现,但我不认为目前很有意义。
虽然可能 Facebook 的新战略能为他们带来新的赢利点,但对于其他人来说参考价值不大。
尤其是在中国,我们还是比较注重现实世界一些。

参考资料与拓展阅读

#675 c const

2021-10-06

C 常量

c 常量的两种实现方法:

  1. define
  2. const 关键字

const 关键字

  • 常量 const int a / int const a
    a 是一个 int 类型常量
  • 常量指针 const int *a / int const *a
    a 是一个指针,指向一个 int 类型常量
  • 指针常量 int *const a
    a 是一个指针常量(指针类型(int *)的常量), 指向的位置不能修改
  • 指向常量的指针常量 const int *const a
    同上,不过更进一步,指向位置是一个常量(const int),不能更改

问题

int main()
{
    const int a = 1;

    int *ptr = (int *)&a;
    *ptr = 2;
    printf("a = %d\n", a);

    return 0;
}

如果用 gcc 编译会输出:a = 2, g++ 的话,会输出 a = 1, WHY? 为什么 C 允许修改常量,是不是一个 BUG?

原因

参考网上诸多资料,我的理解如下:

  1. C 会给 const 常量正常分配内存,const 只会在编译时起到静态分析的作用(限定常量不能作为左值)。
  2. C++ 则是将 const 常量放在符号表,如果用指针指向这个常量,会新分配内存地址,操作也是操作的这个内存空间,符号表中存储的值不受影响。
  3. 符号表在内存布局中的那一部分?

参考资料与拓展阅读

#673 scrypt 加密

2021-10-03

在 Python 标准库 hashlib 中见过 scrypt,说是 3.6 引入。
然后,这两天看到的资讯说是 Django 4 将加入了 scrypt 做密码哈希,据说安全性比之前的 PBKDF2 更好。
PS: 由于需要 OpenSSL 1.1+ 的支持,以及会消耗更多的内存,所以不是默认选项。

#671 Python 内置函数: hash

2021-10-01

一个不值一提的小问题:
有个地方使用 hash 方法来做哈希计算,将字符串转换成一个数值,但是发现改用 Python 3 之后,这个值每次运行都不一样了。