Linux内核编程高手成长功略(操作系统篇)
1. Linux的优点:
->与UNIX兼容;
UNIX系统上运行的软件大部分可以运行在Linux环境下。
->简单廉价的运行条件;
Linux内核短小精悍,运行要求简单,X86的机子, 4M 内存、386的机子可以正常使用。
->完善的网络功能;
*Linux内核支持Ethernet,PPP,SLIP,NFS,AX.25,IPX/SPX(Novell),NCP(Novell)等网络协议
*通过PPP,SLIP可以使用TCP/IP网络服务,包括ftp,telnet,NFS,rLogin,rsh
*Linux用户使用高速的Modem通过电话线可以接入Internet.
->可以任意裁减内核;
Linux源代码公开,十分便于裁减和改制。Linux系统最小可以裁减到只有1.4MB,可以放在一张软盘上,在嵌入式系统中,开发人员不需要在编程上花费过多的精力,只要根据系统的要求,从Linux选取需要的功能,对内核进行裁减即可。
Linux广泛支持各种计算机芯片:Inter 80X86、Alpha、Sparc、MIPS、PPC、ARM、NEC、MOTOROLA
->完善的技术支持;
下载Linux内核的FTP服务器:
ftp.funet.fi:/pub/Linux/PEOPLE/Linus
下载运行所需工具程序服务器:
Sunsite.unc.edu:/pub/Linux
tsx-11.mit.edu:/pub/Linux
备注:
协议:
Ethernet:就是一个局域网协议,它在OSI七层模型的物理层和数据链路层之间发挥作用。
PPP:Point to Point Protocol 为在点对点连接上传输多协议数据包提供了一个标准的方法,在TCP/IP中他是一种用来同步调制连接的数据链路层协议(OSI模式中第二层),代替了原来非标准的协议,即SLIP。
SLIP:该协议是Windows远程访问的一种旧工业标准,主要在Unix远程访问服务器中使用。因为SLIP协议是面向低速串行线路的,可以用于专用线路,也可以用于拨号线路,Modem的传输速率在1200bps到19200bps。
NFS:NFS是Net File System的简写,即网络文件系统.
网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。
NCP: 网络核心协议(NCP)管理对 NetWare 服务器资源的访问。NCP 向 NetWare 文件共享协议(即NFSP:NetWare File Sharing Protocol)发送过程调用消息,处理 NetWare 文件和打印资源请求。 NCP 是用于 NetWare 服务器和客户机之间传输信息的主要协议。
NCP 主要负责处理登入请求以及其它文件系统和打印系统请求。NCP 是一种基于客户机/服务器的 LAN 协议。工作站建立 NCP 请求并通过 IPX 在网络上发送这些请求服务。服务器端负责接收、拆包(unpacked)并解读 NCP 请求。
NCP 服务包括:文件访问、文件锁定(file locking)、安全性、资源分配跟踪(tracking of resource allocation)、事件通知(event notification)、与其它服务器同步、连接和通信、打印服务,以及队列和网络管理。
IPX:互联网分组交换协议
(IPX:Internetwork Packet Exchange protocol)
互联网分组交换协议(IPX)是 Novell NetWare 操作系统所支持的在互联网络中路由数据包的早期网络协议。IPX 是一种面向无连接通信的数据报协议 - 类似于 TCP/IP 协议组中的网际协议(即IP)。其高层协议,如 SPX 和 NCP,主要提供差错恢复服务。
为了选择最佳路径,IPX 使用动态距离矢量(distance vector)路由选择协议,如路由信息协议(RIP:Routing Information Protocol)或链路状态协议(NLSP:NetWare Link-State Protocol)。
Novell IPX 网络地址是唯一的,以十六进制表示。它由两部分组成:网络号和节点号。IPX 网络号由网络管理员分配,地址长 32 位。节点号,通常是系统网络接口卡(NIC)的介质访问控制(MAC)地址,地址长 48 位。通过 MAC 地址作为节点号,系统可以通过发送节点以判断数据链路使用的 MAC 地址。
芯片介绍:
ARM:ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不生产芯片;
ARM处理器三大特点:耗电低功能强、16位和32位双指令集;
ARM7:3段流水线,和冯.诺依曼结构。
ARM9:5段流水线,和哈佛结构提供1.1MIPS/MHz。
2. Linux技术特点
->多任务多用户
->可靠的保护机制
*提供两种执行状态,用户态和内核态,用户任务在用户态下有较低的权限,只能访问自己的存储区域,只能执行普通的与系统资源无关的机器指令;内核态具有较高的特权,可以访问全部内存区域,可以执行全部机器指令,可以直接控制系统资源。
*提供认证监督机制
*提供存储保护机制,防止用户任务越界访问操作系统或其他用户存储区域。
->完善的虚拟存储技术
Linux采用请求页式储存管理和页面交换技术,为用户任务提供比实际内存大的多的虚拟存储空间。
->设备独立于内核
Linux把设备看成一个独立的文件。由操作系统内核对文件和设备提供统一的接口。在系统中加入某设备时,只需把设备的驱动程序加入到系统中,就可以通过接口控制和使用设备,这样就保证了设备对系统的独立性。
3. Linux内核
这个是Linux内核发行版的发展及其对应的行数。到 2.6.0 版本已经达到593万行了(恐怖的数字)。
Linux内核版本号由3组数字组成,形式为x.yy.zz,第一个数字表示主版本号,当前是0~2,第二个数字yy是次版本号,从0~99,其中偶数表示内核经过改进是稳定的,而基数表示内核还在开发过程中,内核是实验性版本,第三个数字zz是修订号,如Linux 2.0.35 ,35表示修订35次。
给大家一个下内核的网址
刚刚下了一个 Linux 2.6.18 ,数据包文件共39MB