【杂项】部分基础知识
Linux,自由、开源的类Unix操作系统。其内核由 Linus Torvalds 发布于1991年。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
gitHub是一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名gitHub。hub,集线器、中心。
代码行(line of code)指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:job control language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。
一代码行(1LOC)的价值和人月均代码行数可以体现一个软件组织的生产能力。
组织可以根据对历史项目的审计来核算组织的单行代码价值。
代码行LOC常用于源代码的规模估算,常使用的单位有:
- SLOC(single line of code)
- KLOC(thousand lines of code)
- LLOC(logical line of code)
- PLOC(physical line of code)
- NCLOC (non-commented line of code)
- DSI(delivered source instruction)
Flex(FlexibleBox的缩写),意思是“灵活布局”。2009年,W3C 提出了一种新的方案——Flex 布局,可以简便、完整、响应式地实现各种页面布局。
npm(Node Package Manager),一个软件包管理系统,用于管理 JavaScript 编写的软件包。 2009年作为一个开源项目来帮助JavaScript 开发人员轻松共享打包的代码模块。
yarn,也是一个包管理器,和npm没有本质区别。解决了早期npm的一些问题(npm新版本基本上已经解决了自身的老毛病)。
dpkg (package manager for Debian)是 Debian 及其衍生系统如 Ubuntu 中的一个重要的包管理工具。
apt(Advanced Packaging Tool), Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
apt 是 apt-get的简化版。
pip是一个通用的Python包管理工具,全称是package installer for python
brew:是macOS上的一个流行的包管理器,用于安装软件。
snapd是一个守护进程,用于支持snap格式的软件包。Snap是一种通用的软件包格式,它允许开发者将应用程序及其依赖项打包在一起。
可以通过sudo snap install命令来安装其他snap应用
CUDA(Compute Unified Device Architecture),是显卡厂商 NVIDIA 推出的运算平台。
CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
cudnn(CUDA Deep Neural Network library):为深度学习计算设计的软件库。
nvcc(NVIDIA CUDA Compiler):CUDA的编译器
一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系-CSDN博客
Python相关
Python 文档字符串,在函数体的第一行使用一对三个单引号 ''' 或者一对三个双引号 """ 来定义文档字符串。
Python 文档字符串(DocStrings) | 菜鸟教程
python中2种不同的包导入方式:
# 方式一:import my_package.module1
import my_package.module1
my_package.module1.hello() # 必须带完整前缀
# my_package 本身也是一个可访问的对象(包)
# 方式二:from my_package import module1
from my_package import module1
module1.hello() # 直接用 module1
# my_package 不在当前命名空间中(除非另外导入)
python的猴子补丁(Monkey Patching) - 知乎
Monkey Patching只是在 运行时(run time) 动态替换属性(attributes)。 而在Python中,术语monkey patch指的是对函数(function)、类(class)或模块(module)的动态(或运行时)修改。
计算的本质是基于规则对符号串进行变换。
“FLAGS” 是计算机领域的常用术语,尤其是在命令行工具和科学计算实验中。它指的是:可配置的变量
CPython 既是 Python 语言最主流、最官方的“实现”(implementation),其核心部分也是一个 “解释器”(interpreter)。其他实现还有 Jython(用 Java 编写)、IronPython(用 C# 编写)、PyPy(用 RPython 编写)等。(via AI)
CPython是什么?PyPy是什么?Python和这两个东西有什么关系呢?Python的底层使用什么语言实现?学习Python需要学习底层实现吗? - 知乎
CPython, Pypy, MicroPython...还在傻傻分不清楚? - 知乎
python=3.11.5=h955ad1f_0,中的h955ad1f_0,是 Conda 包的构建字符串(Build String),它的核心作用是唯一标识一个软件包在特定条件下的编译构建结果,从而确保环境的二进制兼容性和绝对可复现性。(via AI)
- h955ad1f:构建哈希(Build Hash),是基于所有构建输入生成的唯一指纹。
- 0:构建编号(Build Number),表示这是该版本的第几次构建(从0开始)。
make工具的核心是“增量编译”。它通过比较源文件(如 .c、.cpp)和目标文件(如 .o)的最后修改时间来决定是否需要重新编译。
make clean是一个在特定情况下使用的维护命令,其目的是主动、彻底地清理之前构建过程中生成的所有中间文件和最终产物。
遇到以下情况时,应先执行 make clean:
-
修改了重要的头文件后,头文件(
.h)不会被比较。 -
更改了编译选项、编译器或
Makefile。 -
项目结构发生重大变化。
-
遇到了莫名其妙的链接错误或运行时崩溃。
-
需要为一个干净的发布或测试进行构建。
-
C:\ProgramData\ssh\sshd_config: OpenSSH for Windows服务器全局配置,影响所有连接到此电脑的客户端。 -
C:\Users\<用户名>\.ssh\config: SSH 客户端配置,仅影响当前用户使用ssh命令连接其他远程服务器时的行为。
大模型相关
Claude Code 启用 LSP 完全指南:2 分钟让 AI 编程速度提升 900 倍 - 小灰灰的笔记
LSP(Language Server Protocol,语言服务器协议)是微软在 2016 年提出的一个协议。作用是将语言智能和编辑器解耦,同一个LSP服务器可以同时向多个LSP客户端提供服务。避免重复造轮子的同时,提高响应速度,可以将查询从 30 秒降至 50 毫秒。
GUI - 图形用户界面(Graphical User Interface)
CLI - 命令行界面(Command Line Interface)
TUI - 终端用户界面(Terminal User Interface)(也称为 基于文本的用户界面(Text-based User Interface))
八卦
Anaconda3-5.3.1是最后一个数字号版本,Anaconda3-2018.12是第一个发布日期版本号
程序员界 DRY(don't repeat yourself)
TBD 是 to be done 的简称。想了解更多关于代码注释的有趣知识,可以去知乎搜索“你见过哪些奇趣的代码注释”。
Slurm 是一个开源的、高度可扩展的集群管理和作业调度系统,主要用于大型计算集群,特别是高性能计算(HPC)领域。
-
全称:Simple Linux Utility for Resource Management(简易Linux资源管理工具)。
-
核心功能:它负责管理一个计算集群中的所有计算节点(服务器),并高效、公平地分配计算资源(如CPU、内存、GPU)给用户提交的“作业”(计算任务)。
-
主要命令:用户通过
sbatch(提交作业)、squeue(查看作业队列)、scancel(取消作业)等命令与Slurm交互。

浙公网安备 33010602011771号