Linux设备驱动程序 第三版 读书笔记(一) Bob Zhang 2017.08.25 编写基本的Hello World模块 #include <linux/init.h> #include <linux/module.h> // 声明模块的许可证书 MODULE_LICENSE("Dual BSD/GPL"); static __init hello_init(void) { // KERN_ALERT表示的是日志级别 printk(KERN_ALERT &…
第一章 引言 < Effective Java>这本书并不厚,而且并不适合初学者,适合有一定的工作经验的java攻城狮.这本书不是百科全书式的JAVA 手册,而是试图在讲述如何正确.高效地使用java这门语言来完成日常的开发工作. 如今(2019)java已经诞生了24个年头,在这些年里,java被广泛应用在许多领域,并且开发者.类库以及生态环境也在不断壮大.这本书的作者是一名知名的java专家,曾在sun公司以及google任职,领导开发了很多专业的java类库. 本书的第一版诞生于2001…
看完<dom编程艺术>现在准备读进阶版的js高程了,由于篇幅较长,所以利用刚看完<dom编程艺术>学到的知识写了段JavaScript代码,来折叠各章的内容.并且应用到了<dom编程艺术>一直强调的“平稳退化”思想,即如果用户的环境不支持JavaScript,内容将不会折叠.够保证观看到内容. 第一章 DOM1级的目标主要是映射文档的结构 DOM2级在 原来 DOM的基础上又扩充了鼠标和用户界面事件.范围.遍历,而且通过对象接口增加了对 CSS(Cascading St…
2015年6月,ECMAScript 6正式通过,成为国际标准.尽管在目前的工作中还没有使用ES6,但是每项新技术出来总是忍不住想尝尝鲜,想知道ES6能为前端开发带来哪些变化?对自己的工作有哪些方面可以提升.刚好看到阮一峰的<ES6标准入门>,便顺着这本书尝试着ES6的各种新特性. ES6的各种新特性的兼容性查询http://kangax.github.io/compat-table/es6/ 尽管我们的浏览器还不一定完全支持ES6代码,我们可以使用Babel转码器,在这里我们使用命令行转码b…
这是我第一次用markdown,也是我第一次在网上记录我自己的学习过程. 第一章 JavaScript主要由以下三个不同的部分构成 ECMAScript   提供核心语言功能 DOM     提供访问和操作网页内容的方法和接口 BOM     浏览器对象模型,提供浏览器交互的方法和接口 第二章 关于<script>加了空格是否算报错 不会报错,但是这个标签会被解析失败,比如 <s cript></s>最后解析的会是删除线 s. 关于标签的大小写写错是否要紧 不要紧,但最…
第一章:CSS和文档 html是结构化语言,css是样式语言,html主要用来被强大的搜索引擎更好的索引,更好的让一个盲人通过语音浏览器来了解我们的网页,这也就是为什么说html是结构话语言,因为这是W3C规定的,大家都在遵循,统一的标准会给所有人带来便利(比如上面提到的盲人). 从web的衰落开始谈起,当时web只是用简单的html来编写,大量的流行,为了更好的展示,于是出现了一些<font>,<center>等用来表现的标签,使得html非常的混乱.1996年,CSS已经成为一…
第一章 CLR的执行模型 1.1将源代码编译成托管代码 决定将.NET Framework作为自己的开发平台之后,第一步是决定要生成什么类型的应用程序或组件.假定你已经完成了这些次要的细节:一切都已经设计好,规范已经写好,就可以着手进行开发了. 现在,必须决定使用哪一种编程语言.这通常是一个艰难的选择,因为不同的语言各有各的“本事”.例如,在非托管C/C++中,可对系统进行一些相当低级的控制.可完全按自己的想法管理内存,在必要时能够方便的创建线程.另一方面,如果使用Microsoft Visua…
innodb以前不支持高并发,在搞病房下就是悲剧,全部卡在mutex(缓冲池mutex)上,现在通过线程调度器控制线程怎么进入内核访问数据,参数为innodb_thread_concurrency,它有计算公式:CPU数量*磁盘数量*2. 如果无法进入内核会休眠innodb_thread_sleep_delay微妙.还有一个参数成为高并发瓶颈:innodb_commit_concurrency,就是提交的时候,如果设置太小,容易导致大量线程冲突,最后通过线程池(经验值:thread_pool_s…
LINUX内核设计与实现第三周读书笔记 第一章 LINUX内核简介 1.1 Unix的历史 1969年的夏天,贝尔实验室的程序员们在一台PDR-7型机上实现了Unix这个全新的操作系统. 1973年,整个Unix系统用C语言进行了重写,给后来Unix系统的广泛移植铺平了道路. 伯克利的第一个Unix演化版是1977年推出的1BSD系统. 伯克利真正独立开发的Unix系统是于1979年推出的3BSD系统,支持虚拟内存. 1994年重写了虚拟内存子系统,推出了最终官方版,即4.4BSD. Unix内…
Primer C++第五版 读书笔记(一) (如有侵权请通知本人,将第一时间删文) 1.1-2.2 章节 关于C++变量初始化: 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,以一个新值来替代. 定义一个名为a的int变量并初始化为0,有以下4种方法: int a = 0; int a = {0}; // 列表初始化 int a{0}; // 列表初始化 int a(0); 当列表初始化方法用于内置类型的变量时,如果初始值存在信息丢失的风险,则编译器…
<Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo  $0 echo $BASH echo $SHELL 上边三个命令结果都是: /bin/bash 2.终端常用操作 a.删除单个字符 c+h或退格键 b.删除单个单词 c+w c.删除单个行 c+u d.重复编辑命令行 arrowUp或arrowDown e.中断命令执行c+C 3.切换为root用户 a.su命令后,输入root密码…
单元测试知道Java版读书笔记 首先我们必须要知道我们所写的代码,它的功能是什么,如果我们不了解代码的行为,那么也就无从测试. 我们测试的目的,是为了我们整个程序架构的稳定,代码其实就是欧文要实现功能的底层基础,如果说前一步做错了,那么可能后面所做的都是无用功.所以好的单元测试能让我们缩短工作时间 通过编译只能代表你的语法和逻辑是正确的,但是不能代表你的程序能解决所有遇到的问题. 所谓的代码正确,是具有时效性的,它只能代表你在当前这个时间点能够满足用户的需求,但是客户的需求总是在变化的,所以我们…
<Linux内核设计与实现>读书笔记--第一二章 20135301张忻 估算学习时间:共2小时 读书:1.5 代码:0 作业:0 博客:0.5 实际学习时间:共2.5小时 读书:2.0 代码:0 作业:0 博客:0.5 耗时估计的公式:Y=X+X/N ,Y=X-X/N 第一章 Linux内核简介 1.1 Unix的历史 由于Unix系统设计简洁并且在发布时提供源代码,所以许多其他组织和团体都对它进了进一步的开发. Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它是现存操作系统中最强大和最优…
内容从侯捷译版的<Effective C++>(第三版)摘录 条款一 C++作为一个多种范式融合的语言,可以看成是语言的联邦,它包含了一下四种主要的次语言: C.C++以C为基础,很多时候C++对于问题的解法其实不过就是较高级的C解法,但是C语言的局限:没有模板,没有异常处理,没有重载. OO C++.包括类,封装,继承,多态,动态绑定. Template C++. 这是C++范型的部分. STL.包括三个主要部分.容器(containers),迭代器(iterator),算法(algorit…
C语言,上学的时候都没学好,没想到现在却靠它吃饭.因为对C语言还是比较熟悉,所以买这本书是用来当"字典"用的.所以下面的笔记不会有很基础的内容. 1.书籍介绍 2.结构体 3.[C++]共用体\联合体(union) 4.枚举类型 5.未完待续...…
title: <ECMAScript标准入门>第二版 date: 2017-04-10 tags: JavaScript categories: Reading-note 2015年6月,ECMAScript 6正式通过,成为国际标准.尽管在目前的工作中还没有使用ES6,但是每项新技术出来总是忍不住想尝尝鲜,想知道ES6能为前端开发带来哪些变化?对自己的工作有哪些方面可以提升.刚好看到阮一峰的<ES6标准入门>,便顺着这本书尝试着ES6的各种新特性. ES6的各种新特性的兼容性查询…
类和对象: 我们经常会对打印一个对象来得到对象的某些信息. class pair:     def __init__(self,x,y):         self.x=x         self.y=y if __name__=='__main__':     p=pair(3,4)     print p E:\python2.7.11\python.exe E:/py_prj/python_cookbook/chapter8.py <__main__.pair instance at 0…
第三章 进程管理 总结 fork创造的子进程复制了父进程资源,包括内存及进程描述符的内容,资源的复制而不是指针的复制. vfork的行为更像一个线程(指没有自已独立的内存空间),更明显的是vfork的调用将挂起当前进程(即父进程). clone根据flag的不同可以实现不同的功能. 只要退出,最终都调用了do_exit. 3.1 进程 进程:是处于执行期的程序以及它所包含的资源的总称. 线程:是在进程中活动的对象. 每个线程都拥有一个独立的程序计数器.进程栈和一组进程寄存器. 内核调度的对象是线…
<NET CLR via c# 第4版>个别章节虽读过多次,但始终没有完整读过这本书.即使看过的那些,时间一长,也忘记了大部分.趁着最近不忙,想把这本书好好读一遍,顺便记下笔记,方便随时查看. 真的只是笔记,因为能力有限,并不能很好地讲解一个知识点,只是把我认为比较重要的地方,划个重点,记录到这里.我所追求的,只是尽量别抄错. 所以,如果没看原书,只看这里的话,会比较晕. 目录: <NET CLR via c# 第4版>笔记 第5章 基元类型.引用类型和值类型 <NET CL…
null.NaN.undefined三者的区别是什么? 在初次接触到JavaScript的时候,傻傻的分不清null.NaN.undefined三者到底区别何在,在实际的项目开发中也因为这个问题而困惑久矣.针对这个问题,我特意查找了多方资料,在笔记本上做了详细的分析记录,但是由于纸质资料不便于携带.不便于后期查看.所以特此将笔记搬至博客园上,如有表述不正确的地方,希望大家能够给予意见,谢谢! 1.数据类型 ECMAScript中定义了5中简单的数据类型(也称为基本数据类型):Undefined.…
假如我们有一个列表 items=[1,2,3].我们要遍历这个列表我们会用下面的方式 For i in items:   Print i 首先介绍几个概念:容器,可迭代对象,迭代器 容器是一种存储数据的数据结构,容器将所有数据保存在内存中,典型的容器有列表,集合,字典,字符数组等.如items就是一个列表容器.   可迭代对象:这个对象是否可迭代.如items也是一个可迭代对象.简单来说如果可以用for循环的对象都称为可迭代对象.如果要判断是否是一个可迭代的对象.可以用print isinsta…
1. childNodes  nodeValue <p id="p1">hello p!</p> alert(document.getElementById("p1").childNodes[0].nodeValue); 2. firstChild lastChild childNodes[0] 等价于 firstChild   (node.childNodes[0] == node.firstChild) node.childNodes[n…
一.寄存器对象: 函数中频繁被使用的变量可以加上register就可声明为寄存器对象.对于寄存器对象,假如能够放到寄存器中就会放到寄存器中,放不到的话就放到内存中.比如 register int  a,一般用于循环控制变量挺好的. 二.静态变量. 这里容易犯一个错误,记住,静态变量只初始化一次,没有初始化的会自动初始化为0 #include <iostream>    int traceGcd( int v1, int v2 )  {    static int depth = 1;  cou…
1.压缩文件案的用途与技术     a.用途,简单来说,就是节约磁盘空间.如果从传输角度讲,占用宽带也会小很多(Apache就有自动压缩的功能,节省宽带资源,提升网站的输出能力)     b.压缩技术,总体来讲有两个方案,第一个:填充法,比如数字1,在机器码中是 00000001 前面几位都是空的,所谓填充法就是用一些特别的方法把这些空的都利用起来,从而达到,降低占用的磁盘空间.             第二种是,统计重复记录,举例来讲,我的数据中有100个1(11111.....),压缩技术就…
一.认识EXT2文件系统:     a.硬盘的组成:转动小马达+存储的磁盘+读写的机械臂     b.磁盘的一些概念              扇区为最小的物理储存单位,每个扇区为512B             将扇区组成一个圆,就是磁柱,磁柱是最小的分割单位             第一扇区最重要,a.主要开机区及分割表,其中MBR占有446B,而partition table 则占有64B    c.inode block superblock 三个数据的意义             in…
1. Linux的档案权限与目录配置      一.基础知识:             a.分为三类,拥有者(owner).群组(group).其他人(other)             b.三个核心命令:chgrp  chown chmod                 chgrp [-R] groupname file/dir  -R表示循环                 chown [-R] username file/dir -R表示循环                 tips:…
数据结构 假设有M个元素的列表,需要从中分解出N个对象,N<M,这会导致分解的值过多的异常.如下: record=['zhf','zhf@163.com','775-555-1212','847-555-1212'] name,email,=record E:\python2.7.11\python.exe E:/py_prj/python_cookbook.py Traceback (most recent call last): File "E:/py_prj/python_cookb…
__get__以及__set__:假设T是一个类,t是他的实例,d是它的一个描述器属性.读取属性的时候T.d返回的是d.__get__(None,T),t.d返回的是d.__get__(t,T).说法比较绕,我们来看一个实例: class Descriptor(object):     def __get__(self, instance, owner):         return 'get',self,instance,owner class T(object):     d=Descri…
读第二遍了,感觉和几年前读时的收获不一样了.送上门来当树洞的独自承担一切 Redis以简洁为美Redis通信协议是Redis客户端与Redis之间交流的语言,通信协议规定了命令和返回值的格式.Redis支持两种难住协议,一种是二进制安全的统一请求(unified request protocal),另一种是比较直观的便于在telnet程序中输入的简单协议.这两种协议只是命令的格式有区别,命令返回值的格式是一样的. 1.修改配置文件Redis的配置文件默认在/etc/redis.conf,找到如下…