工作职责1. 需求分析与设计 与产品经理、客户沟通,理解业务需求。 设计软件架构和模块,编写技术文档。2. 应用开发 使用C/C++、Python等语言开发Linux应用程序。 实现高性能、高可靠性的代码,特别是多进程、多线程应用程序。3. 系统集成 将应用程序与Linux系统(如内核、库、第三方服务)集成。 配置和优化运行环境。4. 多进程与多线程开发 设计和开发多进程、多线程应用程序,确保线程安全和资源竞争问题的解决。 使用进程间通信(IPC)机制(如管道、消息队列、共享内存、信号量)。5. GUI开发(Qt) 使用Qt框架开发图形用户界面(GUI)应用程序。 实现跨平台的Qt应用程序,确保兼容性和性能。6. 驱动开发(x86架构) 开发和维护x86架构下的Linux设备驱动程序。 调试和优化驱动程序,确保其稳定性和性能。 与硬件工程师协作,完成硬件设备的驱动支持。7. 调试与测试 使用调试工具(如GDB、strace、JTAG)分析问题。 编写单元测试和集成测试用例,确保代码质量。8. 性能优化 优化应用程序和驱动程序的性能,减少资源占用(如CPU、内存)。 解决多线程、进程间通信(IPC)等问题。9. 文档编写 编写设计文档、用户手册和测试报告。10. 协作与沟通 与团队成员(如硬件工程师、测试工程师、运维工程师)协作,确保项目顺利推进。技能要求1. 编程语言 熟练掌握C/C++,熟悉Python、Shell脚本。 了解汇编语言者优先 。2. Linux系统知识 熟悉Linux操作系统原理(如进程管理、内存管理、文件系统)。 熟悉常用命令和工具(如grep、awk、sed)。3. 多进程与多线程开发 熟悉Linux下的多进程、多线程编程(如pthread、fork)。 了解线程同步机制(如互斥锁、条件变量、信号量)。 熟悉进程间通信(IPC)机制(如管道、消息队列、共享内存)。4. Qt框架 熟悉Qt框架,能够使用Qt开发GUI应用程序。 了解Qt的核心模块(如Qt Core、Qt GUI、Qt Widgets)。 有跨平台开发经验者优先。5. 驱动开发 熟悉Linux内核模块开发和设备驱动开发。 了解字符设备、块设备、网络设备驱动的开发流程。 熟悉设备树(Device Tree)和硬件寄存器操作。 有x86架构驱动开发经验者优先。6. 开发工具 熟练使用GCC、Makefile、CMake等构建工具。 熟悉版本控制工具(如Git)。7. 调试与优化 掌握GDB、strace、JTAG等调试工具。 具备性能分析和优化经验。8. 硬件知识 了解x86架构的基本原理和硬件特性。 熟悉常见外设接口(如PCI、USB、I2C、SPI)。9. 网络编程 熟悉Socket编程,了解TCP/IP、HTTP等协议。 有网络应用开发经验者优先。10. 数据库知识 熟悉SQL语言,了解MySQL、PostgreSQL等数据库。 有NoSQL数据库(如Redis、MongoDB)经验者优先。11. 软技能 良好的问题分析和解决能力。 团队协作和沟通能力.