笨叔:用4维空间来理解进程负载
微信公众号:奔跑吧Linux社区欢迎订阅笨叔旗舰篇视频节目:https://weidian.com/?userid=1352872851第二季更新视频啦今天我们更新了两集第二季的视频节目,这两集视频节目都是和进程调度管理相关的代码分析视频,我们是基于Linux 5.0来讲解代码的哟,没错,我们视频是带领大家直接鲁5.0代码。我们会在第一季+第二季旗舰篇视频里陆续更新Linux 5.0内核的代码分析
使用DS-5.社区版单步调试arm64内核
笨叔在《奔跑吧入门篇》第三章里给大家介绍了使用eclipse+qemu的方式来单步调试内核。使用笨叔独有的O0编译的内核,自由畅快的在内核里遨游。笨叔今天要给大家介绍ARM公司开发的IDE调试工具:DS-5。DS-5基于eclipse进行二次开发,充分利用了ARM公司的技术优势,把硬件仿真器和IDE做到了极致。DS-5是需要购买授权的,但是ARM公司提供了一个免费的版本:DS-5社区版。这个版本支
奔跑吧实验平台:首个“O0”编译的Linux 5.0内核
“中美贸易战了,我们才发现原来我们的操作系统是薄弱的,国内竟然没有可以独当一面的操作系统,我们服务器都用红帽或者centos,手机都用安卓,PC都用苹果或者windows。Linux内核是是我们操作系统最好的弯道超车。现在已经是Linux 5.0时代了,代码量远超2000w行,面对错综复杂的内核代码,如何高效学习Linux内核?一个能单步调试最新内核的实验平台很重要,特别是使用“O0”来编译内核,
一道进程相关面试题引发的思考
“ 小明同学最近贼郁闷,去年玩比特币亏得一塌糊涂,想在股市里翻盘,听信大V推荐的股票,买了康美和长生生物,被A股狠狠的收割了一把。本想今年好好工作,谁知道遇上了O记大裁员。虽然拿了N+6,但是还是要找工作养家糊口啊!只能硬着头皮去面试了,还好,面试题目都不难,因为小明认真看过《奔跑吧》”01 面试题目—在一个双核处理器的系统中,在shell界面下运行test程序。CPU0的就绪队列上有4
[笨叔点滴13]哪些异常处理的事儿
“ 老师在讲ARM课程:小明,你来说说中断和缺页中断有啥区别?小明:他们不是一个妈生的老师:小明同学,滚。。。”昨天我们和大家聊了一下中断处理函数里遇到缺页中断的那些事儿,我们只讨论了do_page_fault()这条内核处理路径,基本上这条处理路径已经包含了主要和最难理解的场景,当然对于简单的do_translation_fault()/do_sect_fault()这条路径我们认为代
[笨叔点滴12]面试必考:如果在中断处理函数里发生了缺页中断会怎样?为什么?
“ 小明同学去BAT公司面试。面试官:叫神马名字小明:小明面试官:啥是时钟中断?小明:就是手表坏了,不跑了面试官: ???这也行面试官接着问:如果时钟中断处理程序发生了缺页中断,怎么办?小明嘟囔:咋手表坏了还会缺液,这啥手表。。。液压手表?要加几号油...面试官:小明同学,滚。。。”上面是一个段子,但是这是一个面试必考题目,考察大家对中断和异常处理的理解,如果你对中断和异常理解不透彻,很
[笨叔点滴16]那些狗日的面试必考题(中断管理篇)
“ 刚刚接了个电话:“你好,方便面是吗?”我愣了一下,以为是恶作剧,然后就回了句“哦,我不是,我是火腿肠!” 然后就把电话挂了!躺下来好一会儿我才琢磨过来,她好像说的是:“你好,方便,面试吗?””作为程序猿,除了加班、生老病死,还有一个事情是逃不掉的?那就是面试了,除非你爹是王xx,或者马xx。大家有时候觉得面试很恶心,但是为了一口饭,又不得不去面试,面试就是这么一
[笨叔点滴11] malloc惹的祸
“ 一个小伙子用2000元其中的1500元给MM买了部手机,留500元吃饭开房,骑着电瓶车去找MM,MM说:你是一个好人,可是我们真的不合适。”上面段子是个笑话,如果我们优化一些呢:一个小伙子用700元租了一辆BMW5,然后去批发市场300元买了99朵玫瑰,告诉MM他喜欢手牵手去那些浪漫的小吃店,最多消费100元。 MM说,你真帅!看,这就是优化的力量!昨天在笨叔的VIP群里,
[笨叔点滴10] 中断到“底”来了吗?
“ 我以前一直想不明白:为什么我一个小小散户竟能左右整个股市?不管之前涨势多么疯狂,我一买入它必定下跌!我一卖出它就上涨。我一空仓大盘疯涨,我一满仓大盘狂泻。手握百亿资金的庄家们竟死死盯着我手里这几万块钱不放。这到底是为啥?”A股让我琢磨不透,但是在计算机里,中断和进程也是让人琢磨不透?比如某个微信群里讨论问题:在非抢占Linux内核中,为啥中断发生在内核态的时候不去抢占? 这
[笨叔点滴9] GNU GCC扩展2
“ 饭店老板算了算饭钱笑着说:小姑凉,一共201块,算你200小花想了想问道:那我问一下,如果是204块的话,老师你会怎么算?老板楞了一下:也算你200小花点点头,那麻烦你再给我一听可乐老板:???”虽然是个笑话,但是现在国人聪明的人太多,像笨叔这么笨的人已经很少见了。昨天不少小伙伴问笨叔,为啥没有笨9,直接笨10了?哈哈,这是小秘密本次点滴,我们继续GNU GCC扩展吧!01 GCC扩
[笨叔点滴8] GNU C语言的扩展
“ 开年,我老婆携2万块进A股,今天我登录她账户,账上已有5万块,我蛮震惊的! 问:“你怎样做到的?” 她说:“我前些日子又转进去8万。”我们80后这代人大概是大一的时候学习C语言的,可能现在90后这一代也差不多,但是现在00后这一代人已经从小学,初中开始就学习C语言了。笨叔在工作中发现,能熟练使用C语言的程序猿真的不多,大部分人都去玩Java,PHP,go,python等高级语言
[笨叔点滴7] 再也回不去的C语言
“ 开年,我老婆携2万块进A股,今天我登录她账户,账上已有5万块,我蛮震惊的! 问:“你怎样做到的?” 她说:“我前些日子又转进去8万。”我们80后这代人大概是大一的时候学习C语言的,可能现在90后这一代也差不多,但是现在00后这一代人已经从小学,初中开始就学习C语言了。笨叔在工作中发现,能熟练使用C语言的程序猿真的不多,大部分人都去玩Java,PHP,go,python等高级语言
[笨叔点滴6] 叔,这个git咋玩啊?
“今天在食堂门口遇到了暗恋已久的女神,女神笑着给我递了张纸条就进食堂了,我打开纸条看到上面写的两个字“钙氧钨氧”,我以为是瞎写的就扔了,晚上我睡觉时越想越不对劲,现在我肠子都悔青了... ”大家有没有被这个语文搞晕了,反正笨叔是晕了!下面和大家讲一个git的案例。是这样的,我们接了项目,在选择内核版本的时候,客户说,既然笨叔的内核用4.0,那我们就用4.0开发吧,我们一听好高兴。客户说,
[笨叔点滴5] git rebase和git merge究竟有啥区别?
“ 我的数学一向不错,上次我暗恋的女生问我题目:你不是数字好吗,问你个题,1+9+0=?。这么简单的题能难得倒我,我随口一答:10。然后她哭着跑开了,还说:活该你没女朋友。”这几天朋友圈都被长生生物这个怪物给霸占了,笨叔发的点滴都没啥人看了,上面那个段子,大家可以留言,那个女生想表达啥意思?大家可能都知道git这个生物吧,他是由Linux祖师爷创造出来的,短短十来年时间已经霸占了代码版本
[笨叔点滴2] 为啥子ARM32体系结构中每个处理模式都有一个单独的栈?
“ 各位小伙伴,我是小笨叔。笨叔尽量每天给大家分享一点点小东西,可能是笨笨的、傻傻的、甜甜的、酸酸的小点滴,记录这每一刻每一天的小感悟,就像小雨点一样,它会慢慢汇合到大江大海!” 上次提到LinuxCon大会,这种大会正如笨叔说的 “听君一席话,胜读十年书”笨叔有幸在北京拜访了Linux社区里面一位老前辈,聆听他当年在80~90年代做CPU处理
[笨叔点滴1] 为什么do_page_fault函数里代码需要判断用户态还是内核态?
“ 各位小伙伴,我是小笨叔,从今天开始,笨叔尽量每天给大家分享一点点小东西,可能是笨笨的小点滴,就像小雨点一样,它会慢慢汇合到大江大海!”前两天有一个两个小伙伴讨论这么一个问题。A : 在do_page_fault函数中有这样一段代码,这都是在内核中的代码了为什么还要判断是在内核态还是在用户态? 处理异常时肯定是在内核态吧?if (!user_mode
DMA那些事儿
在VIP群里,大家讨论热烈,完全可以看得出来大家都Linux技术和嵌入式技术等渴望和热诚,欢迎大家加入笨叔的VIP私密群,一起研究技术,一起奔跑,一起成长。关于DMA有朋友问有关DMA的相关问题,那么大家在编写驱动的时候需要额外小心敬慎。因为DMA的问题主要会影响cache的一致性。那linux内核里面提供了不少的API来帮助大家实现DMA的操作。我们知道DMA使用的物理内存,那么在内核中主要有两
首发:Meltdown漏洞分析与实践
2018年的第二天Meltdown和Spectre漏洞在计算机界如同放了一个核弹,IT码农们都炸开了锅,各大厂商的各路大神都在挑灯夜战的做各种测试和打补丁,各路技术爱好者也纷纷在微信群中热烈讨论漏洞的技术问题和研读论文。本文是猫王大神(Xiao Grangrong)同学花了一个周末时间,参考了各路的论文和资料撰写出来,希望对喜欢技术的各位朋友能
ARMv9的SVE/SVE2入门教程 (1)
什么是SVENEON指令集是ARM64架构的单指令多数据流(SIMD)的标准实现。SVE(可扩展矢量指令Scalable Vector Extension)是针对高性能计算(HPC)和机器学习等领域开发的一套全新的矢量指令集,它是下一代SIMD指令集实现,而不是NEON指令集的简单扩展。SVE指令集中有很多概念与NEON指令集类似,例如矢量、通道、数据元素等。SVE指令集也提出了一个全新的概念:可