Linux
csshuke
这个作者很懒,什么都没留下…
展开
-
GCC全过程详解+剖析生成的.o文件
使用GCC编译一个.c文件影藏了哪些过程?GCC四步详解第一步:预处理(也叫预编译)gcc -E hello.c -o hello.i 或者 cpp hello.c > hello.i 【cpp是预编译器】 将所有#define删除,并且展开所有的宏定义 处理所有的条件预编译指令,如#if ...转载 2019-11-25 16:54:44 · 645 阅读 · 0 评论 -
6 Git 分支 - 变基
变基在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。在本节中我们将学习什么是“变基”,怎样使用“变基”,并将展示该操作的惊艳之处,以及指出在何种情况下你应避免使用它。变基的基本操作请回顾之前在 分支的合并 中的一个例子,你会看到开发任务分叉到两个不同分支,又各自提交了更新。Figure 35. 分叉的提交历史转载 2018-03-06 09:55:55 · 213 阅读 · 0 评论 -
5 Git 分支 - 远程分支
远程分支远程引用是对远程仓库的引用(指针),包括分支、标签等等。你可以通过 git ls-remote (remote) 来显式地获得远程引用的完整列表,或者通过git remote show (remote) 获得远程分支的更多信息。然而,一个更常见的做法是利用远程跟踪分支。远程跟踪分支是远程分支状态的引用。它们是你不能移动的本地引用,当你做任何网络通信操作时,它们会自动转载 2018-03-06 09:54:54 · 242 阅读 · 0 评论 -
4 Git 分支 - 分支开发工作流
分支开发工作流现在你已经学会新建和合并分支,那么你可以或者应该用它来做些什么呢?在本节,我们会介绍一些常见的利用分支进行开发的工作流程。而正是由于分支管理的便捷,才衍生出这些典型的工作模式,你可以根据项目实际情况选择一种用用看。长期分支因为 Git 使用简单的三方合并,所以就算在一段较长的时间内,反复把一个分支合并入另一个分支,也不是什么难事。也就是说,在整个项目开发周转载 2018-03-06 09:52:36 · 202 阅读 · 0 评论 -
3 Git 分支 - 分支管理
分支管理现在已经创建、合并、删除了一些分支,让我们看看一些常用的分支管理工具。git branch 命令不只是可以创建与删除分支。如果不加任何参数运行它,会得到当前所有分支的一个列表:$ git branch iss53* master testing注意 master 分支前的 * 字符:它代表现在检出的那一个分支(也就是说,当前 H转载 2018-03-06 09:51:47 · 232 阅读 · 0 评论 -
Git 分支 - 分支简介
几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副本。对于大项目来说,这样的过程会耗费很多时间。有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。为何 Git 的分支模型如此出众呢?G转载 2018-03-06 09:50:19 · 222 阅读 · 0 评论 -
Git 分支 - 分支的新建与合并
分支的新建与合并让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。你将经历如下步骤:开发某个网站。为实现某个新的需求,创建一个分支。在这个分支上开展工作。正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。你将按照如下方式来处理:切换到你的线上分支(production bran转载 2018-03-06 09:49:05 · 158 阅读 · 0 评论 -
Linux下远程桌面连接windows
windows配置:首先打开windows的远程连接服务,允许用户远程连接到本机:右键 -> 我的电脑 -> 属性 -> 远程 -> 允许用户远程连接到此计算机 Linux配置:这里我们需要安装rdesktop和tsclient,其中rdesktop是基于命令行的工具,tsclient只是一个图形化的界面,依赖于rdesktop。yum install rdesktopy...转载 2018-03-12 00:02:46 · 15481 阅读 · 0 评论 -
git提交项目到已存在的远程分支
今天想提交项目到github的远程分支上,那个远程分支是之前就创建好的,而我的本地关联分支还没创建。 之前从未用github提交到远程分支过,弄了半个钟,看了几篇博文,终于折腾出来。现在把步骤整理下:1、在项目文件目录下,打开Git Bash Here; 2、使用git add命令,将我们要提交的文件信息(包括有修改过和新建的文件)添加到索转载 2018-02-05 19:33:17 · 3602 阅读 · 0 评论 -
在 linux 下使用 CMake 构建应用程序
CMake 简介CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。CMake 提供了比 autoconf转载 2017-12-18 19:58:31 · 292 阅读 · 0 评论 -
linux下使用rdesktop连接远程windows
sudo apt-get install rdesktoprdesktop 124.42.120.174:1433呵呵,连接成功了。-f 全屏-a 16位色默认端口是3389(linux 22 sh)注意:windows 的服务中的 Terminal Servies 需要开启。我的电脑 右键 属性 远程中,勾选 允许远程用户链接到此计算机。另外,退出的时候选择注销,而不是关机!更多参数:-u转载 2018-01-02 15:48:37 · 947 阅读 · 0 评论 -
vim常用命令
一、插入命令i 在当前位置生前插入I 在当前行首插入a 在当前位置后插入A 在当前行尾插入o 在当前行之后插入一行O 在当前行之前插入一行二、搜索命令/text 查找text,按n健查找下一个,按N健查找前一个。?text 查找text,反向查找,按n健查找下一个,按N健查找前一个。vim中有一些特殊字符在查找时需要转义 .*[]^%/?~$:se转载 2017-12-16 15:50:22 · 234 阅读 · 0 评论 -
Ubuntu系统安装搜狗(sougou for linux)输入法详细教程
1.下载搜狗输入法的安装包 下载地址为:http://pinyin.sogou.com/linux/ ,如下图,要选择与自己系统位数一致的安装包,我的系统是64位,所以我下载64位的安装包 2.按键Ctr+Alt+T打开终端,输入以下命令切换到下载文件夹:[html] view plain copy print?转载 2017-12-15 12:00:56 · 487 阅读 · 0 评论 -
GCC如何编译内嵌汇编代码
内核代码绝大部分使用C 语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码。GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计。 简单的内嵌汇编很容易理解 例: __asm__ __volatile__("hlt"); “__asm__”表示后面的代码为内嵌汇编,“asm”是“__a转载 2017-11-12 02:14:30 · 2604 阅读 · 0 评论 -
和菜鸟一起学linux内核源码之基础准备篇
注:以下大部分内容摘自Linux内核编程入门篇和linux内核完全注释 在工作的这段时间,发现我的visio画图熟悉了点点,总喜欢把什么源码啊,结构啊之类的就当作流程图来画来理解,因为对于图,有一个很直观的认识,所以接下去也是以图为中心。 关于linux内核体系结构说到操作系统,我们都会知道windows操作系统,linux操作系统,苹果的iOS操作系统,以前很火的塞班操作系统...转载 2018-08-29 22:38:46 · 139 阅读 · 0 评论 -
Git 常用命令大全
一、 Git 常用命令速查git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshowgit push origin m...转载 2018-03-24 22:40:37 · 174 阅读 · 0 评论 -
《Linux内核分析》课程总结
朱宇轲 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 不知不觉,在网易云课堂上追了两个多月的课程《Linux内核分析》就要告一段落了。在课程即将结束的时刻,我想将这八周的课程串起来,进行一个简单的总结,同时讲一讲自己上这门课的感悟和体会,以期再接再厉,继往开来。...转载 2018-08-29 22:58:34 · 352 阅读 · 0 评论 -
IPC(进程间通信方式的介绍)
原 IPC(进程间通信方式的介绍) 2018年07月24日 14:44:50 CAFEBABE丶 阅读数:360 ...转载 2019-06-10 19:52:15 · 904 阅读 · 0 评论 -
linux基础——linux进程间通信(IPC)机制总结
原 linux基础——linux进程间通信(IPC)机制总结 2016年07月23日 21:33:12 yexz 阅读数:18224更多 ...转载 2019-06-10 19:33:50 · 308 阅读 · 0 评论 -
使用 qemu 搭建内核开发环境
本文主要介绍在 MacOS 上使用 qemu 搭建 Linux Kernel 的开发环境。(在开始之前需要注意的是,本文中的 Linux 开发环境是一个远程服务器,而 qemu 被安装在本地的 MacOS 上。通常并不需要这样折腾,直接将 qemu 安装在 Linux 中更加方便,而且 qemu 是可以 -nographic 无图形界面运行的。)1. 为什么需要 qemu?qemu 是一个...转载 2019-01-10 11:39:19 · 1120 阅读 · 0 评论 -
Linux环境下静态库的生成和使用 (.a文件)
这一阵子的工作用到了linux,也用到了linux的静态库和动态库。正好对这一块儿一直不明白,趁此机会学习了一下。以下是笔记。先说一说linux下静态库的生成和使用方法。 An archive (or st...转载 2018-12-07 10:51:09 · 309 阅读 · 0 评论 -
git删除文件夹/文件(不删除本地文件)
先声明一点,如果要同时删除本地的和github上的文件,直接删除本地的再push就行了,比较简单。这里的要求是不能删除本地的文件,而要删除github里,就是网页上的文件。 其实质就是删除缓冲区里的文件,再提交给服务器端。 1.首先进入要删除的文件夹或文件的根目录下,如F:\myprojects\supermarketmanager1115 2.执行下面的语句”...转载 2018-12-07 18:57:24 · 980 阅读 · 0 评论 -
史上最全Vim快捷键键位图(入门到进阶)
作者:卢钧轶(cenalulu)来自:http://cenalulu.github.io/linux/all-vim-cheatsheat/经典版下面这个键位图应该是大家最常看见的经典版了。对应的简体中文版其实经典版是一系列的入门教程键位图的组合结果,下面是不同编辑模式下的键位图。入门版基本操作的入门版。进阶版增强版下图是一个更...转载 2018-11-08 11:30:14 · 240 阅读 · 0 评论 -
github生成密钥
$ git config --global user.name "用户名"$ git config --global user.email "你的邮箱"ssh-keygen -t rsa // 生成密钥查看密钥指令:$ cat ~/.ssh/id_rsa.pub ...转载 2018-11-07 18:09:26 · 378 阅读 · 0 评论 -
Linux Kernel 0.01 的编译和运行
Linux Kernel 0.01 的编译和运行本文操作环境均在 Linux 系统中实现。==================================================================================一、准备工作下面说明的内容要使用 bochs 模拟器和Linux 0.11作为开发平台。1. 取得Linux 0.11开发平台文件,下载...转载 2018-10-24 16:36:10 · 3761 阅读 · 0 评论 -
Linux基础 30分钟GDB调试快速突破
引言 Linus心灵鸡汤 在*nix开发中有道卡叫gdb调试,不管你怎么搞. 它依然在那丝毫不会松动.今天致敬一个 活着的传奇 Linus Torvalds Unix 始于上个世纪60年代,在70年代得到了迅猛的发展,这时候的李纳斯还躺在祖父公寓的摇篮里睡大觉,如果不是后来 Unix 王国自乱阵脚,出现阵营分裂和法律纠纷,可能 Linux 系统根本都不会出现。真实的情况是...转载 2018-09-14 12:06:45 · 960 阅读 · 0 评论 -
gdb 调试入门,大牛写的高质量指南
没想到Brendan Gregg这样的大牛,会写出这样一篇gdb tutorials文章:gdb Debugging Full Example (Tutorial): ncurses 。但可能正如文章开头所说,大牛对网上的gdb文章都不太满意,所以才有了这篇高质量指南,gdb入门者的福音。—— 何登成如果你是系统管理员,但还不认识 Brendan Gregg,那网上流传甚广的 3 张 Lin...转载 2018-09-14 12:05:10 · 594 阅读 · 0 评论 -
Git 的 4 个阶段的撤销更改
源自:Git 的 4 个阶段的撤销更改参考: 廖雪峰git教程git的基本概念图: 1. 基本概念:3个步骤 正常情况下,我们的工作流就是3个步骤,对应上图中的3个箭头线:git add .git commit -m "comment"git push1 2 3 41. git add .把所有文件放入暂存区;2. git commit把所有文件从暂存...转载 2018-09-12 14:47:26 · 153 阅读 · 0 评论 -
git checkout 命令详解
转自:http://www.cnblogs.com/hutaoer/archive/2013/05/07/git_checkout.html?utm_source=tuicool&utm_medium=referral 在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。在下面的命令中,使用了一些简写,在这里说明一下...转载 2018-09-12 11:02:36 · 609 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
linux最吸引我的地方之一就是它拥有一个高手云集的社区, 还有就是如果能=为linux内核中贡献代码, 一定是一件令人自豪的事情.下面主要总结一些和贡献代码相关的主要内容.加入社区编码风格提交补丁总结 1. 加入社区如果想为linux贡献代码, 那么加入linux社区是必须的, 加入了社区, 不仅可以及时内核的最新消息, 而且可以及时和社区内有经验的内核开发者交流经验.转载 2017-11-12 02:06:27 · 394 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记(十九)- 可移植性
linux内核的移植性非常好, 目前的内核也支持非常多的体系结构(有20多个).但是刚开始时, linux也只支持 intel i386 架构, 从 v1.2版开始支持 Digital Alpha, Intel x86, MIPS和SPARC(虽然支持的还不是很完善).从 v2.0版本开始加入了对 Motorala 68K和PowerPC的官方支持, v2.2版本开始新增了 ARMS, I转载 2017-11-12 02:05:39 · 378 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记(十八)- 内核调试
内核调试的难点在于它不能像用户态程序调试那样打断点,随时暂停查看各个变量的状态。也不能像用户态程序那样崩溃后迅速的重启,恢复初始状态。 用户态程序和内核交互,用户态程序的各种状态,错误等可以由内核来捕获并显示。而内核是直接和硬件交互的,内核出错之后整个系统就无法正常运行了,所以要想熟练的进行内核调试,首先要熟悉内核已经给我们提供的工具,然后实实在在的去做一些内核功能的开发,在开转载 2017-11-12 02:04:48 · 378 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记(三)- Linux的进程
进程是所有操作系统的核心概念,同样在linux上也不例外。主要内容:进程和线程进程的生命周期进程的创建进程的终止1. 进程和线程进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的。Linux中的进程于Windows相比是很轻量级的,而且不严格区分进程和线程,线程不过是一种特殊的进程。所以下面只讨论进程,只有当线程与进程转载 2017-11-10 19:31:41 · 220 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
在尝试内核开发之前,需要对内核有个整体的了解。主要内容:获取内核源码内核源码的结构编译内核的方法内核开发的特点 1. 获取内核源码内核是开源的,所有获取源码特别方便,参照以下的网址,可以通过git或者直接下载压缩好的源码包。http://www.kernel.org 2. 内核源码的结构 目录说明arch特定体系结构的转载 2017-11-10 19:30:46 · 208 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记(一)-内核简介
本篇简单介绍内核相关的基本概念。主要内容:单内核和微内核内核版本号 1. 单内核和微内核 原理优势劣势单内核整个内核都在一个大内核地址空间上运行。1. 简单。2. 高效:所有内核都在一个大的地址空间上,所以内核各个功能之间的调用和调用函数类似,几乎没有性能开销。一个功能的崩溃会导致整个内核无转载 2017-11-10 19:29:49 · 209 阅读 · 0 评论 -
机制与策略
学习系统调用时,书上提到机制与策略,这也是陈老师与武特学长经常给我们强调的,这是一种设计模式,帮助我们理解操作系统的设计。下面的内容是从陈莉君老师的博客上copy下来的,写的很好,很通俗、透彻。 Unix/Linux的接口设计有一句通用的格言“提供机制而不是策略”。 区别对待机制(mechanism)和策略(policy)是Unix设计中的一大亮点。大部分的编程问题都转载 2016-06-08 16:18:24 · 407 阅读 · 0 评论 -
Linux C中内联汇编的语法格式及使用方法
在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly。本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^)。注意:由于gcc采用AT&T风格的汇编语法(与Intel Syntax相对应,二者的区别参见这里),转载 2015-09-22 20:58:06 · 482 阅读 · 0 评论 -
如何成为一个Linux内核开发者
你想成知道如何成为一个Linux内核开发者么?或者你的老板告诉你,“去为这个设备写一个Linux驱动。“这篇文档的目的,就是通过描述你需要经历的过程和提示你如何和社区一起工作,来教给你为达到这些目的所需要知道的所有知识。本文也尝试解释社区为什么这样工作的一些原因。内核几乎全是用C写成的,有一些架构相关的部分是用汇编语言写成的。熟练掌握C语言是内核开发的必备条件。汇编语言(任何架构)的了解不是必转载 2015-09-04 11:37:19 · 439 阅读 · 0 评论 -
嵌入式Linux系统BSP的设计与实现
1. 引言 嵌入式系统由硬件环境、嵌入式操作系统和应用程序组成,硬件环境是操作系统和应用程序运行的硬件平台,它随应用的不同而有不同的要求。硬件平台的多样性是嵌入式系统的主要特点,如何使嵌入式操作系统在不同的硬件平台上有效地运行,是嵌入式系统开发中需要解决的关键问题。解决的方法是在硬件平台和操作系统之间提供硬件相关层来屏蔽这些硬件的差异,给操作系统提供统一的运行环境,这种硬件相关层就是嵌入转载 2015-07-22 15:12:24 · 545 阅读 · 0 评论 -
微内核与宏内核
在通常情况下,我们会想到把凡是能够为进程服务的模块就应该放在操作系统的内核中。例如:文件管理模块是为进程服务的,所以放在内核中;各种驱动模块是为进程服务的,所以要放在内核中;进程模块当然要放在内核中。随着进程服务请求的增加,操作系统内核就会越来越大,随之也将出现一系列的问题。 首先,内核是常驻内存的,因此大内核占用的存储空间就大,这样在硬件系统比较小,存储器资源比较紧张的系统转载 2015-08-12 14:02:00 · 557 阅读 · 0 评论