linux操作系统
文章平均质量分 68
McRae
如果客户企图使用某个接口却没有获得他预期的行为,那这个代码就不该通过编译;如果代码通过了编译,它的作为就该是客户想要的。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux中文件的权限问题
本文简述Linux下,文件的权限与访问问题,以及修改权限。在超级用户和普通用户下测试。原创 2017-03-21 16:01:39 · 725 阅读 · 0 评论 -
netstat工具
1、netstat是什么? netstat是在内核中访问网络相关信息的程序,它能够提供TCP连接、TCP和UDP监听、进程内存管理的状态。netstat也是一种控制台命令,是一个监控TCP/IP网络的非常有用的工具,他可以显示路由表、实际网络连接以及每一个网络接口设备的状态信息。使用netstat可以让用户知道有哪些网络连接正在运作,使用时如果不带参数,netstat显示活动的TCP连接。2、命原创 2017-08-30 15:44:48 · 653 阅读 · 0 评论 -
Linux解压命令
.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName.tar.gz 和 .tgz 解压:tar zxvf Fil转载 2017-08-07 20:39:17 · 308 阅读 · 0 评论 -
线程安全和可重入函数
线程安全问题 1.线程安全问题: 当用线程编写程序时,必须小心地编写那些具有称为线程安全性(thread safety)属性的函数。多线程访问运行时,当一个线程访问数据时采用加锁机制,对数据进行保护,保证了数据不会出现错乱。 2.产生线程不安全的原因: 多线程程序对全局变量或者静态变量进行修改。 3.以下几类函数是线程不安全的: 1)返回指向静态变量指针的函数; 2)函数原创 2017-06-10 10:55:34 · 310 阅读 · 0 评论 -
Linux 下信号(二)和线程安全
六、信号捕捉 1.内核是如何捕捉信号的: 如果信号的处理动作是用户自定义的,那么这个信号递达的时就会调用这个函数,称为信号捕捉。下图阐述了 捕捉信号 的过程: sigaction()函数可以捕捉信号。#include<signal.h> int sigaction(int signo,const struct sigaction *act,struct sigaction *oact)原创 2017-06-10 09:35:37 · 407 阅读 · 0 评论 -
CRC校验
一、什么是CRC校验 这里要介绍一下数据链路层的三个基本问题: 1.封装成帧 加上首部和尾部,尾部包含FCS冗余校验码(专门为了检错而添加的帧验证序列)。 说明:CRC和FCS,没有关系,添加的FCS码既可以用CRC校验,也可以用其他方法校验。 2.透明传输 这里的透明传输是指任何东西否可以封装成帧来传输,就是透明传输。 3.差错校验 数据链路层广泛采用CRC校验。 循环冗原创 2017-06-20 16:15:24 · 4000 阅读 · 0 评论 -
线程
我们都知道进程有各自的PCB。并且在各自独立的地址空间上运行。那么什么是线程呢?一、线程概念 有时候一个进程中同时需要执行多个控制流程。比如,你开着迅雷下载电影,还能一边下载一边观看。并且能够拖动边框。这时候就是线程排上用场的地方了。 1.很多时间我们会听到,线程是在进程里运行的。这句话其实是说线程是在进程的地址空间内部运行的。所有线程是进程内部的一个执行流,线程只拥有进程的一部分资源。理所当然原创 2017-06-02 15:55:05 · 526 阅读 · 0 评论 -
死锁问题
一、死锁原理 死锁可以被定义为一组竞争系统资源或互相通信的进程间的“永久”阻塞。当一个进程集合中所有进程都在等待请求资源的分配,而只有在进程集合中的其他阻塞的进程才能触发该事件。这时就称为进程死锁。 如图Ra,Rb占有一个单位资源,当P1占有Rb 同时申请Ra,P2占有Ra,同时申请Rb,两个进程互相都在请求对方占有的唯一资源。发生死锁。 二、死锁条件 若要发生死锁,必定出现四个条件:原创 2017-06-02 10:46:37 · 282 阅读 · 0 评论 -
Linux下的信号(signal)
一、信号的概念: 要理解信号,我们先来进入一个场景。用户在shell下打开一个前台进程,正在运行。在键盘上按下ctrl+C的组合键,当前前台进程会中断。是因为键盘上输入的信号通过硬件传输给驱动程序,将ctrl+C转化为SIGNAL传给该进程的PCB,修改了PCB里的某些字段,也就是说给进程发送了一个信号。 输入指令:kill -l 可以查看信号 二、信号产生的几个主要条件: 1.硬件异常原创 2017-06-06 15:11:07 · 574 阅读 · 1 评论 -
守护进程(daemon)
守护进程也叫精灵进程(daemon):它独立于控制终端,并且周期性的执行某些操作或者等待某个任务,是一种很有用的进程。Linux下的服务器大多是由守护进程实现的,比如说web服务器,Internet服务器等等,守护进程不收终端登录和注销影响,他们是独立的,自成终端。一、查看守护进程: 用命令 ps axj 查看进程,得到TPGID一列为-1,说明没有控制终端,就是所谓的守护进程。 二、守护原创 2017-06-16 16:30:38 · 814 阅读 · 0 评论 -
进程间通讯————消息队列
Linux支持system V 提供的进程间通信机制:消息队列、信号(semaphores)和共享内存。称为system V的IPC对象,可以通过系统调用(system call)对对象的创建者设置这些对象的存取权限。和文件的存取一样,这些对象的存取也要存取权限。内核(Kernel)为每一个IPC对象维护了一个结构体如下:struct ipc_perm { key_t __key; /* K原创 2017-05-31 16:40:28 · 411 阅读 · 0 评论 -
僵尸进程和孤儿进程
Linux下进程的状态: 1.R ( running ) 可执行行态。 2.S ( sleeping ) 可中断睡眠态。 3.D (disk sleep)不可中断的睡眠,也叫硬盘睡眠。 4.T (Stop)暂停或跟踪状态。 5.X (Dead)即将被销毁。 6.Z (zombie)僵尸状态,等待回收资源。 僵尸状态: 当一个进程退出时,它并不是完全消失,而是等到它的父进程通过调用wa原创 2017-05-18 14:58:47 · 401 阅读 · 0 评论 -
进程间通信————管道
进程间通信 首先,每个进程有各自不同的地址空间,任何一个进程都不能看到别的进程的系统资源。因此,进程间通信的主要方式是通过内核,首先在内核中开辟出一个缓冲区。把进程1的要沟通的数据写到缓冲区中去,然后通过进程2读走缓冲区的内容,这样才实现了进程间的通信(IPC)。 一、匿名管道 1.管道是一种简单的进程间通信方法,有IPC机制。通过调用pipe函数在内核中创建出缓冲区(管道) #inc原创 2017-05-26 17:24:39 · 471 阅读 · 0 评论 -
Linux中文件描述符fb和文件指针FILE*的区别
1.文件描述符: linux中,当一个进程打开一个文件或者是创建一个新文件时,内核向进程返回一个文件描述符来标示该文件。文件描述符是一个非负整数,实际上它是一个索引,指向内核为进程所维护的一个文件记录表。 任何程序运行起来都会打开三个默认的流,标准输入流,标准输出流,标准错误流通常情况下对应的硬件为键盘,显示器,显示器。 三个流的文件标示符为 0,1,2 因为默认的三个流已经设置好,后原创 2017-05-11 10:57:43 · 1792 阅读 · 0 评论 -
Linux下find指令
在Linux下有一个指令find指令。是一个最常用到的查找命令。原创 2017-03-30 12:31:48 · 509 阅读 · 0 评论 -
valgrind——Linux下内存泄漏检测工具
【引言】Valgrind的主要作者Julian Seward刚获得了2006年的Google-O’Reilly开源大奖之一──Best Tool Maker。让我们一起来看一下他的作品。Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏转载 2017-09-02 10:08:36 · 566 阅读 · 0 评论
分享