Job

看广告前先尝试回答如下入门问题:

Linux下内核分页,i386是10-10-12这样的二级分页,X86_64则是9-9-9-9-12四级分页,那么为什么64位下要设计成9而不是10呢?

.

.

.

.

.


更新日期:2021-04-06

阿里云虚拟化组,2021年度社招&应届招聘开始啦,正在招人中,有意者将基本介绍发送到 oenhan AT Gmail

阿里云智能事业群-神龙系统虚拟化研发专家-北京/杭州(Px~P9)

团队介绍:
我们团队负责阿里云虚拟化hypervisor的架构设计,研发和维护。 我们基于阿里云神龙硬件平台, 通过软硬件协同设计开发的理念,结合系统软件栈上的创新,打磨出了一套轻薄而又高效的Dragonfly Hypervisor,再配合一系列端到端的优化和系统解决方案, 从性能、稳定性、体验、成本等几个维度持续不断的提升我们产品的竞争力。

职位描述:

  1. 该职位工作包括下列内容中的一项或多项:
  2. 各类新硬件平台的虚拟化产品研发。
  3. Arm系列产品研发。
  4. 虚拟化下容器方案研发。
  5. 虚拟化各种软硬件隔离方案研发或优化。
  6. 神龙硬件平台加速与卸载方案研发。
  7. 热迁移/热升级/热插拔技术的持续优化。
  8. 质量,运维,发布,监控,数据相关研发。
  9. 虚拟化安全可信方案的研发。
  10. 客户性能优化或其他稳定性相关支持工作。
  11. 控制面研发和优化。
  12. 专有云/边缘云解决方案研发。
  13. 下一代Dragonfly Hypervisor的架构设计和研发。

职位要求:(需满足一条或多条)

  1. 熟悉x86或arm体系结构; 熟悉PCI-E, CCIX, CXL等互联技术者优先。
  2. 熟悉系统虚拟化中 CPU虚拟化 (vt-x), 内存虚拟化(ept, shared virtual memory), 中断虚拟化(interrupt remapping, msi/msi-x, posted interrupt),IO虚拟化 (iommu/smmu, vfio, sriov, scalable iov), 等核心虚拟化模块工作原理。 有XEN,KVM, QEMU等开源虚拟化项目开发经验者优先。
  3. 熟悉Linux内核调度器、内存管理、cgroups隔离, RAS 等模块工作原理,有丰富的内核态开发和debug经验。
  4. 熟悉软硬件协同设计开发。 有智能网卡/加速卡/卸载卡/dpdk/spdk 开发经验者优先。
  5. 熟悉安全、可信领域相关工作。 有TPM/vTPM,SGX等解决方案经验者优先。
  6. 熟悉容器,安全容器或其他云原生底层技术。 有docker, gvisor, kata, rust vmm,firecracker经验者优先。
  7. 精通c/c++或python编程, coding能力强; 参与过openstack,libvirt等控制面开发者优先。
  8. 熟悉Linux,Windows,系统虚拟化或硬件性能调优。
  9. 学习能力好,能快速上手新东西; 勇于面对新挑战,有较强的抗压能力; 有比较好的沟通和协作能力。

 

 


下面的讨论注意时间问题,和当前阿里巴巴招聘无关(2021-04-06)

 

 

 

17 对 “Job”的想法;

    1. @RAY 待遇要自己谈,虚拟化开发主力都在国内,口语要求一般,低于商务。

  1. 回复一下分页问题:因为在x86_64下,目前实际使用的48bits地址,四级分页使用 9 * 4= 36bits,最后的12bits用来表示页内offset(linux默认页面4K页,正好是12bits)。5分钟内回答出来,没有查代码及网上说明。

    1. @大虾 “最后的12bits用来表示页内offset(linux默认页面4K页,正好是12bits)”,这是对的;但是为什么实际使用的是48bit呢,就是因为4级页表,每级别是9bit;所以你是从结果推算原因。

      1. @OENHAN 不具体知道原因。纯猜测。48bit的使用无非是CPU硬件实现的一个trade off。说是64位地址,但是实现世界哪里有这么大的单机物理内存,硬件使用64bit地址纯属浪费,所以硬件设计取了一个折中。另外有一些原子操作,也依赖某些高位地址是不使用的。

  2. Page size = 4k , x86_64 和 x86 with PAE 的address 表示都需要 8byte, 4k/8 = 512 = 2^9, 所以用9bit 當一個level (Page table 可以用1 page 存完)
    每個1st level 的addr mapping 最多只需一次page fault就可拿到

  3. 是因为地址位宽:x86是32bit=4B, 一页可存放4K/4B=1024条地址,即10bit;x86_64是64bit=8B, 一页可存4K/8B=512条,即9bit.
    另,x86已经采用5-level page table了。

  4. 关于X86_64使用9-9-9-9-12四级分页原因分析是,这样正好可以对应的页为4k、2M、1G,分别使用pte、pmd、pud。这样理解对不对?

  5. 9 BIT 能表示512个ENTRIES,4KB页面,刚好8个字节一个ENTRY,512个刚好4KB,ENTRY中放64位物理地址,当然里面可以有一些状态标志位。

  6. ## 深信服科技高端研发岗位

    ### 云计算资深系统设计师(技术Leader/架构师)
    职位描述:(薪资面议)
    1、理解并分解产品需求,带领团队完成云平台系统和框架设计、核心机制设计和开发
    2、对产品系统架构看护及优化,定义设计规范并把关关键模块设计
    3、协同架构师构建产品技术竞争力,并通过优化系统设计,提升研发测试效率
    4、协助架构师进行产品技术洞察,并设计产品架构演进路径
    5、指导团队成员,对团队工作拆解、设计及指导,培养团队骨干人员。

    要求:
    1、计算机相关专业,本科及以上学历,有8年以上Linux开发经验和5年以上云计算相关开发经验
    2、精通C/C++/Golang之一,有良好的数据结构、算法基础、编码习惯,掌握主流中间件服务的使用调优和排障
    3、具备优秀的系统设计能力,有大型产品系统框架设计的成功经验
    4、熟悉云平台和KVM虚拟化技术原理,具有在生产业务场景中的云平台问题的排障经验
    5、熟悉操作系统和网络知识,包括多进程、多线程、网络通信、文件管理等方面的优化及排障能力
    6、了解虚拟网络相关原理,具备云计算平台网络规划和设计经验
    7、了解Guest机虚拟化驱动技术(如virtio、网卡、磁盘等驱动)
    8、强烈的责任心与内驱力,对所负责工作有主人翁意识,并有良好的快速学习能力
    9、有主流云厂商云计算平台研发和技术团队负责人经验者优先,有带20人及以上团队经验者优先

    ### KVM虚拟化技术专家(技术Leader)
    职位描述:(薪资面议)
    1、负责计算虚拟化的核心技术研究和技术攻关,打造深信服云计算虚拟化技术壁垒。包含但不限于资源转换、计算调度、资源管理、热升级、热迁移等
    2、负责虚拟化方向的技术洞察和技术规划,规划计算虚拟化的产品技术演进方向
    3、带领并指导虚拟化团队,培养团队核心技术人员,建立合理的人才梯队
    4、解决项目过程中以及客户侧虚拟化相关的技术疑难问题

    要求:
    1、计算机体系相关知识扎实,精通计算虚拟化和操作系统原理,熟悉计算机体系架构
    2、5年以上Linux内核/KVM/Qemu相关经验,对计算虚拟化有丰富的设计和开发经验,有社区贡献优先
    3、能独立设计产品/特性框架,具备大型平台系统的虚拟化核心模块设计开发成功经验
    4、技术视野开阔,对计算虚拟化领域的相关技术有广泛全面的了解
    5、有资源转换、计算调度、资源管理、热升级、热迁移、新硬件特性、系统优化等相关经验者优先
    6、具备主流云厂商核心虚拟化领域设计开发经验者优先
    7、具有良好的学习能力、沟通能力、团队协作精神、强烈的责任心和主动性

    ### Linux内核技术专家(技术Leader)
    职位描述:(薪资面议)
    1、负责内核方面的核心特性开发、维护与性能优化工作
    2、承担内核虚拟化方面的术预研工作和疑难问题攻坚处理
    3、研究和攻克内核调度/虚拟化转化率/内存管理/IO子系统相关方向的核心技术,构建产品技术壁垒
    4、带领并指导内核团队,培养团队核心技术人员,建立合理的人才梯队
    5、对内核方向做持续技术洞察,跟踪业界前沿技术,产出业界领先的产品创新成果

    要求:
    1、计算机体系相关知识扎实,精通内核和操作系统原理,熟悉计算机体系架构
    2、5年以上Linux内核相关经验,对内核核心模块有丰富的设计和开发经验,有社区贡献优先
    3、能独立设计产品/特性框架,具备底层系统的核心模块开发成功经验
    4、技术视野开阔,对内核核心模块领域的相关技术有广泛全面的了解
    5、熟悉内核调度、内存管理、IO子系统、虚拟化等内核核心模块
    6、具备主流云厂商核心内核领域设计开发经验者优先
    7、具有良好的学习能力、沟通能力、团队协作精神、强烈的责任心和主动性

    ### 文件系统技术高级开发工程师
    职位描述:(薪资面议)
    1、负责Linux文件系统方面的核心新特性开发与性能优化工作
    2、承担文件系统方面的技术预研和疑难问题攻坚处理
    3、对文件系统方向做技术洞察,跟踪业界前沿新技术,设计产品文件系统技术演进路线
    4、指导团队成员工作,驱动团队共同按时、高质量完成产品交付

    要求:
    1、本科及以上学历,精通Linux平台的C/C++开发、文件系统开发
    2、5年以上Linux存储或文件系统相关开发经验
    3、熟悉Linux系统的iscsi/fc存储、multipath、lvm等子系统的技术实现原理
    4、熟悉对Linux内核开发维护,能够熟练的进行故障调试和性能分析
    5、在文件系统方面,有性能优化、元数据优化、锁优化、快照等特性开发和调优经验者优先
    6、具备主流云厂商文件系统领域设计开发经验者优先
    7、具有良好的学习能力、沟通能力、团队协作精神、强烈的责任心和主动性

    ### Windows高级开发工程师
    职位描述:(薪资面议)
    1、负责云平台-Guest机内部功能设计、开发、维护
    2、负责解决客户侧/项目中遇到的Windows系统相关的疑难问题
    3、负责团队代码Review以及相关领域功能的质量保证工作

    要求:
    1、计算机相关专业,本科及以上学历,有3-5年Windows驱动方向开发经验,有虚拟化相关经验者优先
    2、具备良好的设计能力,有中大型模块设计经验
    3、熟悉Windows平台虚拟化相关驱动的技术原理(如virtio、网卡、磁盘等驱动)
    4、有扎实的C/C++编程基础和编码质量,良好的数据结构和算法基础
    5、深刻理解Windows性能分析和故障诊断,能从性能指标、系统日志、跟踪采样等分析异常,给出有效解决方案
    6、熟练使用Windbg、IDA工具,熟悉内存泄漏,系统Crash、死锁等问题排查方法
    7、熟悉掌握操作系统相关内容,包括多进程、多线程、网络通信、文件管理等技能
    8、强烈的责任心与主动性,对所负责工作有主人翁意识,并有良好的自驱力和学习能力;
    9、有云计算平台Windows虚拟化优化研发及运维经验者优先

    ### 容灾备份专家
    职位描述:(薪资面议)
    1、负责云平台容灾/备份特性的总体设计,核心功能模块设计开发
    2、洞察云环境下容灾备份技术趋势,规划技术演进路径,构建核心竞争优势
    3、指导团队成员的工作,进行工作设计和安排,团队成员培养。

    要求:
    1、5年以上灾备领域的设计和开发经验
    2、熟悉主流容灾备份厂商的产品整体架构和技术演进趋势
    3、精通常见的容灾备份技术,例如CDP、远程复制、快照、延伸集群等
    4、熟悉云、虚拟化和存储相关技术;熟悉跨集群、跨云、两地三中心等灾备解决方案
    5、具有良好的学习能力、沟通能力、团队协作精神、强烈的责任心和主动性
    6、具备主流灾备厂商开发工作开发经验者优先

    简历请发送到: [email protected]

发表评论