在博文“Linux系统启动过程分析”中我们了解了linux系统的启动流程,今天我们就来手动一步一步从头来构建一个最小的linux系统,然后用模拟器将其加载起来。常见的模拟器有Qemu、Bochs、VMWare、VPC、Virtual Box和Xen等,以及特殊的模拟UML(User-Mode-Linux),这里我们选择用VMWare。
File System of Linux
Linux的老江湖们对这个概念当然不会陌生,然而刚接触Linux的新手们就会被文件系统这个概念弄得晕头转向,恰好我当年正好属于后者。
从windows下转到Linux的童鞋听到最多的应该是fat32和ntfs(在windows 2000之后所出现的一种新型的日志文件系统),那个年代经常听到说“我要把C盘格式化成ntfs格式,D盘格式化成fat32格式”。一到Linux下,很多入门Linux的书籍中当牵扯到文件系统这个术语时,二话不说,不管三七二十一就给出了下面这个图,然后逐一解释一下每个目录是拿来干啥的、里面会放什么类型的文件就完事儿了,弄得初学者经常“丈二和尚摸不着头脑”。难道这就是Linux下的文件系统。而且新手一直被“灌输”一个思想:Linux下一切都是文件,不再像Windows那样用扩展名来为文件分类等等。这就让那些喜欢刨根问底的fresh-fish很是不爽,他们本着对学术的严谨、技术的狂热的态度,一心想弄明白:到底什么才是文件系统。本文的目的就是和大家分享一下我当初是如何学习Linux的文件系统的,也算是一个“老”油条的一些心得吧。
Anatomy of Hard Disk
本来想写个文件系统的专题,结果发现对硬盘的内部架构和存储原理还是比较模糊,因为不了解“一点”硬盘的存储原理对文件系统的认识老是感觉镜花水月,不踏实。经过搜集整理资料就由了本文的问世。借用Bean_lee兄一句话:成果和荣耀归于前辈。
Anatomy of GPU
图形处理器(英语:Graphics Processing Unit,缩写:gpu),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。
用途是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,也是“人机对话”的重要设备之一。显卡作为电脑主机里的一个重要组成部分,承担输出显示图形的任务,对于从事专业图形设计的人来说显卡非常重要。
Anatomy of CPU
更多参考
处理器体系结构(了解CPU的基本运行原理)——《深入理解计算机系统》
CPU的实模式与保护模式(简介)
一直以来,总以为CPU内部真是如当年学习《计算机组成原理》时书上所介绍的那样,是各种逻辑门器件的组合。当看到纳米技术时就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流程及AMD芯片的制作流程的介绍不禁感慨,原来科技是如此的发达。
本文我们以Intel为例对CPU的工作原理做简单介绍,仅仅是简单介绍,那么AMD,ARM,MIPS甚至PowerPC你应该会触类旁通才对。
Talking About Clean Code
王烨
clean code,顾名思义就是整洁的代码,或者说清晰、漂亮的代码,相信大多数工程师都希望自己能写出这样的代码。
也许这是个千人千面的话题,每个工程师都有自己的理解。比如我,从一个天天被骂代码写得烂的人,逐渐学习成长,到现在也能写的出“人模人样”的代码来了。这期间算是积累了一点经验心得,想和大家分享,抛砖引玉。
本文主要针对面向对象编程的clean code来阐述,面向过程代码的思路会比较不同,不在本文的讨论范畴。