linux内核 网络 ubuntu内核
其实linux内核 网络的问题并不复杂,但是又很多的朋友都不太了解ubuntu内核,因此呢,今天小编就来为大家分享linux内核 网络的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
linux的内核参数详解linux的内核参数
linux内核由哪几部分组成,简述各部分作用?
一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。
1、内存管理
内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。
Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当前运行的程序块保留在内存中,其他程序块则保留在磁盘中。在内存紧缺时,内存管理负责在磁盘和内存间交换程序块。
2、进程管理
进程管理主要控制系统进程对CPU的访问。当需要某个进程运行时,由进程调度器根据基于优先级的调度算法启动新的进程。:Linux支持多任务运行,那么如何在一个单CPU上支持多任务呢?这个工作就是由进程调度管理来实现的。
3、进程间通信
进程间通信主要用于控制不同进程之间在用户空间的同步、数据共享和交换。由于不用的用户进程拥有不同的进程空间,因此进程间的通信要借助于内核的中转来实现。
一般情况下,当一个进程等待硬件操作完成时,会被挂起。当硬件操作完成,进程被恢复执行,而协调这个过程的就是进程间的通信机制。
4、虚拟文件系统
Linux内核中的虚拟文件系统用一个通用的文件模型表示了各种不同的文件系统,这个文件模型屏蔽了很多具体文件系统的差异,使Linux内核支持很多不同的文件系统。
5、网络接口
网络接口提供了对各种网络标准的实现和各种网络硬件的支持。网络接口一般分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。
linux遵循什么标准?
Linux系统最低配置:
CPU:700MHz;
内存:384MB;
硬盘:6GB剩余空间;
显卡:800x600以上分辨率。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
扩展资料:
Linux主要特性:
1、完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
2、多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
3、良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
4、支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
linux内核的主要组成部分有哪些?
Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。一.Linux内核内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务、共享库、需求加载、可执行程序和TCP/IP网络功能。Linux内核的模块分为以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、系统的初始化和系统调用等。
二.Linuxshellshell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。
另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
三.Linux文件系统文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、EXT3、FAT、FAT32、VFAT和ISO9660。四.Linux应用程序标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、XWindow、办公套件、Internet工具和数据库等。
linux内核是什么,有啥作用?
(Linux)内核是(Linux)操作系统的核心,一般包含五大部分:进程管理、存储管理、文件管理、设备管理和网络管理,是一组程序模块,具有访问硬件设备和所有主存空间的权限,是仅有的能够执行特权指令的程序。主要功能是:资源抽象、资源分配、资源共享。(资源是指CPU、内存等。)在内核基础上挂载第三方软件便构成操作系统,Ubuntu、RedHat、Fedora、Debian等都是基于Linux内核(版本号可能不同)的不同操作系统。内核函数对用户是完全透明的,用户想要调用内核函数只有两种途径:一是应用程序→系统调用(程序接口)→操作系统;二是操作命令→系统程序(作业接口)→操作系统。内核是不是指的就是用shell控制的东西?shell命令可能是普通的应用程序,也可能是库函数或系统调用(你可以理解为内核函数)。如果你想查看某命令是普通shell命令,还是库函数或系统调用,可以在终端输入“man命令”查看。如manopen,左上角应该是OPEN(2)。1表示普通shell命令,2表示系统调用,3表示库函数。注:库函数事实上是内核函数的封装,介于应用程序与内核函数之间。应用程序是不能直接访问内核函数的,必须通过库函数。这是一种保护内核函数的一种机制。事实上很多时候我们都要用到内核函数,只是我们并不知道而已,如打开文件要调用open()、关闭文件要调用close()等等
Linux内核版本号的规则?
Linux内核版本有两种:稳定版和开发版,Linux内核版本号由3个数字组成:r.x.y
r:目前发布的内核主版本。
x:偶数表示稳定版本;奇数表示开发中版本。
y:错误修补的次数。
内核版本号每位都代表什么?
以版本号为例:2.6.9-5.ELsmp,
r:2,主版本号
x:6,次版本号,表示稳定版本
y:9,修订版本号,表示修改的次数
头两个数字合在一齐可以描述内核系列。如稳定版的2.6.0,它是2.6版内核系列。
5:表示这个当前版本的第5次微调patch,而ELsmp指出了当前内核是为ELsmp特别调校的
EL:EnterpriseLinux;smp:表示支持多处理器,表示该内核版本支持多处理器
知识延伸
一般的有三种
1smp
2bigmem
3一般的内核
RedHatLinux开机的时候,GRUB的启动菜单会有两个选项,分别是
RedHatEnterpriseLinuxES(版本号.ELsmp)
RedHatEnterpriseLinuxES-up(版本号.EL)
这两个分别是代表什么含义呢?
其实这个就是系统开机时由GRUB引导启动-单处理器与对称多处理器启动核心文件的区别。
RedHatEnterpriseLinuxES(版本号.ELsmp)multipleprocessor(symmetricmultiprocessing)
RedHatEnterpriseLinuxES-up(版本号.EL)uniprocessor
下面就把SUSE与RedHat启动菜单内可选择的选项,列举出来
SUSE
版本号-default:SUSELinuxkernelforuniprocessormachines默认选项,支持单处理器机器
版本号-smp:SUSELinuxkernelthatsupportssymmetricmultiprocessingandupto4GBofRAM
支持4GB内存的对称多处理器机器
版本号-bigsmp:SUSELinuxkernelsupportssymmetricmultiprocessingandupto64GB
支持64GB内存的对称多处理器机器
RedHatLinux
版本号.EL:RedHatLinuxkernelforuniprocessormachines支持单处理器机器
版本号.ELhugemem:RedHatLinuxkernelthatsupportsupto64GBofRAM
支持64GB内存的对称多处理器机器
版本号.ELsmp:RedHatLinuxkernelthatsupportssymmetricmultiprocessing对称多处理器机器,支持4G内存
有些情况下你需要支持1和2特性,那么你可以:重新编译一下内核,在处理器及内存选择项上选择与你配置相对应的选项即可。
如何下载对应内核版本的源代码?
一般情况下,可以直接到官网:下载,
缺点是:对于任何内核做过特殊优化调校的发行版是不合适的,尤其是fedoraubuntu这一类的,毕竟他们在内核中打了大量的补丁,做了很多优化,如果直接使用官方源码,你就无法享受到这些东西,内核不是越新越好的越合适越好
因此最好到发行商的官网去下载,因为官方已经提供了编译好的源码rpm包。
如何使用对应的内核源码包?
以fedora官方提供的内核源码:kernel-2.6.23.9-85.fc8.src.rpm为例
首先,安装源码
#rpm-ivhkernel-2.6.23.9-85.fc8.src.rpm
然后,转换源码
转换之前,请确保/usr/src/目录下有redhat目录(一般/usr/src/是空目录)。
#rpmbuild-bp--target=$(uname-m)/usr/src/redhat/SPECS/kernel.spec
这样会将源码放置在/usr/src/redhat/BUILD/kernel-2.6.23/。
这里有两个有用的文件夹:.
linux-2.6.23.ARCH——这个是kernel.org提供的包经过Fedora补丁和升级得到的。也就是2.6.23.9-85.fc8这个打过补丁的内核
ARCH与uname-m的输出结果一致,通常为i686。如果你想得到不同的输出,你可以使用
“--target=”这个选项来进行指定。
vanilla——这个是标准的、由kernel.org提供的没有经过补丁和升级的源码。
linux内核有哪些版本
linux为内核的系统有16款,下面是详细情况。
1、Kubuntu
Kubuntu是一个Ubuntu操作系统,它使用的是KDE plasma Desktop而非Unity图形环境。
2、Ubuntu
Ubuntu是一款快速、安全、简单易用的Linux操作系统,它在全世界有成千上万的拥趸。
3、openSUSE
openSUSE是一款免费、稳定、易用、基于Linux的多功能操作系统。它适用于PC、笔记本以及服务器。有
4、Mandriva Linux OS
Mandriva Linux是来自Mandriva的终极版Linux操作系统。它是三种技术融合的结晶:Mandriva,Conectiva和Lycoris。
5、Debian operating system
Debian Linux也是一款免费的操作系统。Debian使用Linux内核(一个操作系统的核心),但大部分基本操作系统工具来自GNU项目,因此得名GNU/ Linux。
6、Elive Linux operating system
Elive是一个完整的基于Linux的操作系统,是替换那些昂贵的操作系统的最佳选择。Elive建立在Debian GNU/ Linux基础之上,并允许用户自定义以满足个人需要。界面清爽美观,硬件需求较小。只需一个接口就能使旧电脑瞬间高能。
7、Fedora Linux operating system
Fedora是一个基于linux的操作系统,展示最新的免费开源软件。Fedora免费供任何人使用,修改和发行。
8、Sabayon Linux
Sabayon Linux是一款先进的、可伸缩的和社区驱动的Linux操作系统。它努力为用户提供最好、最完整的计算体验。
9、FreeBSD
FreeBSD是一款面向现代服务器、台式机和嵌入式计算机平台的操作系统。FreeBSD提供先进的网络、骄人的安全特性和世界一流的性能。
10、PC-BSD Linux Operating system
PC-BSD是一款易用性很强的Linux操作系统。如同其他任何现代系统,你可以听你喜欢的音乐,看你喜欢的电影,办公,处理文档,安装你喜欢的各种应用程序,一切只需一键就能安装好。
11、DesktopBSD
DesktopBSD致力于为台式机用户提供一个稳定且强大的Linux操作系统。DesktopBSD结合了FreeBSD的稳定性和KDE的实用性和功能。
12、Syllable Desktop
Syllable Desktop是一个完整的操作系统。它易于使用,功能强大,占用空间小,响应迅速。
13、GeeXboX
GeeXboX是一款免费开源的,用作媒体中心(Media-Center)的Linux distribution,用于嵌入式设备和台式电脑。
14、麒麟系统
银河麒麟(Kylin)是由国防科技大学、中软公司、联想公司、浪潮集团和民族恒星公司合作研制的开源服务器操作系统。此操作系统是863计划重大攻关科研项目,目标是打破国外操作系统的垄断,研发一套中国自主知识产权的服务器操作系统。
15、Red Hat
Red Hat公司发布的面向企业用户的Linux操作系统。
16、Centos
Centos是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。
Linux中Wi-Fi无线网络和AP无线热点的配置教程
0.Linux下的Wi-Fi配置
无线网络飞速发展的今天,许多设备都提供了连接无线网络的功能。
那么Linux下的wifi到底该怎么配置、连接呢??
开始配置之前,我们要说说iw家族。iw是linux下常用的wifi配置工具,网上有相应的库和源码。全名为wirelessTools。
配置wifi模块,并连接相应的无线网络过程:主要使用iwpriv命令
(1)扫描可用的无线网络:
代码如下:
iwlist wifi-name scanning
其中wifi-name为无线网卡的名字,比如网卡eth0就是系统默认的网卡名字, wifi-name可以用ifconfig查看,一般为ra0。
(2)看扫描到的网络信息,按要连接的网络类型进行配置。以下为扫描到的网络:
代码如下:
iwlist ra0 scanning
===rt_ioctl_giwscan. 11(11) BSS returned, data-length= 1427
ra0 Scan completed:
Cell 01- Address: C4:CA:D9:1D:9E:A0
Protocol:802.11b/g/n
ESSID:""
Mode:Managed
Frequency:2.412 GHz(Channel 1)
Quality=7/100 Signal level=-87 dBm Noise level=-82 dBm
Encryption key:off
Bit Rates:54 Mb/s
Cell 02- Address: FC:75:16:A1:A9:16
Protocol:802.11b/g/n
ESSID:"jxj_rd"
Mode:Managed
Frequency:2.452 GHz(Channel 9)
Quality=94/100 Signal level=-53 dBm Noise level=-92 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher: TKIP
Pairwise Ciphers(2): TKIP CCMP
Authentication Suites(1): PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher: TKIP
Pairwise Ciphers(2): TKIP CCMP
Authentication Suites(1): PSK
Cell 03- Address: C4:CA:D9:02:2A:70
Protocol:802.11b/g/n
ESSID:""
Mode:Managed
Frequency:2.462 GHz(Channel 11)
Quality=83/100 Signal level=-57 dBm Noise level=-92 dBm
Encryption key:off
Bit Rates:54 Mb/s
Cell 04- Address: 14:D6:4D:75:CA:9C
Protocol:802.11b/g/n
ESSID:"liangym"
Mode:Managed
Frequency:2.472 GHz(Channel 13)
Quality=100/100 Signal level=-27 dBm Noise level=-92 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher: CCMP
Pairwise Ciphers(1): CCMP
Authentication Suites(1): PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher: CCMP
Pairwise Ciphers(1): CCMP
Authentication Suites(1): PSK
如上:ESSID项的值即为无线网络的名字,如上的jxj_rd等。如果值为空,说明在无线路由勾选了隐藏ESSID的选项。
ESSID是很关键的,如果被隐藏了,也不是不能连接,而是需要破解,用到其他的工具,非常麻烦。至于如何破解,不是本文叙述的内容,有兴趣的朋友可以网上搜索。
得到了网络的信息,接下来就是配置连接选项了。以连接jxj_rd为例,我们看看具体的过程:
(1)设置要连接的网络类型:
代码如下:
iwpriv ra0 set NetworkType=Infra
(2)设置要连接的无线网络的安全模式:
代码如下:
iwpriv ra0 set AuthMode=WPA2PSK
(3)设置网络加密方式:(CCMP即为AES)
代码如下:
iwpriv ra0 set EncrypType=TKIP
(4)设置连接时的密码:********为加密网络的密码
代码如下:
iwpriv ra0 set WPAPSK=*******
(5)连接该网络:有两种方式:
A、用iwpriv命令
代码如下:
iwpriv ra0 set SSID=jxj_rd
B、用iwconfig命令
代码如下:
iwconfig ra0 essid jxj_rd
至此,如果密码正确,就可以连接上网络jxj_rd了。如果你不放心,可以用命令查看状态:
代码如下:
iwpriv ra0 connStatus
当然,你也可以用iwconfig命令查看状态,这里不再赘述。
执行 iwlist如果 Supported interface modes的下有 AP的话表示该网卡支持AP模式,可以创建无线热点。
比如我的无线网卡是Qualcomm Atheros AR9485 Wireless Network Adapter,Linux内核自带了驱动ath9k,支持创建AP无线热点。
下面我们就着重来讲无线热点的创建步骤:
1.安装hostapd和dhcpd
代码如下:
sudo apt-get install hostapd isc-dhcp-server
开机不需要启动这两个服务,建议把它们关掉:
代码如下:
sudo update-rc.d-f hostapd remove
注释掉下面两个文件start on那一行:
代码如下:
sudo nano/etc/init/isc-dhcp-server.conf
sudo nano/etc/init/isc-dhcp-server6.conf
2.配置hostapd和dhcpd
代码如下:
sudo nano/etc/hostapd/hostapd.conf
注意自己设置其中的无线热点名称ssid和认证密码wpa_passphrase.
代码如下:
interface=wlan0
driver=nl80211
ssid=YOUR_AP_NAME
hw_mode=g
channel=10
macaddr_acl=0
auth_algs=3
wpa=2
wpa_passphrase=YOUR_AP_PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP
sudo nano/etc/dhcp/dhcpd.conf
在末尾加入以下内容:
代码如下:
subnet 192.168.0.0 netmask 255.255.255.0
{
range 192.168.0.2 192.168.0.10;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1,180.76.76.76,8.8.8.8;
}
其中180.76.76.76是百度公共DNS服务器,8.8.8.8则是Google的DNS服务器.
在自己的家目录下创建一个hostapd目录,里面新建启动和关闭脚本,比如我这样写(注意把里面eechen换成你的用户名):
代码如下:
nano /home/eechen/hostapd/ap-start.sh
代码如下:
#!/bin/bash
#开启内核IP转发
bash-c"echo 1/proc/sys/net/ipv4/ip_forward"
#开启防火墙NAT转发(如果本机使用eth0上网,则把ppp0改为eth0)
iptables-t nat-A POSTROUTING-o ppp0-j MASQUERADE
#关闭NetworkManager对无线网卡的控制
nmcli nm wifi off
#设置并启动无线网卡
ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
#解锁无线设备,可以用rfkill list查看解锁结果.
rfkill unblock wlan
#睡眠6秒,待rfkill解锁生效
sleep 6s
#启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程ps-ef|egrep"dhcpd|hostapd"
nohup hostapd/etc/hostapd/hostapd.conf/home/eechen/hostapd/hostapd.log 21
dhcpd wlan0-pf/var/run/dhcpd.pid
ps-ef|head-n1 ps-ef|egrep"dhcpd|hostapd"
nano /home/eechen/hostapd/ap-stop.sh
代码如下:
#!/bin/bash
killall hostapd dhcpd
bash-c"echo 0/proc/sys/net/ipv4/ip_forward"
ifconfig wlan0 down
3.启动hostapd和dhcpd
在桌面新建两个启动器(快捷方式),里面分别填入:
代码如下:
gksu/home/eechen/hostapd/ap-start.sh
gksu/home/eechen/hostapd/ap-stop.sh
因为脚本需要root用户身份执行,所以需要用gksu运行。
注意:如果你开启了ufw防火墙,ufw默认是禁止转发的,这会导致防火墙NAT转发失效,这时应该设置允许转发:
代码如下:
sudo nano/etc/default/ufw将 DEFAULT_FORWARD_POLICY设为 ACCEPT
然后重启ufw即可:
代码如下:
sudo service ufw restart
之后运行启动器即可启动和关闭AP无线热点。
4.用wireshark监控经过wlan0的通信
安装wireshark(其中 eechen改为你的用户名):
代码如下:
sudo apt-get install wireshark
sudo chgrp eechen/usr/bin/dumpcap
sudo chmod 750/usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin+eip/usr/bin/dumpcap
Alt+F2运行wireshark,选择网络接口wlan0,Filter里输入http.cookie contains mail.qq.com
然后手机端登录网页QQ邮箱,在WireShark即可查看和获取QQ邮箱登录的Cookie,如图所示:
右键点击Cookie项把Value复制出来,然后用Firefox访问站点,Alt+C激活 Original Cookie Injector( GreaseMonkey),弹出输入框Wireshark Cookie Dump,把Cookie项的Value粘贴到里面,然后点OK确定并刷新页面即可登录QQ邮箱。或者你使用Tamper Data这个Firefox扩展在提交时修改Cookie值也是可以的。
附:
查看连接wlan0网络的客户端:
代码如下:
sudo arp
返回IP地址和MAC硬件地址和无线接口名.
代码如下:
iw dev wlan0 station dump
能显示收发包和字节数等.
查看网络接口速度:
代码如下:
sar-n DEV 1