【鸿蒙操作系统】- 1:实习阶段的一些总结
本文目录
- 1. 序
- 2.鸿蒙与欧拉的概念
- 微内核
- LiteOS
- 鸿蒙微内核
- POSIX标准
- 3.实习干了些什么
- 身份鉴别
- 访问控制
- 恶意代码防范
- 安全审计
- 入侵防范
- 性能压测
- 检查系统版本
- 网络测试
- 常见的linux测试命令
1. 序
之前在某国企实习的时候,有幸参与了鸿蒙系统、鸿蒙欧拉的项目,主要是做鸿蒙系统结合国家主要产业的设备进行工作测试,这里不涉及太多详细情况,主要是总结自己对鸿蒙操作系统的知识梳理和实习时的一些收获。
2.鸿蒙与欧拉的概念
OpenHarmony
是基于微内核、面向全场景的分布式操作系统
。并不是安卓系统修改而来的,与安卓、IOS是不一样的操作系统。
其内核可以认为是由 Linux内核、LiteOS、鸿蒙微内核
三个部分构成的多内核操作系统。 因为早期的研发是参考了Linux内核并以此为底层进行内核设计开发,所以兼容Linux应用程序(Debian系列的Linux内核
,其后缀为.deb
)。
鸿蒙微内核应该是参考Minix3
开发的( Minix3属于精简的类Unix系统
,使用的就是微内核
)。
因为是多内核的,所以OpenHarmony
引入了内核抽象层(Kernel Abstract Layer, KAL
),通过屏蔽不同内核之间的差异
,向上层提供统一的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。这种设计使得系统能够兼容 Linux 的核心功能和命令。
手机上使用的 鸿蒙OS系统(Harmony OS) = AOSP + EMUI 界面+ HMS服务 +鸿蒙API接口
。
OpenEuler 是一个开源的 Linux 操作系统(Red Hat系列的Linux内核
,其包后缀是.rpm
,最开始是基于 Red Hat Enterprise Linux(RHEL)的 CentOS 分支进行定制
),由华为发起并贡献核心代码,旨在为数据中心、云计算、边缘计算等场景提供高性能、高可靠性和高安全性的操作系统。它由开放原子开源基金会
孵化,目标是构建一个开放、创新的操作系统生态。
微内核
那么微内核是什么呢?
微内核(Microkernel)
是一种操作系统内核架构,其核心思想是将操作系统的核心功能最小化,仅保留最基本的服务,如进程管理、线程调度、内存管理、进程间通信(IPC
)等。其他功能,如文件系统、设备驱动、网络协议等,则作为用户态服务
运行。
LiteOS
LiteOS 是华为开发的一款轻量级实时操作系统(RTOS),专为物联网(IoT)设备和嵌入式系统
设计。
LiteOS 的内核非常小巧,基础内核体积可以裁剪至不到 10KB,适合资源受限的嵌入式设备。
LiteOS 集成了多种物联网通信协议
,如 MQTT、CoAP、LwM2M 等,方便设备与云端的互联互通。
鸿蒙微内核
鸿蒙微内核则在 LiteOS 的基础上进行了增强和扩展,继承了其低功耗和高实时性特点,同时通过微内核架构和分布式能力,支持更广泛的设备和应用场景。
鸿蒙微内核通过模块化设计
,将核心功能精简至最小,提供高效的进程间通信(IPC)
和资源管理能力
。
另一个特点是采用形式化验证方法,增强系统安全性和可信执行环境(TEE)
,降低受攻击几率。
POSIX标准
POSIX就是操作系统接口规范
,POSIX(Portable Operating System Interface for Unix),许多现代操作系统(如 Linux、macOS、FreeBSD
等)都实现了 POSIX 标准,以提高兼容性和可移植性。
POSIX 包括的内容
系统接口:定义了操作系统内核提供的功能,如进程管理、文件系统操作、信号处理、线程管理等。
Shell 和工具:标准化了命令行工具和脚本语言(如 sh、awk、sed 等),确保这些工具在不同系统上具有一致的行为。
实时扩展:支持实时操作系统(RTOS)的特性,如实时线程调度、优先级继承等。
线程支持:定义了线程(pthread)的创建、同步和管理接口,支持多线程编程。
网络接口:标准化了网络编程接口,如套接字(socket)编程。
3.实习干了些什么
主要是对鸿蒙操作系统还有欧拉操作系统进行一些操作系统方面的测试,功能、性能、安全等方面,这会进行个总结。
身份鉴别
这个主要是对登录的用户进行身份标识和鉴别,身份标识有唯一性,身份鉴别信息具有复杂度要求,需要定期更换。
- 查看当前可登录用户,命令
cat /etc/passwd | grep bash
,如下图所示。
cat /etc/passwd
的输出(即 /etc/passwd
文件的内容)会被传递给 grep bash
命令。|
是管道,grep
是一个用于搜索文本内容的命令,可以在文件或输入流中查找匹配指定模式的行。
所以这个命令的作用是:从 /etc/passwd 文件中筛选出所有默认 Shell 为 bash 的用户信息
。
Shell是操作系统中的一个用户界面
,它允许用户与操作系统进行交互。Shell 提供了一个命令行界面(CLI),用户可以通过输入命令来执行各种操作,例如运行程序、管理文件和目录、配置系统等。
大多数 Linux 用户使用 Bash 作为默认 Shell,因此筛选这些用户可以快速找到使用标准 Shell 的账户。某些特定场景下,系统管理员可能需要找到所有使用 Bash 的用户,以便进行脚本管理、安全审计
或其他系统维护任务。
输入命令cat /etc/passwd
可以看到如下的输出。每行对应一个用户,字段之间用冒号(:)分隔。字段的含义如下:
用户名:用户的登录名。
密码:现代系统中通常是一个占位符(如 x),密码信息存储在 /etc/shadow 文件中。
用户 ID(UID):用户的唯一标识符。
组 ID(GID):用户所属的用户组 ID。
用户信息:用户的全名或其他描述信息。
主目录:用户的家目录路径。
默认 Shell:用户登录时使用的 Shell。
root@demo:~# cat /etc/passwd | grep bash
root:x:0:0:root:/root:/bin/bash
demo:x:1000:1000:demo:/home/demo:/bin/bash
root@demo:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
- 查看是否有空口令用户:
awk -F : '($2=="")' /etc/shadow
awk
是一个功能强大的文本处理工具,常用于解析和处理结构化的文本文件。它可以根据指定的分隔符将每行文本分割成多个字段,并对这些字段进行操作。
-F
选项用于指定字段分隔符。在这个命令中,字段分隔符是冒号(:)。
/etc/shadow
文件的每一行都包含用户密码信息,字段之间用冒号分隔。
这是 awk 的模式匹配部分,用于指定需要处理的行。$2 表示每行的第二个字段,==“” 表示检查该字段是否为空。
比如输入命令后会得到:
root:$6$abc123$...:18385:0:99999:7:::
daemon:*:18385:0:99999:7:::
nobody:*:18385:0:99999:7:::
testuser::18385:0:99999:7:::
- 查看身份标识唯一性:
cat /etc/passwd | awk -F : '{print $1,$3}' | sort -t ' ' -k 2n | uniq -f1 -D
这个命令的作用是检查系统中是否存在具有相同用户 ID(UID)的用户,即检查用户身份标识(UID)的唯一性。如果存在多个用户共享同一个 UID,则表示身份标识不唯一,这可能是一个配置错误或安全问题。
刚刚我们提到过,/etc/passwd
是一个包含系统用户信息的文件,每一行代表一个用户,字段之间用冒号(:)分隔。其格式如下:
用户名:密码占位符:用户ID(UID):组ID(GID):用户描述:用户主目录:默认Shell
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
user1:x:1000:1000:User One:/home/user1:/bin/bash
user2:x:1001:1001:User Two:/home/user2:/bin/bash
{print $1, $3}
:表示打印每行的第一个字段(用户名)和第三个字段(用户 ID,UID)。
root 0
daemon 1
user1 1000
user2 1001
sort
是一个用于对文本行进行排序的命令。-t ' '
:指定字段分隔符为空格。-k 2n
:表示按照第二列(UID)进行数值排序。
uniq
是一个用于检查和删除重复行的命令。-f1
:表示跳过每行的前一列(即用户名列),只比较第二列(UID)。-D
:表示只显示重复的行。
- 查看密码复杂度策略及相关安全策略:
cat /etc/login.defs
/etc/login.defs
是系统配置文件的路径,用于存储登录和密码相关的全局设置。
比如:
PASS_MIN_DAYS
:指定用户可以更改密码的最小天数。例如,如果设置为 7,用户在 7 天内不能更改密码。
PASS_MAX_DAYS
:指定用户密码的有效期。例如,如果设置为 90,用户必须每 90 天更改一次密码。
PASS_WARN_AGE
:指定在密码过期前多少天开始提醒用户更改密码。例如,如果设置为 7,系统会在密码过期前 7 天开始提醒用户。
LOGIN_RETRIES
:定义用户登录失败的最大尝试次数。
LOGIN_TIMEOUT
:定义登录超时时间(秒)。
CHFN_RESTRICT
:限制用户通过 chfn 命令修改个人信息。
UID_MIN
,普通用户 UID(用户 ID)的最小值,通常为1000。
UID_MAX
,通常是 60000 或 65533。
UMASK
,文件权限相关,新文件和目录的默认权限掩码,通常是 022。设置新创建文件和目录的默认权限。例如,022 表示新文件的默认权限为 644(rw-r–r–),新目录的默认权限为 755(rwxr-xr-x)。
ENCRYPT_METHOD
,密码加密方法,默认值:通常是 SHA512 或 MD5。
设置密码最小长度(PASS_MIN_LEN
)。
- 是否开启sshd服务:
ps -ef | grep ssh
或者service sshd status
检查系统中是否运行了 sshd 服务(SSH 守护进程)。sshd 是 SSH(Secure Shell)服务的守护进程,用于提供安全的远程登录和文件传输功能。
比如下面图中的,sshd: root@pts/0
表示这是一个 sshd 子进程,用于处理 root 用户通过 SSH 连接到终端 pts/0 的会话。
/usr/lib/openssh/sftp-serve
r表示这是一个 SFTP 服务器进程,用于处理通过 SSH 的文件传输请求。
- 检查telnet是否关闭:systemctl status telnet.socket`
如果服务未运行,输出可能显示:
也可以通过命令telnet localhost 23
,使用 telnet 客户端尝试连接到本地主机的端口 23,确认是否可以连接。
访问控制
- 禁止用户远程登录:
cat /etc/ssh/sshd_config | grep PermitRootLogin
减少攻击面:root 用户拥有系统的所有权限,如果攻击者通过远程登录获取了 root 权限,他们将能够完全控制整个系统,包括修改系统配置、安装恶意软件、窃取敏感数据等。禁止 root 远程登录可以有效减少潜在的攻击面。
防止暴力破解:root 是默认的超级用户,其用户名是众所周知的,因此很容易成为暴力破解攻击的目标。攻击者可以尝试使用常见的弱密码或自动化工具来猜测 root 的密码。禁止 root 远程登录可以防止这种攻击。
降低风险:即使使用了强密码,root 用户的远程登录仍然可能被中间人攻击、密钥泄露或其他安全漏洞所利用。禁止 root 远程登录可以降低这些风险。
最小权限原则 是一种安全策略,建议用户和进程仅拥有完成其任务所必需的最小权限。对于远程登录,建议使用普通用户账户登录,然后通过 sudo 或 su 命令获取更高的权限。这样可以限制用户的操作范围,减少误操作或恶意行为对系统的影响。
即使当用户通过 sudo 执行命令时,sudo 会记录执行的用户、执行的命令以及执行时间等信息。这些日志通常保存在 /var/log/auth.log
或 /var/log/secure
文件中。通过这些日志,管理员可以清楚地知道是谁执行了哪些需要 root 权限的操作。如果多个管理员直接以 root 用户登录,很难区分是谁执行了特定的操作,这给审计和责任追踪带来了困难。
可以通过使用 visudo
命令编辑 /etc/sudoers
文件:
# 允许用户 user1 执行所有命令
user1 ALL=(ALL) ALL# 允许用户组 admin 执行所有命令
%admin ALL=(ALL) ALL# 允许用户 user2 只能执行特定命令
user2 ALL=(ALL) /usr/bin/apt-get, /usr/bin/reboot
- 查看权限是否合理,批量检查所有用户的 sudo 权限:
getent passwd | cut -d: -f1 | xargs -n 1 sudo -l -U
恶意代码防范
- 查看定时任务配置规则:
cat /etc/crontab
Linux 系统中 /etc/crontab 文件的内容,它定义了系统级的定时任务(cron jobs)
。/etc/crontab 文件用于配置系统范围的定时任务,这些任务通常由系统服务(如 cron 守护进程)
自动执行。
定义了系统级的定时任务,也就是定期执行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly
目录中的脚本。这些任务通常用于系统维护,例如清理临时文件、更新系统日志、备份数据
等。
- 检查定时任务是否运行:
service cron statusb
首先,输出显示 cron.service
是一个名为“Regular background program processing daemon
”(定期后台程序处理守护进程
)的服务。它用于管理定时任务(cron 任务
),这些任务会在指定的时间自动运行。
服务的活动状态为“active (running)
”,表明 cron 服务正在运行。它自 2025 年 3 月 3 日星期一 06:49:53 UTC 开始运行,到目前为止已经运行了 5 小时 48 分钟。
主进程 ID(PID)为 864,表示 cron 服务的主进程
正在运行,并且当前只有一个任务(Tasks: 1)。系统为该服务分配的内存为 2.3M,它属于 system.slice/cron.service 控制组
。
安全审计
- 检查安全审计的守护进程是否正常
:
ps -ef | grep auditd 或者systemctl status auditd
[kauditd]
表示这是一个内核线程,名为 kauditd,用于处理审计事件。kauditd 是 Linux 审计系统的一部分,负责将审计事件写入日志。
- audit审计规则配置:
cat /etc/audit/audit.rules
删除所有现有的审计规则(-D)。
设置审计事件队列大小为 8192 条目(-b 8192)。
设置失败处理方式为记录失败事件(-f 1)。
设置等待队列的最大等待时间为 0 毫秒(–backlog_wait_time 0)。
- NTP时钟服务是否开启:
systemctl status ntp
检查 NTP(Network Time Protocol)时钟服务是否正在运行。
NTP 的核心功能是同步系统时钟,确保计算机的时间与外部时间源(如时间服务器)保持一致。通过定期与时间服务器通信,NTP 可以校正系统时钟的偏差,从而避免因硬件时钟漂移导致的时间不准确。
在系统管理和安全审计中,准确的时间戳是必不可少的。NTP 可以确保日志文件、事件记录和其他时间敏感信息的时间戳是准确的,从而便于故障排查和安全分析。
入侵防范
- 查看开放端口:
ss -tuln
ss 是 netstat 的现代替代工具,功能更强大,性能更好。
-t:显示 TCP 端口。
-u:显示 UDP 端口。
-l:显示处于监听状态的端口。
-n:以数字形式显示地址和端口。
- State(状态):
LISTEN:端口正在监听,等待连接。
UNCONN:UDP 套接字未连接,UDP 是无连接的协议,所以通常显示为 UNCONN。
- Recv-Q(接收队列):
显示接收队列中的字节数或数据报数。对于监听状态的 TCP 端口,通常为 0,因为它们正在等待连接。
- Send-Q(发送队列):
显示发送队列中的字节数或数据报数。对于监听状态的端口,通常为 0。
- Local Address:Port(本地地址:端口):
显示本地 IP 地址和端口号。可以是 IPv4 地址(如 127.0.0.1)、IPv6 地址(如 [::1]),或者是 0.0.0.0 和 [::] 表示监听所有 IPv4 和 IPv6 地址。
如果地址包含 % 符号,后面跟着的是网络接口名称(如 %lo 表示本地回环接口,%ens33 表示名为 ens33 的网络接口)。
- Peer Address:Port(对端地址:端口):
对于 TCP 监听端口,通常显示为 0.0.0.0:* 或 [::]😗,表示接受任何对端地址和端口的连接。
对于 UDP 端口,通常为空,因为 UDP 是无连接的,没有特定的对端地址。
- Process(进程):
这一列通常显示监听端口的进程信息。但在 ss 命令的输出中,这一列默认是不显示的。如果需要显示进程信息,可以使用 ss -tunp
命令。
在图中,我们可以看到多个 UDP 和 TCP 端口的状态。例如,端口 53 是用于 DNS 的,它在 IPv4 的本地回环地址 127.0.0.53 和 IPv6 的本地回环地址 [::1]:53 上监听。端口 123 是用于 NTP 的,它在多个 IPv6 链接本地地址上监听。端口 8500、22、3306 和 6379 分别是用于一些常见服务的,如 Docker 的 Swarm 模式、SSH、MySQL 数据库和 Redis。
性能压测
通过cat /proc/loadavg
查看系统负载的平均值,其前三列分别表示最近1分钟、5分钟及15分的平均负载。 反映了当前系统的繁忙情况。当平均负载高于 CPU 数量 70% 的时候,你就应该分析排查负载高的问题了。
平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。它不仅包括了正在使用 CPU 的进程,还包括等待 CPU 和等待 I/O 的进程。
CPU 使用率
,是单位时间内 CPU 繁忙情况的统计,跟平均负载并不一定完全对应。
比如:CPU 密集型进程
,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;
I/O 密集型进程
,等待 I/O 也会导致平均负载升高,但 CPU 使用 率不一定很高。
通过命令stress --vm 2 --vm-bytes 300M --vm-keep
进行系统进行压力测试和性能评估。可以模拟高负载情况,帮助评估系统在极端条件下的表现。
--vm 2
:这个选项指定创建 2 个虚拟内存(VM)工作者(worker),每个工作者会消耗系统资源来模拟负载。
--vm-bytes 300M
:这个选项指定每个虚拟内存工作者分配 300 MB(兆字节)的内存。由于有 2 个虚拟内存工作者,总共会分配 600 MB 的内存。
--vm-kee
p:这个选项指示 stress 在测试结束后保留分配的内存,而不是释放它。通常,stress 在测试完成后会尝试清理和释放资源,但 --vm-keep 选项会阻止这一行为,使内存保持被占用状态。
在执行压力测试时监控系统状态,如 CPU 使用率、内存使用情况、磁盘 I/O 等,以便及时了解系统在高负载下的表现。
检查系统版本
因为鸿蒙欧拉版本比较多,需要核对版本,这个直接输入uname -a
命令即可。
网络测试
使用经典的iperf工具进行tcp和udp测试。
服务端通过命令iperf -u -s
开启udp服务。
然后客户端可以运行下面的命令:
iperf -u -c 192.168.1.1 -b 100M -t 60
表示udp模式下,以100Mbps数据发送速率,测试60s。
iperf -u -c 192.168.1.1 -b 5M -P 30 -t 60
客户端向服务器端发起30个连接线程,以5Mbps为数据发送速率。
iperf -u -c 192.168.1.1 -b 100M -d -t 60
以100M为数据发送速率,进行上下行带宽测试。
对应的TCP模式也是一样的。
服务端通过命令iperf -s
开启tcp服务。
客户端运行命令iperf -c 192.168 .1.1 -t 60
tcp模式下,进行上传带宽测试,测试时间为60s等。
客户端运行命令iperf -c 192.168 .1.1 -P 30 -t 60
tcp模式下,发起30个线程连接测试60s。
常见的linux测试命令
top
实时显示系统中各个进程的资源占用情况,包括CPU、内存、进程ID等信息。
htop
功能类似于 top,但提供了更丰富的交互式界面,支持颜色显示和更多的排序选项。
df -h
显示文件系统的磁盘空间使用情况,-h 参数以易读格式的显示。
ifconfig 或 ip addr
显示网络接口的配置信息,包括IP地址、子网掩码等。
netstat -tuln
显示网络连接、路由表、接口统计等信息。-tuln 参数表示显示TCP、UDP监听端口。
iostat
监控系统输入输出设备和CPU的使用情况。
ps aux
显示系统中所有进程的详细信息,包括进程ID、用户、CPU和内存使用率等。
uptime
显示系统的运行时间、当前时间、负载平均值等。
free -h
显示系统的总内存、已用内存、空闲内存和交换空间(swap)的使用情况。
相关文章:

【鸿蒙操作系统】- 1:实习阶段的一些总结
本文目录 1. 序2.鸿蒙与欧拉的概念微内核LiteOS鸿蒙微内核POSIX标准 3.实习干了些什么身份鉴别访问控制恶意代码防范安全审计入侵防范性能压测检查系统版本网络测试常见的linux测试命令 1. 序 之前在某国企实习的时候,有幸参与了鸿蒙系统、鸿蒙欧拉的项目ÿ…...

Qt基础入门-详解
前言 qt之路正式开启 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞ὄ…...
【前端】HTML 备忘清单(超级详细!)
文章目录 入门hello.html注释 Comment段落 ParagraphHTML 链接Image 标签文本格式标签标题Section Divisions内部框架HTML 中的 JavaScriptHTML 中的 CSS HTML5 标签页面标题导航HTML5 TagsHTML5 VideoHTML5 AudioHTML5 RubyHTML5 kdiHTML5 progressHTML5 mark HTML 表格Table …...
版图自动化连接算法开发 00004 ------ 给定一个点,添加一个中间点实现 Manhattan 方式连接两个给定的坐标点
版图自动化连接算法开发 00004 ------ 给定一个点,添加一个中间点实现 Manhattan 方式连接两个给定的坐标点 引言正文引言 必读文章 ------ 版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点。 此处,我们对给定点的坐标进行一下限制,因为是只添加一个点,因…...
C# Enumerable类 之 数据筛选
总目录 前言 在 C# 中,System.Linq.Enumerable 类是 LINQ(Language Integrated Query)的核心组成部分,它提供了一系列静态方法,用于操作实现了 IEnumerable 接口的集合。通过这些方法,我们可以轻松地对集合…...

Grafana服务安装并启动
Grafana服务安装并启动 1、介绍2、下载Grafana3、解压缩文件4、启动Grafana服务5、增加数据源,填写Prometheus访问地址6、增加图表 1、介绍 Grafana是一个开源的可视化系统监控和警报工具包。 2、下载Grafana 介绍:Grafana是一个开源的可视化系统监控和警报工具包…...

蓝桥杯web第三天
展开扇子题目, #box:hover #item1 { transform:rotate(-60deg); } 当悬浮在父盒子,子元素旋转 webkit display: -webkit-box:将元素设置为弹性伸缩盒子模型。-webkit-box-orient: vertical:设置伸缩盒子的子元素排列方…...
C#开发——时间间隔类TimSpan
TimeSpan 是 C# 中的一个结构( struct ),用于表示时间间隔或持续时间。它位于 System 命名空间中,是处理时间相关操作时非常重要的工具,尤其是在计算两个日期或时间之间的差值、表示时间段或执行时间相关的运算…...

NModbus 连接到Modbus服务器(Modbus TCP)
1、在项目中通过NuGet添加NModbus,在界面中添加一个Button。 using NModbus.Device; using NModbus; using System.Net.Sockets; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Docu…...

蓝桥杯 之 图形规律
文章目录 分析组成,找到规律数正方形 在蓝桥杯中,常常会有一些图形的规律的题目需要我们去解决,所以我们需要学会其中的一些方法,我们这样才能解决对应的问题 方法1:直接对n进行拆分方法2:使用递归的思路&a…...
多线程学习之路
多线程的创建方式主要有以下几种: 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法来创建线程。 class MyThread extends Thread {Overridepublic void run() {// 线程执行的任务System.out.println("Thread is running");} }public class Mai…...

英码科技携昇腾DeepSeek大模型一体机亮相第三届北京人工智能产业创新发展大会
2025年2月28日,第三届北京人工智能产业创新发展大会在国家会议中心隆重开幕。本届大会以"好用、易用、愿用——以突破性创新加速AI赋能千行百业”为主题,重点展示人工智能技术创新成果与产业化应用实践。作为昇腾生态的APN伙伴,英码科技…...
【AI】如何理解与应对AI中的敏感话题:详细分析与实用指南
引言 随着人工智能(AI)技术的不断发展,我们在与AI交互时,可能会遇到敏感话题的讨论限制。在许多情况下,AI系统为了避免触及社会、政治或文化敏感点,会对用户输入进行一定的筛选和过滤。那么,这…...

(十 三)趣学设计模式 之 模版方法模式!
目录 一、 啥是模板方法模式?二、 为什么要用模板方法模式?三、 模板方法模式的实现方式四、 模板方法模式的优缺点五、 模板方法模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式&a…...

20250225-代码笔记03-class CVRPModel AND other class
文章目录 前言一、class CVRPModel(nn.Module):__init__(self, **model_params)函数功能函数代码 二、class CVRPModel(nn.Module):pre_forward(self, reset_state)函数功能函数代码 三、class CVRPModel(nn.Module):forward(self, state)函数功能函数代码 四、def _get_encodi…...

【postman】postman找回接口数据
项目提测,一打开postman天塌了,所有接口都不见了。。。。conllection目录也看不见了,也导入不了同事给我发的json文件。 然后重新找同事要了一个安装包,覆盖安装了之后,在下面的目录里面找到了备份文件【C:\Users\yan…...

Milvus向量数据库部署
一、什么是Milvus Milvus 是一款开源的向量数据库,旨在帮助开发者轻松管理和检索大规模向量数据。它通过高效的索引技术,支持快速的相似度搜索,使得从海量数据中查找最接近的匹配变得简单而快捷。无论是构建推荐系统、进行图像识别还是分析自…...

显式 GC 的使用:留与去,如何选择?
目录 一、什么是显式 GC? (一) 垃圾回收的基本原理 (二)显式 GC 方法和行为 1. System.gc() 方法 2. 显式 GC 的行为 (三)显式 GC 的使用场景与风险 1. JVM 如何处理显式 GC 2. 显式 GC…...

探秘基带算法:从原理到5G时代的通信变革【二】Viterbi解码
文章目录 二、关键算法原理剖析2.1 Viterbi 解码2.1.1 卷积码与网格图基础**卷积码****网格图****生成多项式****理想情况下解码过程** 2.1.2 Viterbi 算法核心思想2.1.3 路径度量与状态转移机制2.1.4 算法流程与关键步骤详解2.1.5 译码算法举例与复杂度分析2.1.6 算法代码示例…...

从零实现高并发内存池
目录 一、项目介绍 二、什么是内存池? 1.池化技术 2.内存池 3.内存池解决的问题 三、malloc本身就是内存池 四、定长内存池 五、高并发内存池整体框架 六、thread cache 七、central cache 八、page cache 一、项目介绍 当前项目是实现一个高并发的内存池…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...