技术分享

Linux Kernel 5.15.x 编译版-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Linux Kernel 5.15.x 编译版

ELRepo Project 提供的内核版本一直都比较稳定,且 kernel-ml 一直提供最新版内核的 rpm 安装包。 但是 kernel-ml 总是在新的大版本出来以后就不再提供旧的版本。比如 kernel-ml 分支 5.15 到 5.15.13 以后就不再更新了。 5.15 是最新的 LTS 版本,本文将继续编译 5.15.x 的最新版本,直到 5.15.x 不再更新为止。 Linux Kernel 5.15.x 编译版 更多旧版本下载地址 https://dl.lamp.sh/kernel/ 1. 适用于 CentOS 7 的 rpm 包下载地址 kernel-ml-5.15.117-1.el7.x86_64.rpm kernel-ml-devel-5.15.117-1.el7.x86_64.rpm kernel-ml-headers-5.15.117-1.el7.x86_64.rpm kernel-ml-tools-5.15.117-1.el7.x86_64.rpm kernel-ml-tools-libs-5.15.117-1.el7.x86_64.rpm kernel-ml-tools-libs-devel-5.15.117-1.el7.x86_64.rpm perf-5.15.117-1.el7.x86_64.rpm python-perf-5.15.117-1.el7.x86_64.rpm 一般只需下载前 3 个 rpm 文件即可。 kernel-ml-5.15.117-1.el7.x86_64.rpm kernel-ml-devel-5.15.117-1.el7.x86_64.rpm kernel-ml-headers-5.15.117-1.el7.x86_64.rpm 下载完成后,执行以下命令安装: # yum localinstall kernel-ml-* 成功安装后,执行以下命令查看本机已经存在的内核列表: # awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg 返回值示例: 0 : CentOS Linux (5.15.117-1.el7.x86_64) 7 (Core) 1 : CentOS Linux 7 Rescue b2206184ea3c4d8a9be703c8e6b739ab (3.10.0-1127.13.1.el7.x86_64) 2 : CentOS Linux (3.10.0-1127.13.1.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-00a62363617944e08db8db894ba6145e) 7 (Core) 设置启动最新内核(一般最新安装的内核启动顺序为 0) # grub2-set-default 0 删除 rpm 文件。 # rm -fv kernel-ml-* 然后再 reboot 重启系统,再次进入系统后,就是最新版的内核了。 2. 适用于 CentOS Stream 8 / Rocky...

tiny10 和 tiny11 23H2 的 Windows DD 镜像-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

tiny10 和 tiny11 23H2 的 Windows DD 镜像

最近制作了 tiny10 和 tiny11 23H2 的 Windows DD 镜像,分别是: 1. Windows 10 Enterprise LTSC (build: 19044.3324) ※ tiny10 23H2 2. Windows 11 Pro 22H2 (build: 22621.2283) ※ tiny11 23H2 以上镜像按顺序,分别基于以下 NTDEV 的镜像制作完成: tiny10 23H2 tiny11 23H2   镜像具备以下特点 1. 集成了以下驱动程序。 适用于大部分 KVM,XEN 虚拟化的 VPS 以及采用 Intel 网卡的服务器,比如 vultr,digitalocean,kimsufi,hetzner,oneprovider,online.net 等等。 1) KVM 驱动 (virtio 0.1.240): https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-0.1.240.iso 2) XEN 驱动 (AWS PV Driver 8.4.0): https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip 为什么使用亚马逊 AWS 的 XEN 驱动,原因是 XEN 官方提供的驱动都是未签名的,直接添加进去系统会导致出错。 3) Intel 网卡驱动 (28.2): https://downloadmirror.intel.com/785800/Wired_driver_28.2_x64.zip 参考:https://www.intel.com/content/www/us/en/download/18293/intel-network-adapter-driver-for-windows-10.html 2. 无需 VNC 交互直接无人值守安装,DD 完成后重启系统,稍等片刻即可远程登录桌面 3. 默认开启 Windows 远程桌面 4. 默认已屏蔽端口 135,137,138,139,445,预防勒索病毒 5. 基于 Dism++ 自带的一些系统优化,如隐藏快捷方式小箭头,启用 Windows 照片查看器等等 6. 安装了 7-Zip 23.01,以及 VisualCppRedist_AIO_x86_x64 的 v0.76.0 版本。 7. 基于安全考虑,关闭了默认共享。 8. 修改了组策略中默认的账户锁定阈值,从 10 改为 0(账户不锁定)。 9. 基于安全考虑,建议更改远程连接默认的 3389 端口。因此制作了一个 bat 脚本可以一键修改 RDP 端口。请点击这里下载,解压后,用管理员权限运行 bat 脚本,输入端口号后回车执行,然后再重启计算机即可生效。 安装方式 1. 在基于...

多进程和多线程到底有什么区别

多进程和多线程的主要区别是:线程是进程的子集(部分),一个进程可能由多个线程组成。多进程的数据是分开的、共享复杂,需要用IPC;但同步简单。多线程共享进程数据,共享简单;但同步复杂。 多进程 进程是程序在计算机上的一次执行活动,即正在运行中的应用程序,通常称为进程。当你运行一个程序,你就启动了一个进程。每个进程都有自己独立的地址空间(内存空间),每当用户启动一个进程时,操作系统就会为该进程分配一个独立的内存空间,让应用程序在这个独立的内存空间中运行。 在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多进程,也称多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。 多任务带来的好处是明显的,比如你可以边听音乐边打游戏,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。 数据是分开的,共享复杂,同步简单; 占用内存多,切换复杂,CPU利用率低; 创建销毁复杂,切换复杂,速度慢; 编程简单,调试简单; 进程间不会相互影响; 适应于多核、多机分布 ;如果一台机器不够,扩展到多台机器比较简单。 多线程 线程是一个轻量级的子进程,是最小的处理单元;是一个单独的执行路径。可以说:线程是进程的子集(部分),一个进程可能由多个线程组成。 线程是独立的。如果在一个线程中发生异常,则不会影响其他线程。它使用共享内存区域。 多线程是一种执行模型,它允许多个线程存在于进程的上下文中,以便它们独立执行但共享其进程资源。 多线程共享进程数据,共享简单,同步复杂; 占用内存少,切换简单,CPU利用率高; 创建销毁简单,切换简单,速度快; 编程复杂,调试复杂; 一个线程挂掉将导致整个进程挂掉; 适应于多核分布。 多进程和多线程的主要区别是:线程是进程的子集(部分),一个进程可能由多个线程组成。多进程的数据是分开的、共享复杂,需要用IPC;但同步简单。多线程共享进程数据,共享简单;但同步复杂。

分组交换网中的时延和概述

处理时延dproc:路由器检查分组首部和决定将该分组导向何处所需要的时间。 排队时延dqueue:分组在经过网络传输时,要经过许多的路由器。所以分组在进入路由器时要在输入队列中排队等待处理;在路由器确定了转发接口后,还要在输出队列中排队等待转发。 传输时延dtrans:是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间——数据帧长度(b) / 信道带宽(b/s) 传播时延dprop:两个路由器之间的分组运输的耗时。该传播速度取决于链路的物理媒介(光纤、双绞铜线等)。

什么是域名服务器?

DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。 把域名翻译成IP地址的软件称为域名系统,即DNS。它是一种管理名字的方法。这种方法是:分不同的组来负责各子系统的名字。系统中的每一层叫做一个域,每个域用一个点分开。所谓域名服务器(即Domain Name Server,简称Name Server)实际上就是装有域名系统的主机。它是一种能够实现名字解析(name resolution)的分层结构数据库。

什么是库函数

库函数(Library function)是将函数封装入库,供用户使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。 一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数。 C语言的语句十分简单,如果要使用C语言的语句直接计算sin或cos函数,就需要编写颇为复杂的程序。因为C语言的语句中没有提供直接计算sin或cos函数的语句。又如为了显示一段文字,我们在C语言中也找不到显示语句,只能使用库函数printf。 C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要编制并提供用户使用的一组程序。C的库函数极大地方便了用户,同时也补充了C语言本身的不足。事实上,在编写C语言程序时,应当尽可能多地使用库函数,这样既可以提高程序的运行效率,又可以提高编程的质量。

多线程中 synchronized 锁升级的原理是什么?

synchronized 锁升级原理:在锁对象的对象头里面有一个 threadid 字段,在第一次访问的时候 threadid 为空,jvm 让其持有偏向锁,并将 threadid 设置为其线程 id,再次进入的时候会先判断 threadid 是否与其线程 id 一致,如果一致则可以直接使用此对象,如果不一致,则升级偏向锁为轻量级锁,通过自旋循环一定次数来获取锁,执行一定次数之后,如果还没有正常获取到要使用的对象,此时就会把锁从轻量级升级为重量级锁,此过程就构成了 synchronized 锁的升级。 锁的升级的目的:锁升级是为了减低了锁带来的性能消耗。在 Java 6 之后优化 synchronized 的实现方式,使用了偏向锁升级为轻量级锁再升级到重量级锁的方式,从而减低了锁带来的性能消耗。

什么是ZIP?

ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为application/zip。当前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开放源码的7z格式。从性能上比较,RAR及7z格式较ZIP格式压缩率较高,而7-Zip由于提供了免费的压缩工具而逐渐在更多的领域得到应用。Microsoft从Windows ME操作系统开始内置对zip格式的支持,即使用户的计算机上没有安装解压缩软件,也能打开和制作zip格式的压缩文件,OS X和流行的Linux操作系统也对zip格式提供了类似的支持。因此如果在网络上传播和分发文件,zip格式往往是最常用的选择。  

电脑睡眠是什么

电脑睡眠模式是电脑处于待机状态下的一种模式,可以通过电脑“电源选项”菜单进行设置。可以给您节约电源,相对来说就是很“环保”,可以省去繁琐的开机过程,增加电脑使用的寿命。新的节能模式 Windows操作系统中很早就加入了待机、休眠等模式,而Windows Vista中更是新加入了一种叫作睡眠的模式,可是很多人还是习惯在不使用电脑的时候将其彻底关闭。其实充分利用这些模式,我们不仅可以节约电力消耗,还可以用尽可能短的时间把系统恢复到正常工作状态。

如何选择合适的持久化方式

一般来说, 如果想达到足以媲美 PostgreSQL 的数据安全性,你应该同时使用两种持久化功能。在这种情况下,当 Redis 重启的时候会优先载入 AOF 文件来恢复原始的数据,因为在通常情况下 AOF 文件保存的数据集要比 RDB 文件保存的数据集要完整。 如果你非常关心你的数据, 但仍然可以承受数分钟以内的数据丢失,那么你可以只使用 RDB 持久化。 有很多用户都只使用 AOF 持久化,但并不推荐这种方式,因为定时生成 RDB 快照(snapshot)非常便于进行数据库备份, 并且 RDB 恢复数据集的速度也要比 AOF 恢复的速度要快,除此之外,使用 RDB 还可以避免 AOF 程序的 bug。 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式。