
linux系统
文章平均质量分 94
主要分享关于unix/linux系统的相关技术知识,包括系统,内核知识;高级编程,设备驱动开发,高性能服务开发等内容
WRichards
技术小白的成长之路总是曲折的,多年的工作经历告诉我,总结才能升华,技术需要持之以恒的不断学习,既要有深度,也要有宽度,共勉之...
展开
-
计算机体系结构和操作系统基础
目录1 冯诺伊曼体系1.1 冯诺伊曼体系简介1.2 CPU 简介1.3 CPU 访问方式1.4 CPU 访问速度1.5 操作系统2 内存管理2.1 MMU2.2 内存管理方式3 进程管理3.1 进程基础知识3.2 PCB3.3 进程控制3.4 进程调度3.5 线程3.6 进程通信3.7 多线程编程4 文件管理4.1 VFS 虚拟文件系统4.2 文件组成4.3 文件存储5 输入输出管理5.1 设备控制器跟...原创 2021-03-06 14:27:41 · 1756 阅读 · 0 评论 -
TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免
TCP的拥塞控制1. 拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。...原创 2020-03-07 21:34:10 · 527 阅读 · 0 评论 -
计算机CPU工作(多核/缓存)原理
现代CPU一般使用缓存(Cache)来解决CPU读写主存慢的问题;使用多核来并行计算以加速程序运行。并行计算一般需要多线程技术,如何操作多线程对编程人员提出了挑战。计算机软硬件体系结构之前的文章PP鲁:计算机基础系列:源代码如何被计算机执行zhuanlan.zhihu.com已经提到,对于一段源代码,计算机主要依靠编译器将源代码转化为CPU可以执行的程序。那么,CPU到底是如...原创 2020-02-14 20:13:47 · 4982 阅读 · 0 评论 -
C++并发:原子操作、内存模型、内存屏障
首先内存模型到底描述的是一个怎样的问题,对此问题网上可谓是群魔乱舞,说什么的都有,我们来看看维基百科对此问题的定义[16]:内存一致性模型描述的是程序在执行过程中内存操作正确性的问题。内存操作包括读操作和写操作,每一操作又可以用两个时间点界定:发出(Invoke)和响应(Response)。在假定没有流水线的情况下(即单个处理器内指令的执行是按顺序执行的),设系统内共有N个处理器,每个处理器可发出个内存操作(读或写),那么总共有:种可能的执行顺序。原创 2023-11-27 11:36:18 · 1337 阅读 · 0 评论 -
C++中的new、operator new与placement new
new operator是我们常用的new。new 和 delete 是用来在 堆上申请和释放空间的 ,是 C++ 定义的 关键字,和 sizeof 一样。实际 new / delete 和 malloc / free 最大的区别是,前者对于 自定义类型 除了可以开辟空间,还会调用构造和析构函数分配内存,如果类A重载了operator new,那么将调用A::operator new(size_t )来完成,如果没有重载,就调用::operator new(size_t ),即全局new操作符来完成。原创 2023-11-27 11:32:17 · 1162 阅读 · 0 评论 -
常用IO模型【阻塞、非阻塞、多路复用、异步IO】详解
关于IO会涉及到阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO等几个知识点。知识点虽然不难但平常经常容易搞混,特此Mark下,与君共勉。1 阻塞跟非阻塞1.1 阻塞阻塞IO阻塞IO情况下,当用户调用read后,用户线程会被阻塞,等内核数据准备好并且数据从内核缓冲区拷贝到用户态缓存区后read才会返回。可以看到是阻塞的两个部分。 CPU把数据从磁盘读到内核缓冲区。 CPU把数据从内核缓冲区拷贝到用户缓冲区。 1.2 非阻塞非阻塞IO非阻.原创 2021-03-06 14:13:10 · 727 阅读 · 0 评论 -
详解常用I/O模型及I/O多路复用
详解常用I/O模型及I/O多路复用概述当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应。在这种情况下,服务器必须响应两个相互独立的I/O事件:1)网络客户端发起网络连接请求,2)用户在键盘上键入命令行。我们先等待哪个事件呢?没有哪个选择是理想的。如果在acceptor中等待一个连接请求,我们就不能响应输入的命令。类似地,如果在read中等待一个输入命令,我们就不能响应任何连接请求。针对这种困境的一个解决办法就是I/O多路复用技术。基本思路就是使用select函数原创 2021-03-06 14:12:32 · 285 阅读 · 0 评论 -
Linux设备驱动之tasklet----中断底半部机制
文章为本人学习笔记和总结,如有错误,请多多指教;引言:linux实现中断底半部的机制主要有tasklet、工作队列、软中断和线程化;本文先介绍下tasklet1、tasklettasklet是一个可以由系统决定的安全时刻的软中断上下文被调度的特殊函数;简言之就是tasklet的执行实在中断上下文中,执行时机通常是顶半部返回时;由于tasklet是在中断上下文中执行,因此task...原创 2018-11-15 14:07:07 · 393 阅读 · 0 评论 -
Linux设备驱动之workqueue----中断底半部机制
文章为本人学习笔记和总结,如有错误,请多多指教;引言:linux实现中断底半部的机制主要有tasklet、工作队列、软中断和线程化;本文主要介绍下工作队列---workqueue1、工作队列(workqueue)简介Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使...原创 2018-11-15 17:51:22 · 425 阅读 · 0 评论 -
cmake find_package 原理简介以及使用说明
原文:https://blog.youkuaiyun.com/chengde6896383/article/details/86497016下面简单介绍Cmake 如何使用find_package命令对外部库进行查找:cmake本身不提供任何关于搜索库的便捷方法,也不会对库本身的环境变量进行设置。它仅仅是按照优先级顺序在指定的搜索路径进行查找Findxxx.cmake文件和xxxConfig.cmak...转载 2019-07-30 14:22:18 · 781 阅读 · 0 评论 -
linux Shell的后台运行(&)与nohup
简述在shell脚本中当我们需要把一个任务放在后台运行时,通常我们会使用&符号:subcommand &此时主进程会继续往下执行,而子进程会在后台启动运行。于此同时,我们常会看到nohup会和后台任务一起使用,格式是:nohup subcommand &nohup在这里起了什么角色呢。nohupnohup起两个作用:正...转载 2020-02-28 16:08:06 · 795 阅读 · 0 评论 -
linux下详解shell中>/dev/null 2>&1
前言相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句。以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>&1 >/dev/null,出了一点小问题之后,我才开始去了解这段命令背后的“玄机”。shell重定向介绍就像我们平时写的程序一样,一段程序会处理外部的输入,然后将运算结果输出到...原创 2020-02-28 16:03:20 · 204 阅读 · 0 评论 -
嵌入式系统之bootloader简介
转载:https://blog.youkuaiyun.com/Set_Mode/article/details/91049861目录Bootloader 介绍什么是BootloaderBootloader的特点Bootloader的操作模式常用bootloader介绍U-boot介绍U-boot的特点:U-boot命令介绍printenv 显示所有环境变量set...转载 2019-06-13 10:15:03 · 2456 阅读 · 0 评论 -
linux之解决mysql忘记root用户登录密码
很多时候长时间不登陆mysql,再次登陆,忘记root密码,解决办法如下:问题描述如下:1、针对mysql5.6.x版本1)停止mysql服务:systemctl stop mysql.service 2)vim /etc/my.cnf:在该文件中添加如下代码:skip-grant-tables,保存退出3)重启mysql服务:systemctl start mys...原创 2018-12-05 11:17:39 · 338 阅读 · 0 评论