自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 字符设备和块设备的区别

设备文件分为Block Device Driver和Character Device Drive两类。Character Device Drive又被称为字符设备或裸设备raw devices; Block Device Driver通常成为块设备。而Block Device Driver是以固定大小长度来传送转移资料 ;Character Device Driver是以不定长度的字元传送资料 。且所连接的Devices也有所不同,Block Device大致是可以随机存取(Random Access)资料

2021-12-27 20:04:35 2043

原创 [Linux性能调优] 磁盘I/O队列调度策略

傻瓜化说明简单地说,对于磁盘I/O,Linux提供了cfq, deadline和noop三种调度策略cfq: 这个名字是Complete Fairness Queueing的缩写,它是一个复杂的调度策略,按进程创建多个队列,试图保持对多个进程的公平(这就没考虑读操作和写操作的不同耗时) deadline: 这个策略比较简单,只分了读和写两个队列(这显然会加速读取量比较大的系统),叫这个名字是内核为每个I/O操作都给出了一个超时时间 noop: 这个策略最简单,只有单个队列,只有一些简单合并操作

2021-12-27 14:04:14 2258

原创 操作系统——读者写者问题

一、问题描述要求:1、允许多个读者可以同时对文件执行读操作。2、只允许一个写者往文件中写信息。3、任一写者在完成写操作之前不允许其他读者或写者工作。4、写者执行写操作前,应让已有的读者和写者全部退出。二、问题分析读者写者问题最核心的问题是如何处理多个读者可以同时对文件的读操作。三、如何实现semaphore rw = 1; //实现对文件的互斥访问int count = 0;semaphore mutex = 1;//实现对count变量的互斥访..

2021-12-27 13:55:30 6304

原创 写时复制技术(COW)

写入时复制(Copy-on-write)是一个被使用在程序设计领域的最佳化策略。其基础的观念是,如果有多个呼叫者(callers)同时要求相同资源,他们会共同取得相同的指标指向相同的资源,直到某个呼叫者(caller)尝试修改资源时,系统才会真正复制一个副本(private copy)给该呼叫者,以避免被修改的资源被直接察觉到,这过程对其他的呼叫只都是通透的。此作法主要的优点是如果呼叫者并没有修改该资源,就不会有副本(private copy)被建立。第一代Unix系统实现了一种傻瓜式的进程创建:当.

2021-12-27 13:47:45 681

原创 网络七层协议的形象说明

第一层,物理层OSI模型最低层的“劳苦大众”。它透明地传输比特流,就是传输的信号。该层上的设备包括集线器、发送器、接收器、电缆、连接器和中继器。第二层,数据链路层这一层是和包结构和字段打交道的和事佬。一方面接收来自网络层(第三层)的数据帧并为物理层封装这些帧;另一方面数据链路层把来自物理层的原始数据比特封装到网络层的帧中。起着重要的中介作用。数据链路层由IEEE802规划改进为包含两个子层:介质访问控制(MAC)和逻辑链路控制(LLC)。智能集线器、网桥和网络接口卡(NIC)等就驻扎在这一层。但.

2021-12-25 21:51:14 203

原创 从硬盘开始,一步步认识linux的文件系统

Linux上的文件系统一般来说就是EXT2或EXT3,但这篇文章并不准备一上来就直接讲它们,而希望结合Linux操作系统并从文件系统建立的基础——硬盘开始,一步步认识Linux的文件系统。1.机械硬盘的物理存储机制现代计算机大部分文件存储功能都是由机械硬盘这种设备提供的。(现在的SSD和闪存从概念和逻辑上都部分继承自机械硬盘,所以使用机械硬盘来进行理解也是没有问题的)机械硬盘能实现信息存储的功能基于:磁性存储介质能够被磁化,且磁化后会长久保留被磁化的状态,这种被磁化状态能够被读取出来,同时这种磁

2021-12-25 20:04:53 272

原创 在linux文本流中,如何使用管道连接多个进程?

我们在Linux信号基础中已经说明,信号可以看作一种粗糙的进程间通信(IPC, interprocess communication)的方式,用以向进程封闭的内存空间传递信息。为了让进程间传递更多的信息量,我们需要其他的进程间通信方式。这些进程间通信方式可以分为两种:管道(PIPE)机制。我们提到可以使用管道将一个进程的输出和另一个进程的输入连接起来,从而利用文件操作API来管理进程间通信。在shell中,我们经常利用管道将多个进程连接在一起,从而让各个进程协作,实现复杂的功能。 传统IPC (int

2021-12-25 16:48:27 579

原创 linux系统中文件和目录的访问许可权限是什么

一些重要的Page指令虽然Page公开了很多属性,让我们可以在运行时调整它的状态与行为,但是,还有些重要的参数却是以“指令”方式提供的,需要在设计时就指定。下面是我整理的一些我认为 比较重要并且经常需要使用 的指令:@ Page 指令 Async 指示页面要不要以异步页的方式运行。默认值为 false。 注意:如果需要开发一个异步页,必须要设置这个指令属性,以便在编译页面时实现IHttpAsyncHandler接口。 AsyncTimeOut 定义在处理异步任务时使用的超

2021-12-25 15:51:51 299

原创 Linux文件夹文件创建、删除

Linux删除文件夹命令 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字删除目录、文件 rm(remove)功能说明:删除文件或目录。语  法:rm[-dfirv][--help][--version][文件或目录...]补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。参  数: -...

2021-12-25 13:57:04 520

原创 linux文件操作篇打开和关闭文件

2.1 打开文件和关闭文件 #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h> 头文件 int open(const char *pathname, int flags); 打开一个文件 intclose(int fildes); 关闭一个文件 1.打开文件int open(const char *pathname, int f..

2021-12-25 13:45:48 3050

原创 B树和B+树的插入、删除图文详解

1. B树1. B树的定义B树也称B-树,它是一颗多路平衡查找树。我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。一颗m阶的B树定义如下:1)每个结点最多有m-1个关键字。2)根结点最少可以只有1个关键字。3)非根结点至少有Math.ceil(m/2)-1个关键字。4)每个结点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都大于它。5)

2021-12-24 16:54:48 1026 1

原创 Linux 内核空间与用户空间

对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间划分为两部分,一部分为内核空间,另一部分为用户空间。针对 Linux 操作系统而言,最高的 1G 字节(从虚拟地址 0xC0000000

2021-12-24 15:54:19 326

原创 nodejs中的fs文件系统的使用方法及实例

在nodejs中,可以通过fs(file system)模块进行文件的I/O操作。下面进行fs文件系统的使用实例:1、模块调用声明:var fs= require('fs'); var path = require('path');fs为文件模块,path为系统路径模块。2、可以使用writeFile方法,将数据写入文件到某个文件夹下。fs.writeFile(filename, data, [options], callback)filename为具体的文件保存路径地.

2021-12-24 14:45:26 855

原创 linux内核数据结构之kfifo

1、前言  最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟发送。为了保证进程A减少等待时间,可以在A和B之间采用一个缓冲区,A每次将数据存放在缓冲区中,B每次冲缓冲区中取。这是典型的生产者和消费者模型,缓冲区中数据满足FIFO特性,因此可以采用队列进行实现。Lin

2021-12-24 13:51:02 270

原创 细说文件读写操作(读写锁)

开发过程中,我们玩玩需要大量与文件交互,读文件,写文件已成家常便饭,本地运行完美,但一上到投产环境,往往会出现很多令人措手不及的意外,或开发中的烦恼,因此,我对普通的C#文件操作做了一次总结,问题大部分如下:1:写入一些内容到某个文件中,在另一个进程/线程/后续操作中要读取文件内容的时候报异常,提示System.IO.IOException: 文件“XXX”正由另一进程使用,因此该进程无法访问此文件。2:在对一个文件进行一些操作后(读/写),随后想追加依然报System.IO.IOExcepti..

2021-12-24 13:39:32 894

原创 分布式缓存架构示例参考资料分享总结

一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:1、字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。2、块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。  每一个字符设备或块设备都在/dev目录下对应一个设备文件。linux用户程序通过设备文件(或称设备节点)来使用驱动程序操作字符设备

2021-12-23 22:23:21 173

原创 浅谈wpf中的路由事件

路由事件简介  谈到路由事件,我想首先我们就需要问自己一个问题。在.net已经支持事件的情况下,为什么WPF还额外提供了对路由事件的支持?这是因为在WPF开发模型下,原始的CLR事件已经不能满足开发的要求,从而导致对事件的处理异常繁琐:  首先就是控件的封装。WPF中,我们可以将一个控件作为另一个控件的子控件,从而呈现丰富的效果。例如我们可以在一个Button中包含一个图像。在这种情况下,对图像的点击实际上应该是对按钮的点击。正因为如此,我们期望真正触发被点击事件的控件是Button,而不是嵌在其中

2021-12-23 16:26:49 701

原创 缓存在分布式应用:缓存架构示例参考资料分享总结

缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。本文是缓存在分布式应用第二篇文章,介绍分布式缓存,Memcache,Redis,本地缓存(硬盘缓存,内存缓存)以及缓存在分布式系统中的架构示例。本文主要是自己的学习总结和网络文章摘录,供学习之用。本次分享大纲缓存概述 CDN缓存 反向代理缓存 分布式缓存 本地缓存 缓存架构示例 参考资料 分享总结四、分布式缓存CDN,反向代理缓存,主要解决静态文件,或用户请求资源的缓

2021-12-23 15:42:38 269

原创 cpu高速缓存(cachememory)与多级缓存一致性协议

CPU高速缓存(Cache Memory)CPU为何要有高速缓存CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。这就造成了高性能能的内存和硬盘价格及其昂贵。然而CPU的高度运算需要高速的数据。为了解决这个问题,CPU厂商在CPU中内置了少量的高速缓存以解决I\O速度和CPU运算速度之间的不匹配问题。在CPU访问存储设备时,无论是存取数据抑或存取指令,都趋于聚集在一片连续的区域中,这就被称为局部性原理。时间局部性(Temporal Locali

2021-12-23 14:33:41 400

原创 提高程序性能、何为缓存——从存储器结构说起

存储器层次结构我们知道,计算机里的存储器有:硬盘、主存、高速缓存(其中又有一级高速缓存、二级高速缓存等等)、在往上就是寄存器。存储器在计算机内部的组织方式如下图所示:相信上图大家并不陌生。wiki对The memory hierarchy 的介绍的时候也有此图。我们发现,越往上,存储器的容量越小、成本越高、速度越快。为什么会出现这样的结构呢?早起的存储器层次结构只有三层:cpu寄存器、DRAM主存以及磁盘存储。由于CPU和主存之间巨大的速度差异,系统设计者被迫在CPU寄存器和主存

2021-12-23 14:07:35 197

原创 ssh登陆失败,客户端吐出错误信息,是bash的锅?

前段时间业务反映某类服务器上更新了 bash 之后,ssh 连上去偶发登陆失败,客户端吐出错误信息如下所示:图 - 0该版本 bash 为部门这边所定制,但是实现上与原生版并没有不同,那么这些错误从哪里来?是 bash 的锅吗从上面的错误信息可以猜测,异常是 bash 在启动过程中分配内存失败所导致,看起来像是某些情况下该进程错误地进行了大量内存分配,最后导致内存不足,要确认这个事情比较简单,动态内存分配到系统调用这一层上主要就两种方式: brk() 和 mmap(), 所以只要统计一

2021-12-23 13:52:52 170

原创 计算机基础知识:smp、numa、对称多处理系统

1. SMP(Symmetric Multi-Processor) SMP (Symmetric Multi Processing),对称多处理系统内有许多紧耦合多处理器,在这样的系统中,所有的CPU共享全部资源,如总线,内存和I/O系统等,操作系统或管理数据库的复本只有一个,这种系统有一个最大的特点就是共享所有资源。多个CPU之间没有区别,平等地访问内存、外设、一个操作系统。操作系统管理着一个队列,每个处理器依次处理队列中的进程。如果两个处理器同时请求访问一个资源(例如同一段内存地址),由硬件、软件的

2021-12-22 19:57:29 678

原创 Linux进程优先级系统——设置实时进程优先级

前言最近研发的产品出了点小bug,最后查到根本原因是,其中一个进程A使用基于FIFO的实时进程优先级,而另一个进程B是使用普通调度的进程优先级,而A和B两个进程是互相通信的,进程B会被饿死,而进程A也不能正常工作。分析问题过程中查找了一些资料,以下记录一些特别注意的点。Linux进程调度的三种策略(1)SCHED_OTHER,分时调度策略(2)SCHED_FIFO,实时调度策略,先到先服务(3)SCHED_RR,实时调度策略,时间片轮转由于相关内容比较多,本人也末必比别人讲得更清楚.

2021-12-22 19:48:11 1270

原创 unix环境高级编程:孤儿进程和僵尸进程的理解

1、前言  之前在看unix环境高级编程第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。当一个 进程完成它的.

2021-12-22 15:51:00 73

原创 MIPS 汇编指令学习

 MIPS汇编语言基础MIPS的系统结构及设计理念比较先进,其指令系统经过通用处理器指令体系MIPS I、MIPS II、MIPS III、MIPS IV、MIPS V,以及嵌入式指令体系MIPS16、MIPS32到MIPS64的发展。  MIPS32的架构是一种基于固定长度的定期编码指令集,并采用导入/存储(load/store)数据模型。经改进,这种架构可支持高级语言的优化执行。在路由器中,经常使用的一种MIPS架构就是MIPS32。MIPS寄存器  RISC的一个显著特点就是大量使用.

2021-12-22 13:54:37 1799

原创 以一个简单的查询存储过程为例,简单说一下sql的几种写法

最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种写法孰优孰劣,该选用那种写法,以及各种写法优缺点,本文以一个简单的查询存储过程为例,简单说一下各种写法的区别,以及该用那种写法专业DBA以及熟悉数据库的同学请无视。废话不多,上代码说明,先造一个测试表待用,简单说明一下这个表的情况类似订单表,订单表有订单ID,客户ID,订单创建时间等,查询条件是常用的订单ID,客户ID,以及订单创建时间create table SaleOrder(

2021-12-22 13:43:21 706

原创 什么是dell阵列卡(raid卡)?raid卡概述

一、RAID卡概述  1、DELL阵列卡(RAID卡)  RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。  组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。  集中管理思想:资源整合,用统一标准进行管理  2、基本作用:  网站数据量很大的时

2021-12-21 16:46:41 3143

原创 linuxfree命令显示系统内存的使用状况

free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。如果加上 -h 选项,输出的结果会友好很多:有时我们需要持续地观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数:$ free -h -s 3buff/cache由于 free 命令本身比较简单,所以本文的重点会放在如何通过 free 命令了解系统当前的内存使用状况。输出简介下面先解释一下输出的内容:Mem 行(第二行)是内存的使用情况。Swap 行(第三行)是交换空间的

2021-12-21 15:27:05 509

原创 为什么说虚拟内存是计算机系统最重要的概念?

我不知道有多少人听过虚拟内存这个概念,但是虚拟内存是计算机系统最重要的概念之一,并且它成功的主要原因就是它一直在沉默的,自动的工作,换句话说,我们这些做应用的程序员根本不需要干涉它的工作过程,但是一个没追求的码农不是好的搬砖民工,所以作为一个有理想有抱负的程序员,我们还是要去理解虚拟内存,甚至可以这样说,如果不理解虚拟内存,你根本不可能理解程序的深层次运行原理。也不可能去理解汇编器,链接器,加载器,共享对象,文件和进程等概念。物理和虚拟寻址在访问者看来,主存就是一个有M个字节大小的单元组成的数组,每

2021-12-21 14:34:29 166

原创 从零开始学编程——段式存储管理与页式存储

一、段式存储管理1、分段进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址。内存分配规则:以段为单位进行分配,每个段在内存中占连续空间,但各段之间可以不相邻。分段系统的逻辑地址结构由段号(段名)和段内地址(段内偏移量)所组成。2、段表每一个程序设置一个段表,放在内存,属于进程的现场信息3、地址变换4、段的保护越界中断处理 进程在执行过程中,有时...

2021-12-21 14:13:36 568

原创 分页存储管理:分区式存储管理最大的缺点是什么?

分区式存储管理最大的缺点是碎片问题严重,内存利用率低。究其原因,主要在于连续分配的限制,即它要求每个作用在内存中必须占一个连续的分区。如果允许将一个进程分散地装入到许多不相邻的分区中,便可充分地利用内存,而无需再进行“紧凑”。基于这一思想,产生了“非连续分配方式”,或者称为“离散分配方式”。连续分配:为用户进程分配的必须是一个连续的内存空间。非连续分配:为用户进程分配的可以是一些分散的内存空间。分页存储管理的思想:把内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分。

2021-12-21 13:58:06 2278

原创 内存条:程序运行中内存的作用以及如何与cpu、os交互

首先给大家讲个段子:2015年开网吧,买了 DDR4 8g 内存条400多根,一根180块,今年2017年,网吧赔了20多万,昨天我把网吧电脑全卖了。内存条600一根,居然赚回了我网吧的钱,感谢三星,感谢人民,感谢党。。。今年以来,内存条价格暴涨,已经跃升为新的新一代理财产品,所以今天就和大家讨论一下内存的话题,主要内容就是在程序运行过程中,内存的作用以及如何与CPU,OS交互。我们先来讨论:计算机的运行究竟是在做什么?来看一下经典的冯诺依曼结构。计算机科学虽然飞速发展了几十年,但是依旧遵循

2021-12-20 19:58:02 735 1

原创 内存管理——程序运行过程中内存的作用以及如何与cpu、os交互

今年以来,内存条价格暴涨,已经跃升为新的新一代理财产品,所以今天就和大家讨论一下内存条的话题,主要内容就是在程序运行过程中,内存的作用以及如何与CPU,OS交互。我们先来讨论:计算机的运行究竟是在做什么?来看一下经典的冯诺依曼结构。计算机科学虽然飞速发展了几十年,但是依旧遵循冯诺依曼结构。冯诺依曼结构图1:冯诺依曼结构数学家冯诺依曼提出的 体系结构包含以下几个要点:把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 计算机的数制采用二进制。 计算机应该按照程序

2021-12-20 17:59:19 779

原创 linux系统下,我也用虚拟机——linux虚拟机随笔

前言##是时候聊一下虚拟机了,因为我们后面即将聊的 Linux 玩法,包括硬盘分区以及在同一块硬盘上安装多个 Linux 发行版、在 X86 的实模式下运行 16 位的程序、探索 Grub 和 Linux 纯字符模式等等,要截图和录像的话,必须借助于虚拟机。说起虚拟机,大家都不陌生。需要使用虚拟机的场景也非常的多,对于有志于写操作系统的同志,往往需要一个虚拟机来运行和调试他写的系统;对于喜欢研究网络体系结构的朋友,往往需要在自己的电脑上虚拟出 N 个系统组成各种各样的网络。(这个需要电脑的配置够强大

2021-12-20 15:14:20 3249 1

原创 从负载均衡到软件负载,lvs是神马东西

一、负载均衡:必不可少的基础手段1.1 找更多的牛来拉车吧  当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车。  在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合..

2021-12-20 13:45:07 434

原创 了解事务和锁事务:保持逻辑,一致性与可恢复性,必不可少的利器

了解事务和锁事务:保持逻辑数据一致性与可恢复性,必不可少的利器。锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写。死锁:是数据库性能的重量级杀手之一,而死锁却是不同事务之间抢占数据资源造成的。不懂的听上去,挺神奇的,懂的感觉我在扯淡,下面带你好好领略下他们的风采,嗅査下他们的狂骚。。先说事务--概念,分类用华仔无间道中的一句话来给你诠释下:去不了终点,回到原点。举例说明:在一个事务中,你写了2条sql语

2021-12-16 16:48:58 164

原创 从一幅图中了解开源世界

从一幅图中了解开源世界之前看到一幅有趣的图片,觉得很好玩,我第一眼就看到那只大恐龙,一下就想到火狐 做WEB开发都应该知道吧,调试很方便,还认出了他们喝的咖啡那就是java本人很喜欢java的logo也才曾经画过, 还认识那只企鹅linux,其他的就不认识了,我把这张图片发到微博问去了果然有大神,而且回答得好详细,我觉得很好决定整理一下.从上开始介绍墙上大胡子的照片理查·马修·斯托曼(Richard Matthew Stallman,简称rms,1953年3月16日-)是

2021-12-16 15:50:01 256

原创 linux基础命令-创建、删除文件和文件夹

今天学习了几个命令,是创建、删除文件和文件夹的,在linux里,文件夹是目录,下面说下我学习的命令。创建文件夹【mkdir】一、mkdir命令使用权限所有用户都可以在终端使用 mkdir 命令在拥有权限的文件夹创建文件夹或目录。二、mkdir命令使用格式格式:mkdir [选项] DirName三、mkdir命令功能通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限(

2021-12-16 13:53:05 466

原创 linux内核体系结构详解

关于linux内核体系结构说到操作系统,我们都会知道windows操作系统,linux操作系统,苹果的iOS操作系统,以前很火的塞班操作系统,还有最近消费类电子很火的Android操作系统。一个完整的操作系统分为4个部分。可以把这个理解为我们用的手机。其中的硬件系统就是我们看到的整个手机了,cpu啊,内存啊,这些拆开来看不到的,和触摸屏啊,按键之类的都可以看到的。操作系统内核就是我们说的android了,不过他包括了linux的内核了。操作系统服务就是android的一套结构了,给我们直观的

2021-12-15 15:13:24 3018

原创 不同的linux发行版的分析

Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。商业版本以Redhat为代表,开源社区版本则以debian为代表。这些版本各有不同的特点,在不同的应用领域发挥着不同的作用,不能一概而论。而绝大多数VPS上只提供开源社区维护的发行版本。下面就这些不同的Linux发行版进行简单的分析。UbuntuUbuntu近些年的粉丝越来越多,Ubuntu有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,Ubuntu还对大多数硬件有

2021-12-15 15:10:09 247

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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