智能路由器开发之OpenWrt简介

news2024/11/24 17:30:27

openwrt

智能路由器开发之OpenWrt简介

1. 引言

router

1.1 智能路由器的重要性和应用场景

智能路由器作为网络通信的核心设备,具有重要的地位和广泛的应用场景。传统的路由器主要提供基本的网络连接功能,但随着智能家居、物联网和大数据应用的快速发展,对于更强大、灵活和智能的路由器需求不断增加。

智能路由器的重要性体现在以下几个方面:

  1. 提供高速稳定的网络连接:智能路由器通过支持更高的无线标准(如802.11ac或802.11ax)和有线网络技术(如千兆以太网),提供更快速和稳定的网络连接,满足用户对高带宽和低延迟的需求。

  2. 安全保护和隐私保密:智能路由器具备强大的安全功能,包括防火墙、数据包过滤和访问控制等,保护网络免受恶意攻击和网络威胁。同时,它也提供隐私保密功能,保护用户的个人信息和数据安全。

  3. 智能家居和物联网连接:智能路由器作为智能家居和物联网的关键组成部分,能够连接和管理各种智能设备,如智能灯泡、智能摄像头、智能家电等。通过智能路由器,用户可以实现设备之间的互联互通和远程控制,提高生活的便捷性和智能化水平。

1.2 OpenWrt作为智能路由器开发的强大工具

OpenWrt是一款开源的嵌入式操作系统,专门设计用于智能路由器和网络设备。它基于Linux内核,提供了丰富的功能和灵活的定制化选项,成为开发智能路由器的强大工具。

OpenWrt的特点和优势包括:

  1. 开源和自由:OpenWrt是开源项目,源代码可以免费获取和修改。这意味着开发者可以根据自己的需求进行定制化开发,添加新功能或优化性能。

  2. 广泛的硬件支持:OpenWrt支持多种硬件平台和芯片组,包括常见的路由器、交换机和嵌入式设备。这使得开发者可以选择适合自己需求的硬件平台,实现更广泛的应用。

  3. 强大的软件生态系统:OpenWrt拥有丰富的软件包管理系统和活跃的开发者社区,提供了大量的软件包和插件,覆盖了各种网络功能和应用。开发者可以利用这些软件包来构建自己的应用程序,实现路由器的定制化和扩展功能。

  4. 灵活的配置和管理:OpenWrt采用了UCI(Unified Configuration Interface)作为统一的配置接口,通过简洁的配置文件来管理路由器的各种设置。这使得配置和管理变得简单而灵活,同时也提供了远程管理和监控的能力。

  5. 定制化和性能优化:OpenWrt提供了灵活的软件包选择和编译选项,开发者可以根据具体需求进行定制化开发,只选择所需的功能和组件,避免不必要的资源浪费。此外,OpenWrt还支持运行在低功耗硬件上,提供高性能和低能耗的解决方案。

总而言之,OpenWrt作为智能路由器开发的强大工具,为开发者提供了广泛的硬件支持、丰富的软件生态系统、灵活的配置和定制化选项。它不仅可以满足智能路由器的基本需求,还提供了更多的扩展和创新可能性。通过利用OpenWrt,开发者可以构建出功能强大、安全可靠的智能路由器,满足用户对于高性能、智能化网络连接的需求。

2. OpenWrt简介

router

2.1 什么是OpenWrt?

OpenWrt是一个基于Linux的嵌入式操作系统,专门设计用于智能路由器和网络设备。它采用了模块化的设计理念,可以轻松地定制和扩展路由器的功能。OpenWrt的核心是一个裁剪后的Linux内核,通过添加软件包和插件来提供丰富的网络功能和应用。

2.2 OpenWrt的特点和优势

  • 灵活的定制化:OpenWrt允许开发者根据自己的需求进行定制化开发。开发者可以选择需要的软件包和功能,同时可以定制网络设置、配置文件和系统行为,以实现特定的路由器功能和性能优化。

  • 开放源代码:OpenWrt是一个开源项目,源代码可以自由获取和修改。这使得开发者可以自由地研究、修改和分发OpenWrt,从而促进了社区的合作和创新。

  • 大量的软件包和插件:OpenWrt拥有丰富的软件包管理系统,包括各种网络工具、应用程序和协议栈。开发者可以利用这些软件包来构建自己的应用程序,实现路由器的多样化功能和扩展性。

  • 支持多种硬件平台:OpenWrt支持多种硬件平台和芯片组,包括常见的路由器、交换机和嵌入式设备。这使得开发者可以选择适合自己需求的硬件平台,实现更广泛的应用。

2.3 开发者社区和资源

OpenWrt拥有一个活跃的开发者社区,社区成员包括开发者、用户和贡献者。社区提供了丰富的文档、教程和示例代码,以帮助开发者入门和解决问题。此外,社区还有论坛、邮件列表和聊天室等交流平台,开发者可以在这些平台上交流经验、分享成果和寻求帮助。

除了社区支持,OpenWrt还提供了官方的软件源和软件包仓库,开发者可以从中获取最新的软件包和更新。这些资源为开发者提供了丰富的工具和材料,简化了开发过程,加快了开发速度。

总结起来,OpenWrt是一个灵活、开源的嵌入式操作系统,专门用于智能路由器和网络设备。它具有定制化、开放源代码、丰富的软件包和插件、多硬件平台支持等特点和优势。

3. 开发环境搭建

openwrt router

3.1 硬件要求和支持的设备

在搭建OpenWrt开发环境之前,需要确保你的硬件满足一定的要求。通常情况下,你需要一台支持OpenWrt的设备或开发板,例如常见的路由器、交换机或嵌入式设备。OpenWrt官方网站提供了详细的硬件兼容性列表,你可以在上面查找你的设备是否受支持。

3.2 安装和配置OpenWrt开发环境

  • 下载OpenWrt固件:首先,你需要从OpenWrt官方网站下载适用于你的设备的固件。官方网站提供了各种固件版本和配置选项,根据你的需求进行选择和下载。

  • 安装固件:将下载的固件刷写到你的设备上。具体的刷写过程可能因设备而异,你可以参考设备的说明文档或OpenWrt官方文档中的指南来完成安装。

  • 配置网络连接:连接到你的OpenWrt设备,并配置网络连接。你可以通过串口、SSH或Web界面等方式进行配置。确保你的开发环境可以与设备进行通信。

3.3 工具链和编译系统

工具链:为了开发和编译OpenWrt的软件包,你需要安装交叉编译工具链。这个工具链包含了适用于目标设备的编译器、链接器和库文件。你可以从OpenWrt官方网站下载并安装适用于你的平台的工具链。

编译系统:OpenWrt提供了一个完整的编译系统,用于构建固件和软件包。你可以使用Makefile和配置文件来定制你的固件,选择需要的软件包和功能。官方文档提供了详细的编译指南和示例,帮助你理解和使用编译系统。

调试工具:为了调试和测试你的应用程序,你可能需要使用一些调试工具,如GDB(GNU调试器)和串口调试器。这些工具可以帮助你分析和解决问题,提高开发效率。

在完成以上步骤后,你就成功搭建了OpenWrt的开发环境。你可以开始编写和测试自己的应用程序,定制和优化智能路由器的功能。记得参考官方文档和开发者社区,获取更多的指导和支持。

4. OpenWrt的核心组件

openwrt

4.1 Linux内核

自定义内核配置和编译:OpenWrt使用Linux内核作为其核心组件。开发者可以根据具体需求进行自定义内核的配置和编译。通过选择和启用特定的内核功能和模块,开发者可以优化系统性能、减小内核体积,并满足特定的硬件需求。

内核模块和驱动程序的管理:OpenWrt支持加载和管理内核模块和驱动程序。开发者可以选择所需的模块,并通过内核配置文件进行编译和加载。这使得开发者可以灵活地添加和管理硬件驱动,扩展设备的功能和兼容性。

4.2 UCI(Unified Configuration Interface)

配置文件和数据模型:UCI是OpenWrt的配置接口,提供了一种统一的方式来管理系统的配置和参数。它使用文本配置文件和数据模型来描述系统的各种设置,如网络配置、防火墙规则、无线网络等。开发者可以通过编辑和解析这些配置文件来进行系统配置和管理。

UCI命令和API的使用:OpenWrt提供了一组UCI命令和API,用于对配置文件进行操作和查询。开发者可以使用这些命令和API来读取、修改和删除配置项,实现对系统配置的动态控制。这使得配置管理变得简单而灵活,同时也方便了开发者与系统的交互。

4.3 LuCI(Lua Configuration Interface)

Web界面和管理平台:LuCI是OpenWrt的Web界面和管理平台,基于Lua编程语言开发。它提供了一个直观的图形界面,用于配置和管理路由器的各种功能和服务。通过LuCI,用户和开发者可以通过浏览器访问路由器,进行网络设置、监控设备状态、安装插件等操作。

自定义界面和扩展:LuCI允许开发者自定义界面和扩展功能。开发者可以根据需要添加新的页面、菜单和插件,以满足特定的用户需求。LuCI的扩展性和灵活性使得开发者可以构建出符合自己品牌和风格的用户界面,提供更好的用户体验。

总结起来,OpenWrt的核心组件包括Linux内核、UCI和LuCI。Linux内核提供了底层的系统支持和硬件驱动,通过自定义配置和编译,实现系统的优化和适配。UCI提供了统一的配置接口,方便开发者管理系统配置和参数。而LuCI作为Web界面和管理平台,提供了直观的图形界面和自定义扩展。

5. OpenWrt应用开发

openwrt

5.1 应用程序开发

OpenWrt提供了丰富的应用程序开发支持,开发者可以利用这些工具和资源进行应用程序的开发、编译和部署。

  • 交叉编译和构建应用:
    由于OpenWrt运行在嵌入式设备上,通常需要进行交叉编译。开发者可以使用OpenWrt提供的工具链和编译环境,将应用程序从源代码编译成适用于目标设备的可执行文件。通过交叉编译,可以有效地在开发主机上进行应用程序的开发和测试,然后将编译好的应用程序部署到目标设备上。

  • 应用程序的部署和安装:
    OpenWrt提供了软件包管理系统,开发者可以将自己开发的应用程序打包成软件包,并通过软件包管理系统进行部署和安装。开发者需要编写适配OpenWrt的Makefile文件,并定义应用程序的依赖关系、编译选项和安装路径。然后,通过opkg工具将软件包安装到目标设备上。

5.2 定制化和扩展

OpenWrt允许开发者进行定制化和扩展,以满足特定的需求和添加额外的功能。

  • 自定义软件包和插件:
    开发者可以根据自己的需求编写和定制软件包。通过创建适配OpenWrt的软件包源码目录,编写Makefile文件和相关的源代码,开发者可以构建自己的软件包。这样,可以将特定的功能或应用程序集成到OpenWrt系统中。

  • 添加功能和特定配置:
    OpenWrt提供了丰富的配置选项和功能,开发者可以根据需要进行定制。例如,可以通过修改配置文件或使用UCI命令来添加特定的网络配置、防火墙规则等。通过定制和配置,开发者可以满足不同场景下的需求,使得OpenWrt更加适用于特定的应用环境。

总结起来,OpenWrt应用开发提供了交叉编译和构建应用程序的工具和环境,使得开发者可以方便地开发和部署应用程序。通过定制化和扩展,开发者可以根据需要自定义软件包和插件,并添加特定的功能和配置。这使得OpenWrt更加灵活和适应不同的应用场景。

6. 测试和调试

openwrt

6.1. 单元测试和集成测试

在OpenWrt应用开发中,测试是一个关键的环节,用于确保应用程序的质量和稳定性。

  • 单元测试:
    单元测试是针对应用程序的各个独立单元进行测试的过程。开发者可以使用测试框架,编写针对每个函数或模块的测试用例,并运行这些测试用例来验证代码的正确性。通过单元测试,可以快速发现和解决潜在的问题,确保每个单元的功能正常。

  • 集成测试:
    集成测试是在应用程序的整体环境下进行的测试,用于验证各个组件之间的交互和协作是否正确。开发者可以模拟实际使用场景,测试应用程序在真实环境中的行为和性能。通过集成测试,可以发现系统层面的问题,并保证整个系统的稳定性和可靠性。

6.2 调试技术和工具

调试是在开发过程中解决问题和修复错误的关键步骤。在OpenWrt应用开发中,开发者可以使用多种调试技术和工具。

  • 日志调试:
    OpenWrt提供了日志系统,开发者可以在应用程序中添加日志输出,用于记录关键信息和调试信息。通过查看日志,开发者可以追踪代码执行过程,分析问题所在,并进行错误排查和修复。

  • 远程调试:
    OpenWrt支持远程调试功能,开发者可以通过网络连接到目标设备,并使用调试工具进行远程调试。例如,可以使用GDB调试器连接到目标设备,观察变量的值、执行流程,以及定位代码中的错误。

  • 硬件调试:
    在OpenWrt应用开发中,有时还需要进行硬件层面的调试。开发者可以使用硬件调试工具,如JTAG调试器或逻辑分析仪,对硬件进行调试和故障排查。这些工具可以帮助开发者检测硬件电路的信号和波形,定位硬件问题。

总结起来,测试和调试是OpenWrt应用开发中不可或缺的环节。通过单元测试和集成测试,开发者可以确保应用程序的质量和稳定性。调试技术和工具则帮助开发者解决问题和修复错误,提高开发效率。在应用开发过程中,合理利用测试和调试手段,可以有效提高应用程序的可靠性和性能。

7. 发布和部署

openwrt in syslink

7.1 固件生成和发布

在开发完毕并测试通过的OpenWrt应用程序之后,下一步是生成和发布固件,以便部署到目标设备上。

  • 固件生成:
    OpenWrt提供了一套完整的工具链和编译系统,用于生成定制化的固件。开发者可以使用这些工具,根据需要选择所需的软件包和配置,进行编译和构建。生成的固件包括了操作系统、内核、应用程序和配置文件等,可以直接安装到目标设备上。

  • 固件发布:
    发布固件是将生成的固件文件提供给用户或其他开发者的过程。开发者可以将固件上传到合适的平台或服务器上,并提供下载链接。在发布固件时,通常会提供相关的文档、说明和支持,以帮助用户正确地安装和使用固件。

7.2 更新和升级策略

随着应用的发展和需求的变化,更新和升级固件是非常重要的。OpenWrt提供了灵活的更新和升级策略,以满足不同用户的需求。

  • 定期更新:
    开发者可以定期发布更新的固件版本,以修复漏洞、添加新功能或改进性能。通过提供定期的更新,用户可以获取到最新的功能和安全补丁,保持系统的稳定性和安全性。

  • 在线升级:
    OpenWrt支持在线升级功能,允许用户通过网络直接从设备上进行固件的升级。用户可以通过简单的操作,从OpenWrt官方源或其他合适的源获取最新的固件版本,并进行升级。这使得用户可以方便地获取到最新的功能和改进。

  • 自动化升级:
    为了简化固件的更新和升级流程,开发者可以设计自动化的升级机制。通过设置自动化任务或脚本,用户可以定期检查和下载最新的固件,并自动进行升级。这样可以减少用户的操作步骤,提高用户体验。

总结起来,发布和部署是OpenWrt应用开发的最后阶段。通过固件生成和发布,开发者可以将应用程序提供给用户或其他开发者使用。而更新和升级策略则保证了应用程序的持续演进和改进。通过合理的发布和部署流程,开发者可以确保用户能够获得最新的功能和改进,并保持系统的稳定性和安全性。

8. 智能路由器开发案例

openwrt github data

8.1 实际案例分析和应用场景展示

在本部分中,我们将通过实际案例来展示智能路由器开发的应用场景和潜力。以下是几个具体案例:

  1. 家庭智能网络管理器:
    智能路由器可以用作家庭智能网络管理器,通过集成智能家居设备的控制和管理功能,实现便捷的家庭网络控制。例如,用户可以通过智能手机应用程序远程控制家庭中的灯光、温度、安全系统等设备,并实时监测和管理家庭网络的使用情况。

  2. 商用网络安全防护:
    智能路由器可以用作商用网络安全防护设备,提供高级的安全功能,如入侵检测和阻断、虚拟专用网络(VPN)支持、防火墙设置等。通过定制化开发,可以根据特定行业和企业需求,构建出适应性强、安全可靠的网络解决方案。

  3. 智能城市交通管理:
    智能路由器在智能城市交通管理中扮演着重要角色。通过将智能路由器部署在交通信号灯、监控摄像头等设备上,可以实现智能交通监控和优化。例如,通过智能路由器收集和分析交通数据,可以实现智能信号控制、拥堵监测和路况预测,提高交通效率和安全性。

  4. 无线网络扩展和优化:
    智能路由器可以用于无线网络扩展和优化,解决大面积覆盖和高密度连接的问题。通过在不同区域部署智能路由器节点,可以实现无缝漫游和负载均衡,提供稳定和高速的无线网络连接。这在企业、学校、酒店等场所中非常有用。

以上是一些智能路由器开发的实际案例和应用场景。这些案例展示了智能路由器作为一种强大工具,能够满足不同行业和领域的需求,并提供创新的解决方案。通过深入理解这些案例,开发者可以在智能路由器开发中找到灵感和启示,为未来的项目提供创意和价值。

9. 结论

openwrt web

9.1 OpenWrt的优势和未来发展

OpenWrt作为智能路由器开发的强大工具,具有以下优势和潜力:

开放性和灵活性:OpenWrt是开源项目,提供了广泛的自定义和定制化选项。开发者可以根据需求对系统进行配置和编译,添加功能和模块,实现灵活的开发和部署。

强大的社区支持:OpenWrt拥有庞大的开发者社区,提供了丰富的文档、教程和支持资源。开发者可以从社区中获取帮助和交流,分享经验和最佳实践,加速开发过程并解决问题。

多样化的应用场景:智能路由器的应用场景广泛,涵盖了家庭网络管理、商用网络安全、智能城市交通等领域。OpenWrt提供了丰富的功能和工具,适用于各种不同的应用需求。

未来,OpenWrt有望继续发展和壮大,带来更多的创新和功能增强。随着智能化和物联网的快速发展,对智能路由器的需求将进一步增加,OpenWrt将成为满足这些需求的重要工具。

9.2 智能路由器开发的潜力和挑战

智能路由器开发具有巨大的潜力和机遇,但也面临一些挑战:

  1. 技术复杂性:智能路由器开发涉及到多个领域的知识,如嵌入式系统、网络协议、安全性等。开发者需要具备广泛的技术背景和深入的专业知识,才能进行有效的开发和优化。

  2. 安全和隐私问题:智能路由器作为连接家庭和企业网络的关键设备,安全和隐私保护至关重要。开发者需要关注网络安全漏洞和攻击,设计安全的认证和加密机制,保护用户数据和隐私。

  3. 兼容性和互操作性:智能路由器需要与各种设备和协议进行兼容和互操作,以实现无缝的集成和互联。开发者需要解决不同厂商和标准之间的兼容性问题,确保设备的互联互通。

尽管存在挑战,但智能路由器开发仍然是一个充满活力和创新的领域。随着技术的进步和需求的不断演进,智能路由器开发将持续发展并取得更多突破。以下是一些未来可能的发展趋势:

  1. 更强大的处理能力:随着计算能力的提升,智能路由器将能够处理更复杂的任务和应用,如实时视频流处理、人工智能算法等。这将为用户提供更多功能和智能化的体验。

  2. 更智能的网络管理:智能路由器将能够自动识别和优化网络流量,根据设备需求进行智能分配带宽和资源。同时,智能路由器还可以通过学习用户的行为和习惯,提供个性化的网络管理和推荐服务。

  3. 安全和隐私的进一步加强:随着网络安全威胁的不断增加,智能路由器的安全性和隐私保护将成为重要关注点。开发者将致力于设计更强大的安全功能和机制,如入侵检测系统、流量监控、安全认证等,以保护用户的网络和数据安全。

  4. 更紧密的设备互联:智能路由器将成为智能家居和物联网设备的中心枢纽,实现设备之间的无缝互联和互操作。开发者将开发更多的协议和标准支持,使得不同品牌和类型的设备能够方便地连接和共享数据。

总之,智能路由器开发具有广阔的发展前景和潜力。通过不断的创新和技术进步,开发者将能够构建更强大、更智能、更安全的智能路由器,为用户提供更好的网络体验和连接服务。

10. 参考资料

openwrt runtime params

  1. OpenWrt官方网站:

https://openwrt.org/

OpenWrt官方网站是了解OpenWrt项目的最佳资源。它提供了详细的文档、教程、论坛和社区支持,帮助开发者深入了解OpenWrt的特性、用法和开发流程。

  1. OpenWrt开发指南:

https://openwrt.org/docs/guide-developer/start

OpenWrt开发指南是一个详细的教程,介绍了如何搭建开发环境、编译固件、配置系统和开发应用程序等方面的内容。它提供了逐步指导和示例代码,帮助开发者快速入门OpenWrt开发。

  1. OpenWrt源代码仓库:

https://github.com/openwrt/openwrt

OpenWrt的源代码仓库存放了完整的OpenWrt代码。开发者可以通过该仓库获取最新的代码、提交问题和贡献自己的代码。

  1. OpenWrt论坛:

https://forum.openwrt.org/

OpenWrt论坛是一个活跃的社区,开发者可以在论坛上与其他开发者交流经验、提问问题和寻求帮助。论坛中有大量的讨论主题、教程和解决方案,对于开发者来说是一个宝贵的资源。

  1. OpenWrt文档库:

https://openwrt.org/docs/start

OpenWrt文档库包含了丰富的文档资源,涵盖了OpenWrt的各个方面,包括配置、软件包管理、网络设置等。开发者可以通过文档库深入了解OpenWrt的功能和用法。

以上是一些重要的参考资料,可以帮助开发者在OpenWrt开发过程中获取必要的信息和支持。除了这些资源,还可以通过搜索引擎、技术博客和开发者社区等渠道获取更多关于OpenWrt的学习资料和实践经验。祝愿您在OpenWrt开发中取得成功!

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

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

相关文章

池州控股集团财务共享项目启动啦!

近日,由用友网络承建的池州市投资控股集团有限公司财务共享项目启动会成功举办,也标志着池州控股集团财务共享项目正式启动!池州控股集团总经理刘俊、用友国资事业部总经理汪发清及其他相关专家和项目组主要成员参加了此次启动会。 池州投控集…

100种思维模型之全局观思维模型-67

全局观思维模型,一个教我们由点到线,由线到面,再由面到体,不断的放大格局去思考问题的思维模型。 01、何谓全局观思维模型 一、全局观思维 什么叫全局观? 世界上的所有东西,都是被规律作用者的&#xff0c…

Linux网络基础-5

在上一篇博客中我们对网络层的典型协议--IP进行了介绍,那么本篇博客作为网络方面的最后一片博客,我们对网络中最后内容--链路层协议进行讲解。 目录 1.链路层协议 1.1MAC地址 1.1.1类型 1.1.2作用 1.2以太网协议 1.2.1协议格式 1.2.2ARP协议 1.…

现场直击 | 沈阳新技术交流会,实景三维再“出圈”

5月19日,由中国测绘学会、中国地理信息产业协会指导,辽宁省测绘地理信息学会、辽宁省土地学会地理信息专业委员会主办,武汉大势智慧科技有限公司、沈阳市勘察测绘研究院有限公司承办的“全自主、全流程、全覆盖”2023实景三维新技术交流会沈阳…

QT桌面项目(日历程序)

文章目录 前言一、QCalendarWidget介绍二、日历代码实现总结 前言 本篇文章继续为大家讲解QT桌面项目,那么这篇文章我们将实现一个日历程序。在QT中要想实现一个简单的日历程序是非常简单的,使用QT中自带的QCalendarWidget类即可实现。 一、QCalendarW…

LAMP的部署(天光渐暗,暮色里遗漏了一丝蓝,星辰便从中亮起。)

一、LAMP架构概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP&#…

阻抗板是否高可靠,华秋有话说

随着高频高速电子产品的快速发展,信号传输过程更容易出现反射、串扰等信号完整性问题,且频率越高、传输速率越快,信号损耗越严重,如何降低信号在传输过程中的损耗、保证信号完整性是高频高速PCB发展中的巨大挑战。 在高速PCB设计…

USB主机枚举设备

https://space.bilibili.com/489340606/channel/collectiondetail?sid896957 以下图片来自于沁恒微电子蔡亮工程师的讲课,对USB开发入门很有好处。 1. USB设备的组成结构 一个设备可以有多个配置,但同一时刻只能有一个生效。一个配置可以有多个接口&a…

Linux——进程概念详解

目录 一.什么是进程? 2.PCB的含义,为什么会存在PCB? 整体解析操作系统对进程的管理方式: 二.对比Windows系统: 三.Linux——进程 学习一个新指令:ps ajx 四.接下来学习几个进程的系统调用函数&#xff1…

版图设计IC617 virtuoso工具使用,创建一个库

库是用于创建自己的芯片的,一个库可以看成一个芯片,一个芯片又包含各种元器件。cell就是用于定义具体的元器件的。元器件包含版图,原理图,逻辑符号,等各种视图。 一 创建库过程 1.1 库的创建 1. 在Library Manager下…

PaLM 2重磅来袭,深挖谷歌92页技术报告亮点总结

谷歌CEO桑达尔・皮查伊(Sundar Pichai)亲切地将2023年称为是一个AI busy year,当地时间5月10日,谷歌IO大会上,谷歌大语言模型PaLM 2虽迟但到。作为一个“AI-first”公司,谷歌在Bard聊天机器人爆出事实性错误…

异常排查 | 重复Cookie访问导致HTTP请求引发空指针异常

文章目录 一、场景描述二、异常说明三、查找问题四、调试排查五、思考分析六、解决方案七、写在最后 近几日,遇到一个困惑了我很久的异常,是浏览器页面向Tomcat服务器发起HTTP请求时,服务器发还回来的一处异常 java.lang.NullPointerExceptio…

html实现酷炫星空可视化大屏(附源码)

文章目录 1.设计来源1.1 可视化架构1.2 可视化大屏界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/130884793 html实现酷炫星空可视化大屏(附源码) ,html大…

华为OD机试真题(Java),跳跃游戏 II(100%通过+复盘思路)

一、题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i]0i j < 返回到达 num…

Talk预告 | ICML‘23 Oral 字节跳动 AI Lab 研究员郑在翔:人工智能如何助力蛋白质设计?

本期为TechBeat人工智能社区第500期线上Talk&#xff01; 北京时间5月25日(周四)20:00&#xff0c;字节跳动 AI Lab 研究员 — 郑在翔的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “人工智能如何助力蛋白质设计 ”&#xff0c;届时将介绍基于…

springboot+vue智慧食堂系统(java项目源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的智慧食堂系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&a…

Rancher添加集群报错:Etcd Cluster is not healthy

原因&#xff1a; 有一台虚拟机在升级内核失败后&#xff0c;回滚至快照。但由于快照版本太老旧&#xff0c;和当前的rancher版本不匹配&#xff0c;服务器上的agent等需要清楚后&#xff0c;重新在rancher添加集群&#xff1b;但是只删除了rancher镜像以及agent相关容器&#…

Linux设备树:删除节点和属性的方法

[摘要]&#xff1a;本文主要介绍了在设备树中删除节点&#xff08;node&#xff09;和属性&#xff08;property&#xff09;的方法。为了便于理解&#xff0c;笔者先介绍了 dtsi 和 dts 的关系&#xff0c;然后构建了虚拟的需求场景&#xff0c;最终给出示例。 背景知识 设备…

易基因:MeRIP-seq等揭示m6A reader YTHDF1在结直肠癌PD-1免疫治疗中的作|Gut

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 结直肠癌&#xff08;colorectal cancer &#xff0c;CRC&#xff09;是全球最常见的癌症之一&#xff0c;转移性CRC患者的5年生存率低于20%。免疫检查点阻断&#xff08;Immune checkpo…

基于LLMs的多模态大模型(MiniGPT-4,LLaVA,mPLUG-Owl,InstuctBLIP,X-LLM)

这个系列的前一些文章有&#xff1a; 基于LLMs的多模态大模型&#xff08;Visual ChatGPT&#xff0c;PICa&#xff0c;MM-REACT&#xff0c;MAGIC&#xff09;基于LLMs的多模态大模型&#xff08;Flamingo, BLIP-2&#xff0c;KOSMOS-1&#xff0c;ScienceQA&#xff09; 前…