[嵌入式系统-27]:RT-Thread -14- 操作系统配置:rtconfig.h文件与menuconfig命令

目录

一、rtconfig.h

1.1 概述

1.2 软硬件资源配置

1.3 功能模块选择

1.4 内核配置详解

1.5 调度器配置

1.6 硬件设备驱动配置

1.7 网络配置

1.8 调试配置

二、menuconfig 

2.1 概述

2.2 主要功能

三、RT Thread配置 VS Linux配置


一、rtconfig.h

1.1 概述

rtconfig.h 是 RT-Thread 实时操作系统中的核心配置文件。它定义了系统的各种参数和功能选项,通过对这些选项的配置,可以定制化地构建适合特定应用需求的 RT-Thread 系统。

在 rtconfig.h 文件中,可以设置各种宏定义和选项来配置 RT-Thread 系统的行为和特性。这些选项涉及内存管理、调度器、设备驱动、文件系统、网络、调试等方面的配置。用户可以根据具体需求来决定启用或禁用某些功能,调整系统的优先级和参数设置。

通过修改 rtconfig.h 文件,可以实现以下功能:

  1. 软硬件资源配置:设置内存大小、线程数量、设备驱动数量等,根据应用需求分配系统资源。

  2. 功能模块选择:根据项目需要启用或禁用特定模块和功能,如文件系统、网络协议栈、图形库等。

  3. 调度器配置:调整调度器算法和参数,如时间片长度、线程优先级管理方式等。

  4. 硬件设备驱动配置:选择和配置系统中使用的设备驱动,如串口、网卡、传感器等外设。

  5. 网络配置:配置网络协议栈和相关参数,启用或禁用网络功能,包括以太网、Wi-Fi 等。

  6. 调试配置:设置系统的调试模式、控制台输出和调试功能的开关。

修改 rtconfig.h 文件需要谨慎操作,确保配置的正确性和一致性,以避免出现不可预期的问题。在修改配置之前,建议仔细阅读 RT-Thread 官方文档和 rtconfig.h 文件中的注释和说明,了解每个配置选项的作用和限制。

总之,rtconfig.h 是 RT-Thread 系统中非常重要的配置文件,通过对其进行合理的设置,可以定制出高度适应特定需求的实时操作系统。

1.2 软硬件资源配置

在 RT-Thread 实时操作系统的 rtconfig.h 文件中,可以进行软硬件资源的配置。下面是一些常见的软硬件资源配置选项的说明:

  1. 堆内存管理配置

    • RT_USING_HEAP:该宏定义是否启用堆内存管理器,用于动态分配内存。如果启用,可以使用 malloc 和 free 函数进行内存的动态分配和释放
    • RT_HEAP_SIZE:定义堆内存的总大小。通过修改该选项,可以调整堆内存的分配空间。
  2. 线程栈内存配置

    • RT_THREAD_STACK_SIZE:定义线程的默认栈大小。可以根据实际应用需求和线程的运行情况调整栈的大小,避免栈溢出的问题。
  3. 定时器配置

    • RT_USING_TIMER_SOFT:该宏定义是否启用软件定时器,即基于时钟节拍的定时器功能。启用时,可以使用 rt_timer_xxx 函数创建和管理定时器
  4. 设备驱动配置

    • RT_USING_DEVICE:该宏定义是否启用设备框架,用于管理系统设备驱动。如果启用,则可以使用 rt_device_xxx 函数操作设备
    • RT_CONSOLE_DEVICE_NAME:定义控制台设备的名称,可以作为标准输入和输出设备进行使用。
  5. 文件系统配置

    • RT_USING_DFS:该宏定义是否启用文件系统功能。如果启用,则可以在 RT-Thread 上使用文件系统进行文件的读写操作。
    • RT_USING_DFS_FAT:该宏定义是否启用 FAT 文件系统。
    • RT_USING_DFS_ELMFAT:该宏定义是否启用 ElmFat 文件系统。
    • RT_USING_DFS_YAFFS2:该宏定义是否启用 YAFFS2 文件系统。
  6. 网络协议栈配置

    • RT_USING_LWIP:该宏定义是否使用 LWIP TCP/IP 协议栈。如果启用,可以使用网络相关的 API 进行 TCP/IP 通信。
    • RT_USING_WIFI:该宏定义是否支持 WiFi 功能。
    • RT_USING_ETHERNET:该宏定义是否启用以太网功能。

请注意,在配置这些软硬件资源时,应根据实际需求和硬件平台的特性进行调整。确保分配的资源足够满足应用的需求,避免资源浪费和系统性能下降。

1.3 功能模块选择

在 RT-Thread 实时操作系统中,通过在 rtconfig.h 文件中选择功能模块,可以控制系统中需要包含的功能模块。以下是一些常见的功能模块选择选项及其说明:

  1. RT_USING_COMPONENTS_END

    • RT_USING_COMPONENTS_END 定义了系统所使用的组件的起始索引号。该值标记了功能模块的选择区域的起点,可以在此之前进行一些系统的基本配置,如内存管理、线程管理等。
  2. RT_USING_FINSH

    • RT_USING_FINSH 定义是否启用 finsh 终端命令行组件。finsh 终端是一个用于进行系统调试和控制的命令行接口,可以方便地进行系统命令的输入和输出。
  3. RT_USING_COMPONENTS_DEVICE

    • RT_USING_COMPONENTS_DEVICE 定义是否启用设备框架组件。设备框架组件用于管理系统中的各种设备驱动,包括串口、SPI、I2C 等设备的操作。
  4. RT_USING_COMPONENTS_IPC

    • RT_USING_COMPONENTS_IPC 定义是否启用进程间通信(IPC)组件。IPC 组件允许不同线程或进程之间进行通信和数据共享,在多任务系统中非常有用。
  5. RT_USING_SMP

    • RT_USING_SMP 定义是否启用对称多处理器支持。启用此选项可以实现多核处理器上的多核调度和通信机制,提高系统的并行处理能力。
  6. RT_USING_MODULE

    • RT_USING_MODULE 定义是否启用动态模块加载功能。通过动态模块加载,可以在系统运行时动态加载和卸载模块,实现系统功能的灵活扩展和管理。

通过在 rtconfig.h 文件中选择合适的功能模块,可以根据具体应用需求和系统资源限制进行灵活的功能配置,定制适合特定应用场景的 RT-Thread 操作系统。

1.4 内核配置详解

在 rtconfig.h 中,有一些内核配置选项,用于配置 RT-Thread 实时操作系统的内核行为和特性。下面详细解释几个常见的内核配置选项:

  1. RT_NAME_MAX

    RT_NAME_MAX 定义了对象名称的最大长度,例如线程、定时器、信号量等。通过修改该选项,可以调整对象名称的最大长度。请注意,该值应合理设置,避免资源浪费和系统效率降低。

  2. RT_THREAD_PRIORITY_MAX

    RT_THREAD_PRIORITY_MAX 定义了系统支持的最大线程优先级数。通过修改此选项,可以增加或减少系统中可用的线程优先级数目。这是一个重要的配置选项,影响调度器的调度策略和线程优先级的管理方式。

  3. RT_TICK_PER_SECOND

    RT_TICK_PER_SECOND 定义了系统时钟的节拍频率,以 Hz 为单位。节拍是 RT-Thread 系统的基本时间单位,影响时间片的长度和定时器的计时准确性。通过调整该值,可以适应不同的应用场景和硬件平台。

  4. RT_ALIGN_SIZE

    RT_ALIGN_SIZE 定义了内存对齐的字节大小。内存对齐是为了提高内存访问的效率,在某些平台上要求访问的变量和数据地址为特定的对齐方式。通过修改此选项,可以适应不同的硬件平台和编译器对内存对齐的要求。

这些内核配置选项可以通过修改 rtconfig.h 文件中的对应宏定义来进行调整,以满足特定的应用需求和硬件平台的限制。但在修改这些选项之前,建议仔细阅读官方文档和 rtconfig.h 文件中的注释,了解每个配置选项的作用和限制,并确保修改的配置在整个系统中的一致性。

除了上述选项,rtconfig.h 文件中还包含其他一些内核配置选项,如线程栈大小、中断优先级设置等。这些选项可以根据具体的应用需求进行调整和配置,以构建一个适合特定应用场景的 RT-Thread 系统。

1.5 调度器配置

在 RT-Thread 实时操作系统中,可以通过 rtconfig.h 文件进行调度器配置,以调整调度器的行为和特性。以下是一些与调度器相关的配置选项及其说明:

  1. 调度器类型

    • RT_THREAD_PRIORITY_MAX:定义系统支持的最大线程优先级,通常范围从 0 到该值。较大的值表示支持更多的线程优先级,可以更精细地控制任务的调度。

    • RT_THREAD_PRIORITY_MIN:定义系统支持的最小线程优先级,通常为 1。较小的值表示更高的优先级,可确保特定任务获得更高的执行权

    • RT_TICK_PER_SECOND:定义系统的时钟节拍频率,即每秒中发生的时钟中断次数。通过调整这个值,可以改变系统的时钟精度,从而影响任务的调度。

  2. 调度器配置

    • RT_THREAD_PRIORITY_MAX:定义系统支持的最大线程优先级。根据应用需求和系统资源,可以设置适当的最大优先级。

    • RT_THREAD_MAX_PRIORITY:定义系统默认情况下创建线程的最大优先级。确保此值不超过 RT_THREAD_PRIORITY_MAX

    • RT_FLAG_PRIO_MASK:定义优先级掩码,用于屏蔽线程优先级。确保线程优先级在有效范围内。

    • RT_SCHEDULER_LOCK_LEVEL:定义调度器的锁定级别。在临界区内部,锁定级别高于或等于此值的调度器调度会被暂时禁止,以避免优先级反转问题。

  3. 调度器调度算法

    • RT_THREAD_SCHEDULER:定义系统使用的调度算法。可以选择支持的调度算法,如抢占式调度、时间片轮转调度等。

通过在 rtconfig.h 文件中配置与调度器相关的宏定义,可以对 RT-Thread 系统的任务调度器行为进行自定义和调整,以满足不同应用场景的需求。

1.6 硬件设备驱动配置

在 RT-Thread 实时操作系统中,硬件设备的驱动配置主要集中在 rtconfig.h 文件中。通过配置相应的宏定义,可以启用或禁用不同的硬件设备驱动,并进行相关的配置。

以下是一些常见的硬件设备驱动配置选项及其说明:

  1. 串口驱动配置

    • RT_USING_SERIAL:定义是否启用串口驱动。启用后,可以通过串口进行数据的收发和通信

    • RT_SERIAL_RB_BUFSZ:定义串口驱动的接收缓冲区大小,即可以存储待接收数据的长度。

  2. SPI 设备驱动配置

    • RT_USING_SPI:定义是否启用 SPI 设备驱动。启用后,可以通过 SPI 总线进行数据的高速传输

    • RT_SPI_FLASH_DEVICE_NAME:定义 SPI Flash 设备的名称。可以根据具体使用的 SPI Flash 设备进行配置和匹配。

  3. I2C 设备驱动配置

    • RT_USING_I2C:定义是否启用 I2C 设备驱动。启用后,可以通过 I2C 总线进行数据的传输和通信。

    • RT_I2C_BUS_NAME:定义 I2C 总线的名称。可以根据实际连接的 I2C 总线进行配置。

  4. RTC(实时时钟)驱动配置

    • RT_USING_RTC:定义是否启用 RTC 驱动。启用后,可以使用实时时钟设备。

    • RT_RTC_DEVICE_NAME:定义 RTC 设备的名称。可以根据实际使用的 RTC 设备进行配置。

  5. 相应设备的引脚和参数配置

    • 根据具体的硬件设备,可能还需要配置相应的引脚和参数,如UART 的引脚配置、SPI 的片选引脚配置、I2C 的引脚配置等

通过在 rtconfig.h 文件中配置相应的宏定义,可以启用或禁用硬件设备驱动,并进行相关的硬件参数配置,以满足具体硬件设备的需求。

这里提供的是一些常见的硬件设备驱动配置选项,具体的配置选项可能因不同的硬件平台和驱动库而有所不同。请查阅相应的文档和驱动库来获取详细的配置信息和示例。

1.7 网络配置

在 RT-Thread 实时操作系统中,网络配置是连接外部网络的关键部分。通过配置网络相关的宏定义,可以启用不同类型的网络协议栈和网络设备驱动,使设备能够进行网络通信。以下是一些常见的网络配置选项及其说明:

  1. 网络协议栈配置

    • RT_USING_LWIP:定义是否启用 Lightweight IP (LwIP) 协议栈。LwIP 是一个轻量级的 TCP/IP 协议栈,用于设备的网络通信。

    • RT_USING_DNS:定义是否启用 DNS(Domain Name System)功能,用于解析域名到 IP 地址。

  2. 网络设备驱动配置

    • RT_USING_NETDEV:定义是否启用网络设备驱动。启用后,可以支持网络设备的初始化和操作。

    • RT_NET_MAX_DHCP_RETRY:定义 DHCP 自动获取 IP 地址的最大尝试次数

    • RT_NET_MAX_ARP_TRY:定义 ARP 地址解析协议的最大尝试次数

  3. 网络接口配置

    • RT_USING_PING:定义是否启用 Ping 功能,用于网络连通性测试。

    • RT_NETIF_HWADDR:定义网络设备的硬件 MAC 地址。

    • RT_NETIF_IPADDR:定义网络设备的 IP 地址。

    • RT_NETIF_GW:定义网络设备的网关地址。

    • RT_NETIF_MSK:定义网络设备的子网掩码。

  4. Socket 配置

    • RT_USING_SOCKETS:定义是否启用 Socket 网络套接字接口。通过 Socket 接口可以进行网络通信,包括 TCP 和 UDP。

    • RT_USING_UDP:定义是否启用 UDP 协议,用于无连接的数据传输。

    • RT_USING_TCP:定义是否启用 TCP 协议,用于可靠的连接传输。

这些网络配置选项可以在 rtconfig.h 文件中进行设置,以便根据实际需求启用或禁用不同的网络功能,配置网络设备和接口参数,以实现设备与外部网络的通信。

请注意,具体的网络配置选项和参数可能会因不同的网络协议栈和驱动库而有所不同。建议查阅相应的文档和示例代码以获取详细的配置信息。

1.8 调试配置

在 RT-Thread 实时操作系统中,调试配置对于开发和调试应用程序非常重要。通过配置调试相关的选项,可以获取详细的系统状态和信息,帮助排查和解决问题。

以下是一些常见的调试配置选项及其说明:

  1. 内核调试配置

    • RT_DEBUG定义是否启用内核调试功能。启用后,会输出一些额外的调试信息,如中断、线程、堆栈等信息。

    • RT_USING_OVERFLOW_CHECK定义是否启用堆栈溢出检查功能。启用后,可以检测出线程堆栈是否溢出。

    • RT_USING_MEMTRACE定义是否启用内存跟踪功能。启用后,可以跟踪内存的申请和释放情况

  2. 打印输出配置

    • RT_USING_FINSH定义是否启用 FinSH 命令行终端。启用后,可以通过串口或网络终端进行命令行交互和调试

    • RT_USING_LOGTRACE定义是否启用系统日志跟踪功能。启用后,系统会输出一些运行时的日志信息

    • RT_USING_ASSERT定义是否启用断言功能。启用后,可以在运行时进行条件判断,如果条件不满足,则触发断言失败。

  3. 调试输出配置

    • RT_DEBUG_INIT:定义是否在启动时打印初始化信息。启用后,会输出系统的初始化过程。

    • RT_DEBUG_THREAD:定义是否打印线程创建、切换和删除的调试信息

    • RT_DEBUG_TIMER:定义是否打印定时器的调试信息

    • RT_DEBUG_IRQ:定义是否打印中断的调试信息

    • RT_DEBUG_MEMHEAP:定义是否打印内存堆的调试信息

这些调试配置选项可以在 rtconfig.h 文件中进行设置,以便根据实际需求启用或禁用不同的调试功能,输出相应的调试信息,并帮助开发者进行调试和排查问题。

请注意,启用过多的调试功能可能会增加系统资源的占用和输出信息的量,请根据具体需求进行配置。

二、menuconfig 

2.1 概述

RT-Thread 提供了 menuconfig 命令来进行配置管理,它是一种基于命令行的配置界面,可以通过交互式方式配置 RT-Thread 操作系统的各个组件和功能选项。

使用 menuconfig 命令进行配置,需要完成以下步骤:

  1. 进入 RT-Thread 的源码目录。

  2. 执行 scons --menuconfig 命令,打开配置界面。

  3. 在菜单界面中,可以使用方向键和回车键进行导航和选择。

    • 使用上下方向键移动光标选中菜单项。
    • 使用左右方向键移动到子菜单或返回上一级菜单。
    • 使用回车键进入子菜单或选择选项。
  4. 在菜单界面中,可以进行各种配置选项的选择和设置。

    • 选择 [*] 表示启用该选项,选择 [ ] 表示禁用该选项。
    • 使用数字键选择标志位选项,如 1 表示选择该标志位,0 表示不选择该标志位。
    • 使用字符串输入框进行文本输入。
  5. 配置完成后,通过回车键确认并保存配置,退出配置界面。

  6. 在退出配置界面后,根据需要重新编译和部署 RT-Thread。

请注意,使用 menuconfig 配置界面可以更方便地进行配置操作,而不需要手动编辑配置文件。配置选项的具体内容和功能会因 RT-Thread 的版本、组件和功能模块而有所不同。

2.2 主要功能

RT-Thread 的 menuconfig 是一个集成式的配置工具,用于管理和配置 RT-Thread 操作系统的各种功能和组件。通过 menuconfig,用户可以方便地进行各种配置选项的设置,以定制适合自己项目需求的 RT-Thread 操作系统。

以下是 menuconfig 的功能概述:

  1. 交互式配置menuconfig 提供了一个交互式的配置界面,用户可以通过键盘操作来选择和设置各种配置选项,而无需手动编辑配置文件。

  2. 配置结构化:配置选项以树状结构的方式组织,清晰地展示了 RT-Thread 操作系统的各个功能模块和组件,方便用户进行导航和选择。

  3. 配置选项:用户可以在 menuconfig 中设置各种选项,如内核功能使能、驱动支持、组件集成等,以满足项目需求。

  4. 功能模块管理menuconfig 允许用户选择性地启用或禁用特定功能模块,以精简系统体积和提高系统性能。

  5. 设备驱动配置:可以在 menuconfig 中配置和管理各种设备驱动,包括串口、网络、文件系统等,以便于项目的移植和扩展。

  6. 自定义配置:用户可以按需修改配置选项的值和设置,以满足特定项目的需求和约束。

  7. 实时预览:在配置选项的设置过程中,menuconfig 可以实时反映配置的变化和影响,帮助用户更好地理解配置选项的含义和作用。

  8. 保存和导出配置:用户可以在 menuconfig 中保存当前的配置设置,并生成相应的配置文件,以便后续使用和版本管理。

总的来说,RT-Thread 的 menuconfig 是一个功能强大且易用的配置工具,能够帮助用户灵活地配置和定制 RT-Thread 操作系统,以适应不同项目的需求和要求。

希望这个概述能帮助您更好地理解 menuconfig 的功能和用途。

三、RT Thread配置 VS Linux配置

RT-Thread 和 Linux 是两种不同的操作系统内核,它们在配置方式上有一些区别。

以下是 RT-Thread 配置和 Linux 配置之间的一些主要比较:

  1. 配置工具

    • RT-Thread:RT-Thread 使用 menuconfig 这样的命令行配置工具,提供了一个交互式的配置界面,用户可以通过键盘操作来选择和设置配置选项。
    • Linux:Linux 使用 menuconfignconfigxconfigqconfig 等多种配置工具,其中 menuconfig 和 nconfig 是基于命令行的配置工具,而 xconfig 和 qconfig 是基于图形界面的配置工具。
  2. 配置结构

    • RT-Thread:RT-Thread 的配置选项以树状结构组织,清晰地展示了各个功能模块和组件,方便用户进行导航和选择。
    • Linux:Linux 的配置选项也以树状结构组织,但在一些配置工具中,展示方式可能会略有不同,比如 xconfig 提供了更直观的可视化界面。
  3. 功能模块管理

    • RT-Thread:RT-Thread 允许用户选择性地启用或禁用特定功能模块,以精简系统体积和提高系统性能
    • Linux:Linux 同样支持用户选择性地配置和编译功能模块,以满足特定需求,但通常拥有更多的功能和扩展性。
  4. 设备驱动配置

    • RT-Thread:RT-Thread 提供了方便的设备驱动配置功能,用户可以在 menuconfig 中配置和管理各种设备驱动。
    • Linux:Linux 作为功能强大的操作系统,设备驱动配置也是其核心功能之一,用户可以通过配置工具选择性地加载和编译各种设备驱动。
  5. 自定义配置

    • RT-Thread:用户可以在 menuconfig 中按需修改配置选项的值和设置,以满足特定项目的需求和约束。
    • Linux:用户同样可以通过各种配置工具自定义配置选项,并根据需要调整配置值,以适应不同的应用场景。

总的来说,虽然 RT-Thread 和 Linux 在配置方面有些许差异,但它们都提供了强大的配置工具和灵活的配置选项,让用户可以根据需要定制适合自己项目的操作系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shiro-03-shiro 核心概念 Subject,SecurityManager 和 Realms

核心概念:Subject,SecurityManager 和 Realms Shiro的体系结构具有三个主要概念-主题(Subject),安全管理器(SecurityManager)和领域(Realms)。 Subject 在保护应用程序安全时,可能…

阿里云香港轻量应用服务器怎么样,建站速度快吗?

阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品,中国电信CN2高速网络高质量、大规格BGP带宽,运营商精品公网直连中国内地,时延更低,优化海外回中国内地流量的公网线路,可以提高国际业务访问质量。阿里云服务…

[java基础揉碎]类与对象

目录 类与对象的引出: 类与对象的概述: 类与对象在内存中的布局: 属性的注意细节: 类与对象在内存中创建的过程: 类与对象的引出: 例如这样一个问题: 如果用单独变量来解决, 就会有一个问题, 不利于数据的管理, 将所有猫的信息都给拆解了: 如果用数组来解决, 则会有 1)数…

ClickHouse--11--ClickHouse API操作

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.Java 读写 ClickHouse API1.1 首先需要加入 maven 依赖1.2 Java 读取 ClickHouse 集群表数据JDBC--01--简介 ClickHouse java代码 1.3 Java 向 ClickHouse 表中写…

计算机设计大赛 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

Mysql5.6忘记密码,如何找回(windows)

mysql5.6安装 第一步:关闭正在运行的数据库服务 net stop mysql第二步:在my.ini文件当中的[mysqld] 任意一个位置放入 skip-grant-tables第三步:启动mysql服务 net start mysql第四步:服务启动成功后就可以登录了,…

举个栗子!Tableau 技巧(265):灵活对比文本表的行数据

通过文本表查看数据时,我们经常需要将某一行数据与其他行进行对比,如何能更灵活更直观的对比分析各行数据情况呢? 可以试试这个方法!如下示例:点击某明细行时,该明细行会自动置顶,且其它行会新…

Linux系统:iptables 防火墙

目录 一、安全技术与防火墙 1、安全技术概念 2、防火墙 2.1 防火墙概念 2.2 防火墙分类 2.3 linux的防火墙Netfilter 2.4 防火墙工具介绍 2.5 netfilter 和 iptables 的关系 二、iptables 1、概念 2、五表五链 2.1 五个table表 2.2 五个chain链 2.3 内核中数据包…

ClickHouse--06--其他扩展MergeTree系列表引擎

其他扩展MergeTree系列 MergeTree 系列表引擎 --种类 MergeTree 系 列 表 引 擎 包 含 : MergeTreeReplacingMergeTreeSummingMergeTree(汇总求和功能)AggregatingMergeTree(聚合功能)CollapsingMergeTree&#xff08…

- 项目落地 - 《选择项目工具的方法论》

本文属于专栏《构建工业级QPS百万级服务》 提纲: 选择大概率能完成业务目标的工具选择最适合的工具制作最适合的工具 本文所说的项目工具,泛指业务软件开发,所依赖的第三方提供的成熟的资源。包括但不限于开发语言、编辑工具、编译工具、三方…

IgG1 (mouse), ELISA kit——ENZO热销产品

90分钟内可得结果的高特异性定量ELISA试剂盒 免疫球蛋白G(IgG)是一种免疫球蛋白单体,由两条(γ)重链和两条轻链组成。每个IgG分子包含两个抗原结合域和一个效应(Fc)域。Enzo Life Sciences可提供…

WebService接口测试

WebService的理解 WebService就是Web服务的意思,对应的应用层协议为SOAP(相当于HTTP协议),可理解为远程调用技术。 特点: 客户端发送的请求主体内容(请求报文)的格式为XML格式 接口返回的响…

学习数据结构和算法的第9天

题目讲解 移除元素 ​ 给你一个数组nums和一个值 val,你需要 原地 移除所有数值等于 val的元素,并返回移除后数组的新长度。 ​ 不要使用额外的数组空间,你必须仅使用0(1)额外空间并 原地 修改输入数组。 ​ 元素的顺序可以改变。你不需要…

电脑屏幕录制工具 Top10 榜单,免费无水印方法集

随着媒体行业的突飞猛进,不同服务之间对有效屏幕录制的竞争日益激烈。这导致市场上出现了质量参差不齐的屏幕录像机。特别是有些录屏器会自动给你录制的视频加上水印,给需要在公共场合使用的人留下不专业的印象。除此之外,它们甚至不能保护您…

OS文件管理

文件管理 文件的属性 文件所包含的属性: 文件名:由创建文件的用户决定文件名,主要为了方便用户找到文件,同一目录下不允许有重名文件。标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性&#…

vm centos7 docker 安装 mysql 5.7.28(2024-02-18)

centos系统版本 [rootlocalhost mysql5.7]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) docker版本 拉取指定版本镜像 docker pull mysql:5.7.28 docker images 创建挂载目录(数据存储在centos的磁盘上) mkdir -p /app/softwa…

全面的ASP.NET Core Blazor简介和快速入门

前言 因为咱们的MongoDB入门到实战教程Web端准备使用Blazor来作为前端展示UI,本篇文章主要是介绍Blazor是一个怎样的Web UI框架,其优势和特点在哪?并带你快速入门上手ASP.NET Core Blazor(当然这个前提是你要有一定的C#编程基础的情况&#x…

大数据01-导论

零、文章目录 大数据01-导论 1、数据与数据分析 **数据:是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。**数据可以是连续的值,比如声音、图像,称为模拟数据;也可…

探索【注解】、【反射】、【动态代理】,深入掌握高级 Java 开发技术

文章目录 Java注解1.注解基础2.注解原理 反射1.Class对象的获取1.基础公共类1.1.Object > getClass()1.2.类名.class 的方式1.3.Class.forName() 2.获取类的成员变量3.获取成员方法并调用4.反射优缺点 代理1.结构2.静态代理2.1.案例1-计算前后校验2.1.1.创建接口2.1.2.创建实…

Ubuntu20.04 安装jekyll

首先使根据官方文档安装:Jekyll on Ubuntu | Jekyll • Simple, blog-aware, static sites 如果没有报错,就不用再继续看下去了。 我这边在执行gem install jekyll bundler时报错,所以安装了rvm,安装rvm可以参考这篇文章Ubuntu …