从前天开始学习驱动,感觉不到驱动的精髓。不过随着时间的流逝我将搞定他。
因为我不是特别动如果我写的不到位的地方希望大家指正,共同进步
。
设备驱动
驱动框架:
驱动和普通程序的区别在于他是事件驱动
的,也就是说他不是像普通程序那样从main()执行,从main()结束。因为驱动是以模块的形式“融合”入系统的,系统是不会结束的所以驱动也谈不上“结束”,但是它是有返回的。正是由于它是事件驱动所以,他也不用main()。
驱动程序的特色:
1.事件驱动
2.“融合”入内核
3.不会结束
那么,这些特色会在以后的学习中体现出来。
首先是我解释一下“事件驱动”:
这个词语可以用,事件使能去解释,这是为了避免碰上“驱动”这个词语,我们写的是驱动为什么还在说事件驱动呢?如果你接触过面向对象编程听这个词语应该很耳熟,其实事件驱动在C语言就可以实现了,根本不用更高级语言。那么,事件驱动的本质是“轮询”,就是常说的“死循环”,这个循环是内核在做的操作。通过分时响应各各进程让我们可以同时进行多个应用。这样你看电脑的时候才感觉它不是“死”的。
再说“ ......
/************************************************************/
Git Graphic Tools Summary
/************************************************************/
https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools
git-gui (distributed with Git)
git-gui (announcement, gitweb) by Shawn Pearce is a tool for creating commits and managing branches. It was inspired by and initially based on gitool. Written in Tcl/Tk. Stable versions are shipped with Core Git since version 1.5.
gitk (distributed with Git)
gitk is a simple Tcl/Tk GUI for browsing history of Git repositories easily, distributed with Git.
git-cola
git-cola (gitweb, github) by David Aguilar is a git commit tool, similar to git-gui, written in PyQt4. You can get tarballs at http://cola.tuxfamily.org/. Native packages exist for Debian, Fedora, and Arch. Mac OSX and Windows binaries are available on the website.
teamgit
teamGit (http://www.devslashzero.com/teamgit) by Abhijit Bhopatkar is a successor of kgit. I ......
Linux版的google-chrome,为了"不重造轮子",使用第三方工具进行证书的验证。
方法如下:
先决条件:安装好第三方的证书管理工具:
yum install nss-tools
第一、从https网站,导出CA证书,方法参考:
http://blog.avirtualhome.com/2010/02/02/adding-ssl-certificates-to-google-chrome-linux-ubuntu/
考虑到一些英文不太好的同学,我简要解释一下,例如有一个https网站名为www.abc.com,先按如下内容保存到一个名为import-cert.sh的脚本:
----------import-cert.sh-------------
#!/bin/sh
#
# usage: import-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}
exec 6>&1
exec > $REMHOST
echo | openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "$REMHOST" -i $REMHOST
exec 1>&6 6>&-
----------import-cert.sh-------------
然后使用这件导出脚本导出CA证书(会得到一个与www.abc.com同名的CA证书):
import-cert.sh www.abc.com [port]
第二、把证书导入第三方的证书数据库:
......
Linux中使用命令行时,有时需要查找所需要的文件。Shell提供了一套字符串模式匹配规则,或称之为元字符串。可以按照所要求的模式来匹配文件,还可以使用字符类型来匹配文件名。在此主要介绍几种常见的特殊字符:
1、* 匹配文件名中的任何字符串,包括空字符串;
2、? 匹配文件名中的任何单字符串
3、[….] 匹配[]中所包含的任何字符串
4、[!….]匹配[]中非感叹号!之后的字符。
元字符 *
使用星号 * 可以匹配文件名中的任何字符串。如文件名模式 app*,表示文件名以app开头,后面可以跟任何字符串。
$ls app*
表示以app开头,后面可以跟任何字符串的文件
$ls *.doc
表示以doc结尾的任何文件名
元字符串 ?
使用?可以匹配文件名中的任何单个字符。
$ls ??R*
匹配第3个字符为R的字符串
元字符串[…] 和 [!...]
使用[…]可以用来匹配方括号[]中的任何字符。在该方法中,可以用一个横杠--来连接两个字母或数字,以此来表示一个范围。
$ls [io]*
表示列出以i或o开头的文件名。
$ls log.[0-9]*
表示列出以log.开头,后面带任意个数字的文件名
[!...]表示的是非的意思
......
Linux中对于一些大任务需要在后台运行,否则会一直占用屏幕,防碍使用者使用终端去完成其它的任务。其中会提供如下几个命令来进行后台执行:
1、 设置crontab文件,并用它来提交作业;其中cron 系统调度进程,可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。
2、 使用at命令来提交作业;使用它在一个特定时间运行一些特殊的作业,或在晚些的非负荷高峰时段或高峰时段运行。
3、 & 在后台提交作业;使用它在后台运行一个占用时间不长的进程。
4、 使用nohup命令提交作业。使用它可以在后台运行一个命令,即使在用户退出时也不受影响。
Crontab的域
第1列 分钟 1~59
第2列 小时 0~23(0表示子夜)
第3列 天 1~31
第4列 月1~12
第5列 星期 0~6 (0表示星期天)
第6列 要运行的命令
如下格式:分 时 日 月 星期 要运行的命令。它是从左边读起。用“-”来表示一个时间范围,如在第5列中1-5表示周一到周五。采用“,”表示希望的某些值,如第5列中的1,4表示星期一和星期四。采用“*&rdqu ......
第一部分 第三章 Linux主机的规划
1.计算机硬件配置基本知识(略)
2.Linux中的硬件驱动号,在Linux中每个设备都被当成一个文件来处理
IDE硬盘: /dev/hd[a-d]
SCSI硬盘:/dev/sd[a-p]
U盘: /dev/sd[a-p]
CDROM: /dev/cdrom
软驱: /dev/fd[0-1]
打印机: /dev/lp[0-2]
鼠标: /dev/mouse
磁带机: /dev/ht0(IDE) 或/dev/st0(SCSI接口)
特别注意,硬盘(IDE/SCSI/USB),
每个磁盘驱动器的磁盘分区不同时,其磁盘号还会改变
3.安装规划
1.Ubuntu适合台式机使用,X window集成得比较好
2.Redhat 和SUSE适合企业使用,系统服务整合得比较好
&n ......