当前位置: 首页 > news >正文

【C#生态园】构建你的C#操作系统:框架选择与实践

探秘C#操作系统开发框架:从框架选择到实际应用

前言

在当今信息技术高度发达的时代,操作系统开发框架为软件工程师提供了全新的可能性。本文将介绍一系列用于C#的操作系统开发框架,探讨它们的核心功能、使用场景、安装与配置方法以及API概览,为对操作系统开发感兴趣的读者提供全面的了解和指导。

欢迎订阅专栏:C#生态园

文章目录

  • 探秘C#操作系统开发框架:从框架选择到实际应用
    • 前言
    • 1. Cosmos:一个用于C#的操作系统开发框架
      • 1.1 简介
        • 1.1.1 核心功能
        • 1.1.2 使用场景
      • 1.2 安装与配置
        • 1.2.1 安装指南
        • 1.2.2 基本配置
      • 1.3 API 概览
        • 1.3.1 模块化开发
        • 1.3.2 内核编写
    • 2. MOSA:一个用于C#的操作系统开发框架
      • 2.1 简介
        • 2.1.1 核心功能
        • 2.1.2 使用场景
      • 2.2 安装与配置
        • 2.2.1 安装方法
        • 2.2.2 基本设置
      • 2.3 API 概览
        • 2.3.1 设备驱动开发
        • 2.3.2 中断处理
    • 3. SharpOS:一个用于C#的操作系统开发框架
      • 3.1 简介
        • 3.1.1 核心功能
        • 3.1.2 使用场景
      • 3.2 安装与配置
        • 3.2.1 安装指南
        • 3.2.2 基本配置
      • 3.3 API 概览
        • 3.3.1 文件系统实现
        • 3.3.2 进程管理
    • 4. Singularity:一个用于C#的操作系统开发框架
      • 4.1 简介
        • 4.1.1 核心功能
        • 4.1.2 使用场景
      • 4.2 安装与配置
        • 4.2.1 安装指南
        • 4.2.2 基本设置
      • 4.3 API 概览
        • 4.3.1 安全性设计
        • 4.3.2 虚拟内存管理
    • 5. ReactOS:一个用于C#的操作系统开发框架
      • 5.1 简介
        • 5.1.1 核心功能
        • 5.1.2 使用场景
      • 5.2 安装与配置
        • 5.2.1 安装指南
        • 5.2.2 基本配置
      • 5.3 API 概览
        • 5.3.1 网络协议栈实现
        • 5.3.2 用户界面开发
    • 6. Midori:一个用于C#的操作系统开发框架
      • 6.1 简介
        • 6.1.1 核心功能
        • 6.1.2 使用场景
      • 6.2 安装与配置
        • 6.2.1 安装指南
        • 6.2.2 基本设置
      • 6.3 API 概览
        • 6.3.1 多核处理器支持
        • 6.3.2 系统调用接口
    • 总结

1. Cosmos:一个用于C#的操作系统开发框架

1.1 简介

Cosmos 是一个用于 C# 的操作系统开发框架,提供了一系列功能和工具,方便开发者在 C# 环境下进行操作系统开发。

1.1.1 核心功能
  • 提供模块化开发支持
  • 支持内核编写
  • 提供对硬件的访问接口
  • 提供调试和测试工具
1.1.2 使用场景

Cosmos 可以用于教育目的,操作系统研究和实验,或者嵌入式系统开发等领域。

1.2 安装与配置

1.2.1 安装指南

Cosmos 的安装非常简单,只需要下载最新版本的 Cosmos 开发包,并按照官方文档进行安装步骤即可。官方安装文档

1.2.2 基本配置

安装完成后,需要配置开发环境,设置路径和引用相关库文件。具体配置步骤可以参考官方配置指南

1.3 API 概览

1.3.1 模块化开发

Cosmos 提供了丰富的API支持,其中模块化开发是其重要特性之一。以下是一个简单的模块化开发示例:

using Cosmos.System.FileSystem.Vfs;// 创建一个新文件系统
var fs = new FileSystem();// 在文件系统中创建一个新文件
var file = fs.CreateFile("test.txt");// 向文件中写入数据
file.Write(0, new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F });// 读取文件内容
var content = file.Read(0, 5);// 输出文件内容
Console.WriteLine(Encoding.ASCII.GetString(content));
1.3.2 内核编写

Cosmos 提供了内核编写的支持,开发者可以使用 C# 编写操作系统内核。以下是一个简单的内核编写示例:

using Cosmos.System.Graphics;
using Cosmos.System.ScanMaps;
using Cosmos.System.Text;// 创建一个新屏幕
var screen = new VGAScreen();
screen.SetGraphicsMode(VGAScreen.ScreenSize.Size320x200, VGAScreen.ColorDepth.BitDepth8);// 画一个红色方块
screen.SetPixel(50, 50, Color.Red);
screen.SetPixel(51, 50, Color.Red);
screen.SetPixel(50, 51, Color.Red);
screen.SetPixel(51, 51, Color.Red);

以上是对 Cosmos 操作系统开发框架的简要介绍,希望能够帮助你更好地了解和使用这一工具。

2. MOSA:一个用于C#的操作系统开发框架

2.1 简介

MOSA是一个用于C#的操作系统开发框架,它提供了丰富的功能和API,可用于创建自定义操作系统。

2.1.1 核心功能

MOSA的核心功能包括:

  • 支持C#语言进行操作系统开发
  • 提供丰富的设备驱动开发接口
  • 支持中断处理和系统调用
  • 可以轻松地进行内存管理和多任务处理
2.1.2 使用场景

MOSA适用于需要定制化操作系统的场景,比如嵌入式系统、实时操作系统等。

2.2 安装与配置

2.2.1 安装方法

MOSA的安装方法可以参考官方文档:MOSA官方文档

2.2.2 基本设置

安装完成后,需要按照官方文档进行基本设置,包括环境配置、项目初始化等。

2.3 API 概览

2.3.1 设备驱动开发

MOSA提供了丰富的设备驱动开发接口,以下是一个简单的示例代码:

using System;namespace DeviceDrivers
{public class DiskDriver{public void ReadData(){// 读取数据的具体实现}public void WriteData(){// 写入数据的具体实现}}
}

更多关于设备驱动开发的API可以参考MOSA设备驱动API

2.3.2 中断处理

MOSA支持中断处理,以下是一个简单的中断处理示例代码:

using System;namespace Interrupts
{public class InterruptHandler{public void HandleInterrupt(){// 中断处理的具体实现}}
}

更多关于中断处理的API可以参考MOSA中断处理API

通过以上简单示例,可以看出MOSA在操作系统开发领域有着强大的功能和丰富的API支持,为开发者提供了便利。

3. SharpOS:一个用于C#的操作系统开发框架

3.1 简介

SharpOS 是一个专为 C# 语言设计的操作系统开发框架,旨在提供一个基于托管代码的操作系统开发平台。

3.1.1 核心功能
  • 提供基本的操作系统组件,如进程管理、文件系统等。
  • 支持 C# 语言进行操作系统开发。
  • 提供模拟器以便进行调试和测试。
3.1.2 使用场景

SharpOS 可用于教育目的,帮助开发人员学习操作系统的基本原理和开发方法。同时也可以作为研究项目,探索基于 C# 的操作系统开发可能性。

3.2 安装与配置

3.2.1 安装指南

安装 SharpOS 非常简单,只需要从官方 GitHub 仓库克隆源码并按照指南进行编译即可。

git clone https://github.com/SharpOS/SharpOS.git
cd SharpOS
make

详细的安装指南请参考官方文档

3.2.2 基本配置

配置过程主要包括设置开发环境,包括安装必要的编译器、调试工具等。

3.3 API 概览

3.3.1 文件系统实现

SharpOS 提供了丰富的文件系统 API 来支持文件的创建、读取、写入等操作。以下是一个简单的示例代码:

using System;
using System.IO;public class FileSystemExample
{public static void Main(){// 创建文件using (FileStream fs = new FileStream("example.txt", FileMode.Create)){byte[] data = new byte[] { 72, 101, 108, 108, 111 }; // "Hello" 的 ASCII 码fs.Write(data, 0, data.Length);}// 读取文件using (FileStream fs = new FileStream("example.txt", FileMode.Open)){byte[] data = new byte[5];fs.Read(data, 0, data.Length);string text = System.Text.Encoding.Default.GetString(data);Console.WriteLine(text); // 输出 "Hello"}}
}

更多关于文件系统 API 的信息,请参考官方文档

3.3.2 进程管理

SharpOS 提供了完善的进程管理 API,开发者可以轻松地进行进程的创建、销毁、调度等操作。下面是一个简单的示例代码:

using System;public class ProcessManagementExample
{public static void Main(){// 创建新进程Process myProcess = new Process("myProgram.exe");myProcess.Start();// 获取当前正在运行的进程Process currentProcess = Process.GetCurrentProcess();Console.WriteLine("Current process ID: " + currentProcess.Id);// 终止进程myProcess.Kill();}
}

更多关于进程管理 API 的信息,请参考官方文档

以上是 SharpOS 操作系统框架的简要介绍和基本使用方式,希望对你有所帮助。

4. Singularity:一个用于C#的操作系统开发框架

4.1 简介

Singularity 是一个专门用于基于 C# 的操作系统开发的框架,它旨在提供强大的功能以及简化操作系统开发的复杂性。

4.1.1 核心功能

Singularity 提供了以下核心功能:

  • 支持基于 C# 的操作系统开发
  • 强大的安全性设计
  • 高度可靠的虚拟内存管理
  • 灵活的API接口
  • 多样的应用场景支持
4.1.2 使用场景

Singularity 可用于开发各种类型的操作系统,包括嵌入式系统、实时系统和传统桌面操作系统。它还适用于教育目的,帮助开发人员更好地理解操作系统的底层原理。

4.2 安装与配置

4.2.1 安装指南

Singularity 的安装相对简单。可以从官方网站 Singularity 上找到最新版本的安装包,并根据官方提供的安装指南进行安装。

具体的安装步骤如下:

git clone https://github.com/MicrosoftResearch/Singularity.git
cd Singularity
./build.sh
4.2.2 基本设置

安装完成后,可以根据需要对 Singularity 进行基本设置,例如配置编译环境、调试工具等。

4.3 API 概览

4.3.1 安全性设计

Singularity 提供了丰富的安全性设计API,如安全沙箱、权限控制等,帮助开发者构建更加安全可靠的操作系统。

以下是一个简单的示例代码,演示了如何创建一个安全沙箱:

using System;namespace SingularityDemo
{class Program{static void Main(string[] args){using (var sandbox = new SecuritySandbox()){// 在沙箱中执行受保护的代码sandbox.Execute(() =>{Console.WriteLine("Hello from the secure sandbox!");});}}}
}
4.3.2 虚拟内存管理

Singularity 提供了强大的虚拟内存管理功能,使开发者能够灵活管理操作系统的内存资源。

以下是一个简单的示例代码,演示了如何使用 Singularity 进行虚拟内存的分配和释放:

using System;namespace SingularityDemo
{class Program{static void Main(string[] args){// 分配 1MB 内存空间VirtualMemoryManager.Allocate(1024 * 1024);// 释放内存空间VirtualMemoryManager.Free();Console.WriteLine("Virtual memory management demo.");}}
}

通过以上示例,我们展示了 Singularity 提供的安全性设计和虚拟内存管理的基本用法,这些功能使得 Singularity 成为了一个强大的操作系统开发框架。

希望本文能够帮助你更好地了解 Singularity 框架,欢迎访问 Singularity 官方网站 获取更多信息。

5. ReactOS:一个用于C#的操作系统开发框架

5.1 简介

ReactOS 是一个自由和开放源代码的操作系统,其目标是兼容 Windows 应用程序和驱动程序。它提供了一种用于 C# 的操作系统开发框架,使开发者可以利用 C# 来构建操作系统的核心功能和用户界面。

5.1.1 核心功能

ReactOS 的核心功能包括:

  • 兼容性:与 Windows 应用程序和驱动程序的兼容性。
  • 自由开源:ReactOS 的源代码可供开发者自由获取和修改。
  • C# 支持:支持使用 C# 进行操作系统的开发。
5.1.2 使用场景

ReactOS 可以被应用于以下场景:

  • 软件开发:开发者可以利用 ReactOS 开发自己的操作系统,并将其用于软件开发和测试环境。
  • 教育研究:作为教学和研究操作系统原理的工具。

5.2 安装与配置

5.2.1 安装指南

ReactOS 的安装指南可以在其官方网站上找到:ReactOS 安装指南。

5.2.2 基本配置

安装完成后,可以按照个人需求进行基本配置,例如网络设置、外观主题等。

5.3 API 概览

5.3.1 网络协议栈实现

ReactOS 提供了完整的网络协议栈实现,开发者可以利用 C# 编写相关网络应用或服务。以下是一个简单的 C# 例子,利用 ReactOS 实现 UDP 通信:

using System;
using System.Net;
using System.Net.Sockets;class Program
{static void Main(){UdpClient udpClient = new UdpClient();IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 11000);try{byte[] data = System.Text.Encoding.ASCII.GetBytes("Hello from ReactOS!");udpClient.Send(data, data.Length, remoteEP);}catch (Exception e){Console.WriteLine(e.ToString());}}
}
5.3.2 用户界面开发

ReactOS 提供了丰富的图形用户界面开发功能,开发者可以通过 C# 构建各种窗体和控件。以下是一个简单的 C# 例子,利用 ReactOS 构建一个基本的窗体:

using System;
using System.Windows.Forms;class Program
{static void Main(){Form form = new Form();Button button = new Button() { Text = "Click me!" };button.Click += (sender, e) => MessageBox.Show("Hello from ReactOS!");form.Controls.Add(button);Application.Run(form);}
}

希望这些例子能帮助你更好地了解 ReactOS 的 C# 开发功能。更多详细信息可以访问 ReactOS 官方网站。

6. Midori:一个用于C#的操作系统开发框架

6.1 简介

Midori 是一个专为 C# 设计的操作系统开发框架,旨在提供一个稳定、高效的平台,用于构建基于 C# 的操作系统。

6.1.1 核心功能
  • 支持多核处理器
  • 提供丰富的系统调用接口
  • 可以快速构建稳定的操作系统
6.1.2 使用场景

Midori 适用于那些希望使用 C# 进行操作系统开发的开发者和团队。它能够提供高效的开发和执行环境,并且对于那些熟悉 C# 开发的人来说,它也是非常友好的。

6.2 安装与配置

6.2.1 安装指南

您可以从 Midori 的官方网站 midori-os.com 下载最新版本的安装包,然后按照官方文档进行安装步骤。

6.2.2 基本设置

安装完成后,您需要根据您的实际需求对 Midori 进行一些基本设置,比如配置开发环境、指定编译参数等。详细的设置方法请参考官方文档。

6.3 API 概览

6.3.1 多核处理器支持

Midori 提供了强大的多核处理器支持,使得开发者可以充分利用现代计算机的硬件性能。下面是一个简单的示例代码,演示了如何在 Midori 中利用多线程进行并行计算:

using System;
using System.Threading;class Program
{static void Main(){int n = 1000000;double result = 0.0;Thread t1 = new Thread(() =>{for (int i = 0; i < n / 2; i++){result += Math.Sin(i) * Math.Cos(i);}});Thread t2 = new Thread(() =>{for (int i = n / 2; i < n; i++){result += Math.Sin(i) * Math.Cos(i);}});t1.Start();t2.Start();t1.Join();t2.Join();Console.WriteLine("Result: " + result);}
}
6.3.2 系统调用接口

Midori 的系统调用接口提供了丰富的功能,允许开发者直接访问操作系统的底层资源。下面是一个简单的示例代码,演示了如何在 Midori 中使用系统调用接口进行文件读写操作:

using System;
using System.IO;class Program
{static void Main(){string path = "test.txt";using (FileStream fs = File.Create(path)){byte[] info = new System.Text.UTF8Encoding(true).GetBytes("Hello, Midori!");fs.Write(info, 0, info.Length);}using (FileStream fs = File.OpenRead(path)){byte[] b = new byte[1024];UTF8Encoding temp = new UTF8Encoding(true);while (fs.Read(b, 0, b.Length) > 0){Console.WriteLine(temp.GetString(b));}}}
}

以上是关于 Midori 操作系统开发框架的简要介绍和示例代码。如果您对更多详情感兴趣,可前往 Midori 官方网站 获取更多信息。

总结

本文详细介绍了多种用于C#的操作系统开发框架,涵盖了Cosmos、MOSA、SharpOS、Singularity、ReactOS和Midori。这些框架各具特色,适用于不同的使用场景和开发需求。通过阅读本文,读者可以对这些框架有一个全面的了解,为自己的操作系统开发项目选择最合适的工具。

相关文章:

【C#生态园】构建你的C#操作系统:框架选择与实践

探秘C#操作系统开发框架&#xff1a;从框架选择到实际应用 前言 在当今信息技术高度发达的时代&#xff0c;操作系统开发框架为软件工程师提供了全新的可能性。本文将介绍一系列用于C#的操作系统开发框架&#xff0c;探讨它们的核心功能、使用场景、安装与配置方法以及API概览…...

ADB 安装教程:如何在 Windows、macOS 和 Linux 上安装 Android Debug Bridge

目录 一、ADB 介绍 二、Windows 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 验证 ADB 安装 4. 配置环境变量 5. 验证全局 ADB 使用 三、macOS 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 配置环境变量 4. 验证 ADB 安装 四、Linux 系统安装 ADB 1. 使用包管理器安装…...

java(2)方法的使用

目录 1.前言 2.正文 2.1方法的定义 2.2方法的调用过程 2.3方法的实参与形参 2.3.1形参 2.3.2实参 2.3.3参数传递 2.4方法的重载 3.小结 1.前言 哈喽大家好啊&#xff0c;今天博主继续带领大家学习java的基本语法&#xff0c;java的基础语法部分打算用六到七篇博文完…...

基于对数变换的图像美白增强,Matlab实现

博主简介&#xff1a;matlab图像处理&#xff08;QQ:3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于对数变换的图像美白增强&#xff0c;用matlab实现。 一、案例背景和算法介绍 这次案例是美白算法&…...

MySQL高阶1873-计算特殊奖金

目录 题目 准备数据 分析数据 总结 题目 编写解决方案&#xff0c;计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 M 开头&#xff0c;那么他的奖金是他工资的 100% &#xff0c;否则奖金为 0 。 返回的结果按照 employee_id 排序。 准备数据 Crea…...

Ngnix 在windows上的简单使用

安装 下载链接: nginx: download 选择页面中 Stable version 下的windows版本直接下载解压到本地。 运行nginx: 解压到本地后,结构如图: cmd 进入到上图的根目录,运行 start nginx ,即可开启。 打开 http://localhost 进行查看,如果正常打开nginx的测试页面,则说…...

嵌入式开发--STM32延时函数重构

在做嵌入式开发的时候&#xff0c;经常需要用到延时函数&#xff0c;STM32为我们提供了一个标准的毫秒级延时函数&#xff1a;HAL_Delay()。这个函数用起来很方便&#xff0c;括号内的数就是延时的毫秒数。 但是程序中如果需要用到看门狗的话呢&#xff0c;这玩意需要经常喂的…...

OpenAI最新发布的o1-preview模型,和GPT-4o到底哪个更强?

近日&#xff0c;OpenAI又出新作&#xff0c;正式推出了名为o1的新模型&#xff0c;这是其“推理”系列的首个成员&#xff0c;自然引起了业界的广泛关注。本文旨在全面剖析o1模型的核心特征、独特优势&#xff0c;并通过与先前版本GPT-4o的细致对比&#xff0c;为读者揭示这一…...

基于Python+SQLite的课程管理系统

系统需求简介 1.1需求分析 实现一个具体的课程管理系统。按照软件工程思路设计简化的专业课数据库&#xff0c;尽量模拟现有专业课程一个学期的选课排课原型实际情况。&#xff08;注&#xff1a;本系统由本人单独设计、开发完成&#xff09; 1.2 数据结构需求分析 课程管理…...

每日一练 | USG系统默认安全区域

01 真题题目 关于USG系统&#xff08;华为的安全网关产品&#xff09;的安全防火墙的默认安全区域的描述&#xff0c;正确的是&#xff1a; A. 默认安全区域可以删除 B. 默认安全区域可以修改安全级别 C. 默认安全区域不能删除&#xff0c;但可以修改安全级别D. 默认安全区域…...

技术老总眼中的品宣与促销:挑战与对策

在许多技术驱动的企业中&#xff0c;技术老总们往往对产品研发和技术创新拥有深刻的理解&#xff0c;然而当涉及市场营销&#xff0c;特别是“品宣”&#xff08;品牌宣传&#xff09;与“促销”时&#xff0c;他们的观念可能相对简单&#xff0c;有时甚至认为这两者没有本质的…...

[全网首篇]关于 VMSA-2024-0019 安全公告(CVE-2024-38812、CVE-2024-38813)的说明与解决方案

漏洞说明&#xff1a; CVE-2024-38812 CVE 描述&#xff1a; vCenter Server 在实现 DCERPC 协议时存在堆溢出漏洞。VMware 已将此问题的严重性评估 为临界严重性范围&#xff0c;CVSSv3 的最高基本分数为 9.8。 已知攻击&#xff1a; 具有 vCenter Server 网络访问权限…...

监控易监测对象及指标之:全面监控GBase数据库

在数字化时代&#xff0c;数据库作为企业核心数据资产的管理中心&#xff0c;其稳定性和性能直接关系到业务的连续性和企业的运营效率。GBase数据库作为高性能的分布式数据库系统&#xff0c;广泛应用于各类业务场景。为了确保GBase数据库的稳定运行和高效性能&#xff0c;对其…...

推荐五种msvcr71.dll丢失的解决方法,msvcr71.dll为什么会丢失?

当你的电脑提示msvcr71.dll丢失时是什么情况&#xff1f;为什么会出现这样的问题&#xff1f;msvcr71.dll丢失和什么有关呢&#xff1f;那么msvcr71.dll丢失应该如何解决呢&#xff1f;今天就和大家聊聊msvcr71.dll丢失的解决办法的详细解决步骤。 msvcr71.dll丢失是否与系统更…...

Java 内存模型(JMM)

JMM&#xff0c;全称 Java Memory Model &#xff0c;中⽂释义Java内存模型 1. 概述 对于 Java 程序员来说&#xff0c;在虚拟机⾃动内存管理机制下&#xff0c;不再需要像 C/C 程序开发程序员这 样为每⼀个 new 操作去写对应的 delete / free 操作&#xff0c;不容易出现内存…...

用于安全研究的 Elastic Container Project

作者&#xff1a;来自 Elastic Andrew Pease•Colson Wilhoit•Derek Ditch 使用 Docker 启动 Elastic Stack 序言 Elastic Stack 是一个模块化数据分析生态系统。虽然这允许工程灵活性&#xff0c;但建立开发实例进行测试可能很麻烦。建立 Elastic Stack 的最简单方法是使用…...

STM8L101低功耗的理解

一.通过降低时钟频率来降低功耗&#xff1a; 规格书如图 1.code 从flash启动&#xff0c;主频率是16Mhz时&#xff0c;功耗测量2.51ma左右&#xff0c;对应程序如下&#xff1a; 2.code从flash启动&#xff0c;主频率是2Mhz时&#xff08;上电默认值&#xff09;&#xff0c;功…...

Kotlin cancel CoroutineScope.launch的任务后仍运行

Kotlin cancel CoroutineScope.launch的任务后仍运行 import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope CoroutineScope(Dispatchers.IO)val job coroutineScope.launch {var i 0while (i < Int.MAX_VALUE) {iprintln(i)}}// 2ms 取消协程delay(…...

你是不是分不清哪些字体是商用,哪些非商用?快来看,免得莫名其妙负债。

前言 最近发现有好多小伙伴在做PPT的时候&#xff0c;都有一个很不好的习惯&#xff1a;没有调整好字体。 这里说的没有调整好字体的意思是&#xff1a;在一些公开发布的内容上使用一些可能造成侵权的字体。 字体侵权‌的后果相当严重。轻者可能面临法律纠纷&#xff0c;重者…...

新电脑工作流搭建记录-前端篇

vscode&#xff1a; url: Visual Studio Code - Code Editing. Redefined 插件&#xff1a;Chinese、git history、git graph、codelf、css peek、auto closed tad、auto rename tag、Quokka.js、Image preview Node 官网直接下载&#xff1a;下载 | Node.js node版本管理…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...