#

Linux

#
195201次浏览 1976人互动
此刻你想和大家分享什么
热门 最新
05-28 16:17
已编辑
广州华立学院 驱动开发
cvteLinux技术面 面经
大概问了一个小时左右简单八股加项目1、串口怎么确保每一个数据位正确(奇偶位、校验和)2、用过哪些通信协议(spi、串口、iic)3、IIC最多支持几个从设备?iic跟串口的区别?(128和1024,时钟线,全双工半双工)4、中断的概念5、中断的优缺点6、软中断跟硬中断7、GPIO模式8、Linux内核与用户空间的区别9、内核与用户空间的通信有哪些?用过哪些?(信号,信号量,共享内存,设备文件)10、平常如何向设备文件通信(ioctrl)11、两个模块之间怎么使用对方的函数?(符号导出)12、模块加载工具(insmod、rmmod)13、问回串口,有没有做过gpio模拟串口?怎么确保每个数据接受到(注册中断)14、了解哪些子系统15、字符设备驱动编写流程16、加载驱动的时候,没有执行probe函数会是什么原因(设备树名字没有匹配)17、还了解过哪些设备驱动(块设备、网络设备)18、块设备与字符设备有什么区别(字符设备采用字节流读写、块设备采用块大小读取,感觉这里没有回答好 丢)19、又问回来中断,中断有返回值和传参吗(没有)20、为什么没有?(为了快)21、volatile关键字简单手撕(时间结束还没完全写完 在面试官指点下完成 扣大分😅)问哪个项目自己最擅长 触摸屏驱动,iic子系统架构 input架构 中断子系统架构--------更新线-----------综合面已通过   
查看24道真题和解析
点赞 评论 收藏
分享
这个C++项目大家觉得怎么样:分布式大模型基础架构
项目适用岗位:互联网C++后端, 大模型端侧部署 ,自动驾驶/机器人具身智能C++开发1、底层通信组件方案通信模式封装支持兼容多种通信模式普通消息模式:PUB/SUB(发布订阅)、PUSH/PULL(点对点通信)RPC 模式:通过ZMQ_REP、ZMQ_REQ 封装 RPC 功能RPC功能支持 RPC 方法的动态注册提供默认的 RPC 方法列表查询支持 RPC 调用2、Master模块(实现思路:类似ROS1 Master功能, 更轻量化)背景:分布式大模型系统中,多个节点(如llm/vlm, asr,tts, camera,yolo)需要动态发现彼此并高效通信,外部用户可以动态管理节点内任务调度​​节点注册与发现​实现轻量化内存kv缓存数据库:存储节点元信息;并提高sql查询接口,供节点动态通信节点启动时向Master模块注册,上报自身元信息;节点通信时自动匹配动态任务调度分配设计用户请求-任务匹配机制:外部用户仅封装简易数据包请求,可实现动态控制各个模块(启停/llm推理等)3、Channel模块封装上层发布-订阅(PUB/SUB)和点对点通信(PUSH/PULL)混合通信模式设计闭包,通过闭包将​​网络层​​(ZeroMQ)与​​业务层​​(用户回调)解耦,同时隐式维护了通信上下文状态。4、Infra基础架构模块rpc分布式控制指令下发+异步​事件驱动架构​​注册rpc_setup/rpc_pause等分布式控制接口->注册eventpp事件监听->上层触发rpc调用 -> 添加eventpp事件队列中-> 异步事件驱动->各子类Setup/Pause等功能接口标准化控制协议​​基于抽象接口(Setup/Pause等)实现跨模块统一管控,支持LLM/ASR/TTS等异构节点无缝集成5、TASK模块与Infra模块关系:类似与进程和线程之间关系,Infra模块负责资源分配和流程管控,TASK模块是真正干活的,干的活如下:各模块中模型生命周期管理(加载/卸载)infra推理包装回调输出等等            
点赞 评论 收藏
分享
自动驾驶机器人C++学习路线
自动驾驶C++后端技术栈适宜建议- 对自动驾驶和机器人相关领域感兴趣,想从事该领域工作- 本科或研究生基于ros框架,研究过算法方向,但是发布顶刊论文比较吃力,学历不占优势- 目前只学过C++通用的技术栈,想钻营一个细分领域,提高自己校招的竞争优势- 以上总结三种建议,后续学习需要花大量时间C++通用技术栈Linux学习Ubuntu系统(x86/ARM)熟悉Ubuntu操作系统的基本知识和常用命令。在x86和ARM不同体系结构上进行开发或运行,了解不同体系结构的特点和差异。Linux操作系统知识Linux的基本概念和原理,包括进程管理、内存管理、文件系统、设备驱动等。深入了解Linux的进程间通信机制,如管道、套接字和信号等。Linux系统函数知识熟悉Linux系统提供的常用函数,比如文件操作、进程管理、网络编程等。(大家常做的webserver项目)Linux相关性能分析和优化知识了解Linux性能分析工具和优化技术,识别和解决系统性能瓶颈工具如top、iotop、strace、perf等进行性能分析和排查问题C++C++基础语法包括变量、数据类型、运算符、条件语句、循环语句等C++特性面向对象编程(OOP)、类和对象、继承、多态性智能指针,线程库,C++常用特性模板编程了解模板的基本语法、函数模板、类模板、模板特化等常见标准库boost库,STL库计算机通识技术栈数据结构,设计模式,计算机网络,计算机操作系统自驾领域技术栈项目构建工具cmake、bazelhttps://github.com/Kitware/CMakehttps://github.com/search?q=bazel&type=repositoriesros1ros教程:https://wiki.ros.org/ros基本原理- Nodes:ROS系统由多个节点组成,每个节点代表一个进程,可以是传感器、控制算法等。节点之间通过Messages进行通信。- Topics:主题是节点之间进行异步通信的方式,一个节点可以Publish消息到一个主题,其他节点可以通过Subscribe该主题来接收相关消息。- Services:服务是节点之间进行同步通信的方式,一个节点可以提供一个服务,其他节点可以请求该服务来获取特定的信息或执行特定的操作。- Parameter Server:参数服务器是一个分布式的键值存储系统,用于存储和共享配置参数和运行时参数。节点可以从参数服务器中读取和写入参数。- Messages:ROS使用基于消息的通信模型,消息是以特定格式定义的数据结构,用于在节点之间传递信息。消息可以是标准类型(如整数、字符串等),也可以是自定义的复杂数据类型。发布订阅模型,消息序列化协议(json,protobuf,xml)ros相关源码roscpp https://wiki.ros.org/roscpproscpp_serializationapollogithub: https://github.com/ApolloAuto/apollocyber: https://github.com/ApolloAuto/apollo/tree/master/cyber通信模块:intra, shm,fastddscyber doc: https://github.com/ApolloAuto/apollo/blob/master/docs/04_CyberRT/序列化协议:protobufDDSros2 ,apollo常见:fastdds :https://github.com/eProsima/Fast-DDS        
点赞 评论 收藏
分享
博世vs小米?校招offer二选一
投票
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
LinuxC++项目:基于IO多路复用的安全可靠UDP
技术栈:c++,shell,TCP/UDP,docker,cmake, 网络编程, 系统编程项目简介: 是一个基于 IO多路复用 的 安全可靠的 UDP 文本传输框架。 1. docker 模块: 使用 docker 构建整个 safe-udp 项目环境,通过 dockerfile 安装 glog、cmake 等依赖项,并使用 Shell 编写容器操作脚本,以实现项目构建流程的自动化和部署的便利性。2. UDP_Transport 模块:    - 封装应用层 UDP Data Segment: 序列号、确认号、ACK、FIN等字段;并封装 序列化/反序列化 接口供上层调用。  - 根据 RFC规范 加权计算 平滑 RTT 和超时重传 RTO ,并与 IO多路复用(select) 结合设置 超时逻辑,监听客户端的响应。  - 封装 Sliding Window 和 Buffer,跟踪和管理 发送/接收数据 包的缓冲区,并设置相应索引指针,处理接收到 ACK逻辑。  - 动态调节接收/拥塞窗口大小,自适应开启 慢启动、拥塞避免、拥塞发生、超时重传、快恢复 功能,并计算 cwnd、ssthresh 的值。  - 封装统计模块,统计慢启动、拥塞避免、超时重传 的数据包量和比率,反馈网络性能和行为,利于后续网络服务优化。  - 动态模拟 网络丢包和时延 状况, 校验 safe-udp 的可靠性和容错性(重传机制) 。3. 项目管理和构建: 使用 cmake 作为项目的构建系统,构建 udp_tansport 动态库,供第三方模块调用;并通过 git ,clang-format等工具,管理仓库代码。4. 功能测试和验证模块:构建 server、client 测试程序,验证safe-udp 可靠传输功能;并编写 diff.sh 脚本判断收发的文本内容是否完备          
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
04-15 08:34
已编辑
极智嘉vs博世vs禾望电气
投票
追赶太阳的打工鸭很不想泡池子:mcu只是实现功能的一种手段,不要被网上铺天盖地的linux劝学搞得焦虑了,机器人的核心是控制算法,不是单片机
点赞 评论 收藏
分享
Linux分布式性能监控项目
项目简历:分布式Linux性能分析监控技术栈:C++,Docker,gRPC,Protocol Buffers(protobuf),CMake,Qt项目概述:该项目是一个基于分布式架构的Linux性能分析监控系统,旨在实时监控多台服务器的CPU状态、系统负载、软中断、内存和网络等性能指标,并提供直观的UI界面展示监控数据。以下是该项目的关键特点和主要模块:Docker模块:使用Dockerfile构建项目环境,包括CMake、gRPC、protobuf等源码和依赖项。实现容器操作脚本指令,简化项目在多台服务器上的部署和环境管理。Monitor模块:设计采用工厂方法模式,定义了抽象的Monitor类作为接口,可方便扩展不同系统监控功能。实现CPU状态、系统负载、软中断、内存、网络等监控功能。使用stress工具进行模拟压力测试,以模拟真实性能问题。gRPC框架:构建Server和Client,使用gRPC进行远程连接和通信。在服务器上部署Server,Client生成库供Monitor模块和Display模块调用。Protocol Buffers(protobuf):使用protobuf序列化协议构建项目的数据结构,用于在Server和Client之间传输数据。Display模块:构建UI界面和Data Model两个部分。使用Qt框架创建用户界面,包括QWidget、QTableView、QStackedLayout和QPushButton等组件。通过继承QAbstractTableModel,实现多个数据模型(例如cpu_model、softirq_model、mem_model),每3秒刷新一次数据。该项目的目标是提供一个高效可靠的分布式Linux性能分析监控系统,可应用于大规模服务器集群。通过使用C++、Docker、gRPC、Protocol Buffers、CMake和Qt等技术,实现了模块化、可拓展和易于部署的架构。           
Sor大白:牛客上无法上传视频,大家可以去b站:Sor大白
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-14 23:05
已编辑
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客企业服务