百面嵌入式专栏(岗位分析)海康高级linux开发工程师分析

news2024/11/25 8:19:53

在这里插入图片描述

文章目录

  • 一、岗位的介绍
  • 二、刨析
    • 2.1、掌握调试工具
    • 2.2、块设备相关知识
  • 三、简历建议

沉淀、分享、成长,让自己和他人都能有所收获!😄

📢本篇我们将对海康高级linux开发工程师岗位进行分析 。

一、岗位的介绍


地点:上海

工作内容

  1. 负责linux操作内核驱动的开发、维护
  2. 负责产品需求的沟通、分析、方案设计工作

任职要求

  1. 统招本科以上,工作经验5年及以上;
  2. 熟悉Linux操作系统,掌握shell脚本编程,能熟练使用svn等代码管理程序
  3. 熟练掌握C/C++语言编程。
  4. 精通应用 Linux下的程序调试方法,熟练掌握Linux下的调试工具(gdb,crash,systemtap等)的使用
  5. 精通Linux内核及驱动开发,有维护和开发内核及内核模块的相关经验
  6. 精通 linux下的块设备相关知识(raid,DM,block)优先
  7. linux内核工作经验3年以上优先
  8. 有良好的的沟通能力,抗压能力和团队合作意识
  9. 有较强的学习能力和逻辑思维能力

二、刨析


我们从上面获取有用信息:

2.1、掌握调试工具


Linux下的调试工具

  • gdb:
  • crash
  • systemtap

这些工具都是用于在 Linux 环境中进行调试和故障排除的强大工具,每个工具都有其特定的用途和优势。

  • GDB(GNU Debugger):
    GDB 是一个功能强大的源代码级别的调试器,用于调试 C、C++ 等编程语言的程序。它允许开发人员在程序运行时查看变量、检查内存、追踪代码执行流程,并帮助找出程序中的错误和问题。GDB 提供了命令行界面,也有一些图形界面的前端可供选择。

  • Crash:
    Crash 是一个用于分析 Linux 内核转储文件(core dump)的工具。当 Linux 操作系统遇到严重错误导致系统崩溃时,会生成一个核心转储文件,其中包含了崩溃时的内存状态、寄存器值等信息。Crash 工具允许开发人员分析这些核心转储文件,以了解崩溃的原因,定位问题,并进行故障排除。

  • SystemTap:
    SystemTap 是一个动态系统跟踪工具,它允许开发人员在 Linux 系统中插入特定的探针(probes),以收集各种系统级信息,进行性能分析、调试和监控。使用 SystemTap,可以编写类似于 C 程序的脚本来捕获系统运行时的信息,这些信息对于分析性能问题、调试代码或者监视系统状态都非常有用。

这些工具各自在不同的场景下发挥作用。比如,在开发过程中,你可能会使用 GDB 来单步调试程序;在系统出现问题时,使用 Crash 工具分析核心转储文件以找出问题所在;而在性能分析或系统级跟踪方面,SystemTap 可能更为有用。

在 Linux 内核开发、驱动开发或系统调试中,这些工具通常是必备的,因为它们为开发人员提供了深入分析和诊断系统问题的能力。

除了上面提到的,我们还需要具备什么:
在这里插入图片描述

2.2、块设备相关知识


  • RAID: 需要了解不同级别的 RAID(如 RAID 0、1、5、6、10 等)的工作原理、数据条带化、数据冗余、性能和容错能力等特性。了解 RAID 在 Linux 系统中的配置、管理以及故障处理方式。

  • Device Mapper(DM): 需要熟悉 Linux 内核中的 Device Mapper 框架,包括了解其在创建逻辑卷管理(LVM)、加密设备、快照和镜像等方面的应用。深入了解 DM 在块设备管理和抽象层面的作用。

  • 块设备(Block Devices): 对块设备的概念、工作原理、操作系统如何管理块设备以及与文件系统的关系有深入的了解。了解块设备在硬件和软件层面上的操作和管理方式,以及在 Linux 内核中的实现和管理。

这个要求意味着应聘者需要有能力在 Linux 环境中有效地处理和管理块设备,无论是单个设备还是复杂的存储解决方案(比如 RAID),并能够应对故障、优化性能以及进行配置和管理。这对于从事系统管理、存储解决方案开发、文件系统开发或者内核驱动开发等工作的人员来说,是非常重要的技能。

三、简历建议


可以得出结论,此岗位是从事块设备的Linux岗位:

我们简历需要针对块设备进行着重描述:

对于处理块设备,特别是在 Linux 环境下,需要具备以下技能和知识:

  1. 操作系统和文件系统的了解:
    理解操作系统是如何管理和处理块设备的,包括块设备的初始化、挂载、读写、卸载等操作。
    熟悉常见的文件系统(如ext4、XFS、NTFS等),了解它们与块设备的关系,以及如何在块设备上创建和管理文件系统。
  2. 设备管理和配置:
    熟悉设备管理工具,能够识别、管理和配置块设备,比如 fdisk、parted 或 lsblk 等命令行工具。
    理解块设备的概念、大小、分区和格式化等相关操作。
  3. RAID 和存储技术:
    了解不同级别的 RAID,能够配置和管理 RAID 系统。
    熟悉存储技术的概念,包括数据条带化、冗余、性能和容错能力等,以及如何在 Linux 中配置和管理这些存储技术。
  4. 内核和驱动开发:
    对 Linux 内核有一定了解,知道如何编译和配置内核以支持块设备和相应的驱动。
    熟悉 Device Mapper 框架和块设备驱动开发。
  5. 故障排除和性能优化:
    能够识别和解决块设备故障,理解并应用故障排除工具。
    优化块设备的性能,了解如何调整参数、配置和管理以提高性能。

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

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

相关文章

推荐一款Excel快速加载SQL的插件,方便又好用

如果告诉你只需要双击一下,SQL数据库中存放在表里面的数据,就能加载到你的Excel中,你想不想要? 今天给大家推荐一款好用的Excel插件,安装简单,使用方便,是经常使用SQL数据库的不二。 这款插件…

2D与3D图形的基本变换

1. 2d transformations 1.1缩放(Scaling) 其实这个转换非常简单,如图所示就是把x与y进行s倍的缩放,而我们图中的这个矩阵正好满足这一算法。 1.2镜像(Reflection) 这个镜像变换可以和上面的做类比,简单看一下就行。 1.3错切(Shearing) 当然…

【Vue】安装 vue-router 库报错 npm ERR! ERESOLVE unable to resolve dependency tree

问题描述 运行npm install vue-router,安装vue-router库,npm报错。 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: my-project0.1.0 npm ERR! Found: vue2.7.15 npm ERR! node_mod…

Java数据结构之《最短路径》(难度系数100)

一、前言: 这是怀化学院的:Java数据结构中的一道难度偏难(偏难理解)的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题…

「X」Embedding in NLP|Token 和 N-Gram、Bag-of-Words 模型释义

ChatGPT(GPT-3.5)和其他大型语言模型(Pi、Claude、Bard 等)凭何火爆全球?这些语言模型的运作原理是什么?为什么它们在所训练的任务上表现如此出色? 虽然没有人可以给出完整的答案,但…

Cannot find module ‘node:url‘报错处理

在运行vite搭建的项目时,遇到Cannot find module node:url’报错。具体错误如图所示: 造成以上问题的原因是node版本较低。Vite 需要 Node.js 版本 14.18,16。 解决方案: 上面是通过nvm切换高版本node。 再次执行运行命令&…

RPG项目01_层级设置

基于“RPG项目01_UI面板Game”, 找到狼人 添加组件,让狼人一定区域自动跟随主角进行攻击 解释:【烘培蓝色】因为如果什么都不做就会被烘培成蓝色对应的功能就是 可修改区域功能 当将区域设置成不可行走状态,则不为蓝色 烘培&…

如何选择一款安全可靠的跨网安全数据交换系统?

随着网络和数据安全的重视程度增加,为了有效地保护内部的核心数据资产,普遍会采用内外网隔离的策略。像国内的政府机构、金融、能源电力、航空航天、医院等关乎国计民生的行业和领域均已进行了网络的隔离,将内部划分成不同的网段,…

nodejs+vue+ElementUi酒店餐饮客房点餐管理系统

系统非功能需求,只能是为了满足客户需求之外的非功能性要求。系统需要具有数据完整性验证的功能,对界面上非法的数据和不完整的数据进行提示,不能直接保存到数据库中,造成不完整性因素。运行软件:vscode 前端nodejsvueElementUi 语…

RPG项目01_技能释放

基于“RPG项目01_新输入输出”, 修改脚本文件夹中的SkillBase脚本: using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; //回复技能,魔法技能,物理技能…

linux 内核同步互斥技术之信号量

信号量 信号量允许多个进程同时进入临界区,大多数情况下只允许一个进程进入临界区,把信号量的计数值设置为 1,即二值信号量,这种信号量称为互斥信号量。可允许多个锁持有者。 和自旋锁相比,信号量适合保护比较长的临界…

PostgreSql HOT 技术

摘自唐成的《PostgreSQL修炼之道:从小工到专家(第2版)》。 一、概述 因为多版本的原因,当 PostgreSQL 中更新一行时,实际上原数据行并不会被删除,只是插入了一个新行。如果表上有索引,而更新的…

身份统一管理创新与优化 ——华为云OneAccess应用身份管理服务的2023年

2023年,随着云计算、物联网、人工智能等技术的快速发展,企业面临着数字化转型的巨大挑战与机遇。身份统一管理是企业数字化转型的基础,也是业务发展的关键。如何高效、安全、灵活地实现身份统一管理,成为企业亟待解决的首要课题。…

uniapp多行文本展开或收起(兼容h5、微信小程序,其它未测试)

文章目录 一、效果图展示1、收起2、展开3、文本过短时隐藏按钮【查看更多、收起】 二、代码实现原理:判断文本是否过短1、html2、css3、 js(1)data数据定义(2)获取文本高度(3) 获取行数&#xf…

典型的ETL使用场景

典型的ETL使用场景 ETL( Extract,Transform,Load)是一种用于数据集成和数据转换的常用技术。它主要用于从多个数据源中提取数据,对数据进行清洗、转换和整合,最后加载到目标系统中。ETL 的使用场景非常广泛,下面将介绍…

StringBuffer类和StringBuilder类的相关知识点

首先这俩个类都是可变序列,与String类不同String类是不可变序列,StringBuffer和StringBuilder 他们是将数据存储在char value[] 待会会给大家看一下源码,这俩个类相当于是String类的升级版,它可以让我们对字符串的操作更加的便捷…

探秘 Sass 之路:掌握强大的 CSS 预处理器(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【开源】基于Vue.js的实验室耗材管理系统

文末获取源码,项目编号: S 081 。 \color{red}{文末获取源码,项目编号:S081。} 文末获取源码,项目编号:S081。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗…

shiny的图片如何插入,为什么会裂开?

因为你没有把资源放在内部: Shiny学习(二) ||构建用户界面 - 简书d 当然也有例外比如: shiny-如何在 Shinydashboard R 中 dashboard 标题的中心显示图像? - 糯米PHP

羊大师提问鲜羊奶冷冻还好喝吗?

羊大师提问鲜羊奶冷冻还好喝吗? 在当今追求健康、养生的时代背景下,各种新奇的饮食趋势层出不穷。鲜羊奶冷冻成为了备受追捧的美食新潮流。不仅具备饮食的功能,更是一种享受。本文小编羊大师将从鲜羊奶冷冻的制作工艺、营养价值和市场前景等…