本专区由 开发技能 团队提供资讯和技术支持,欢迎社区成员申请加入管理小组。
行走代码江湖,怎能没有一把趁手的兵器?本专区包括开发者工具、极客技能、开发库、文档、应用开发、操作系统、编码工具等。
本专区由 开发技能 团队提供资讯和技术支持,欢迎社区成员申请加入管理小组。
2002 年,莫斯科当地时间 4 月 25 日 9 时 26 分,满载着补给和 3 名宇航员的“联盟-TM 号”航天飞船在“联盟 U”火箭的推进下飞往国际空间站。同行的三人中,年仅 28 岁的马克·沙特尔沃思(Mark Shuttleworth)格外引人注目,因为他是人类历史上第一位进入太空的非洲公民,同时也是首位进入太空的开源社区成员。 非洲的“太空英雄” 作为比马斯克和贝佐斯都更早实现太空梦想的企业家,沙特尔沃思的前半生俨然一部爽文男主剧本... 展开更多
背景:性能之战 “不服跑个分”已经沦为手机行业的调侃用语,但是实话实说,在操作系统领域“跑分”确实是最重要的评价方式之一。比如 Linux 内核社区常常以跑分软件得分,来评价一个优化补丁的价值。甚至还有 phoronix 这样专注于 Linux 跑分的媒体。而且今天我还想说一点,让软件跑分高,这是实力的体现,是建立在对内核的深刻理解基础上的。本文的故事就源于一次日常的性能优化分析。我们在评估自动化性能调优软件 tuned 的时... 展开更多
### 前提概要 - **su、sudo、sudo su、sudo -i 的用法和区别?** - **su root 和 su - root 有什么区别?** ### 身份提权 - `su` **只能获得root的执行权限,不能获得环境变量**。 - `su -` **是切换到 root 并获得 root的环境变量及执行权限**。 > **注:用户切换工具(su 和 su - 这两个切换用户是有区别的。)** - su 命令 和 su - 命令最大的本质区别就是: - **前者只是切换了root身份,但Shell环境仍然是普通用户的Shell**... 展开更多
### 内容简介 > **Linux技术专题,主要介绍相关,针对于Linux开发和知识体系的必备开发技能以及基础常识,是开发者必备的知识体系和方法论。** ### 什么是用户、用户组 #### Linux用户 > **Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。** - **用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统... 展开更多
大家好,我是小富~ 最近发现点好玩的工具,迫不及待的想跟大家分享一下。 大家平时都怎么查`Linux`日志呢? 像我平时会用`tail`、`head`、`cat`、`sed`、`more`、`less`这些经典系统命令,或者`awk`这类三方数据过滤工具,配合起来查询效率很高。但在使用过程中有一点让我比较头疼,那就是命令参数规则太多了,记的人脑壳疼。 那查日志有没有一种通用的方式,比如用SQL查询,毕竟这是程序员都比较熟悉的表达式。 今天分享的工具... 展开更多
▲ 点击上方“架构精进之路”关注公众号 回复“01”领取「程序员进阶大礼包」 这是「架构精进之路」公众号的第67篇原创文章 我们作为“码农”,每天都在接触编程,接触linux系统,那么常见的Linux目录和文件都有哪些,它们又有什么作用呢? 想必大家经常会忽略这点,作为工作多年的你而言也不例外,今天就带大家来一起了解一下吧~ 1 初识目录结构 2 初识文件 2.1 文件类型 2.1.1 文件 第一个属性为 [-]。最常用的类型,包括: ... 展开更多
今天,我们来介绍一下 Linux 对虚拟内存空间管理的细节。 之前我们说过,在 32 位的操作系统中,每个进程都拥有 4GB 的虚拟内存空间。Linux 根据功能上的差异,把整个虚拟内存空间划分为多个不同区间,称为 段。 我们先来看看 Linux 进程虚拟内存空间的布局图,如图 1 所示: 上图展示了 Linux 进程的虚拟内存空间布局情况,我们只关注 用户空间 的布局。 从上图可以看出,进程的用户空间大小为 3GB。Linux 按照功能上的差异,把... 展开更多
本文基于RockPI 4A单板Debian系统Linux 4.4内核DRM框架介绍HDMI接口 EDID获取方法。 一、EDID介绍 EDID(Extended display identification data):扩展显示器识别数据,一般存储在显示器的EEPROM中。 在EDID1.0->EDID1.3版本中,EDID的容量是128Byte,从EDID1.3版本以后,数据容量扩展到256Byte。 一般通过DDC(或I2C)通道读取EDID,从设备地址是0x50。 EDID1.3版本的数据结构见下图: 二、EDID获取 应用程序调用libdrm代码中的... 展开更多
本文基于RockPI 4A单板Linux4.4内核介绍中断初始化流程。 一、内核中断初始化 文件:kernel\init\main.c。 Linux内核中断初始化流程如下: start_kernel()-> init_IRQ()-> irqchip_init()-> of_irq_init(__irqchip_of_table) ## 扫描和初始化设备树中的中断控制器("interrupt-controller") __irqchip_of_table在RK3399中断控制器GICv3初始化时赋值。 二、中断控制器初始化 文件:drivers/irqchip/i...... 展开更多
Linux内核中实现工作推后执行的方法有:软中断、tasklet和工作队列(work queue)。 本文介绍工作队列的简单用法。 一、工作任务定义 Linux内核中的工作队列包括:共享工作队列和自定义工作队列。区别如下: 1)共享工作队列:将新创建的工作任务添加到Linux内核创建的全局工作队列system_wq中; 2)自定义工作队列:将新创建的工作任务添加到自己创建的工作队列中; 1、共享工作队列 1)、静态定义 宏:DECLARE_WORK(n, f),文... 展开更多
大家好,我是肖邦,这是我的第 15 篇原创文章。 当我们频繁使用 Linux 命令行时,有效地使用历史记录,可以大大提高工作效率。 在平时 Linux 操作过程中,很多命令是重复的,你一定不希望大量输入重复的命令。如果你是系统管理员,你可能需要对用户操作进行审计,管理好 Linux 命令历史记录显得非常重要。 今天我们来介绍一下,在 Linux 使用 history 来减少重复命令的几个实用技巧。 1 基本原理 Linux 命令的历史记录,会持久化... 展开更多
大家好,我是肖邦,这是我的第 12 篇原创文章。 我们知道 Linux 三剑客,它们是 grep、sed、awk。在前边已经讲过 grep 和 sed,没看过的同学可以直接点击阅读,今天要分享的是更为强大的 awk。 sed 可以实现非交互式的字符串替换,grep 能够实现有效的过滤功能。与两者相比,awk 是一款强大的文本分析工具,在对数据分析并生成报告时,显得尤为强悍。 awk 强大的功能,是一般 Linux 命令无法比拟的。在本文中,我不会告诉你 aw... 展开更多
Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的。LFS 基于这样的假设,即一部分一部分地编译完整的操作系统不仅能够揭示操作系统是如何工作的,也允许独立的操作人员为速度、内存占用或安全性而构建系统。 许多作家已经编写了有关 UNIX 风格的书籍,深入研究了调度、内存管理、多进程和线程、文件系统,以及用户与内核之间的交互。写作 Linux 书籍的作家相对于 UNIX 作家来说有一个优... 展开更多
一.前言 当我们接手了一台或者几台服务器的时候,首先我们有必要对服务器的基本配置有所认识,这样才可以对症下药,对以后的软件部署,系统运维会有事半功倍的效果。 二.关于服务器基本配置 查询服务器的基本配置一般查询操作系统,CPU,内存,硬盘,下面进行逐一讲解。 2.1 操作系统基本配置查询 查看操作系统版本 #cat /etc/redhat-release这个命令主要是查看红帽发行的操作系统的版本号 [root@node5 ~]# cat /etc/redhat...... 展开更多
背 景 简 介 放了好久的 Ubuntu18.04 没打开使用,最近打开发现有些文件找不到路径,也懒得去找哪里错了,刚好最新的 Ubuntu20.04 已经出来了,干脆重新装一个最新版本的得了。 话不多说,开干! 准备工作 Windows 10 专业版,64 位操作系统; VMware15 Pro,版本:15.0.0 build-10134415; Ubuntu 版本:ubuntu-20.04.1-desktop-amd64.iso 安装过程记录 打开 VMware15 软件,选择创建新的虚拟机; image-202008231657... 展开更多
在学习虎书,第二章练习要用lex和yacc,然而作者提供的网址上放的是flex和bison,当然这样更好啦(flex和bison完全兼容lex和yacc)。考虑到在windows下用这两个玩意还要安装masm,所以最后决定上虚拟机(之前操作系统课就装过了,幸亏没卸载哈哈哈)。 Ubuntu下使用sudo apt-get install flex bison命令,不一会就装好了,如图: 然后写了一个测试程序,就用Ubuntu自带的gedit写,保存为.l文件: %% [\t]+ is | am | ...... 展开更多