- 博客(39)
- 资源 (24)
- 收藏
- 关注

转载 [授权发表]开源书籍:《Shell编程范例》
早在2007年11月,当我在Linux操作系统下面学习Shell编程的时候,为了系统化地学习和总结Shell编程,专门制定了一个Shell编程范例的总结计划。这个系列将以面向“对象”(即我们操作的对象)来展开,并引入大量的实例,这样有助于让我们真正去学以致用,并在用的过程中提高兴趣。如今该计划基本完成并编辑成开源书籍《Shell编程范例序列》。
2015-04-12 18:08:55
1131

转载 [授权发表]开源书籍:《C语言编程透视》
2007年开始系统地学习Shell编程,并在兰大开源社区写了序列文章。在编写《Shell编程范例序列》文章的《进程操作》一章时,为了全面了解进程的来龙去脉,对程序开发过程的细节、ELF格式的分析、进程的内存映像等进行了全面地梳理,后来搞得“雪球越滚越大”,甚至脱离了Shell编程关注的内容。所以想了个小办法,“大事化小,小事化了”,进而不断演化出了《C语言编程透视》一书。
2015-04-12 17:01:15
2176
原创 为什么计算机的学生要学习Linux开源技术
为什么计算机的学生要学习Linux开源技术背景说明研究平台专业视野工作机会课程实践背景说明笔者在 2006 年参与创建兰大开源社区,从大学到毕业工作,一直从事 Linux 相关的学习、研究和工作,十多年来的观察发现,最近数十年的大学课程完全跟不上时代,现在各大领域几乎都被 Linux 以及相关的开源技术覆盖了,包括服务器、消费电子(手机)、IoT,大部分都在用 Linux 以及相关的周边开源技...
2019-07-07 01:28:32
529
原创 [授权发表]基于 Docker 快速构建 Linux 0.11 实验环境
[五分钟内搭建 Linux 0.11 的实验环境](http://www.tinylab.org/take-5-minutes-to-build-linux-0-11-experiment-envrionment/)介绍了如何快速构建一个 Linux 0.11 实验环境。本文介绍如何用 Docker 快速构建一个独立于宿主机的 Linux 0.11 实验环境,并且允许在任何地方通过浏览器远程登录来做操作系统实验?
2015-05-22 00:40:48
2085
原创 [授权发表]Linux 段错误详解
笔者早年写过一篇:《可恶的"Segmentation faults"之初级总结篇》,网络转载甚多。多年下来,关于段错误的讨论依旧很热烈,该问题也还是很常见。所以打算在这里再系统地梳理一下该问题的来龙去脉。
2015-05-21 23:32:00
3258
原创 [授权发表]内核探索:Linux BogoMips 探秘
本文探索了Linux BogoMIPS由来,计算方法及和CPU频率的关系。BogoMIPS是 Linus本人独创,Bogo意思是“假的,伪造的”,MIPS意思是“Millions of Instructions Per Second”,如系统启动时,计算出BogoMIPS为100,可记为100万条伪指令每秒。之所以叫伪指令,是因为在计算BogoMIPS时,CPU一直在执行NOP指令,只能作为CP性能的参考指标。
2015-05-14 12:18:12
2030
原创 [授权发表]基于 VNCServer + noVNC 构建 Docker 桌面系统
不同于 Qemu/VMware/VirtualBox 等虚拟化方案,Docker 本身没有提供图形界面支持,只能使用 “远程桌面” 支持。目前 Docker 仓库中两个最火的方案分别是 SSH + Xpra (C/S架构) 和 VncServer + noNVC (B/S架构)。早期已经介绍了前者,本文介绍后者。
2015-05-13 00:17:52
9003
原创 [授权发表]基于 ssh + Xpra 构建 Docker 桌面系统
不同于 Qemu/VMware/VirtualBox 等虚拟化方案,Docker 本身没有提供图形界面支持,只能使用 “远程桌面” 支持。目前 Docker 仓库中两个最火的方案分别是 SSH + Xpra (C/S架构) 和 VncServer + noNVC (B/S架构),本文先介绍第一种。
2015-05-02 23:01:52
2395
原创 [授权发表]WordPress 网站 SEO 优化
买了阿里云,搭的WordPress, 一直有各种问题,导致无法访问,尝试过:1) 升级Web服务器:从Apache到Nginx,2) 创建文件并配置Swap服务,3) 升级RAM:从512M到2G,但是发现有时访问还是很慢,特别是连接多了以后,服务器就down掉。本文通过 SEO 优化实践讨论了各类兼容性问题,性能问题以及搜索引擎收录问题。
2015-05-01 17:07:08
2075
原创 [授权发表]Android加载不同DPI资源与内存消耗之间的关系
DPI (Dots per inch) 是屏幕像素密度的衡量标准,Android为支持不同物理尺寸的屏幕,允许APP针对不同DPI配置不同资源,也允许“偷懒”只配置一种,让Android 自动拉伸/缩放处理,那问题来了:当Android加载不同DPI资源时有哪些潜在问题呢?兼容性/性能?
2015-05-01 16:34:18
1319
原创 [授权发表]Docker 快速上手:用 Docker + GitBook 写书
本文介绍了如何用 Docker 快速部署一个书籍创作环境 GitBook。有了Docker+GitBook,原创作者们从此可以用 Markdown 便捷地写作,更专注于内容创作,抛弃繁杂的字体和版式调整。
2015-04-28 08:39:50
4591
原创 [授权发表]如何快速定位 Linux Panic 出错的代码行
内核调试中最常见的一个问题是:内核 Panic 后,如何快速定位到出错的代码行?就是这样一个常见的问题,面试过的大部分同学都未能很好地回答,这里希望能够做很彻底地解答。
2015-04-28 08:25:22
1739
原创 [授权发表]用 kGDB 调试 Linux 内核
本文记录了用 kGDB 调试 Linux 内核的全过程,都是在前人工作基础上的一些总结。以下操作都是基于特定板子来进行,但是大部分都能应用于其他平台。
2015-04-28 08:16:48
2139
原创 [授权发表]Linux内核Section Mismatch详解
Section Mismatch是非常严重的Bug,可能会导致无法预测的内存访问问题,建议谨慎对待,如果添加的驱动中有类似Warning,可能需要密切关注并解决掉。本文就该问题的检测、原因、解决思路以及最新前沿进行分析。
2015-04-28 08:12:03
1925
原创 [授权发表]利用 qemu 模拟嵌入式系统制作全过程
这篇文章主要介绍如何用 Qemu 来搭建一个基于 ARM 的嵌入式 Linux 系统。通过该文可以学习到如何配置和交叉编译 Linux Kernel,如何配置 Busybox 并编译,如何制作 Initramfs,如何制作根文件系统,如何定制自己的 Uboot,如何通过 Uboot 向 Kernel 传递参数等。
2015-04-23 22:57:57
3162
原创 [授权发表]源码分析:动态分析 Linux 内核函数调用关系
这是泰晓科技源码分析系列的第三篇,之前我们已经介绍了静态分析,应用程序的动态分析,这里介绍内核部分的动态分析,介绍到 Ftrace, Perf 和 FlameGraph。这三篇主要是函数级别的分析,接下来我们会再出一个源码级别的分析外加一个汇总性的文章,之后会转到 Android / Linux 性能分析 系列。
2015-04-23 11:55:23
2077
原创 [授权发表]使用 JDB 调试 Android 应用程序
调试 Android 应用,大多选择 ADT 和 Android Studio,它们已经集成很多调试功能,像打断点、单步调试、dump 虚拟机的堆栈信息等,这些工具很强大,开发时不可或缺,但是它们怎么做到的呢?本文就带我们一起去看看它们背后的功臣:JDB。
2015-04-17 22:34:37
1964
原创 [授权发表]源码分析:动态分析 C 程序函数调用关系
上篇《静态分析 C 程序函数调用关系图》 介绍了 CallGraph 静态分析 C 语言程序的函数调用,该篇继续分析源码,不过是分析 C 程序运行时的函数调用关系,所以谓之动态分析,主要讲 Gprof 以及 Valgrind 的 Callgrind,外加 Gprof2Dot。这里主要是分析应用空间,下篇将分析 Linux 内核空间的函数调用关系,相应的工具包括 Perf, Ftrace, FlameGraph。
2015-04-15 01:09:07
2618
原创 [授权发表]源码分析:静态分析 C 程序函数调用关系
源码分析是程序员离不开的话题。无论是研究开源项目,还是平时做各类移植、开发,都避免不了对源码的深入解读。工欲善其事,必先利其器。今天我们来玩转一个小工具,叫 Callgraph,它可以把 C 语言的函数调用树(或者说流程图)画出来。本来主要通过它来静态分析一个 C 语言程序。
2015-04-14 00:11:23
2294
原创 [授权发表]Shell编程范例之总结篇
这是《Shell编程范例序列》第九章,到这里,整个shell编程序列就要结束了,作为总结篇,主要回顾一下各个小节的主要内容,并总结出shell编程的一些常用框架和相关注意事项等。
2015-04-12 19:17:59
657
原创 [授权发表]Shell编程范例之网络操作
这是《Shell编程范例序列》第八章,之前已经介绍了shell编程范例之数值、布尔值、字符串、文件、文件系统、进程等的操作。这些内容基本覆盖了网络中某个独立机器正常工作的“方方面面”,现在需要把视角从单一的机器延伸到这些机器通过各种网络设备和协议连接起来的网络世界,分析网络拓扑结构、网络工作原理、了解各种常见网络协议、各种常见硬件工作原理、网络通信与安全相关软件以及工作原理分析等。
2015-04-12 19:17:15
2078
原创 [授权发表]Shell编程范例之进程操作
这是《Shell编程范例序列》第七章,进程作为程序真正发挥作用时的“形态”,我们有必要对它的一些相关操作非常熟悉,这一节主要描述进程相关的概念和操作,将介绍包括程序、进程、作业等基本概念以及进程状态查询、进程通信等相关的基本操作等。
2015-04-12 19:15:04
1053
原创 [授权发表]Shell编程范例之文件系统操作
这是《Shell编程范例序列》第六章,希望该篇能够很好地帮助Shell程序员理解如何用Shell命令来完成和Linux系统关系非常之大的文件系统的各种操作,希望让Shell程序员中对文件系统”混沌”的状态从此消失,希望文件系统以一种更为清晰的样子呈现在我们的眼前。
2015-04-12 19:11:37
976
原创 [授权发表]Shell编程范例之文件操作
这是《Shell编程范例序列》第五章,我们来探讨文件操作。在日常学习和工作中,我们总是在不断地和各种文件打交道,这些文件包括普通的文本文件,可以执行的程序文件,带有控制字符的文档、存放各种文件的目录文件、网络套接字文件、设备文件等。这些文件又具有诸如属主、大小、创建和修改日期等各种属性。文件对应文件系统的一些数据块,对应磁盘等存储设备的一片连续空间,对应于显示设备却是一些具有不同形状的字符集。
2015-04-12 19:09:33
848
原创 [授权发表]Shell编程范例之字符串操作
这是《Shell编程范例序列》第四章,之前介绍的数值运算中的数字,逻辑运算中的真假值,都是以字符的形式呈现出来的,是一种特别的字符,对它们的运算只不过是字符操作的特例罢了。而这里将研究一般字符的运算,它具有非常重要的意义,因为对我们来说,一般的工作都是处理字符而已。
2015-04-12 19:04:26
1040
原创 [授权发表]Shell编程范例之布尔运算
这是《Shell编程范例序列》第三章,在这一节,我们除了讨论这些基本逻辑运算外,还将讨论SHELL编程中的条件测试和命令列表,并介绍它们和布尔运算的关系。
2015-04-12 18:59:42
1500
原创 [授权发表]Shell编程范例之数值运算
这是《Shell编程范例序列》的第二章,这一篇打算讨论一下Shell编程中的基本数值运算,这类运算包括:1) 数值(包括整数和浮点数)间的加、减、乘、除、求幂、求模等 2) 产生指定范围的随机数 3) 产生指定范围的数列。
2015-04-12 18:50:37
913
原创 [授权发表]Shell编程范例之开篇
这是《Shell编程范例序列》的第一章,在介绍具体实例之前,该篇主要介绍什么是Shell,Shell运行环境,Shell基本语法和调试技巧。
2015-04-12 18:49:51
817
原创 [授权发表]代码测试、调试与优化小结
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第九章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:54:33
1021
原创 [授权发表]为可执行文件“减肥”
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第八章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:52:35
1806
原创 [授权发表]进程和进程的基本操作
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第七章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:50:35
1445
原创 [授权发表]进程的内存映像
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第六章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:48:40
871
原创 [授权发表]缓冲区溢出与注入分析
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第五章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:43:26
2250
原创 [授权发表]动态符号链接的细节
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第四章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:39:14
1198
原创 [授权发表]程序执行的那一刹那
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第三章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:36:38
928
原创 [授权发表]GCC 编译背后的奥秘
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第二章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:26:28
1523
原创 [授权发表]把 VIM 打造成源代码编辑器
这是开源书籍[《C语言编程透视》](http://www.tinylab.org/project/hello-c-world/)第一章,如果您喜欢该书,请关注我们的新浪微博[@泰晓科技](http://weibo.com/tinylaborg)。
2015-04-12 17:10:22
1158
原创 [授权发表]也谈C语言编程风格:从程序员到工程师的蜕变
编程风格要平衡各个方面的需求,最终让产品团队高效、快乐地生产出高质量、高效的软件,并且要确保软件在整个生命周期内利于各个阶段的活动,包括前期编写、中期评审、后期测试和长期维护。
2015-04-12 16:32:32
1053
Linux Cgroup 技术 与 智能手机系统 IO 优化
2015-09-22
Shell编程范例序列.book.0.1-TinyLab原创
2014-01-08
Shell编程范例之网络操作-TinyLab原创
2013-12-24
Shell编程范例之进程操作-TinyLab原创
2013-12-24
Shell编程范例之文件系统操作-TinyLab原创
2013-12-24
Shell编程范例之文件操作-TinyLab原创
2013-12-24
Shell编程范例之字符串操作-TinyLab原创
2013-12-24
Shell编程范例之布尔运算-TinyLab原创
2013-12-24
Shell编程范例之数值运算-TinyLab原创.
2013-12-24
Shell编程学习笔记-TinyLab出品
2013-12-24
嵌入式Linux系统优化详解
2013-12-24
从Android NDK安装ARM交叉编译工具链
2013-12-24
用qemu进行嵌入式系统开发
2013-12-24
Linux系统调用分析
2013-12-24
用kGDB调试Linux内核
2013-12-24
Linux网络流量监控前端vnstatsvg用法详解
2013-12-24
为什么计算机的学生要学习Linux开源技术
2013-12-24
Git版本管理用法详解
2013-12-24
Android Python编程入门
2013-12-24
MIPS Assembly Language Programmer’s Guide
2011-03-07
uCOS平台下的LwIP移植笔记
2011-03-07
Segmentation fault in Linux
2010-11-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人