array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 《UNIX 传奇:历史与回忆》Note - 爱码网
只是为了不污染微信读书的“想法”线(此处想批评一下产品经理,没有非公开的注释功能),不具有实用性。推荐陈硕大佬的 Kernighan《UNIX 传奇:历史与回忆》杂感  
 
## Unix雏形
1. 贝尔实验室和科研型高校的绩效评估的不同:
在高校,招聘和晋升会参考同领域知名学者的推荐信,因此专注于狭窄领域的精专研究
在贝尔,从下到上的绩效考核,跨领域的协作研究会被更多人注意到
2. 面向非技术背景:
《普林斯顿计算机公开课》(Understanding the DigitalWorld)
3. CTSS分时系统
Multis是CTSS二代
UNIX:部分原因是Multics的复杂架构
4. 1969年,肯.汤普森 磁盘转速太快->磁盘调度算法->为了测试,需要批量写数据的程序->三周:用来创建代码的编辑器、将代码转成PDP-7能运行的汇编语言的汇编器、操作系统
5. 词根uni, Multics->Unics, Unix
6. 肯2000年从贝尔退休,2006年加入谷歌,然后合作发明了Go语言

 

## Unix初版 1.0
1. 文本格式化:在PDP-11上写专利申请文档
2. Unix房间:每位MTS都有独立的办公室,但还是在“Unix房间互通有无、分享点子或只是随便聊聊
3. 在线手册: `man man`
4. 那时候的主存储器是甜甜圈形状的铁氧体小磁芯组成,磁芯可以顺时针和逆时针两种磁化,因此能够代表一个信息位
5. 那时,内存往往是计算机中最昂贵的部件
6. 程序出现严重错误时,操作系统会创建一个文件,用来保存主存储器的状况(即磁芯中的内容),这就是“磁芯转储(core dump)”。

 

## Unix 第6版 1975年
1. 第六版Unix首次扩展到贝尔实验室以外,开始对世界产生重大影响
2. 系统调用:Unix的一个创新是把磁盘、终端等外围设备看做文件系统中的文件,访问设备的系统调用和访问文件的系统调用是一样的
3. 文件只是字节:不管文件是怎么存的、不管字节代表什么含义
4. shell是运行其他程序的程序。shell是普通的用户程序,而不是操作系统的一部分。如果你觉得这个shell不好用,你大可以换一个,这就是为什么有这么多个Unix shell的原因
5. 通配符(文件名扩展)和输出重定向,程序是并不知道的,是shell在做展开和重定向。因为这是一种统一的机制,应该由shell来做
6. 管道相反,管道是一种机制,是操作系统提供的,而不是shell。shell只是使用管道这种机制
7. 只花了一个小时就在操作系统中添加管道系统调用,花一个晚上升级系统中的每个命令(最大的改变就是,当没有指定文件名参数时,从标准输入流中读取数据)
8. 标准错误流stderrd的创造是必要的。它和标准输出流是独立的,因此不会进入管道。所以自己写程序时,要想结合管道使用,也应该将错误发送给stderr.
9. dc: reverse-polish desk calculator, 这个命令macos中也有
10. grep:g/re/p,列出所有符合正则表达式re的行
11. creat 创建文件 肯.汤普森个人爱好 去掉了末尾的e

 

## Unix 第7版 1976~1979
1. 第7版是第一个可以移植的版本,Unix从此爆炸性的移植到无数硬件上
2. 所有Unix共享的部分大多数来自第7版
3. makefile中,每行命令必须以制表符(Tab)开头,而不能是空格。作者怕用的人太人懒得售后,故意设置的debuff

 

## 商业化
1. USL(Unix System Laboratories)来做Unix的推广,专有Unix版本:SVR4

 

## 派生物
1. 贝尔实验室新的操作系统Plan 9, 贡献了Unicode中的UTF-8。UTF-8是可变长的编码,可以是1个字节、2个字节最多不超过4个字节。UTF-8可以边读取变解码,因为没有任何合法字符是其他字符的前缀(哈夫曼编码?)
2. Unix 6 在x86上的重新实现:xv6。新版的xv6已经迁移到RISC-V上
 
《UNIX 传奇:历史与回忆》Note

 

 

相关文章: