linux的理解】的更多相关文章

本文介绍了Linux下的进程的一些概念,并着重讲解了与Linux进程管理相关的重要系统调用wait,waitpid和exec函数族,辅助一些例程说明了它们的特点和使用方法. 1.7 背景 在前面的文章中,我们已经了解了父进程和子进程的概念,并已经掌握了系统调用exit的用法,但可能很少有人意识到,在一个进程调用了exit之后,该进程并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构.在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可…
本文介绍了Linux下的进程概念,并着重讲解了与Linux进程管理相关的4个重要系统调用getpid,fork,exit和_exit,辅助一些例程说明了它们的特点和使用方法. 关于进程的一些必要知识 先看一下进程在大学课本里的标准定义:“进程是可并发执行的程序在一个数据集合上的运行过程.”这个定义非常严谨,而且难懂,如果你没有一下子理解这句话,就不妨看看笔者自己的并不严谨的解释.我们大家都知道,硬盘上的一个可执行文件经常被称作程序,在Linux系统中,当一个程序开始执行后,在开始执行到执行完毕退…
 大家在学习linux的过程中常常遇到一些模糊且容易混淆的概念比如什么是硬链接和软链接,他们有什么区别?  软连接有点象windows中的快捷方式,连接和目标文件具有相同的节点,而硬连接就好象重新复制了一份,可以这样理解:几个硬连接=几个拷贝, 所以源文件被删除后,还有几个备份.几个软连接=几个指向源文件的路标, 所以源文件被删除后,虽然有路标但房子已经不在了.硬连接记录的是目标的 inode,软链接又叫符号链接,这个文件包含了另一个文件的路径名,他记录的是目标的 path.大家学习程序设计的时…
详见: http://blog.csdn.net/m13666368773/article/details/7615125 Linux SETUID机制 (1)进程运行时能够访问哪些资源或文件,不取决于进程文件的属主属组,而是取决于运行该命令的用户身份的uid/gid,以该身份获取各种系统资源. (2)对一个属主为root的可执行文件,如果设置了SUID位,则其他所有普通用户都将可以以root身份运行该文件,获取相应的系统资源. (3)可以简单地理解为让普通用户拥有可以执行"只有root权限才能…
能够使用service命令进行操作的,就是已经注册成为linux的系统服务了.window中也可以注册成为系统服务的办法. service命令用的次数真不少,就是比较多的关联点,用了很多次了,还是有些地方没打通,云里雾里的.所以才梳理一下这个技术知识点,理顺思路.此时我觉得,很有必要理解service命令的原理性知识了. 了解service命令的来龙去脉,在解决实际问题中的帮助,结合实际应用,我对以下问题有帮助: 1.如果从网上下载一个新的软件,安装到linux上面去.想注册成系统服务,我需要自…
1.为了对进程从产生到消亡的整个过程进行跟踪和描述,就需要定义各种进程的各种状态并制定相应的状态转换策略,以此来控制进程的运行.      不同的操作系统对进程的状态解释不同,但是最基本的状态都是一样的.包括以下三种:       运行态:进程占用CPU,并在CPU上运行:       就绪态:进程已经具备运行条件,但是CPU还没有分配过来:       阻塞态:进程因等待某件事发生而暂时不能运行:     进程在一生中,都处于上述3中状态之一.       下面是3种状态转换图        …
在各种网络异常情况的背后,TCP是怎么处理的?又是怎样把处理结果反馈给上层应用的?本文就来讨论这个问题.分为两个场景来讨论 建立连接时的异常情况 1 正常情况下 经过三次握手,客户端连接成功,服务端有一个新连接到来. 2 客户端连接了服务端未监听的端口 在这种情况下,服务端会对收到的SYN回应一个RST(RFC 793 3.4),客户端收到RST之后,终止连接,并进入CLOSED状态. 客户端的connect返回ECONNREFUSED 111 /* Connection refused */.…
1.用户组 因为linux 是多人多任务系统 所有可能有很多人在主机人作业.比如 有A B C D 4个人 在linux主机上作业, A B C 3个人 在做同一个项目 建了一个文件夹这个文件只能A B C 3个人进入,不能让其他用户进入 ,所有就出来用户组了,那么那个D 就 是非用户组了. 打个比方可能好理解点,一个学校有很多学生分成了很多班级便于学校管理,在linux中也要对用户(学生)按照某种策略进行分组管理.那么相对你而言你的同班同学就是你的同组用户,其他班级的学生就是非同组用户.恰好你…
参考: https://www.cnblogs.com/dolphi/p/3622420.html     http://www.360doc.com/content/15/1105/08/14513665_510854234.shtml以下内容中为了保障文章整体看上去可以由浅入深的全面说明问题,我摘录了上面这个博主的两篇文章中的原文,仅是为了完整说明问题. 360doc这篇文章也给我很多启发. 对这些做一个总体总结,说明如下. 到底什么是locale? locale这个单词中文翻译成地区或者地…
原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Linux系统的理解 1.加载Linux内核准备:在加载基本输入输出模块(BIOS)之后,从磁盘的引导扇区读入操作系统的代码文件块到内存中,之后开始整个系统的初始化. 2.main.c的start_kernel函数是整个操作系统的入口,这也与Linux是基于C语言的特性相符,start_kernel具体做的动作很多…
一. 守护进程及其特性      守护进程最重要的特性是后台运行.在这一点上DOS下的常驻内存程序TSR与之相似.其次,守护进程必须与其运行前的环境隔离开来.这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模等.这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的.最后,守护进程的启动方式有其特殊之处.它可以在Linux系统启动时从启动脚本/etc/rc.d中启动,可以由作业规划进程crond启动,还可以由用户终端(通常是shell)执行.   …
孤儿进程与僵尸进程 孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程.(注:任何一个进程都必须有父进程) [cpp] view plaincopy #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <unistd.h> int main() { pid_t pid; //创建一个进程 pid = fork(); //创建失败 if (pid &…
进程 and 程序 什么是程序? 程序是完成特定任务的一系列指令集合. 什么是进程? [1]从用户的角度来看:进程是程序的一次执行过程 [2]从操作系统的核心来看:进程是操作系统分配的内存.CPU时间片等资源的基本单位. [3]进程是资源分配的最小单位 [4]每一个进程都有自己独立的地址空间与执行状态. [5]像UNIX这样的多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个进程 进程数据结构 进程由三部分组成:PCB.程序段和数据段. 进程控制块PCB:用于描述进程情况及控制…
这是本专栏中进程相关的系统调用的最后一篇,用2个实例演示了以往学习的内容.其一是Mini Shell,仿常用的Bash而做,但对其作了大大简化:其二是一个Daemon程序,可以使读者一窥服务器编程的端倪. 1.13 Shell 对Linux不是太陌生的读者都应该对Shell有一定的了解,就是这个程序在我们登陆后自动执行,打印出一个$符号,然后等待我们输入命令.Linux下最常用的Shell应用程序是Bash,绝大部分Linux发行版默认安装的都是它.下面我们也来亲手编写一个Shell程序,这个S…
本文是Linux系统调用专栏系列文章的第一篇,对Linux系统调用的定义.基本原理.使用方法和注意事项大概作了一个介绍,以便读者对Linux系统调用建立一个大致的印象. 什么是系统调用? Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用.用户可以通过系统调用命令在自己的应用程序中调用它们.从某种角度来看,系统调用和普通的函数调用非常相似.区别仅仅在于,系统调用由操作系统核心提供,运行于核心态:而普通的函数调用由函数库或用户自己提供,运行于用户态.二者在使用方式上也有相似之处,…
RPM常用命令参数列表 1.安装一个包 # rpm -ivh 2.升级一个包 # rpm -Uvh  [注意U一定要大写] -i   安装 -U  升线安装 -h  以#显示安装进度 -v  显示附加信息 3.移走一个包 # rpm -e 4.安装参数 --force 即使覆盖属于其它包的文件也强迫安装 --nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装. 5.查询一个包是否被安装 # rpm -q < rpm package name> 6.得到被安装的包的信息 #…
第七章--链接 0.总结 链接编译时可以采用静态链接或动态链接. 连接器主要任务:符号解析和重定位. 多个目标文件可定义相同的符号,可以被连接到一个单独的静态库. 链接器可以生成部分链接的可执行文件 动态链接器通过加载共享库和重定位程序中的引用来完成链接任务. 1.编译器驱动程序 编译系统提供的调用预处理器.编译器.汇编器和链接器来构造目标文件的程序. 2.静态链接 3.目标文件 三种形式: 1.可重定位目标文件: 2.可执行目标文件: 3.共享目标文件: 4.可重定位目标文件 ELF格式 5.…
free命令:显示Linux系统中物理内存.buffer/cache.swap的使用情况. virtual-machine:~$ free total used free shared buffers cached Mem: 1025140 747140 278000 0 117244 301936 -/+ buffers/cache: 327960 697180 Swap: 1046524 0 1046524 virtual-machine:~$ free -m total used free…
基础命令学习目录首页 原文链接:https://blog.csdn.net/Ohmyberry/article/details/80427492 档案系统特性 传统的磁盘与档案系统之应用中,一个分割槽就是只能够被格式化成为一个档案系统,所以我们可以说一个filesystem就是一个partition.但是由于新技术的利用,例如我们常听到的LVM与软体磁盘阵列(software raid),这些技术可以将一个分割槽格式化为多个档案系统(例如LVM),也能够将多个分割槽合成一个档案系统(LVM, R…
网络层次 linux网络设备驱动与字符设备和块设备有很大的不同. 1. 字符设备和块设备对应/dev下的一个设备文件.而网络设备不存在这样的设备文件.网络设备使用套接字socket访问,虽然也使用read,write系统调用,但这些调用只作用于软件对象. 2. 块设备只响应来自内核的请求,而网络驱动程序异步接收来自外部世界的数据包,并向内核请求发送到内核. linux内核中网络子系统的设计基于设备无关及协议无关思想.即无论什么网卡驱动.网络协议,都对应统一的驱动程序. inux网络协议栈层次有四…
1.alias简介 Linux alias 是命令的一种别称,输入 alias 可以看到像下面这样的结果: alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias vi='vim' 例如:我们常用用的ll命令其实是:ls -l的别名,alias的作用就是,可以简写命令,设置别名. 2.修改alias 若要添加自己的alias,格式如下 alias lh="ls…
首先,我们知道操作系统是管理和控制计算机硬件与软件资源的计算机程序.这里把操作系统想象为一个软件外包公司,其内核就相当于这家外包公司的老板,那么我们可以把自己的角色切换成这家外包公司的老板,设身处地的去理解操作系统是如何协调各种资源,帮客户做成事情的. 以鼠标双击 QQ 到运行整个过程理解操作系统: 鼠标是输入设备,鼠标双击 QQ 要通过输入设备驱动知道鼠标的动作(外包公司要通过客户对接员知道客户的需求): 鼠标双击后产生一个指令,然后会产生中断,调用一个中断处理函数,弄明白指令的含义(了解客户…
inode 硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB).操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性读取一个"块"(block),每个"块"(block)由八个连续的sector组成.这种由多个扇区组成的"块",是文件存取的最小单位."块"的大小,最常见的是4KB,文件数据都储存在"块"中,那么还必须找到一个地方储…
进程的几种终止方式(Termination) (1)正常退出 从main函数返回[return] 调用exit 调用_exit或者_Exit 最后一个线程从其启动处返回 从最后一个线程调用pthread_exit (最后两点见后面博客) (2)异常退出 调用abort   产生SIGABOUT信号 由信号终止  Ctrl+C [SIGINT] 最后一个线程对取消请求做出响应 从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构:exit…
1.进程.线程只针对的是应用层,而内核调用.驱动没有这种概念,调用的都是内核调用里相同的函数或变量,所以应用层多个应用操作同个硬件时,特别是要加互斥操作,8250通过cs针脚决定发送数据给哪个串口 2.发送.接收的解决并发操作,主要防止重复调用该函数,等待函数的硬件还没操作完才允许再调用, 接收一般要加互斥操作,而can的接收为什么没加入互斥操作呢? 3.环形缓冲区,只有一个写一个读取时,是不需要进行加锁操作 4.底层硬件的函数如果有多个地方被调用, 一般要加入锁机制…
本文出自 "李晨光原创技术博客" 博客,谢绝转载!…
1.软链接 只包含另外软链接的基本信息, 生成与源文件不同的节点号, 可以链接目录.不同网络的文件 2.硬链接只能链接文件,不会生成节点号,说白了就是指针,指向同个文件,所以链接的节点号与源节点号一致…
http://blog.csdn.net/aaronychen/article/details/2270048 主分区逻辑分区设置 http://forum.ubuntu.org.cn/viewtopic.php?t=456629 分区方案: http://www.cnblogs.com/maso1987/archive/2012/07/14/2591495.html 实际 /boot / 放在主分区,其他放在逻辑分区 ext4格式. /boot 给1G / 给20G swap 给10G 与内存…
Wait的背景 当子进程退出的时候,内核会向父进程发送SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态. 父进程查询子进程的退出状态可以用wait/waitpid函数 [cpp] view plaincopy #include <sys/types.h> #include <sys/wait.h> pid_t wait(i…
https://jaminzhang.github.io/linux/understand-Linux-backlog-and-somaxconn-kernel-arguments/ 各参数的含义:https://www.alibabacloud.com/help/zh/faq-detail/41334.htm 理解 Linux backlog/somaxconn 内核参数 By 12月08日 2016 Linux LinuxTCPSocketbacklogsomaxconn 理解 Linux…