作为一个程序员,性能优化是无法避开的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。
邢孟棒,曾供职于阿里、网易,目前在腾讯云专职做性能优化方向。Linux 业余爱好者,偏好钻研各类工具源码与底层技术原理。在日常的性能工程实践中,比较注重方法论的探索、优化案例的沉淀。热衷于 eBPF 技术,擅长传统工具与 BPF 工具的结合应用。
学习一个从未接触过的Linux虚拟网络设备是一个分阶段的过程,从最初的认识到最后的精通,需要系统性和逐步深入的学习策略。以下是一个全面的指南📚,旨在帮助初学者通过多角度分析🔍,一步一步地学习和掌握新的Linux虚拟网络设备。
还记得土哥刚入行,进第一家公司实习的时候,使用的是Win7,对于Windows下的命令行体验真是无力吐槽,特别是对于Web前端来说,非常多的工具都运行在终端内,比如不计其数的Node.js工具,后来改用Linux就舒畅多了,npm很多工具都在Linux系统下有更好的表现。
经常收到后台读者发过来同样的问题,看完「开发内功修炼」以后觉得写的不错。问:“飞哥你平时是怎么样磨炼自己的技术能力,并写出这些文章的?另外可否帮推荐几本书更系统地学习一下”。今天干脆就写一篇文章统一回复一下。
有读者反馈,单看零碎的知识点,自己心中没底。还是看书更有框架一些,所以今天给大家推荐一些经典书籍,书籍电子版我已经发到百度网盘群。
大家好,我是 Peter,关注我号的朋友应该了解我写的文章大都是内核和操作系统方向,除了内核外,网络也是非常重要的一个环节。体系架构,内核,网络,我认为是职业生涯发展的三大法宝。目前市场上体系架构,内核相关的书籍已经很多,但是一直没有找到比较好的网络书籍。 得知飞哥写了一本《深入理解 Linux 网络》,第一时间拿来拜读。一口气读了三分之一,受益良多,这里也推荐大家看一看。 为什么推荐飞哥的这本网络书? 一般业界在网络上的学习资源主要就是协议和编程。比如 TCP 三次握手四次挥手、HTTP 报文格式,比如使
架构设计,讲起来,比较虚,不像算法和代码。你写了一段巧妙的代码,编译,运行,如果最终结果是正确的,那就是正确的。
一 自我介绍二 面试情况三 相关知识点汇总1 c/c++相关2 计算机网络3 数据结构相关4 数据库相关5 操作系统6 Linux基础知识及应用编程(后台必备!)7 大数问题8 手撕算法(递归非递归)9 针对项目相关10 场景题11 架构/分布式/中间件相关12 总结
C语言作为最基础的编程语言,30年虚弱的患病率。 无论是准备做 PHP/Java/Python/Golang 开发学习。C语言都是基础的,我们非常多基础非常小的互联网执行的开源软件服务都是C语言构筑,所以,有个扎实的C语言基础,或者去学习C语言是非常有必要和帮助的。
疑惑一 linux系列经典的书籍 入门篇 《LINUX权威指南》书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux 。另外比较热门的也可以看看《鸟哥的私房菜》等书,偏管理类的书。如果想做server方向的可以找来看看。 驱动篇 《LINUX设备驱动程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码 分析比较多,基于2440的,对linux外围驱动有很全面的讲解 内核篇 浙江大学的《LINUX内核源代码
最后,再说一点,英语非常重要。很多好的资料都是英文的,国内有些翻译本不是太好。尤其是google搜索时,学会使用英文关键词非常重要。
这篇文章来源于我的一位朋友,和我一样参加了去年了秋招,这份面经我看了下,很多问题都是高频面试题,而且总结的挺全,在此分享给大家。先看下大致目录
前段时间有个刚开始学习 Arm Linux 的同学问我:对于还处于入门阶段的新手,有什么建议。并让我推荐一些好的书籍。
作者2015年博士毕业加入一家量化私募公司,已经做了差不多四年系统工程师的工作。本文是根据这个岗位所用到的日常工作技能总结,希望对想进入这个行业的人有所帮助。由于作者非科班(博士管理科学专业)出身,工作中用的技术大多数通过自学获得,不足之处还请同行多包涵与指正,有好的学习资料希望不吝推荐!
想要写一个操作系统的人大部分都是带着兴趣玩,毕竟现在主流的操作系统windows,苹果系统,linux系统属于目前比较常见的系统,其中linux内核属于开源可以看到其全部的代码,很多研究操作系统都是以linux为参考的模型,毕竟开源的代码研究起来也方便,但是对于个人来讲要去写一个操作系统难度可想而知了,曾经有个北京的同事已经工作了十几年主要的精力就是在研究底层,是个疯狂的linux内核研究者只要是是家里没事就会呆在公司加班研究linux内核,有时候一起吃饭讨论研究linux内核的主要在哪块,他讲到其实linux内核已经不是当初设计的样子了,现在的代码的更新速度之快让人发指,在全球范围内真正对于核心内核代码具备修改能力的非常有限,而且已经被国外巨头公司收到自己的公司作为储备资源。
平时一本正经,突然画风清奇 织云值此全民剁手狂欢佳节之际 特地为攻城狮们送上一份通过采访 精心挑选的书单 敬请笑纳 《代码的未来》 “站在摩尔定律的尽头,重新理解编程的本质”。 Ruby 之父松本行弘结合当下时代背景和计算机领域的发展情况,对多种编程语言的进行深入分析和展望。不论你现在用的是什么语言或者做的是什么业务的开发,相信这本书都能帮你拓宽视野,带来新的启发。 -- 腾讯高级工程师 织云作业平台负责人:陈镇杭 《The Practice of Programming》 (程序设计实践
白嫖不好,要不先赞在看! 一 自我介绍 本人小硕,秋招期间参加了不少安全类相关公司(深信服,绿盟等),另外参加了京东,小米,滴滴等互联网公司面试,同时也面试了几个研究所和一个银行,下面总结下秋招相关情况。 二 面试情况 公司名称 面试岗位 面试情况 小米 Linux内核开发 三面!挂 深信服
在现在的生活,生产,研究等领域,Linux已经无所不在,从我们使用的手机,车载设备,到服务器,桌面电脑等,Linux已经成为这个世界方方面面的基石。尤其对于参与技术有关工作的你学习Linux是必须的,那么,该如何有效的学习呢?Linux从诞生至今,已经是一个非常庞大且复杂的系统,下图是Linux系统代码行数的统计(参考linuxcounter):
现在回首看看,接触Linux已经很长时间了。 在大三的时候开始学习Java, 但是一直学Java的话, 感觉有点腻, 就尝试找点其他东西来学习。 所以当时就选择学习了Linux。 至于为什么要学习Linux, 有以下三个原因。
我见过许多人对进程与线程概念张口就来,问他Linux里进程和线程是怎么实现的,却浑然不知。
几年前,在通信领域的技术咨询经历,初步了解到预分配内存管理机制,其对于性能的改善是多么的明显。最近,也从点点滴滴的金融科技的领域,看到了高频交易所需要的低延时架构技术(当然了,国内在该领域受限于特色背景),也有点如出一辙的味道。而在未来,“元宇宙” 可能会换个新的名词,但是呢,它依旧也需要一系列的低延迟架构设计模式。
线上集群后端某台Web服务器例行检查时,我观察到+buffers/cache值(即Linux内存的实际使用情况)一直都是5365左右,就算停掉Nginx+FastCGI程序和其它程序也是一样,考虑到这台机器经常在使用rsync+inotify,肯定会存在着频繁存取文件的情况。而Linux系统有一个特性:在Linux下频繁存取文件时,就会占用物理内存。当程序结束时并不会自动释放被占用的内存,而是一直作为Cache存在。实际上内核结束一个程序后,它是会释放内存的,但是内核并没有立刻将这部分收集到free当中,而是存在在cached或者buffer当中,提高系统的io效率,cache和buffered的内存是由内核进行动态的配置管理,如果系统的free大小不够的时候,系统会自动释放cache buffer的内存给程序使用(因此如果是看到used很多,来手动释放内存其实是不需要的,我前面的文章及书籍其实也说明了我们应该如何观察Linux系统的实际内存使用情况,这里就不再多描述了)。
在深入Linux系统的复杂世界中,性能优化始终是SRE关注的热点。最近在拜读国际著名的 LINUX 性能专家 Brendan Gregg 的个人博客和技术书籍。他的工作不仅涵盖了系统性能的监控和分析,还深入探讨了性能问题的根源及其解决方案。通过他的个人博客和技术书籍,我们可以窥见Linux性能优化的精髓,学习到如何利用各种工具和方法来提升系统效率,确保应用的顺畅运行。将会结合 Brendan Gregg博文与个人理解 出一个拜读系列博文。
最近有点忙,今天就写一篇摸鱼文章吧。 之前写过一篇《网络编程到底要怎么学?》的文章,今天就和大家聊一聊我这些年读过的网络编程书籍(这里不包括纯讲计算机理论的书籍),我会结合自身阅读感受和对实践的帮助来谈一谈我的读后感。 一、Socket 编程类书籍 1. 尹圣雨的《TCP/IP 网络编程》 如果你从来未接触过网络编程,或者想找一本网络编程入门书籍,那么我建议你选择尹圣雨的《TCP/IP 网络编程》,作者韩国人。这本书的特点是: 针对零基础读者,讲解了什么是网络编程(Socket 编程); 详细地介绍 Soc
你可能有所感悟。零散的资料读了很多,但是很难有提升。到处是干货,但是并没什么用,简单来说就是缺乏系统化。另外,噪音太多,雷同的框架一大把,我不至于全都要去学了吧。
之前分享过部分性能优化相关的文章,不过暂不成体系。但是不论你去面试高级工程师,还是架构师,性能优化的问题一定少不了。想彻底解决性能问题,就要全面了解程序设计、算法分析、编程语言、系统、存储、网络等方面知识。
作者黄小斜,斜杠青年,某985硕士,阿里研发工程师,于2018 年秋招拿到 BAT 头条、网易、滴滴等 8 个大厂 offer
在疫情期间,小编不得不待在家中远程办公。但变的是办公方式,不变的是美创运维的7*24小时不间断支持。
从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。
起初微软希望为双屏设备打造专属的Windows 10X体验,但现实表明它更可能在单屏PC上展开试点。此外与常规的 Windows 10 操作系统相比,“X”主要在视觉上有更大的变化。
近两年BPF技术跃然成为了一项热门技术,在刚刚结束的KubeCon 2020 Europe会议上有7个关于BPF的技术分享, 而在KubeCon 2020 China会议上也已有了3个关于BPF技术的中文分享,分别来自腾讯和PingCAP,涉足网络优化和系统追踪等领域。在中文社区里,包括阿里巴巴、网易、字节跳动等国内第一梯队IT公司也越来越关注BPF这项新技术。本文主要介绍BPF技术发展和应用,以及我是如何学习BPF技术的。
首先介绍一下自己的来路,我是一个纯粹的开发出身,比较熟悉的开发语言是Java和Python。之前的工作也基本上都是和开发相关,对于云计算仅仅懂得“调用调用API”。 和很多初入云计算和SDN的人一样,随着工作和“云计算”的关系越来越深入,特别是自己加入到电信之后发现对“网络”的要求越来越高。没有任何传统网络基础的我是一脸懵逼,凭借着大学时候学过《计算机网络》的一点基础知识通过很长时间的摸爬滚打有那么一点“感悟”。现在把自己的“感悟”分享出来,希望能对“在路上”的朋友有点帮助。 我先分享一下自己对SDN和做S
性能优化是软件系统中最有挑战的工作之一,就算看了很多资料和书籍,一旦涉及到解决具体问题,还是会一脸懵逼。
嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,我认为大概分3个阶段: 1、嵌入式linux上层应用,包括QT的GUI开发 2、嵌入式linux系统开发 3、嵌入式linux驱动开发 嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等 Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。 你可以尝试以下路线: (1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都
作为程序员,和 Linux 打交道,在服务器上分析系统性能情况,是每一个后端工程师都无法避开的事情。
经过不断地迭代,内核目前已经非常庞大,有上百万的代码。内核的执行是按需的,例如当用户级别的应用程序发起了系统调用,或者设备发送了一个中断(interrupt)的时候。另外,某些内核线程回异步执行一些维护性的工作,可能包含内核时钟程序以及内存管理任务,但是这些任务都会尽量保持轻量级并只占用很少的 CPU 资源。
有一天,我去爬山。突然脚一滑,掉下了悬崖。摔的眼冒金星,精神破碎,最终掉到一个山洞中。山洞中央有一个宝盒,打开以后是一本书,细看是一份JAVA开发者的秘籍。举目粗观,练此功不需自宫,按部就班就可修成绝世武功。我瞪大眼睛想要深入的时候,从山洞深处走出一位长者(elder)。
Michael Crosby是如今最有影响力的Docker容器开发人员之一,他帮助领导containerd的开发以及担任Open Container Initiative(OCI)技术监督主席。近日,他在DockerCon 19上,Crosby在演讲中概述了Docker的过去,现在以及未来。Docker的早期历史与Linux密切相关,事实证明,Docker的未来也是如此。
牛客,知乎,开源中国,CSDN,思否,掘金,InfoQ,简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区,阿里开发者社区
不知道正在阅读本文的你,是否是因为想自己动手写一个操作系统。我觉得可能每个程序员都有个操作系统梦,或许是想亲自动手写出来一个,或许是想彻底吃透操作系统的知识。不论是为了满足程序员们自带的成就感,还是为了面试找工作时能更深入地和面试官探讨(装逼)。
嵌入式岗位,是介于硬件工程师和软件工程师之前的一个岗位。他的工作内容需要他既懂代码编写,也会硬件板子。
1991年10月5日,芬兰电脑程序员托瓦兹(Linus Benedict Torvalds)基于UNIX系统开发的Linux内核首个公开版本发布。
疫情下的高考已结束,又快到填志愿的时候了,又有不少知青要加入信息安全这个圈子。为了响应组织号召,撰写此文作为信安行业的入坑指南,希望能对刚入圈的同学有所帮助。
从前在学校,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉。毕业的时候,人家跟我说Makefile我完全不知,但是一说Make Love我就来劲了,现在想来依然觉得丢人。
android开发书籍推荐大全 写在前面 首先,不提供电子版本的下载,请大家自行百度,如果还是找不到,可以加微信联系我。 再次很感谢写书的作者,能让大家学习android快速又准
咱们的《深入理解Linux网络》是 5 月 31 号首发的,现在有 5 个多月的时间了。目前已经印刷了 1.9万册,而且预计很快就会再继续加印了。在技术书籍里这实属已经是一个非常不错的成绩了。但最近豆瓣上的几条书的差评让我陷入了进一步的思考。
导语:读书是一生的功课,技术人通过读书实现自我提升,学习优秀技术沉淀。TEG读书会本期特邀腾讯金融云专家工程师李海翔、TEG计费平台部专家工程师雷海林、MySQL数据库专家姜承尧,为大家带来数据库方向好书推荐。来看看技术大牛在读什么,国庆遇见好书,愿本期书单助您更专业。 李海翔,腾讯金融云专家工程师,从事分布式数据库TDSQL研发工作。出版著作:《数据库查询优化器的艺术 原理解析与SQL性能优化》、《数据库事务处理的艺术 事务管理与并发控制》,广受好评。中国人民大学信息学院工程硕士企业导师。 理论类
Linux开源是指Linux操作系统的源代码是公开的,任何人都可以查看、修改和分发。这种开源模式使得Linux操作系统具有高度的灵活性和可定制性,同时也促进了技术的创新和共享。Linux开源的精神也影响了其他领域的开源运动,成为了现代软件开发的重要组成部分。
领取专属 10元无门槛券
手把手带您无忧上云