linux-interface-14
文件系统 文件系统是对文件和目录的组织集合 设备 划分 实际设备(键盘、鼠标、磁盘)和虚拟设备(不存在与之对应的硬件,内核为其提供的一种抽象。比如ssh登录?) 字符类型,块设备。字符类型有键盘、终端等。典型的块类型设备是磁盘 设备专用文件: 与系统的某个设备相对应,每个设备类型都有与之相对应的设备驱动程序。用来处理设备的所有I...
文件系统 文件系统是对文件和目录的组织集合 设备 划分 实际设备(键盘、鼠标、磁盘)和虚拟设备(不存在与之对应的硬件,内核为其提供的一种抽象。比如ssh登录?) 字符类型,块设备。字符类型有键盘、终端等。典型的块类型设备是磁盘 设备专用文件: 与系统的某个设备相对应,每个设备类型都有与之相对应的设备驱动程序。用来处理设备的所有I...
mysql_conn doam_217_realm1 -e “show tables” > ~/tables.txt cat ~/tables.txt | grep 2019 > ~/i_tables.txt mysqldump $(echo ~/i_tables.txt) -h 10.9.88.246 -pdragonsmobile doam_217_realm1 -u dra...
Rails Timezone TimeZone 是 rails 为ruby扩展的一个 有用工具。 application.rb config.time_zone = “Beijing” 可以指定整个应用的timezone。 然而, 使用timezone依然需要一个特定的方法调用,才能够使用rails 提供的扩展。 相关代码如下: activesupport/lib/active_su...
书籍推荐 深入理解计算机系统 神书, 其令人惊艳的地方在于,真正的做到了漫游了计算机系统,名副其实, 从硬件到软件、从 逻辑硬件到 流水线cpu设计架构,从 指令集 到 高级语言, 从顺序执行到并发执行。。。。 其包罗万象、贯穿了整个计算机,而又不失深度。 这本书大概可以作为计算机各个领域的一个敲门砖,因为计算机发展到今天已经足够深, 所以在单独的领域中依然需要专门的数据来深入探...
Charles munger —- 查理芒格 公用品悲剧的水滴筹与搞笑的德云社 是一種涉及個人利益與公共利益對資源分配有所衝突的社會陷阱 是一类涉及个人利益与公众利益 对资源分配有所冲突的社会陷阱。那由最大人数所共享的事物,卻只得到最少的照顾。 公共草地上,有一群牧羊人,每一个牧羊人都想要多获利一些,所以某个牧羊人就带了大量的羊來放牧,虽然他知道过度放牧,草地可能会承受不住。但他依然...
Charles munger —- 查理芒格 芒格 思考问题总是从逆向开始。在其漫长的一生中, 持续不断的研究、收集关于 各种各样的人物、各行各业的企业、以及政府管制、学术研究 等各个领域中 的人类失败的案例。并将那些失败的案例原因 列为 正确决策的检查清单,使自己 在决策中少犯错误。如果要明白人生如何得到幸福, 查理首先研究的是人生如何才能够变得痛苦 很多一流的专家学者, 能够在自己的...
The linux programming interface 进城组、会话和作业控制 进程组和会话在进程之间形成了一种 两层的层次关系。 进程组: 是 相关进程的集合, 会话: 是 相关进程组的集合。其目的是为了支持shell的作业控制,而定义的抽象概念,使用户通过shell能够交互的在前台或后台运行命令 进程组: 一个或多个共享同一进程组标识PGID的进程组成。PGID的数值为...
The linux programming interface 管道, FIFO 管道是UNIX系统上最古老的一种IPC方法,可以用来在相关进程间传递数据。FIFO 则是 管道 概念的一个变体, 区别在于 FIFO可以用于 任意进程间的通信 管道 shell命令中使用管道最为常见。比如 ls | wc -l, 示意图如下: 为执行该命令, shell创建了两个进程来分别...
The linux programming interface Socket socket是一种IPC方法, 它允许位于同意主机或者网络连接的不同主机 上的应用程序之间交换数据(第一个被广泛接收的socket API 实现于 1983年,现在这组API 已经被移植到了大部分的计算机系统上) socket(domain, type, protocol): 系统调用 ...
The linux programming interface 文件IO 通用的IO模型 文件描述符: 一个非负整数,来指代打开的文件,其中包括: 管道FIFO socket,终端 设备 普通文件 标准文件描述符: 文件描述符 用途 名称 stdi...
The linux programming interface 内存分配 在堆上分配内存, 进程可以通过增加堆的大小来分配内存, 堆就是一段长度可变的连续的虚拟内存,初始于 进程未初始化的数据段末尾,随着内存的分配和释放而增减。通常将堆当前内存边界成为 program break brk(vodi * end_data_segment), sbrk(int in...
The linux programming interface 进程 进程 是可执行程序的实例 进程号 和 父进程号: 每个进程都有一个PID, 唯一标识 某个进程,除了少数(init PID 为1) 之外,多数程序与运行该程序的进程PID没有固定关系。 linux内核限制 进程号小于 32767,当进程号达到这个限制时候,内核将重置进程号计数器,重新从最小的整数开始分配。(进程号计数...
The linux programming interface 深入探究文件IO 原子操作: 将某一系统调用所要完成的各个动作作为不可中断的操作,一次性加以完成, 是许多系统调用的以正确完成的必要条件 竞争状态是这样一种情形:操作共享资源的两个进程或线程,结果取决于 一个无法预期的顺序,即这些进程获取CPU使用权的先后相对顺序 open, 保证进程是打开文件的创建者,对文件是否...
The linux programming interface 系统编程概念 无论何时,执行了系统调用或者库函数,检查调用的返回状态以确定调用是否成功,是一条编程铁律。(消灭nil就好了) 系统调用 借助这一机制,进程可以请求内核以自己的名义去执行动作,以API 的形式,内核提供一系列服务供程序访问。(创建进程, IIO操作等)可以参考 csapp中的 异常控制流章节。 系统...
The linux programming interface 基本概念 内核 通常的定义,1)完整的软件包, 这包括用来管理计算机资源的核心软件 以及附带的标准软件工具(shell,图形用户界面, 文件工具)2) 狭义的层面,是指管理和分配计算机资源的核心软件 职责: 1)进程调度, 2)内存管理, 3)文件系统, 4)创建和终止进程, 5)设备管理, 6)联网, 7)提供系...
redis-rb 为ruby 连接redis的客户端 项目结构 项目本身依赖于 hiredis,而hiredis 本身是一个redis client c的包装。并没有搞懂为什么需要依赖redis client 项目目录结构如下 /lib |---- redis.rb |---- /Redis |---- connection.rb ...
计算机程序的构造和解释 ——— 序 --------- 关注程序的创建、执行和研究。使用Lisp方言书写 本书中讨论的各种问题主要涉及到: 人的大脑,计算机程序的集合,以及计算机本身。每一个计算机程序都是现实中的或者精神中的某个过程的一个模型。通过人的头脑孵化出来,这种过程出现在人们的经验或者思维中。很少能够通过程序将这种过程模拟到永远令人满意的程度。 因为这个原因,程序...
格雷厄姆之道(如何在中国实践价值投资) 现在已然衰朽者, 将来可能重放异彩;现在备受青睐者,,将来却可能日渐衰朽。 原理 价值投资: 价值投资不会让你一夜暴富,但它可以在保证本金安全的前提下让你的财产增值 价值投资:用远低于公司内在价值的价格购买该公司的股票 金融思维和商业思维: 商业思维 这个公司值多少钱...
计算机系统漫游 代码从文本到可执行文件的过程(c语言示例): 预处理阶段,处理 #inlcude <stadI/O.h>, #define MAX 100 编译阶段:将文本编译成汇编程序,hello.s 汇编阶段:汇编器将上一步的程序翻译成机器指令。hello.o 链接阶段就:hello 中调用的printf函数,...
The Art of unix programming 哲学 哲学基础: unix 哲学并不算是一种正规设计方法, 不打算从计算机科学的理论高度产生出完美的软件, 那些毫无动力、松松垮垮的,薪水微薄的程序员,能在短短期限内,如同神灵附体般的创造出稳定而又新颖的软件, 这只不过是经理人永远的梦呓罢了。 (社会经济学基础) unix 哲学,是自下而上的,注重实效,立足于丰富的经...