首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux系统编程基础

Linux不是一个具体的操作系统,而是一类操作系统的总称,具体版本成为发行。...Red Hat:目前被IBM收购,收费,目前最大的Linux供应商 CentOS: Red Hat退出的免费 Ubuntu:界面比较友好 虚拟机 学习Linux系统,就需要有一个可用的Linux系统...我们也不能将自己系统换成Linux系统,因为Linux系统并不适合日常办公使用,所以我们需要借助虚拟机来获得可用的Linux系统环境进行学习。 什么是虚拟机?...,CentOS7.6本 在VMware中安装CentOS操作系统: 先打开VMware软件 按照步骤创建虚拟机: 点击完成后,即开启了CentOS系统的安装,耐心等待安装完成即可,后续都是自动化的。...对于操作系统的使用,有2种使用形式: 图形化页面使用操作系统 以命令的形式使用操作系统 不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式。

10810

linux系统编程(3)

[3]信号 (2)System 5 IPC对象进程间通信方式   [1]消息队列   [2]共享内存   [3]信号灯集 (3)socket通信 (4)Android系统中增加...Binder进程间通信方式 Linux 支持以上所有进程间通信方式 三 管道进程间通信 (1)无名管道 特点: 只能用于具有亲缘关系进程间通信(具有亲缘关系的进程具有数据拷贝动作...返回值: 成功返回0,失败返回-1 (2)管道读写规则  读端存在  ,写管道 ---->只要管道没有满,都可以写入数据到管道 读端不存在,写管道 ---->此时写管道没有意义,操作系统会发送...管道中没有数据,读阻塞 写端不存在,读管道 ---->此时管道中读取数据,管道中没有数据,此时不阻塞,立即返回,返回值0 (3)有名管道 特点:可以用于任意进程间通信,它是一种特殊的文件,在文件系统存在名字...SIGSTOP 不能忽略 捕捉   当进程收到信号,此时执行的信号处理函数  默认   大部分信号对进程的默认操作方式都是杀死进程   子进程状态发生改变的时候,操作系统向父进程发送

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux系统进程编程(二)

    哈哈哈,听到僵尸两个字是不是有点小害怕,言归正传,在Linux系统中,我们要明白:进程在运行时是需要消耗系统资源(内存、IO),进程终止时理应完全释放这些资源(如果进程消亡后仍然没有释放相应资源则这些资源就丢失了...),所以linux系统设计时规定:每一个进程退出时,操作系统会自动回收这个进程涉及到的所有的资源(譬如malloc申请的内容没有free时,当前进程结束时这个内存会被释放,譬如open打开的文件没有close...但是操作系统只是回收了这个进程工作时消耗的内存和IO,而并没有回收这个进程本身占用的内存(8KB,主要是task_struct和栈内存),因为进程本身的8KB内存操作系统不能回收需要别人来辅助回收,因此我们每个进程都需要一个帮助它收尸的人...同时,linux系统规定:所有的孤儿进程都自动成为一个特殊进程(进程1,也就是init进程)的子进程。...\n", getpid()); return 0; } 输出结果: 说明:这里父进程先运行死掉了,但是我们后面并没有发现特殊进程init为1,而是908,这其实是跟ubuntu系统有关系的,真实是为

    1.7K10

    Linux系统编程Linux背景知识

    1994年,第一个Linux发行Debian发布,这标志着Linux发展史上的一个重要里程碑。随后,Red Hat、SUSE等公司也推出了自己的Linux发行。...6.Linux发行版本 Linux有众多的发行版本,被称为Linux发行Linux distribution)。...Arch Linux:面向高级用户和技术爱好者的发行,注重简单性和自定义性。 openSUSE:可用于桌面、服务器和嵌入式设备的稳定和灵活的发行。...Slackware:最早的Linux发行之一,注重简单性和稳定性。 除了上述发行版本之外,还有许多其他的小型和专业领域的Linux发行,以满足不同用户和应用的需求。...这些发行通常基于主流的发行,但进行了特定的定制和优化。 7.结语 Linux的一个主要优势是其可定制性。用户可以自由修改和定制操作系统以适应他们的需求。

    12610

    Linux系统编程:基本IO系统调用

    文件描述符 表示 宏 0 标准输入(stdin) STDIN_FILENO 1 标准输出(stdout) STDOUT_FINENO 2 标准错误(stderr) STDERR_FILENO 遵循Linux...open()系统调用 对文件进行读写之前,必须先打开文件。Linux提供了系统调用open()。...read()系统调用 文件打开后,就能够读文件了。read()是最基础、最常见的读取文件的机制。...系统调用write()时,数据从用户空间的缓冲区中拷贝到了内核空间的缓冲区,但并没有立即把数据写入磁盘中,这称为延迟写。延迟写的问题在于,如果在数据真正写入磁盘之前系统崩溃了,则数据可能丢失。...Linux系统也支持强制文件立即写入磁盘上,这在后面介绍。 close()系统调用 程序完成文件的读写后,调用close函数关闭文件描述符与文件之间的连接,使得文件描述符可以被重用。

    3K30

    【高级编程Linux read系统调用

    比如 fork、clone、execve、exit等 那为什么一定要用系统调用来访问操作系统的内容呢,其实这可以看做对内核的保护,linux分为用户空间和内核空间,而用户空间是不允许访问内核空间的数据的...引入 cache 层的目的是为了提高 linux 操作系统对磁盘访问的性能。 Cache 层在内存中缓存了磁盘上的部分数据。...文件的page cache结构 在 Linux 操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从存储设备读入到这些内存中,然后再将数据分发给应用程序;当需要往文件 中写数据时...Linux内核中文件预读算法的具体过程是这样的:对于每个文件的第一个读请求,系统读入所请求的页面并读入紧随其后的少数几个页面(不少于一 个页面,通常是三个页面),这时的预读称为同步预读。...为了满足普遍性要求,linux使用定义在linux/fs.h中的结构体address_space结构体描述页高速缓存中的页面。

    6.1K110

    Linux系统下进程编程(一)

    ,记得刚开始学编程的时候,那时候就是从这里开始萌芽的。那么写了这么多函数,为啥要从这里开始“进门”呢,个人理解就是一种规定。...系统里面编程,它也是要准备一些前期工作的:它要有编译链接时的引导代码-------操作系统下的应用程序其实在main执行前也需要先执行一段引导代码才能去执行main,我们写应用程序时不用考虑引导代码的问题...另外,这里的可执行文件既可以是二进制文件,也可以是Linux下任何可执行脚本文件。)来运行)加载器负责将这个程序加载到内存中去执行这个程序。...在我们Linux系统有一些函数可以获得进程号:getpid(获得当前进程的ID)、getppid(获得父进程ID)、getuid(获取当前进程的用户ID,比如root用户或是普通用户)、geteuid(...它一般在Linux启动时开始执行,系统关闭时才结束。

    2.5K10

    Linux系统编程】进程状态

    因为这两个状态是操作系统中进程比较核心的两个状态,当然还有一个运行状态它相对比较好理解,我们后面针对具体的Linux操作系统去讲解。...而我们上面了解的内容其实就是基于操作系统这门课程来说的,可以认为它对于所有具体的操作系统都是成立的,可能比较抽象。 而我们下面呢,要针对一款具体的操作系统——Linux来学习一下进程的状态。...看看Linux内核源代码怎么说 一个进程可以有多个状态(在Linux内核里,进程有时候也叫做任务),那首先我们可以来看一下在kernel源代码里关于进程状态的定义: /* * The task state...此时,操作系统路过。 作为系统的管理者,它发现此时系统的内存资源已经非常紧张了,如果再有进程就要挂了,但是此时操作系统却发现你这个进程却不在运行队列里,而是啥也不干在这里等。...所以,为了方便子进程退出后父进程或操作系统获取该进程的退出结果,Linux进程退出时,进程一般不会立即死亡,而是要维持一个Z状态即——僵尸状态。 等这个进程真正被回收了,它的状态就会变成X死亡状态。

    19810

    Linux系统编程Linux基本指令详解(二)

    那在Linux也可以对文件或者目录进行复制,对应的命令就是cp,那怎么用呢?...总结一下: mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。...即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。...在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。...补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

    16510

    Yahoo 书签系统使用 Php 语言的 symfony 框架

    Yahoo 书签系统使用 Php 语言的 symfony 框架 大旗的经验告诉我们,面对大数据量的时候,机器比人更有效---题记 Yahoo! 书签 Beta版本 已经上线了 点这里 。...Yahoo 书签用了 12 人/月 的工作量,今年6月中旬开始开发。 现在已经拥有了2千万用户,12个国家的语言版本。 效率可真够高的。...扯点其他的: 最近得知csdn也开发出了书签系统,用了一下,感觉还可以。尽管一天也没有用过365key ,但那是曾登高的作品,相信这次csdn的书签在各方面的表现上一定能更上一层楼了。...不 过,总结我这几年的互联网使用的经验看,自己收藏的书签从来没有用过,也很少看别人的书签。因为搜索引擎可以很快找到你需要的东西,看别人的书签,只会产生好内容真多的感觉,对自己则没有实际影响。...书签和tag的性质类似,用作分类,自然有其需求所在,但内容提供商不应把分类的劳动转嫁到用户身上,或者 完全依赖用户完成分类。

    98820

    常见Linux系统下载【发行

    发行,是一款由全球社区爱好者构建的面向日常应用的快速、稳定、强大的操作系统。...openSUSE 操作系统和相关的开源程序会被 Novell 使用,作为 Novell 企业 Linux(比如 SLES 和 SLED)的基础。...其受欢迎程度大幅下降与红帽Linux 和其它更易用发行的发行有关,但Slackware Linux仍然是一个倍受赞赏且经营中更面向系统管理员技术和桌面用户的系统。...起源:中国 架构:i386 桌面:KDE 分类:桌面、生活 红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行,包括桌面、工作站、数据中心服务器、HA集群和红旗嵌入式Linux...目前在中国各软件专卖店可以购买到光盘,同时官方网站也提供光盘镜像免费下载。红旗Linux是中国较大、较成熟的Linux发行之一。

    10.1K20

    Linux编程系统里的僵尸们)

    下图给出Linux进程从被创建(生)到被回收(死)的全部状态,以及这些状态发生转换时的条件: ?...3,刚被创建的进程都处于“就绪”状态,等待系统调度,内核中的函数sched( )被称为调度器,他会根据各种参数来选择一个等待的进程去占用CPU。...时间片耗光的情况下如果进程还没有结束,那么会被系统重新放入等待队列中等待。另外,正处于“执行态”的进程即使时间片没有耗光,也可能被别的更高优先级的进程“抢占”CPU,被迫重新回到等到队列中等待。...当进程所等待的资源变得可获取时,又会被系统置为TASK_RUNNING状态重新就绪排队。...5,当进程收到SIGSTOP或者SIGTSTP中的其中一个信号时,状态会被置为TASK_STOPPED,此时被称为“暂停态”,该状态下的进程不再参与调度,但系统资源不释放,直到收到SIGCONT信号后被重新置为就绪态

    1.3K20
    领券