⭐ 欢迎来到虫虫下载站!
|
📦 资源下载
📁 资源专辑
ℹ️ 关于我们
⭐ 虫虫下载站
🔐
登录
📝
注册
虫虫下载站
专业电子工程师资源平台
📤 上传资源
🏠 首页
📦 资源下载
📁 资源专辑
🔧 热门软件
⭐ 精品资源
🎓 基础知识
📐 电路图
📚 电子书
🔢 在线计算器
🔍 代码搜索
🏠
首页
›
📖 技术阅读
📖
技术阅读
工程师原创文章 · 技术经验分享 · 项目案例解析
📊 共 19889 篇文章
✍️ 原创分享
📚 持续更新
宋宝华:Don Libes的expect,终端交互式编程的精神鼻祖
expect提示阅读本文需要: 10分钟本文难度系数:入门如果你在期待一种编程语言,可以自动在terminal里面输入命令,并且等待terminal的输出结果,之后判断输出是否如你期待(expect),并根据terminal的输出决定下一步动作,那么expect就是体现这种精神的语言鼻祖,它是Tcl脚本语言的扩展。假设我们要ssh登陆192.168.174...
📅 2023-06-05
阅读全文 →
宋宝华:Linux设备驱动框架里的设计模式之——模板方法(Template Method)
前言《设计模式》这本经典的书里面定义了20多种设计模式,虽然都是面向对象的,似乎需要C++、Java这样的语言才能实现,但是根据笔者前面反复强调的,Linux内核虽然是用C语言和汇编语言写成,但是其实也到处充满了面向对象的设计。面向对象更多的是一种思想,而不是一个语言。我们可以用C语言实现极大的OO,Linux内核到处都有OO。模板方法比如,在Linux的...
📅 2023-06-05
阅读全文 →
宋宝华:递归的出口在哪里? (除夕创作年度最后一篇文章)
01递归的出口迭代的是人,递归的是神。递归的出口,在于停止递归。当递归函数在某条件成立后不再调用自身,即意味着递归会终止。func(){ if(condition) &...
📅 2023-06-05
阅读全文 →
拿什么拯救你? rm -r
天雷滚滚。天雷滚滚。天雷滚滚。作为一个Linux程序员,你能碰到的最伤心的事情,莫过于:编译了一整天的工程,不小心被rm -r掉了错误的执行了rm -r,把文件系统都删除了在嵌入式板子和PC之间切换的时候,不小心删错了目标不要说你没有遇到过!那么,你不是真的程序员。要求确认有人说,在你的bash中加入别名,譬如:alias rm='rm -i'这...
📅 2023-06-05
阅读全文 →
Google断供之下,我们如何杀出一条血路
美帝野蛮封杀华为等中国高科技明星企业,Google等企业继而断供华为。此情此景,其悲凉与悲壮,直逼《权力的游戏》中最令观众震撼的"血色婚礼",史塔克家族的命运在这一刻跌倒了谷底。那么,我们应该做什么?把《上甘岭》看100遍令自己热血沸腾,随时准备与美帝是赤膊血拼?然而这并没有什么卵用。在二丫没有成为顶级剑客之前,她没有这么干;在三傻没有再次控制临冬城之前,...
📅 2023-06-05
阅读全文 →
同样学习Linux, 为何差别这么大? - 论打通Linux进程和内存管理任督二脉
穆赫兰道和内陆帝国我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU、内存资源等的真正分布,具体的工作机制,这使得他们对很多问题的分析都摸不到方向。比如进程的调度延时是多少?Linux能否硬实时?多核下多线程如何执行?系统的内存究竟耗到哪里去了?我写的应用...
📅 2023-06-04
阅读全文 →
还不赶紧了解云原生你就OUT了
6月24~26日,KubeCon +CloudNativeCon和Open Source Summit在中国上海共同举办一场了一场盛会。KubeCon + CloudNativeCon是将所有CNCF项目汇聚在一个屋檐下, 而Open Source Summit前身则为LinuxCon+ CloudOpen + ContainerCon Chi...
📅 2023-06-04
阅读全文 →
让天堂的归天堂,让尘土的归尘土——谈Linux的总线、设备、驱动模型
让天堂的归天堂,让尘土的归尘土——谈Linux的总线、设备、驱动模型作者:宋宝华长按二维码关注公元1951年5月15日的国会听证上,美国陆军五星上将麦克阿瑟建议把朝鲜战争扩大至中国,布莱德利随后发言:“如果我们把战争扩大到共产党中国,那么我们会被卷入到一场错误的时间,错误的地点同错误的对手打的一场错误的战争中。”写代码,适用于同样的原则,那就是把正确的代码...
📅 2023-06-04
阅读全文 →
廖威雄: 学习Linux必备的硬件基础一网打尽
作者简介: 廖威雄,目前就职于珠海全志科技股份有限公司从事linux嵌入式系统(Tina Linux)的开发,主要负责文件系统和存储的开发和维护,兼顾linux测试系统的设计和持续集成的维护。 拆书帮珠海百岛分舵的组织长老,二级拆书家,热爱学习,热爱分享。内容简介:出来混,迟早要还的.....本文详细论述...
📅 2023-06-04
阅读全文 →
有关微内核OS史上最透彻一篇 - 写于华为鸿蒙发布一周之际
本文由知名博主Dog250投稿Linux阅码场原创发表。浙江温州皮鞋湿,下雨进水不会胖。 - Dog250华为鸿蒙OS发布已经一周了,在这一周中发生了很多事情,有人对华为路转粉,也有人对华为粉转黑,在时下,只要是华为的任何动作,背后都早已预备好某种正确,当然,所有事先备好的正确,必然不是客观的,所以为了不浪费时间和精力,...
📅 2023-06-04
阅读全文 →
被神话的Linux, 一文带你看清Linux在多核可扩展性设计上的不足
本文接着《有关微内核OS史上最透彻一篇 - 写于华为鸿蒙发布一周之际》 继续写下去。我其实并不想讨论微内核的概念,也并不擅长去阐述概念,这是百科全书的事,但无奈最近由于鸿蒙的发布导致这个话题过火,也就经不住诱惑,加上我又一直比较喜欢操作系统这个话题,就来个老生常谈吧。说起微内核,其性能往往因为IPC饱受诟病。然而除了这个显而易见的 “缺陷” ,其它...
📅 2023-06-04
阅读全文 →
大碰撞!当Linux多线程遭遇Linux多进程
作者简介: 廖威雄,目前就职于珠海全志科技股份有限公司从事linux嵌入式系统(Tina Linux)的开发,主要负责文件系统和存储的开发和维护,兼顾linux测试系统的设计和持续集成的维护。 拆书帮珠海百岛分舵的组织长老,二级拆书家,热爱学习,热爱分享。## 背景 本文并不是介绍Linux多进...
📅 2023-06-04
阅读全文 →
300来行代码带你实现一个能跑的最小Linux文件系统
Linux作为一个类UNIX系统,其文件系统保留了原始UNIX文件系统的表象形式,它看起来是这个样子:root@name-VirtualBox:/# lsbin boot cdrom dev etc home lib lib64 lost+found media mnt opt proc root run sbin snap srv sys tmp usr ...
📅 2023-06-04
阅读全文 →
Linux fork那些隐藏的开销
fork是一个拥有50年历史的陈年系统调用,它是一个传奇!时至今日,它依旧灿烂。一个程序员可以永远不用read/write,也可以不懂mmap,但必须懂fork。这是一种格调!fork没有参数,它是如此简单,是UNIX哲学的布道者或者说卫道者们的首选,它被写进了几乎每一本操作系统教科书里,成了 创建新进程的绝佳范式 ,fork站在原地,似乎在闭着眼睛蔑视 W...
📅 2023-06-04
阅读全文 →
Unix/Linux fork前传
本文是《Linux fork那些隐藏的开销》的前传。fork的由来fork的思想在UNIX出现几年前就出现了,时间大概是1963年,这比UNIX在PDP-7上的第一个版本早了6年。1963年,计算机科学家Melvin Conway(以Conway’s Law闻名于世)写下一篇论文,正式提出了fork思想,该论文链接:A Multiprocessor Sys...
📅 2023-06-04
阅读全文 →
60行C代码实现一个shell
继 300来行代码带你实现一个能跑的最小Linux文件系统 之后,我们来看看如何60行C代码实现一个shell!在实现它之前,先看看这样做的意义。美是有目共睹的。Unix之美,稍微体会,便能得到。1969年,Unix初始,没有fork,没有exec,没有pipe,没有 “一切皆文件” ,但是那时它已经是Unix了。它简...
📅 2023-06-04
阅读全文 →
Fork三部曲之clone的诞生
本文fork三部曲的后传,建议先阅读:正传:《Linux fork那些隐藏的开销》前传:《Unix/Linux fork前传》在本文中,传统UNIX fork之后,我给出传统的UNIX fork在Linux内核中的变体clone系统调用的精彩。若要理解fork的原始意义,还是要看Melvin Conway提出fork思想的原始论文 A Multip...
📅 2023-06-04
阅读全文 →
实例演绎Unix/Linux的"一切皆文件"思想
大家习惯了使用socket来编写网络程序,socket是网络编程事实上的标准。我们知道,在Unix/Linux系统中“一切皆文件”,socket也被认为是一种文件,socket被表示成文件描述符。但socket的行为并不很像文件。比如:无法用 “open一个路径” 的方式打开一个socket,必须用socket系统调用来创建。文件系统的c...
📅 2023-06-04
阅读全文 →
宋宝华:在实时操作系统里面随便怎么写代码都能硬实时吗?
很久没有写技术文章了,做码农难,做养娃的码农更难,趁着娃看动画片的机会,受着王菲童鞋《我和我的祖国》歌唱精神的鼓舞,我要来说几句。硬实时是什么?众所周知,硬实时的概念不是越快越好,而是强调可重复的(repeatable)、决定性的时间期限内给予响应(deterministic response time)。所以它的本质点是可预期,实时系统的计算正确性不仅取...
📅 2023-06-04
阅读全文 →
两个非常有意思的适合桌面使用的Linux task调度器: BFS和MuqSS
大家都知道Linux内核task调度器经历了O(n),O(1)调度器,目前是CFS,期间也出现了几个优秀的候选调度器,但最终都没能并入内核,我们只能从一些零散的patch和文章中知道它们的存在。但Linux内核的世界乃是非常之宽广,在主线内核之外还有很多支线可供观摩。本文我来介绍Linux主线内核之外的两个非常有意思的适合桌面使用的task调度器BFS和Mu...
📅 2023-06-04
阅读全文 →
虚拟化场景用什么调度器更合适? 看看来自Amazon的Coscheduling
在BFS和MuqSS两个调度器的介绍之后,本文再介绍一种有意思的调度器,即Coscheduling。一直以来任何技术让人觉得都是 简单为美。 不管是设计上还是实现上。比如操作系统的任务调度算法,从FIFO到CFS以及多级反馈队列,都是能一两句话说清楚并让人理解的,同时其代码实现也是及其精炼的。最近出来的一个新的调度算法有点不同。它也是可以用一两句话说清楚的...
📅 2023-06-04
阅读全文 →
宋宝华: Linux内核编程广泛使用的前向声明(Forward Declaration)
前向声明编程定律先强调一点:在一切可能的场景,尽可能地使用前向声明(Forward Declaration)。这符合信息隐蔽的原则。一个例子regmap那么前向声明究竟是个什么鬼?在内核写代码和看代码的童鞋,经常发现Linux内核里面充斥着这样的代码,比如include/vim linux/regulator/driver.h文件中:我们以regmap这个...
📅 2023-06-04
阅读全文 →
宋宝华: 几个人一起抢spinlock,到底谁先抢到?
天问公平在哪里?几个人一起抢spinlock,到底谁先抢到呢?这是一个问题。几个人一起去银行柜台,到底谁先被服务到呢?这是一个问题。闹地不好就要出问题。这个问题就是公平的问题。这个社会,人人都要讲公平,是一个人人平等、人不吃人的社会。经过本人数年研究,得出一个结论:装逼必然被雷劈,除非自己就是雷。所以我要坚持装孙子,50年不变。斗狠腿短要吃亏在早期,2.6...
📅 2023-06-04
阅读全文 →
宋宝华:让天堂的归天堂,让尘土的归尘土——谈Linux的总线、设备、驱动模型
让天堂的归天堂,让尘土的归尘土——谈Linux的总线、设备、驱动模型作者:宋宝华长按二维码关注公元1951年5月15日的国会听证上,美国陆军五星上将麦克阿瑟建议把朝鲜战争扩大至中国,布莱德利随后发言:“如果我们把战争扩大到共产党中国,那么我们会被卷入到一场错误的时间,错误的地点同错误的对手打的一场错误的战争中。”写代码,适用于同样的原则,那就是把正确的代码...
📅 2023-06-04
阅读全文 →
Linux中的1024——给Linux工程师的节日祝福
过节了!过节了!过节了!1024!Linux阅码场——一个不断提供高质量Linux原创技术文章的公众号给您拜年了!哦,no,给您送上节日的祝福。我和我的代码,一刻也不能分割。无论我走到哪里,都流出一首赞歌。我歌唱每一条河,我歌唱Linux中的1024。基于二进制的原理,程序员通常会把1024当做一个整数而不是1000。程序员这个行业处理“bit”,当然这个...
📅 2023-06-04
阅读全文 →
解决Linux内核问题实用技巧之 - Crash工具结合/dev/mem任意修改内存
Linux内核程序员几乎每天都在和各种问题互相对峙:内核崩溃了,需要排查原因。系统参数不合适,需要更改,却没有接口。改一个变量或一条if语句,就要重新编译内核。想稍微调整下逻辑却没有源码,没法编译。...解决每一类问题都需要消耗大量的时间,特别是重新编译内核这种事情。于是,每一个Linux内核程序员或多或少都会掌握一些Hack技巧,以节省时间提高工作效率。然...
📅 2023-06-04
阅读全文 →
宋宝华: 僵尸进程的成因以及僵尸可以被“杀死”吗?
僵尸不可能被杀死,因为它已经死了,不存在再死一次的问题。死的对立面是活,死者已死。只有活的进程才可能被杀死。什么是僵尸首先要明确一点,僵尸进程的含义是:子进程已经死了,但是父进程还没有wait它的一个中间状态,这个时候子进程是一个僵尸。正常情况下子死,父wait,清理掉子进程的task_struct,释放子进程的PID:编译上述程序,运行,我们看到2个a....
📅 2023-06-04
阅读全文 →
吴章金: 如何创建一个*可执行*的共享库
license: "cc-by-nc-nd-4.0"description: "本文手把手指导如何创建一个可以执行的共享目标文件"前言前段时间,有多位同学在“泰晓原创团队”微信群聊到 C 语言相关的两个问题:如何让共享库文件也可以直接执行如何在可执行文件中用 dlopen 解析自身的函数这两个需求汇总起来,可以大体理解为如何让一个程序既可...
📅 2023-06-04
阅读全文 →
宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇)上集
共享单车、共享充电宝、共享雨伞,世间的共享有千万种,而我独爱共享内存。早期的共享内存,着重于强调把同一片内存,map到多个进程的虚拟地址空间(在相应进程找到一个VMA区域),以便于CPU可以在各个进程访问到这片内存。现阶段广泛应用于多媒体、Graphics领域的共享内存方式,某种意义上不再强调映射到进程虚拟地址空间的概念(那无非是为了让CPU访问),而更强...
📅 2023-06-04
阅读全文 →
吴章金: 深度剖析 Linux共享库的“位置无关”实现原理
license: "cc-by-nc-nd-4.0"description: "本文详细介绍了 Linux 下 C 语言共享库的位置无关(PIC)实现原理。"背景简介吴章金:如何创建一个*可执行*的共享库 一文谈完了如何让共享库可直接执行,本文再来谈谈共享库的运行时位置无关(PIC)是如何做到的。>PIC = position indepen...
📅 2023-06-04
阅读全文 →
首页
« 上一页
527
528
529
530
531
532
533
534
535
下一页 »
末页
🔐 用户登录
×
加载中...
加载登录表单中...
🎁
免费注册送10积分
×
加载中...
加载注册表单中...
🔑 找回密码
×
加载中...
加载表单中...
🔐
需要登录
×
🔒
登录后即可使用!
🎁
新用户注册立即送10积分
积分可用于下载资源,免费获取优质技术资料
🚪
退出登录
×
👋
确认要退出登录吗?
退出后需要重新登录才能下载资源