学习Linux内核的方法小结zz
假定你会C语言,而且明白C语言面向对象编程的schme,对操作系统(包括调度,内存分配,分页,同步,etc)比较了解。那么你可以按照如下顺序学习Linux 内核。
1.看Linux Device Driver这本书。这是为了让你懂得编译内核模块的方法。还有为Linux各种设备留下一些印象。同时一遍看书一边看某些设备的源代码,推荐看如下几个 设备的源代码:mem,raw,hidmouse。看mem是为了了解字符设备的基本编写方法和概念。比如如何利用dev_t,如何利用不同的Minor 部分确定该Device的功能,等等。看raw是为了了解如何利用Linux的Device Model。hidmouse是为了了解如何利用interrupt方式与usb hub通信,以及usb设备驱动的基本架构。至于PCI我还没研究。其实第一次看的时候可以忽略PCI Driver后面的所有章节。自己写一个只有逻辑的字符设备驱动即可进行下一步。
2.看Understanding the Linux Kernel这本书。这本书没什么好说的,经典。适合从头看到尾一次,选感兴趣章节再看N次。为什么我不支持大家第一次就看这本书?这是因为里面描述了许多内核的数据结构,不自己写一些设备驱动,很难熟悉他们。
3.好了,现在看了N次Understanding the Linux Kernel了。再看一次Linux Device Driver吧。然后什么设备驱动,内核rookit,你都可以畅通无阻了。
相关文档:
准备工作:
用到的perl 扩展组件(modules)在上篇贴出.( win32::odbc 模块
)下载组件后按照Readme文件安装倒响应目录.配置好相应的odbc数据源.
程序实现:
使用
use
Win32::ODBC;
语句包含应使用的模块是win32::odbc,写出数据库
连接字符串
$DSN = "DSN =
My DSN ......
显示当前系统内存容量:
free -m
uname显示系统信息:
-a :所有系统相关信息
-s :系统核心名称
-r :核心版本
-p :cpu类型
-r :硬件平台
将当前所有联机和监听数据列出来:
netstat -a
列出所有进程打开的套接字文件:
lsof -u db2inst1 -a -U 或 lsof -u db2inst1 ......
今天读了本书的第一章.这一章初步介绍了Linux内核的总体布局,也就是总体上来看有哪些模块组成.从上到下主要是:glidc->系统调用->(VFS,Schedular,Soft ISR,ISR,FILE Sytem,Task Manager,Memory Manager,IP Stack)括号里面的各个模块都是并列存在的.目前对于这其中的许多名词我还不熟悉,不禁感到惭愧,要学 ......
Crontab:linux计划任务。非常有用的一个命令,可以在周期性的定义一个任务的执行时间。最短的周期为1分钟。因为crontab是守护进程,每过1分钟会检查一次。
Crontab –l: 列出当前的任务列表。
Crontab –e:编辑当前的任务列表。可以通过vi编辑器来编辑任务列表。
格式如下:
分 时 日 月 周 命令
看几个例子 ......