【Linux】多线程和多进程 及其应用场景

一. 两者区别 进程是分配资源的基本单位;线程是系统调度和分派的基本单位。 属于同一进程的线程,堆是共享的,栈是私有的。 属于同一进程的所有线程都具有相同的地址空间。 多进程的优点: ①编程相对容易;通常不需要考虑锁和同步资源的问题。 ②更强的容错性:比起多线程的一个好处是一个进程崩溃了不会影...

2019-03-10 14:57:35

阅读数 37

评论数 0

一次完整的HTTP请求是怎样的??

写完了HTTP服务器项目,但是对于一个完整的HTTP请求还不是很懂,在这里总结一下,当然这里的总结只是将每个过程进行简化,并没有去深入讲解(实属小弟实力不足啊)    我们都知道,如果我们打开浏览器/www.baidu.com/几秒后就会跳转出百度的首页,接下来就讲解一下这个过程!! 1.解...

2019-02-26 17:49:24

阅读数 49

评论数 0

【Linux】线程安全的单例模式以及计算密集型线程和IO密集型线程

一.单例模式 1.含义 一个类只能实例化出一个对象 2.单例模式实现的两种方式 饿汉模式 我们在程序运行之初就将对象创建好,就是说不管你将来用不用,程序启动时就创建一个唯一的实例对象。是以空间换时间的做法。这样程序运行中想要调用这个实例时都可以直接使用。举个例子:就像是一个...

2019-02-16 15:04:25

阅读数 53

评论数 0

【linux】send和recv函数解析

1. send函数 int send( SOCKET s, const char FAR *buf, int len, int flags );   不论是客户端还是服务器端应用程序都用send函数来向TCP连接的另一端发送数据。 客户端程序一般用send函数向服务器发送请求,而服务器则通...

2019-02-15 20:52:38

阅读数 33

评论数 0

【Linux】vim的简单配置

vim是从 vi 发展出来的一个文本编辑器。功能丰富,在程序员中被广泛使用,而且可以根据自己需要对其进行配置,下面我们来介绍一些vim的基本配置。  首先将你的Linux切换到超级用户,输入命令 su,输入密码再回车切换到root用户,cd进入当前用户主工作目录,输入vim .vimrc进行vim...

2018-12-09 19:12:45

阅读数 30

评论数 0

【Linux】HTTPS的理解

本文是我在今日头条上看到的,希望大家可以共同学习 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)简言之就是HTTP的安全版本,其提供安全的主要是SSL,SSL是应用层和传输层之间添加一层(SSLSecure Sockets...

2018-11-25 21:12:06

阅读数 63

评论数 0

【Linux】HTTP的理解

HTTP(超文本传输)协议是存在于应用层的协议 应用层:负责应用程序之间的数据沟通(常用的协议有:HHTP,FTP,SSH) 一.首先我们认识一下URL(统一资源定位符)     通俗的将URL就是我们日常生活中访问的网站。例如:www.baidu.com。     根据下图我们可以...

2018-11-24 21:04:25

阅读数 71

评论数 0

【Linux】内核态和用户态

一.定义 1.内核态:当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。 2.用户态:当进程在执行用户自己的...

2018-11-09 21:47:36

阅读数 172

评论数 0

【Linux】Linux中的0644 和 0755的权限

Linux 系统中采用三位十进制数表示权限,如0755, 0644 ABCD   A- 0, 表示十进制 B-用户 C-组用户 D-其他用户   利用 ls -l可以查看文件的权限 ---  -> 0   (no ex...

2018-10-31 23:07:08

阅读数 1030

评论数 1

【Linux】TCP的三次握手,四次挥手,以及常见的有关面试题

首先我们要清楚TCP是传输层的协议,传输层的功能就是负责端到端的传输。 接下来看一下TCP的三次的三次握手和四次挥手的流程图 一.TCP的三次握手 在进行TCP的三次握手建立连接之前,客户端和服务端都要做一定的工作。 初始化工作: 1.客户端:客户端刚开始处于CLOSED状态,首先要...

2018-10-25 20:50:00

阅读数 154

评论数 0

【Linux】TCP SYN泛洪攻击

尽管这种攻击已经出现了十四年,但它的变种至今仍能看到。虽然能有效对抗SYN洪泛的技术已经存在,但是没有对于TCP实现的一个标准的补救方法出现。你可以在如今的操作系统和设备中找到保护应用层和网络层的不同解决方案的不同实现。本篇论文详细描述这种攻击并展望和评估现在应用于终端主机和网络设备的对抗SYN洪...

2018-10-25 20:48:13

阅读数 146

评论数 0

【Linux】GDB的使用总结

在使用Linux的时候利用GDB调试程序是一件很重要的事,在这里就将GDB调试中所用到的命令进行一个总结 在使用GDB的前提条件:要在生成二进制代码时 +g (gcc -g test.c -o test) 在生产文件后在利用命令进行调试: gdb  + 生成二进制文件名(test)   ...

2018-10-24 12:16:50

阅读数 36

评论数 0

【Linux】UDP与TCP的对比并写出TCP和UDP的服务端

  UDP   (1.)无连接            UDP在传输数据的时候不需要建立连接,可以直接传输。(这一点在UDP服务端程序中可以看到),因此传输速度比较快,适用于传视频,音频。 (2.)传输层协议 (3.)不可靠传输             a:因为UDP在传输时不...

2018-10-14 16:56:05

阅读数 58

评论数 0

【Linux】进程的理解(三)

本文主要讲解以下几个知识点: 1.进程等待 2.进程程序替换 3.实现一个简单的shell,并且认识shell的运行原理     一.进程等待      1.首先让我们搞清楚为什么需要进程等待??              我们知道僵尸进程是一个很可怕的东西,就算用kill -9都...

2018-09-12 09:43:00

阅读数 173

评论数 0

【Linux】进程中的替换函数(exec)

摘要:本文主要讲述如何在进程中运行新代码,以及exec系列函数的基本使用方法. 在进程中运行新代码     用函数fork创建子进程后,如果希望在当前子进程中运行新的程序,可以调用exec函数执行另一个程序.当进程调用exec函数时,该进程用户空间资源(正文、数据、堆和栈)完全由新程序替代,新...

2018-09-12 09:42:00

阅读数 184

评论数 0

Xshell连接虚拟机失败的解决方法

    最近这一周由于自己的xshell突然连接不到虚拟机,在网上找了很多种方法也没能解决,以至于自己在学习很多知识的时候都没能很好的去验证,去尝试。最后在求助大佬的时候终于将xshell重新连接到了虚拟机!!        以下是我对xshell连接不到虚拟机的几种方法的总结,希望对大家能有帮...

2018-09-09 11:49:41

阅读数 1870

评论数 0

【Linux】进程的理解(二)

本文要讲解以下内容: 1.程序地址空间 2.fork()  /  vfork()函数   一.程序地址空间。 (1.)首先我们看一下C语言的内存空间分布图: (2.)接下来我们更加深度的理解以下进程的地址空间 1 #include<stdio.h&am...

2018-08-30 17:48:22

阅读数 140

评论数 0

【Linux】进程的理解(一)

本文将从以下方面来理解进程: 1.进程的概念 / 什么是进程。 2.如何查看进程 3.进程状态 / 状态修改 4.进程的优先级 5.环境变量   一.进程的概念 / 什么是进程       1.通俗来说,进程就是正在运行的一个程序。       2.内核观点:担当分配系统资源...

2018-08-21 13:55:32

阅读数 676

评论数 0

【Linux】了解根目录下每个文件的作用

       根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也不开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心档案、开机所需程序、 函式库等等档案数据,若系统出现错误时,根目录也必项要包括有能够修复文件系统的程序才行。 因为根目录...

2018-08-17 17:38:21

阅读数 997

评论数 0

Linux基础命令

命令 功能说明 线上查询及帮助命令 (2 个) man 查看命令帮助,命令的词典,更复杂的还有 info,但不常用。 help 查看 Linux 内置命令的帮助,比...

2018-04-19 13:19:39

阅读数 107

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭