Author Archives: Ming Lin

风过留声,雁过留痕

在阿里一千五百八十二天了,周五(6/18/2021)就要向社会输出了。人在美国,已经居家办公快一年半了,这中间还生了老四,哈哈,神奇的经历。很可惜,好多国内的同学都没有见过面,妥妥的“网友”啊。遥祝“网友”们健康快乐,祝PolarDB越来越强,祝阿里越来越好。

江湖再见了!

Linux Kernel Software Engineer – Facebook

About the job

Facebook’s mission is to give people the power to build community and bring the world closer together. Through our family of apps and services, we’re building a different kind of company that connects billions of people around the world, gives them ways to share what matters most to them, and helps bring people closer together. Whether we’re creating new products or helping a small business expand its reach, people at Facebook are builders at heart. Our global teams are constantly iterating, solving problems, and working together to empower people around the world to build community and connect in meaningful ways. Together, we can help people build stronger communities – we’re just getting started.

Facebook is seeking a Linux Kernel Software Engineer to join our Kernel team. The Facebook kernel team is responsible for developing fixes and new features that are primarily driven by internal needs and emerging industry trends. As a member of that team, you will play an integral role in improving kernel stability, performance, observability, and manageability. Additionally, you will help work with the wider Linux community including upstream developers, vendors, and optionally conferences. This position is full-time.

Responsibilities

  • Work with other teams to understand their kernel needs and develop solutions.
  • Triage, investigate, and resolve primarily kernel related performance or stability issues.
  • Build and/or support user space libraries and tools related to the kernel work.
  • Advocate best practices with other engineers when it comes to kernel usage, deployment, tuning parameters, etc.
  • Backport or develop solutions for 1-2 kernel releases. We prefer code being in mainline.
  • Help improve our automated testing infrastructure.
  • Be a part of the kernel release process, helping it run smoothly.
  • Occasionally participate in TPM led projects that are kernel focused.
  • Communicate and interact with upstream maintainers.
  • Occasional conferences, particularly things like LPC/LFS/MM.

Minimum Qualification

  • Knowledge of low-level operating system and hardware primitives.
  • Scripting (Python, Bash, etc.) experience.
  • Expertise programming with C or C++.
  • Experience using kernel perf and/or tracing tools for resolving performance issues.
  • Solid troubleshooting and debugging skills.
  • Proven communications skills.

Preferred Qualification

  • Experience working with and contributing to Open Source communities.
  • Familiarity with multiple layers of the Linux stack (hardware, kernel, user space, etc.).
  • Experience working at very large scale (> 10,000 servers).
  • Experience presenting to technical audiences at conferences.
  • Experience with one or more of the technologies our partner teams own (containers, RPC, databases, etc.).

Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at accommodations-ext@fb.com.

Linux Kernel Software Engineer – ByteDance

About the job

Founded in 2012, ByteDance is a technology company operating a range of content platforms that inform, educate, entertain and inspire people across languages, cultures, and geographies. With a suite of more than a dozen products, including TikTok, Douyin, Toutiao, Helo, and Resso, ByteDance now has a portfolio of applications available in over 150 markets and 75 languages.

• Follow the Linux kernel community and support analysis and fixing bugs

• Capture and synthesize the needs of product teams, and develop kernel features accordingly

• Explore and work with industry-leading technology and hardware

Qualifications

• BS or above degree in Computer Science or related technical field or equivalent practical experience

• Proficiency with at least one modern programming language such as Golang, C/C++, Python

• Deep understanding of operating systems. Familiar with at least one subsystems among MM, scheduler, filesystem, network, and group

• Familiar with various debugging tools (perf, systemtap, ebpf). Have the ability and experience to resolve performance issues in a timely manner

• Strong experience in hunting bugs (e.g. softlockup, deadlock, panic, and oom)

• A mind with creativity and a fast learner of new technology

Preferred Qualifications

• Cloud industry experience

• A history of participation in Linux kernel mailing lists is a plus

ByteDance is committed to creating an inclusive space where employees are valued for their skills, experiences, and unique perspectives. Our platform connects people from across the globe and so does our workplace. At ByteDance, our mission is to inspire creativity and enrich life. To achieve that goal, we are committed to celebrating our diverse voices and to creating an environment that reflects the many communities we reach. We believe individuals shouldn’t be disadvantaged because of their background or identity, but instead should be considered based on their strengths and experience. We are passionate about this and hope you are too.

Senior Engineering Manager, Kernel & Operating Systems

Company Description

Twitter is what’s happening and what people are talking about right now. For us, life’s not about a job, it’s about purpose. We feel real change starts with conversation. Here, your voice matters. Come as you are and together we’ll do what’s right (not what’s easy) to serve the public conversation.

Job Description

Who We Are

The Kernel & Operating System team at Twitter is responsible for shipping the Linux kernel and OS versions on which all of Twitter’s services run. Our job is to ensure the safe, reliable, fast, and efficient operation of the lowest levels of the Twitter software stack! We actively contribute many of our fixes upstream and are active members of the Linux OSS community.

What You’ll Do

  • Deliver regular releases of the Linux kernel and operating system in order to ensure that Twitter’s infrastructure remains up-to-date and secure.
  • Partner with our hardware engineering team and our customers to ensure that kernel and OS releases meet our performance and quality standards.
  • Drive R&D efforts within the Linux kernel and operating system that focus on improvements to Twitter’s overall performance, security, and reliability.
  • Engage with the Linux community-at-large to support the development of the Linux kernel and operating system, particularly in the areas and subsystems critical to the success of Twitter and its “hyper-scale” peers.
  • Grow and develop the team and guide Twitter’s strategic investment in the people and skills necessary to develop and maintain one of the world’s largest Linux installations.

Who You Are

We’re looking for a leader with a strong background in building and running diverse teams composed of strong technologists with deep domain expertise and technical skill in the area of systems engineering and operating systems development. You have a track record of developing the careers of the folks on your team(s), a demonstrated focus on creating inclusive teams and organizations, and a history of recruiting great technical talent wherever it might be located. To emphasize that latter point, leading a distributed team across multiple time zones is an important skill for helping lead this team. Finally, you should have a history of working within the Linux kernel or OS community and a passion for developing OSS software.

Qualifications

  • 5+ years of experience managing a team in the Linux OS and/or kernel development space or a related field
  • Familiarity with the Linux kernel release process
  • Experience with the CentOS Linux distribution
  • Experience working within the Linux community. Ideally, a candidate for this role has been active on the LKML and/or has been directly involved with Linux-based OSS projects or Linux OS distributions
  • Previous development experience with C and/or C++
  • Strong communication skills and ability to work with partner teams
  • Experience handling the distribution and configuration of systems at a large-scale installation

Additional Information

A few other things we value:

  • Challenge – We solve some of the industry’s hardest problems. Come to be challenged, learn, and thrive as an engineer.
  • Diversity – Diversity makes us a better organization and team. We value diverse backgrounds, ideas, and experiences.
  • Work, Life, Balance – We work hard, but we believe with hard work should come balance.

We will ensure that individuals with disabilities are provided a reasonable accommodation to participate in the job application or interview process, to perform essential job functions, and to receive other benefits and privileges of employment. Please contact us to request an accommodation.

https://jobs.smartrecruiters.com/Twitter2/743999747644490-senior-engineering-manager-kernel-operating-systems

Kernel debugging with QEMU: An overview of tools available

https://www.collabora.com/news-and-blog/blog/2017/03/13/kernel-debugging-with-qemu-overview-tools-available/

qemu:
INITRD=”-initrd /boot/initramfs-5.13.0-rc2.img”
KERNEL=”-kernel /home/ming.lin/build_upstream2/arch/x86/boot/bzImage”

sudo /home/ming.lin/qemu-vhost-nvme/x86_64-softmmu/qemu-system-x86_64 -nographic -enable-kvm -cpu host -smp 2 -m 2G \
-drive file=/home/ming.lin/image/vm01.sh.img \
-net nic,model=virtio,macaddr=52:54:00:12:34:58 -net tap,ifname=tap1,script=no,downscript=no \
$KERNEL $INITRD \
-append “root=/dev/mapper/cl-root console=ttyS0 console=tty1” \
-s

gdb:
gdb -ex ‘file vmlinux’ -ex ‘target remote localhost:1234’