
Linux
文章平均质量分 70
JepsonWong
专注计算机底层,喜欢算法。
展开
-
services in OS implementations
As a structuring principle, we identify three categories of services in OS implementations: hardware services, user services, and application services. Hardware services include the OS kernel and dev原创 2017-10-11 19:05:45 · 651 阅读 · 0 评论 -
makefile和shell脚本
makefile和shell脚本Makefile本质上也是shell脚本,即每条command都是shell进程,运行完shell进程都会退出。shell代码行,如果有=的话,=两边不能有空格。Makefile中的shell,每一行是一个进程,不同行之间变量值不能传递。所以,Makefile中的shell不管多长也要写在一行。可以用\来分行写,格式清晰一点。shell中所有引用以$打头的变量原创 2017-09-21 09:54:42 · 1362 阅读 · 0 评论 -
CPUID指令
介绍cpuid就是一条读取CPU各种信息的一条指令,大概是从80486的某个版本开始就存在了。似乎是从80386开始,当CPU被RESET以 后,CPU会在EDX寄存器中返回一个32bits的CPU签名(Processor Identification Signature),但这时候CPU还没有CPUID这条指令,后来出现了这条指令后,软件无需以来CPU复位就可以读出这个CPU签名,同时还可以读 出原创 2017-09-18 15:15:01 · 1203 阅读 · 0 评论 -
流、管道和重定向
流Linux shell(比如 Bash)接收或发送序列和字符串流形式的输入或输出。每个字符都独立于与之相邻的字符。字符没有被组织成结构化记录或固定大小的块。不管实际的字符串流进入或来自文件、键盘、显示窗口或其他 I/O 设备,都使用文件 I/O 技术来访问流。Linux shell 使用 3 种标准的 I/O 流,每种流都与一个文件描述符相关联: 1. stdout 是标准输出流,它显示来自命令原创 2017-09-16 23:47:56 · 576 阅读 · 0 评论 -
Linux配置文件
前言每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中文件的列表时需要使用这些机器指令。 几乎每个程序的行为都可以通过修改其配置文件来按照您的偏好或需要去定制。什么是系统配置文件?内核本身也可以看成是一个“程序”。为什么内核需要配置文件?内核需要了解系原创 2017-09-16 15:49:26 · 573 阅读 · 0 评论 -
Linux中断机制
中断向量中断(interrupt)被定义为一个事件,该事件改变处理器执行的指令顺序,这样的事件与CPU芯片内外部硬件电路产生的电信号相对应。中断通常分为同步(synchronous)中断和异步(asynchronous)中断。同步中断指的是当指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。异步中断是由其他硬件设备依照CPU时钟信号随机产生的。在In原创 2017-09-16 14:35:27 · 548 阅读 · 0 评论 -
可执行文件(ELF)格式
ELFELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西、以及都以什么样的格式去放这些东西。它自最早在 System V 系统上出现后,被 UNIX 世界所广泛接受,作为缺省的二进制文件格式来使用。对象文件(Object files)有三个种类可重定位的对象文件(Relocatable fi原创 2017-09-14 19:22:10 · 613 阅读 · 0 评论 -
Linux PATH
一、source命令source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。二、点命令和当前目录./file和. ./file(前面一个点是点命令,等价于source,后面一个点是和/一起的原创 2017-04-27 01:12:24 · 348 阅读 · 0 评论 -
IO端口和IO内存
从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器……对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器(也称为端口原创 2017-04-25 01:37:56 · 516 阅读 · 0 评论 -
Docker
Docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器使用沙箱机制,相互之间无任何接口。沙箱:“一种安全机制”。一个虚拟系统程序,允许在沙盘环境中运行浏览器或其他工具,因此运行所产生的变化可以随后删除。Docker的设想:Docker设想是交付运行环境如同海运,OS如同一原创 2017-04-01 16:25:08 · 386 阅读 · 0 评论 -
make命令
代码变成可执行文件,叫做编译;编译的安排(编译的顺序)叫做构建(build)。make是一种构建工具,主要用于C语言的构建。但是实际上,只要某个文件有变化,就要重新构建的项目,都可以用Make构建。一、Make概念make是一个根据指定的Shell命令进行构建的工具。它的规则很简单,你规定要构建哪个文件,它依赖哪些源文件,当那些文件有变动时,如何构建它。构建规则都写在一个叫做Mak原创 2017-03-31 19:01:07 · 422 阅读 · 0 评论 -
地址空间(独立、共用)
独立的地址空间意味着数据修改的彼此独立性,即严防不同进程之间干扰。其效果是应用程序的线性地址操作虽然仍是统一的,但物理地址却因为独立地址空间的缘故而映射不一致,乃至于影响不到其他进程的资源。这符合“进程是系统资源分配的最小单位”的要求。线程可以看成是这种机制弱化一点的要求:进程是全部资源加执行的隔离,而线程只要求隔离执行流,其隶属的进程所拥有的资源应仍能为其所用,这时,没有独立的地址空间——或者说转载 2015-10-30 12:16:40 · 1577 阅读 · 0 评论