LINUX
文章平均质量分 63
pear_11
这个作者很懒,什么都没留下…
展开
-
Linux GDB调试
目录一、学习的知识点1.面试的问题1.1 基础问题:数组和链表的区别,进程间通信方式1.2 项目问题:如数据库怎么设计、遇到什么问题 如何解决1.3 扩展问题:如接入十万个客户端服务器还能运行嘛吗?2.数据包设计二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 1.面试的问题 1.1 基础问题:数组和链表的区别,进程间通信方式 1.2 项目问题:如数据库怎么设计、遇到什么问题 如何解决 1.3 扩展问题:如接入十万个客户端服务器还能运行嘛吗? 2.数据包设计 有定长包和不定长包 数据包原创 2021-04-11 17:55:35 · 73 阅读 · 0 评论 -
210314阶段三VS使用Linux 的sqlite3 API
目录一、学习的知识点1.聊天系统框架2.VS使用Linux sqlite3 API2.1 在项目->属性-> 链接器->命令行 处添加 -lsqlite32.2 在 项目->属性-> 链接器->输入 处添加 sqlite3 库依赖二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 1.聊天系统框架 2.VS使用Linux sqlite3 API 2.1 在项目->属性-> 链接器->命令行 处添加 -lsqlite3 2.原创 2021-03-15 19:02:16 · 152 阅读 · 1 评论 -
210312阶段三通过sqlite3源码安装sqlite3
目录一、学习的知识点1操作系统1.1PC1.2移动端2数据库2.1Linux下安装sqlite3处理器二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 1操作系统 1.1PC windows linux mac 1.2移动端 基于windows Wp wm 塞班 基于Linux Android 基于Mac iOS 2数据库 sqlite3 是数据库管理系统 包含 数据库管理系统(DBMS)相当于仓管员 数据库文件(xxx.db)相当于仓库 通过 DBMS操作文件 A原创 2021-03-13 19:01:58 · 129 阅读 · 0 评论 -
210307共享内存的读写
目录一、学习的知识点systemVPOSIX(可移植操作系统接口)是一种标准共享内存的读写二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 systemV msgget 消息队列 semget 信号量 P-1 V+1 操作 基于内核 用于进程间同步 shmget共享内存 POSIX(可移植操作系统接口)是一种标准 mq_open 消息队列 sem_init sem_post sem_wait 信号量 基于内存 用于线程间同步 pthread_mutex_init原创 2021-03-08 22:55:01 · 196 阅读 · 0 评论 -
210305设计共享内存
目录一、学习的知识点共享内存的设计共享内存 的头部信息共享内存的属性共享内存类共享内存类的构造函数二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 共享内存的作用: 进程间传递数据 数据量多时 起缓冲作用 应设计为先进先出 共享内存的设计 头部信息放到共享内存中 是为了方便 另一个进程 对 共享内存中数据的读写 共享内存 的头部信息 typedef struct shmhead { int blkssize;//每块多大 int blocks;//一共有多少块 int w原创 2021-03-06 15:12:27 · 104 阅读 · 0 评论 -
020303阶段三 I/O复用 select和epoll的文件描述符管理
目录一、学习的知识点1 五种 I/O1.1 阻塞式I/O1.2 非阻塞式I/O1.3 I/O复用(select 和pool)1.3.1 select 文件描述符的管理select 缺点epoll1.4 信号驱动I/O1.5 异步I/O二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 man 2 属于系统调用 read 系统调用 先到内核空间(操作系统层)取数据 ,存放到 buff(应用层 用户空间) 1 五种 I/O 1.1 阻塞式I/O 通过read系统调用 到内核空间读取数据到用户原创 2021-03-04 14:20:07 · 132 阅读 · 1 评论 -
210228Linux 条件变量 线程池
目录一、学习的知识点实际应用把服务器分为两个进程1.前置服务器1.1方案1 来一个客户端开一个线程1.2方案2 线程池2.后置服务器二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 实际应用把服务器分为两个进程 1.前置服务器 接收客户端的消息 -》 写到共享内存 发送消息给后置服务器 -》通知后置服务器取数据 1.1方案1 来一个客户端开一个线程 如果一个任务处理一个线程,一个线程处理完一个任务就结束,那么频繁接入任务就要频繁创建线程,比较耗时间. 优点:简单粗暴、奢侈 缺点:奢原创 2021-03-01 15:09:39 · 80 阅读 · 0 评论 -
210226阶段三 systemV信号量
目录一、学习的知识点服务器前置服务器(接入服务器)后置服务器(业务处理服务器)systemV信号量二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 线程属于POSIX线程 互斥锁、信号量属于POSIX信号量 在进程内部使用 systemV信号量: semget shmget 在进程间使用 通过ipcs查看的都是systemV系列 信号量都是对一个数字进行加一减一的操作,信号量为 0 时,若进行减一,则阻塞在此, systemV系列的P操作对信号量减1,V操作对信号量加1 服务器原创 2021-02-27 13:56:10 · 76 阅读 · 0 评论 -
210224阶段三信号量、互斥锁
目录一、学习的知识点PCB和进程PCB包括进程线程进程和线程信号量和互斥锁应用场景二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 ls -a 显示隐藏文件 cd ~ 回到home目录 每个文件夹都有两个隐藏目录 一个是 ./ 一个是 …/ 加深了我对Linux 万物文件 的理解(普通文件、目录、设备、套接字) PCB和进程 进程与进程控制块(PCB process control block)是一一对应的。系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述原创 2021-02-25 22:05:20 · 144 阅读 · 0 评论 -
210221阶段三线程、信号量、互斥锁
目录一、学习的知识点程序如何运行起来CPU时间片轮转进程切换开销大吗线程线程函数库pthread_create函数线程同步信号量sem_init函数sem_wait函数sem_post函数互斥量生产者消费者模型生产者消费者二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 双击运行一个可执行文件时 创建一个进程。 向操作系统申请一个进程,对32位系统来说 一个进程内存最大占 4G 2^32 把数据从硬盘 “拷贝/加载” 到进程的空间。 数据从一个存储器/硬盘(慢) 到 另外一个存储器/原创 2021-02-21 20:46:06 · 74 阅读 · 0 评论 -
210108阶段三进程管理,多进程编程
目录一、学习的知识点多进程程序和进程的区别所有的操作系统都支持运行多任务进程控制块PCB多进程编程二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 多进程 操作系统中有很多运行的程序 如office WPS qq。通过网络下载并安装得到.exe文件 程序和进程的区别 程序时静态的,以文件的形式存在 程序是动态的,有生命周期 操作系统由很多个进程组成 每个进程要想运行起来,都要被操作系统管理,每个进程都有自己的进程编号PID PID 保存了进程重要信息的结构体 所有的操作系统都支原创 2021-01-09 10:55:04 · 231 阅读 · 0 评论 -
程序、进程、线程
目录程序空间分配进程内存分配程序和进程的区别程序运行成为进程的过程进程和线程线程进程和线程的区别参考材料 程序空间分配 站在高级语言的角度,根据APUE(Advanced Programming in the UNIX Environment UNIX环境高级编程),一个程序分为如下段: text:代码段,可执行指令的集合,在内存中被映射为只读,存放代码和常量 data:初始化后数据的集合,存放在memory的可写空间内,存放已初始化的全局变量、静态变量、局部静态变量。 bss:全局未初始化变量、静态未初原创 2021-02-26 00:00:37 · 92 阅读 · 0 评论 -
Linux umask 文件默认权限
一、umask是什么 登录系统以后创建的一个文件会有一个默认权限。umask的作用就是设置用户创建文件或者目录的默认权限。umask设置的是权限的补码,我们常用的chmod设置的是文件权限码。一般在/etc/profile、home/.profile设置umask值 二、umask的作用 umask的作用是用来控制默认权限的。首先了解一下基本权限 2.1Linux文件权限 r w x 文件 可以查看文件内容(可读) 可以修改文件(可写) 可以吧文件启动为一个运行的程序(可执行) 目录原创 2021-01-20 16:32:52 · 487 阅读 · 0 评论 -
201103阶段二linux gdb调试与ftp配置
调试 gcc hello.c -o hello -g gdb hello b 2 //打断点 r //运行 n //单步调试 Ctrl d //退出 y //是原创 2020-11-04 18:54:44 · 75 阅读 · 0 评论 -
201101shell脚本
一个程序有多个源文件,编译时需要编译多次,把源程序封装成库,.so文件由多个.o文件构成 目录一、学习的知识点二、上课没有听懂或者没有理解的地方三、当天学习的收获四、作业的思路、不会的地方 一、学习的知识点 ##shell shell脚本以#!开头 #!/bin/bash #------- #第一个sh脚本 #作者: #----- echo_helloworld echo_'hello' echo_"world" 二、上课没有听懂或者没有理解的地方 三、当天学习的收获 四、作业的思路、不会的地方原创 2020-11-03 18:47:45 · 73 阅读 · 0 评论 -
201029阶段二Linux动态库、makefile
目录一、学习的知识点二、上课没有听懂或者没有理解的地方三、当天学习的收获 一、学习的知识点 二、上课没有听懂或者没有理解的地方 对动态库的链接还有些不懂 三、当天学习的收获 初步了解了动态库的创建和makefile ...原创 2020-10-30 15:39:58 · 75 阅读 · 0 评论 -
Linux tar vi gcc 指令
原创 2020-10-28 18:07:30 · 86 阅读 · 0 评论 -
201024阶段二Linux
目录一、学习的知识点Linux搭载环境虚拟机安装系统安装熟悉系统的使用能够在系统上做一些简单的编程二、上课没有听懂或者没有理解的地方三、当天学习的收获四、作业的思路、不会的地方五、其他需要反馈的问题六、心得体会 一、学习的知识点 Linux操作系统 Qt sqlite3 ffmpeg XMind8 思维导图 Linux 搭载环境 虚拟机安装 系统安装 熟悉系统的使用 查看目录 ls 切换目录 cd tab 自动补全 切换到管理员 sudo su 创建文件夹 mkdir 目录 创建多个目录 mkdir 目录原创 2020-10-26 00:01:33 · 82 阅读 · 0 评论