Linux 网络编程(一)--Linux操做系统概述

1、Linux的内核版本

Linux内核的编号采用以下编号形式:网络

   主版本号.此版本号.主补丁号.次补丁号架构

例如:2.6.26.3函数

第一个数字”2”是主版本号,表示第2大版本。oop

第二个数字”6”是此版本号,表示是Linux内核大版本的第6个小版本,同时由于6是偶数表示为发布版本,(若为奇数,表示测试版)。测试

  第三个数字“26”是主版本补丁号,表示指定小版本的第26个补丁包。spa

  第四个数字“3”是此版本补丁包,表示次补丁号的第3个小补丁。操作系统

2、Linux的系统架构

Linux系统从应用角度来看,分为内核空间和用户空间两个部分。其中,内核主要由进程调度、内存管理、虚拟文件系统、网络接口和进程间通讯5个子系统组成。日志

1.进程调度SCHED接口

进程调度指的是系统对进程的多种状态之间转换的策略。Linux下的进程调度有3种策略:SCHED_OTHER、SCHED_FIFO和SCHED_RR。队列

SEHED_OTHER是用于针对普通进程的时间片轮转调度策略。这种策略中,系统给全部的运行状态的进程分配时间片,在当前进程的时间片用完以后,系统从进程中优先级最高的进程中选择进程运行。

SEHED_FIFO是针对运行的实时性要求比较高、运行时间比较长的进程调度策略。这种策略中,系统按照进入队列的前后进行进程的调度,在没有更高优先级进程到来或者当前进程没有由于等待资源而阻塞的状况下,会一直运行。

SCHED_RR是针对实时性要求比较高、运行时间比较长的进程调度策略。这种策略与SCHED_OTHER的策略相似,只不过SCHED_RR进程的优先级要高得多,系统分配给SCHED_RR进程时间片,而后轮询运行这些进程,将时间片用完的进程放入队列的末尾。

因为存在多种调度方式,Linux进程调度采用的时“有条件剥夺”的调度方式。普通进程中采用的是SCHED_OTHER的时间片轮询方式,实时进程能够剥夺普通进程。若是普通进程在用户空间运行,则普通进程当即中止运行,将资源让给实时进程;若是普通进程运行在内核空间,须要等系统调用返回用户空间方可剥夺资源。

2.内存管理MMU

内存管理是多个进程见得内存共享策略。在Linux系统中,内存管理的主要概念是虚拟内存。虚拟内存可让进程拥有比实际物理内存更大的内存,能够是实际内存的不少倍。每一个进程的虚拟内存有不一样的地址空间,多个进程的虚拟内存不会冲突。

虚拟内存的分配策略是每一个进程均可以公平地使用虚拟内存。虚拟内存的大小一般设置为物理内存的两倍。

3.虚拟文件系统VFS

在Linux下支持多种文件系统,如ext、ext二、minix、umsdos、msdos、vfat 、ntfs、proc、smb、ncp、iso9660、sysv、hpfs、affs等。目前Linux下最经常使用的文件格式是ext2和ext3。ext2文件系统用于固定文件系统和可活动文件系统,是ext文件系统的扩展。ext3文件系统是在ext2上增长日志功能后的扩展。它兼容ext2文件系统,两种文件系统之间能够互相转换,ext2不用格式化就能够转换为ext3文件系统,而ext3文件系统转换为ext2文件系统也不会丢失数据。

4.网络接口

Linux支持多种网络接口和协议。网络接口分为网络协议和驱动程序,网络协议是一种网络传输的通讯标准,而你网络驱动则是硬件设备的驱动程序。Linux支持的网络设备多种多样,几乎目前全部网络设备都有驱动程序。

5.进程间通讯

Linux下的进程间通讯方式主要有管道方式,信号方式,消息队列方式,共享内存方式和套接字等方法。

3、Linux的文件结构

Linux是将整个文件系统表示成树状的结构,Linux系统每增长一个文件系统都会将其加入到这个树中。操做系统文件结构的开始,只有一个单独的顶级目录结构,叫作根目录。全部一切都从“根”开始,用“/”表明,而且延伸到子目录。

下面是Linux一些经常使用目录的做用:

“/etc”:包括绝大多数Linux系统引导所须要的配置文件,系统引导时读取配置文件,按照配置文件的选项进行不一样状况的启动。

“/lib”:包含C编译程序须要的函数库,是一组二进制文件。例如:glibc。

“/var”:包含系统定义表,以便在系统运行改变时能够只备份该目录,如cache。

“/tmp”:存放临时性的存储。

“/bin”:大多数命令存放在这里。

“/home”:主要存放用户帐户,而且能够支持ftp的用户管理。系统管理员智能机用户是,系统在home目录下建立于用户同名的目录,此目录下通常默认有Desktop目录。

“/dev”:存放一种设备文件的特殊文件,如fd0,had等。

“/mnt”:在Linux系统中,它是专门给外挂的文件系统使用的,里面有两个文件cdrom、floopy,登陆光驱、软驱是会用到。

“/usr”:包括全部其它内容,如src、local。Linux的内核就在/usr/src中。其下有子目录/bin,存放全部安装语言的命令,如gcc,perl等。

注:在DOS/Windows下使用的是反斜杠“\”,而在Linux下使用的是斜杠“/”,注意区别。

相关文章
相关标签/搜索