![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核编程
文章平均质量分 91
DawidZhu
It's a lovely, bright sunny day.
展开
-
Linux 内核系统体系结构
Linux 内核主要由5个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。进程调度模块用来负责控制进程对CPU资源的使用。所采取的调度策略是各进程能够公平合理地访问CPU,同时保证内核能及时地执行硬件操作。内存管理模块用于确保所有进程能够安全地共享机器主内存区,同时,内存管理模块还支持虚拟内存管理方式,使得Linux支持进程使用比实际内存空间更多的原创 2009-05-24 21:43:00 · 1431 阅读 · 0 评论 -
Linux的关机与重启命令
重启命令:1、reboot2、shutdown -r now 立刻重启(root用户使用)3、shutdown -r 10 过10分钟自动重启(root用户使用) 4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)如果是通过原创 2011-09-14 21:57:00 · 683 阅读 · 0 评论 -
linux sleep
使用方式 : sleep [--help] [--version] number[smhd]说明 : sleep 可以用来将目前动作延迟一段时间 参数说明 : --help : 显示辅助讯息 --version : 显示版本编号 number : 时间长度原创 2011-09-29 22:06:41 · 685 阅读 · 0 评论 -
LINUX修改、增加IP的方法,一张网卡绑定多个IP/漂移IP
临时增加IP命令:ifconfig eth0:1 ip地址 netmask 子网码 broadcast 广播地址 gateway 网关 ifconfig eth0:1 10.1.104.65 netmask 255.255.255.0 broadcast 10.1.104.255 gateway 10.1.104.11 说明:eth0是第一个网卡,其他依次为eth1,eth*,eth0原创 2011-11-02 15:44:04 · 11546 阅读 · 0 评论 -
linux查看本机IP、gateway、dns
IP: ifconfiggateway:[root@localhost ~]# netstat -rnKernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface172.16.44.0 0.0.0.0原创 2011-11-02 15:58:23 · 123937 阅读 · 0 评论 -
netstat命令查看端口是否占用
Windows: C:> netstat -ano可以查出pid AIX: #netstat –Aan | grep 8083 # rmsock f100060000484b98 tcpcb Linux: #netstat -anp | grep 8083 # ps -ef | grep原创 2011-11-04 19:09:03 · 3348 阅读 · 0 评论 -
linux增加/删除虚拟IP地址
网卡上增加一个IP:ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0删除网卡的第二个IP地址:ip addr del 192.168.0.1 dev eth0原创 2011-11-05 22:28:13 · 45415 阅读 · 0 评论 -
HA双机热备的实现(heartbeat)
双机热备的实现环境:主节点:node1 node1.test.com eth0:192.168.0.20 eth1:192.168.1.20从节点:node2 node2.test.com eth0:192.168.0.99 eth1:192.168.1.99测试机:192.168.0.55一、安装前的准备++以下是在转载 2012-03-10 00:36:26 · 4754 阅读 · 0 评论 -
TCP端口状态说明ESTABLISHED、TIME_WAIT
TCP状态转移要点TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得 注意的状态有两个:CLOSE_WAIT和TIME_WAIT。 1、LISTE原创 2012-07-03 23:08:56 · 87319 阅读 · 0 评论 -
Linux 创建文件系统及挂载文件系统流程详解
一、对存储设备的分区;我们这里所指的存储设备主要是本地硬盘、移动硬盘(比如USB 和1394接口的硬盘);由于磁盘很大并且为了满足我们各种需要,所以把硬盘分成若干个分区;比如我们可以用这个分区来安装Linux系统,那个分区用来安装Windows系统... ... ;这点小事大原创 2011-09-07 11:09:34 · 2547 阅读 · 0 评论 -
startHibernateWebLogic.sh
CLASSPATH="/imagesys/antlr-2.7.7.jar:${SAVE_CLASSPATH}"原创 2011-09-02 14:42:02 · 744 阅读 · 0 评论 -
Red hat Linux 重启、关机、退出X、启动X 命令
重启:rebootshutdown -r nowinit 6关机:shutdown -h nowinit 0退出:init 3 启动X:init 5start x原创 2011-09-01 23:20:01 · 10087 阅读 · 0 评论 -
Linux 内核源代码的目录结构
由于Linux 内核是一种单内核模式的系统,因此,内核中所有的程序几乎都有紧密的联系,它们之间的依赖和调用关系非常密切。所以在阅读一个源代码文件时往往需要参阅其它相关的文件。因此有必要在开始阅读内核源代码之前,先熟悉一下源代码文件的目录结构和安排。这里我们首先列出Linux 内核完整的源代码目录,包括其中的子目录。然后逐一介绍各个目录中所包含程序的主要功能,使得整个内核源代码的安排形式能在我们的头原创 2009-05-24 21:53:00 · 5244 阅读 · 1 评论 -
Linux下tty、pty、pts的概念区别
基本概念:1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。2> pty(虚拟终端):但是如果我们远程telnet到主机或使用xterm时不也需要原创 2009-05-25 19:39:00 · 863 阅读 · 0 评论 -
Linux的启动过程详解(/etc/inittab)
1. 从BIOS到KERNELBIOS自检->MBR(GRUB)->KERNEL->KERNEL自解压->内核初始化->内核启动BIOS自检当电脑开机的时候,电脑会进入BIOS,BIOS的工作主要是侦测电脑的周边配套设备是否工作正常,如CPU的类型、速度、缓存等主板类型内存的速度,容量硬盘的大小,类型和工作模式风扇速度等主要是为了检查这些设备在开机的时候是否能通过检测,如果能通过检测,说明电脑可以原创 2009-05-24 23:08:00 · 1946 阅读 · 0 评论 -
内核主要常数
1 系统最大进程数系统最大进程(任务)数为64。2 进程的运行状态#define TASK_RUNNING 0 // 进程正在运行或已准备就绪。#define TASK_INTERRUPTIBLE 1 // 进程处于可中断等待状态。#define TASK_UNINTERRUPTIBLE 2 // 进程处于不可中断等待状态,主要用于I/O 操作等待。#define TASK_ZOMBIE 3 //原创 2009-05-25 11:54:00 · 821 阅读 · 0 评论 -
vmlinuz文件
vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,vmlinuz的建立有两种方式。一是编译内核时通过“make zImage”创建,然后通过: “cp /u翻译 2009-05-26 18:12:00 · 1300 阅读 · 0 评论 -
Linux文件类型与扩展名
我们提过一个概念,就是任何设备在Linux中都是文件,不仅如此,连数据通信的接口也由专属文件负责。所以,你会了解到,Linux的文件种类很多。除了前面提到的 -, d即所谓的一般文件与目录文件之外,还有哪些种类的文件呢? 文件种类 在介绍属性时,提到了最前面的标志(d或 -)可以表示目录或文件,那就是不同的文件种类。Linux的文件种类主要有下面这几种: • 普通原创 2009-07-09 12:15:00 · 1957 阅读 · 0 评论 -
Linux技术进阶示意图
原创 2009-07-09 16:13:00 · 11473 阅读 · 12 评论 -
嵌入式 Linux 学习七步曲——目录
嵌入式Linux的学习涵盖的范围比较广,下从bootloader,到内核移植、文件系统,中间的驱动开发,到上层的应用程序调试、开发环境等,变化莫测。第一篇 Linux主机开发环境1.1 Vmvare下Linux的安装(优先)1.2 Windows下从硬盘安装Linux(可选)1.3 Linux的基本命令及使用1.4 Linux的文件系统及与windows的文件共享1.5原创 2009-07-14 22:50:00 · 1170 阅读 · 0 评论 -
修改linux tcp连接数
一、 文件数限制修改(1) vi /etc/security/limits.conf* soft nofile 10240* hard nofile 10240(2) vi /etc/pam.d/loginsession required /lib/security/pam_limits.so二、 网络端口限制修改(1) vi /etc/rc.d/rc.lo原创 2012-07-04 00:20:38 · 9961 阅读 · 0 评论 -
linux 系统优化tcp连接
提高服务器的负载能力,是一个永恒的话题。在一台服务器CPU和内存资源额定有限的情况下,最大的压榨服务器的性能,是最终的目的。要提高Linux系统下的负载能力,可以先启用Apache的Worker模式(参考我写的《Ubuntu下配置Apache的Worker模式》一文),来提高单位时间内的并发量。但是即使这么做了,当网站发展起来之后,连接数过多的问题就会日益明显。在节省成本的情况下,可以考虑修改Li转载 2012-07-04 00:42:31 · 6712 阅读 · 1 评论 -
从问题看本质: 研究TCP close_wait的内幕
最近遇到的一个关于socket.close的问题,在某个应用服务器出现的状况(执行netstat -np | grep tcp): tcp 0 0 10.224.122.16:50158 10.224.112.58:8788 CLOSE_WAITtcp 0 0 10.224.122.16:37655转载 2012-07-04 23:47:32 · 10756 阅读 · 3 评论 -
linux下查看所有用户及所有用户组
groups 查看当前登录用户的组内成员groups gliethttp 查看gliethttp用户所在的组,以及组内成员whoami 查看当前登录用户名/etc/group文件包含所有组/etc/shadow和/etc/passwd系统存在的所有用户名1、/etc/group 解说;/etc/group文件是用户组的配置文件,内容包括用户和用户组,并且原创 2012-09-04 23:50:02 · 96268 阅读 · 2 评论 -
linux命令创建和修改用户及密码
linux下创建用户1、添加ftp用户useradd ftpname -d /home/ftppasswd ftppwd以下操作都以root权限进行:service vsftpd start 启动Linux自带的FTP服务2. 添加普通用户useradd nagios –d /usr/local/nagioschown nagios.nagios /usr/loca原创 2012-09-04 23:44:43 · 1623 阅读 · 0 评论 -
The X11 forwarding request was rejected!
The X11 forwarding request was rejected! to solve this problem,please turn on the X11 forwarding feather of the remote SSH server 解决方法:将sshd_config中 设置 X11Forwarding yes重启sshd服务。# vi /et转载 2012-09-06 23:03:26 · 8819 阅读 · 0 评论 -
linux下tar.gz、tar、zip等解压缩、压缩命令
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到转载 2012-09-23 14:36:42 · 1325 阅读 · 0 评论 -
linux解决xhost: unable to open display
实用技巧:在Linux下设置xhost方法步骤第一步:用root登陆linux,启动vnc服务;第二步:根据vnc起来的端口,设置export DISPLAY=localhost:1(1表示vnc在第一个tty上启动的),vnc的启动信息见附件1;第三步:执行xhost +,并且提示“access control disabled, clients can connect转载 2012-09-23 16:07:14 · 2448 阅读 · 0 评论 -
Linux安装Oracle 11时报错DISPLAY解决方案
在Linux上安装Oracle时,经常会报以下错误:无法使用命令 /usr/X11R6/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了DISPLAY 变量。可以使用下述命令解决这个问题:1.在root下执行 启动vnc服务vncserver #xdpyinfo记录下name of display:后的字符串,如 127.0.0.1:1.0转载 2012-09-23 16:09:39 · 2300 阅读 · 0 评论 -
在suse linux 10上安装Oracle 10g
1. 检查软件配置要求a. Linux内核要求为2.6.16.21:suse-linux:~ # cat /proc/versionLinux version 2.6.16.21-0.8-default (geeko@buildhost) (gcc version 4.1.0 (SUSE Linux)) #1 Mon Jul 3 18:25:39 UTC 200转载 2012-09-24 01:32:17 · 2424 阅读 · 0 评论 -
Linux top 命令详解
查看多核CPU命令 mpstat -P ALL 和 sar -P ALL 说明:sar -P ALL > aaa.txt 重定向输出内容到文件 aaa.txt top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文转载 2013-07-24 22:19:45 · 1609 阅读 · 0 评论 -
Linux开启FTP(vsftpd)服务
Linux开启FTP(vsftpd)服务 1. 查看是否安装 # rpm -qa | grep vsftpd 2. 全新安装 # rpm -ivh vsftpd-2.0.1-5.i386.rpm 3. 启动/停止/重启 # service vsftpd start # service vsftpd stop # service vsftpd rest原创 2012-09-04 23:37:10 · 2005 阅读 · 0 评论 -
AIX UNIX下的vi命令
⒈ 进入vi: 要使用vi,应先注册进入一用户,然后如下所示进行操作: $ vi ($ 为提示符)⒉ 退出vi: (1) "Esc" 退出插入方式进入命令方式 :w 将文件存盘 :q 退出vi (2) "Esc" 退转载 2012-08-07 23:04:35 · 1097 阅读 · 0 评论 -
AIX上如何启动和停止系统服务
在 AIX 上,服务也可以称为子系统(Subsystem),它是受控于系统资源控制器(System Resource Controller,SRC)的。SRC 提供了一套命令来控制整个 AIX 系统的子系统,所以,启动和停止相关的服务(子系统)也是要通过这些命令来实现的。1.启动子系统:startsrc 负责启动 AIX 上的子系统,一般的用法为:startsrc -s i转载 2012-08-07 22:59:39 · 12898 阅读 · 0 评论 -
proc/sys/net/ipv4/下各项的意义
/proc/sys/net/ipv4/icmp_timeexceed_rate这个在traceroute时导致著名的“Solaris middle star”。这个文件控制发送ICMP Time Exceeded消息的比率。/proc/sys/net/ipv4/igmp_max_memberships主机上最多有多少个igmp (多播)套接字进行监听。/proc/sys/net/i原创 2012-07-05 00:15:56 · 3361 阅读 · 0 评论 -
Linux中keepalive的使用
/proc/sys/net/ipv4/tcp_keepalive_time 当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。 /proc/sys/net/ipv4/tcp_keepalive_intvl 当探测没有确认时,重新发送探测的频度。缺省是75秒。 /proc/sys/net/ipv4/tcp_keepalive_probes 在认定连接失原创 2012-07-05 00:10:25 · 16326 阅读 · 0 评论 -
linux proc文件系统学习
目录:/proc --- 一个虚拟文件系统加载 proc 文件系统察看 /proc 的文件得到有用的系统/内核信息有关运行中的进程的信息通过 /proc 与内核交互结论参考文献摘要:Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。尽管在各种硬件平台上的 Linux 系统的转载 2012-07-05 00:25:43 · 1481 阅读 · 0 评论 -
配置开发支持高并发TCP连接的Linux应用程序全攻略
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量 的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许 当前用户进程打开的文件数限制:[speng@as4 ~]$ uli转载 2012-07-06 23:59:33 · 3963 阅读 · 0 评论 -
linux下的tcp协议栈超时重传机制
TCP协议有个超时重传机制,想必大家都比较熟悉。TCP协议是一种传输可靠的协议,因此这个机制是必不可少的。那么今天要探讨的是在发送队列还有数据的情况下,网络连接异常断开后,协议栈是到底是怎样来处理这些数据的,资源又是怎样被回收的呢?我这里先给出几个测试的结果:1、修改linux系统下的tcp_retries2为1,当socket发送队列有一定数据时,突然切断网线,造成异常断链的场景转载 2012-07-14 01:25:54 · 4197 阅读 · 0 评论 -
解决TCP连接数过多的问题
1、建立连接协议(三次握手)(1)客户 端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标 志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通 讯。(3) 客户必须再次回应服务段一个ACK报文,这是报文段3。2、连接终止转载 2012-07-14 01:39:59 · 23104 阅读 · 0 评论