随笔分类 -  计算机系统

摘要:英文原文:jtraining,译文:Lixiang引言我们都听过 cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准去选择缓存框架。在这边文章,我们会去讨论缓存,缓存算法,缓存框架以及哪个缓存框架会更好。面试“缓存就是存... 阅读全文
posted @ 2014-10-28 17:47 Noble_ 阅读(222) 评论(0) 推荐(0)
摘要:转自x86, x86-64, i386, IA32, IA64...x86:Intel从16位微处理器8086开始的整个CPU芯片系列,系列中的每种型号都保持与以前的各种型号兼容,主要有8086,8088(前面两个是16位CPU),80186,80286(这两个是过渡产品), 80386,80486... 阅读全文
posted @ 2014-09-20 19:16 Noble_ 阅读(570) 评论(0) 推荐(0)
摘要:转自Linux系统调用列表一、进程控制:fork创建一个新进程clone按指定条件创建子进程execve运行可执行文件exit中止进程_exit立即中止当前进程getdtablesize进程所能打开的最大文件数getpgid获取指定进程组标识号setpgid设置指定进程组标志号getpgrp获取当前... 阅读全文
posted @ 2014-09-19 22:37 Noble_ 阅读(901) 评论(0) 推荐(0)
摘要:转自系统调用跟我学(4)1.13 Shell对Linux不是太陌生的读者都应该对Shell有一定的了解,就是这个程序在我们登陆后自动执行,打印出一个$符号,然后等待我们输入命令。Linux下最常用的Shell应用程序是Bash,绝大部分Linux发行版默认安装的都是它。下面我们也来亲手编写一个She... 阅读全文
posted @ 2014-09-19 22:33 Noble_ 阅读(266) 评论(0) 推荐(0)
摘要:转自系统调用跟我学(3)1.7 背景在前面的文章中,我们已经了解了父进程和子进程的概念,并已经掌握了系统调用exit的用法,但可能很少有人意识到,在一个进程调用了exit之后,该进程并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特殊... 阅读全文
posted @ 2014-09-19 22:24 Noble_ 阅读(187) 评论(0) 推荐(0)
摘要:转自系统调用跟我学(2)关于进程的一些必要知识先看一下进程在大学课本里的标准定义:“进程是可并发执行的程序在一个数据集合上的运行过程。”这个定义非常严谨,而且难懂,如果你没有一下子理解这句话,就不妨看看笔者自己的并不严谨的解释。我们大家都知道,硬盘上的一个可执行文件经常被称作程序,在Linux系统中... 阅读全文
posted @ 2014-09-19 22:17 Noble_ 阅读(252) 评论(0) 推荐(0)
摘要:转自系统调用跟我学(1)什么是系统调用?Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自... 阅读全文
posted @ 2014-09-19 22:11 Noble_ 阅读(252) 评论(0) 推荐(0)
摘要:转自Linux的直接I/O机制对于传统的操作系统来说,普通的 I/O 操作一般会被内核缓存,这种 I/O 被称作缓存 I/O。本文所介绍的文件访问机制不经过操作系统内核的缓存,数据直接在磁盘和应用程序地址空间进行传输,所以该文件访问的机制称作为直接 I/O。Linux 中就提供了这样一种文件访问机制... 阅读全文
posted @ 2014-09-19 19:24 Noble_ 阅读(374) 评论(0) 推荐(0)
摘要:转自内存映射文件原理探索一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。原理首先,“映射”这个词,就和数学课上说的“一一映射”是一... 阅读全文
posted @ 2014-09-19 14:02 Noble_ 阅读(255) 评论(0) 推荐(0)
摘要:转自linux系统调用和库函数调用的区别Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Ric... 阅读全文
posted @ 2014-09-19 12:56 Noble_ 阅读(192) 评论(0) 推荐(0)
摘要:转自双缓冲(Double Buffer)原理和使用一、双缓冲作用 双缓冲甚至是多缓冲,在许多情况下都很有用。一般需要使用双缓冲区的地方都是由于“生产者”和“消费者”供需不一致所造成的。这样的情况在很多地方后可能会发生,使用多缓冲可以很好的解决。我举几个常见的例子: 例 1.在网络传输过程中数据... 阅读全文
posted @ 2014-09-18 22:15 Noble_ 阅读(634) 评论(0) 推荐(0)
摘要:转自主引导记录主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。在深入讨论主引导扇区内部结构的时候,有时也将其开头的446字节内容特指为“主引导记录”(MBR... 阅读全文
posted @ 2014-08-26 02:50 Noble_ 阅读(373) 评论(0) 推荐(0)
摘要:转自BIOSBIOS(BasicInput/OutputSystem的缩写、中文:基本输入输出系统),在IBM PC兼容机上,是一种业界标准的固件接口。BIOS这个字眼是在1975第一次由CP/M操作系统中出现。BIOS是个人电脑启动时加载的第一个软件。BIOS用于计算机开机时执行系统各部分的的自检... 阅读全文
posted @ 2014-08-26 02:47 Noble_ 阅读(764) 评论(0) 推荐(0)
摘要:转自字符,字节和编码引言“字符与编码”是一个被经常讨论的话题。即使这样,时常出现的乱码仍然困扰着大家。虽然我们有很多的办法可以用来消除乱码,但我们并不一定理解这些办法的内在原理。而有的乱码产生的原因,实际上由于底层代码本身有问题所导致的。因此,不仅是初学者会对字符编码感到模糊,有的底层开发人员同样对... 阅读全文
posted @ 2014-08-20 01:45 Noble_ 阅读(235) 评论(0) 推荐(0)
摘要:整理自字符编码笔记:ASCII,Unicode和UTF-81. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不... 阅读全文
posted @ 2014-08-18 23:52 Noble_ 阅读(997) 评论(0) 推荐(0)