分类

该页面开头是主要分类及其介绍,主要是可以根据分类进行查询,后面会有根据标签(tags)的全部文章的分类,和侧边相似。



Linux Logo

从 1994.3 Linux1.0 发布到现在,几乎可以说 Linux 已经成为最流行的操作系统,涉及到了服务器、桌面、嵌入式等多种场景,而且支持绝大多数平台。

鄙人从大三开始用 Linux,开始就是看着 Ubuntu 的 3D 桌面比较酷,然后开始零零散散地使用,一直到现在,几乎所有的日常操作都在使用 Linux 的桌面发行版;目前使用的是 CentOS 版本。

在此,仅介绍 Linux 相关内容,包括了常用的方法,以及相应的内核介绍。

Network

对与内核中网络部分的介绍。

Container

实际上现在很火的 Docker 的底层是基于容器的,这部分也比较复杂,所以就单独摘出来。

  • Linux Chroot,这实际上是做目录隔离的方法,也是最初的一种方式。
  • LXC 简介,对 Linux Container 的简单介绍,包括如何安装、新建、启动容器等操作。
  • LXC sshd 单进程启动,介绍如何启动一个单进程,对于资源隔离有很大的参考意义。
  • 容器之 CGroup,介绍 CentOS 中 systemd 以及 cgroup-tools 相关的内容。

WebServer

Nginx 一款轻量级且高性能的 Web 服务器、反向代理服务器,通过 C 语言编写;另外,还包括了前端相关的内容。

Monitor

记录与监控相关的内容。

  • Linux 监控,简单记录一下在 Linux 监控中一些比较常见的工具、网站、资料等信息。
  • Linux 监控之 CPU,简单介绍下 Linux 中与 CPU 监控相关的内容。
  • Linux 监控之 Memory,简单介绍下 Linux 中与 Memory 监控相关的内容。
  • Linux 监控之 IO,简单介绍下 Linux 中与 IO 监控、测试相关的内容。
  • Linux 监控杂项,简单列举一些常见的监控工具 (sar, top),以及配置方式等。
  • Dstat 使用及其原理,一个使用 Python 编写的跨平台监控工具。
  • Systemtap,介绍内核神器 Systemtap 的使用方式,包括了如何使用最新的安全特性。
  • Collectd 简介,一个 C 语言编写的多线程监控采集程序,对其进行简单的介绍。
  • Collectd 源码解析,详细介绍 Collectd 的源码实现。

Kernel

介绍下 Linux 内核相关的内容。

C Program

简单介绍下与 C 语言相关的内容。

  • libev 事件库,一个 C 编写的高性能事件循环库,类似库还有 libevent、libubox 等。
  • libev 时间处理,简单介绍下 libev 库中与时间相关的内容。
  • C 语言的字符串,简单介绍下 C 语言中与字符串、内存操作相关的函数。
  • C 语言的奇技淫巧,整理下 C 语言中常用的技巧。
  • C 编译链接,与 C 语言相关的编译链接概念
  • C 加载过程,通过动态库可以减小空间,提高效率,这里简单介绍加载过程。
  • C 网络编程,简单介绍下,在 Linux C 中进行网络编程时常用到的一些技巧。
  • Linux 线程编程,简单介绍下 Linux 中与线程相关的编程。
  • Linux 线程同步,线程编程时经常使用的同步方式,如锁、条件变量、信号量等。
  • Linux 时间函数,简单介绍下 Linux 中与时间相关的函数。
  • Linux IO 多路复用,通过 IO 多路复用提高系统性能,包括了 select、poll、epoll 。
  • Linux AIO,简单介绍下 Linux 平台下的异步读写模型。

Java Program

简单介绍下与 Java 语言相关的内容。

安全

主要是 Linux 下与安全相关的内容。

Miscellaneous

简单记录一些乱七八糟的东西。



MySQL Logo

MySQL 是一款最流行的开源关系型数据库,最初由瑞典的 MySQL AB 公司开发,目前已被 Oracle 收购,现在比较流行的开源分支包括了 MariaDB 和 Percona。

其中 MariaDB 由 MySQL 创始人 Michael Widenius 主导开发,主要原因之一是:Oracle 收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。为了与原 MySQL 区分,不再使用原来的版本号,而是采用新的 10.0。

Percona 是最接近官方 MySQL Enterprise 发行版的版本,也就是说它提供了一些 MySQL 企业版采用的功能,并且包括了一些比较好用的常用工具。其中的缺点是,为了确保对产品中所包含功能的控制,他们自己管理代码,并不接受社区开发人员的贡献。

文章

  • MySQL 写在开头,主要保存一些经常使用的 MySQL 资源。
  • MySQL 简单介绍,简单介绍 MySQL 常见的使用方法,包括安装启动、客户端使用、调试等。
  • MySQL 基本概念,介绍 MySQL 中一些基本的概念,包括了 SQL、JOIN、常见测试库等。
  • MySQL 监控指标,包括了一些 MySQL 常见的监控指标及其含义等。
  • MySQL Handler 监控,主要介绍下监控指标中与 handler_read_* 相关的内容。
  • MySQL 用户管理,一些用户相关的操作,包括了用户管理、授权、密码恢复等。
  • MySQL 通讯协议,简单介绍 MySQL 的服务器与客户端是如何进行通讯的。
  • MySQL 语法解析,SQL 的处理过程包括了词法分析、语法分析、语义分析、构造执行树等。
  • MySQL 插件详解,关于 MySQL 中一些插件功能的实现,主要是一些通用插件的介绍。
  • MySQL 存储引擎,介绍下与存储引擎相关的内容,包括了提供的接口,实现方法等。
  • MySQL 线上部署,简单记录一些线上部署时常见的配置内容。
  • MySQL 执行简介,简单介绍 MySQL 中的查询最终是如何执行的。
  • MySQL 自带工具,简单介绍下 MySQL 中自带的工具集。
  • MySQL 常用工具,一些运维过程中常见的三方工具,包括压测工具。
  • MySQL Sandbox,本地搭建多个 MySQL 实例的工具,包括主备、循环复制、一主多备等等。
  • MySQL 启动脚本,详细介绍下 mysqld_safe 脚本的执行流程。
  • MySQL Core 文件,一些关于 CoreDump 文件以及 debuginfo 的介绍。
  • MySQL 关闭过程,简单分析下 mysqld 进程关闭的过程,以及关闭过程中执行的操作。
  • MySQL 杂项,简单记录下 MySQL 常见的一些操作。

高可用

  • MySQL 日志相关,一些常见的日志介绍,同时也包括了 binlog 的详细介绍。
  • MySQL 组提交,主要是关于 binlog 的组提交实现,介绍各个阶段的实现原理。
  • MySQL 复制方式,数据复制方法,也是一些高可用解决方案的基础,介绍概念、配置方式。
  • MySQL 复制源码解析,从源码的角度看看复制是如何执行的。
  • MySQL 半同步复制,关于半同步复制的详细解析,包括了源码的实现方式。
  • MySQL GTID 简介,主要介绍下 GTID 配置、实现方式,有那些限制,运维场景等。
  • MySQL Crash-Safe 复制,在主备复制时,如何保证数据的一致性,当然主要是备库。
  • MySQL 主备数据校验,由于各种原因,主从架构可能会出现数据不一致,简单介绍校验方式。
  • MySQL 高可用 MHA,相对成熟的方案,能做到30秒内自动故障切换,且尽可能保证数据一致性。
  • MySQL 组复制,也就是基于 Paxos 协议变体实现,提供了一种高可用、强一致的实现。

InnoDB



PostgreSQL Logo

PostgreSQL 可以说是目前功能最强大、特性最丰富和结构最复杂的开源数据库管理系统,其中有些特性甚至连商业数据库都不具备。这个起源于加州大学伯克利分校的数据库,现已成为一项国际开发项目,并且拥有广泛的用户群,尤其是在海外,目前国内使用者也越来越多。

PostgreSQL 基本上见证了数据库理论和技术的发展历程,由 UCB 计算机教授 Michael Stonebraker 于 1986 年创建。在此之前,Stonebraker 教授主导了关系数据库 Ingres 研究项目,88 年,提出了 Postgres 的第一个原型设计。

MySQL 号称是使用最广泛的开源数据库,而 PG 则被称为功能最强大的开源数据库。

文章





Python Logo

通常当我们讨论 Python 时,指的是 Python 语言以及 CPython 实现。而实际上 Python 只是一种语言的规范,可以根据该规范使用不同的语言去实现相应的解析器,除了 CPython 之外,常见的还有 PyPy、Jython、IronPython、MicroPython 等。

对于传统语言,如 C/C++ 等,会直接将代码编译为机器语言后运行,而对于不同的平台或者 CPU 需要重新编译才可以,而 Python 可以直接跨平台运行。

CPython 通过 C 语言实现,也是目前使用最为广泛的版本,虽然 PyPy 现在的发展势头不错,不过估计短时间内还是不会替代 CPython。CPython 也需要编译 (编译成字节码),然后运行,其核心实际上是一个字节码解析器 (Bytecode Interpreter),用于模拟堆栈操作,或者称之为 Virtual Stack Machines。

如果没有特殊说明的话,在此特指 CPython;另外,比较想提一下的是 MicroPython,这是一个用于微控制器的 Python 实现 ^_^

Just More Pythonic ~~~

CPython

记录 C 语言实现的 Python 的简介。

Flask

一个使用 Python 编写的轻量级 Web 应用框架,采用 BSD 授权。

Others

记录乱七八糟的东西。

  • Python 常用工具,介绍一些 Python 中经常使用,比较经典的工具,如 virtualenv 。
  • SaltStack 简介,一个轻量级的运维工具,具备配置管理、远程执行、监控等功能。
  • Ansible 简介,一个配置管理工具,无需安装服务端和客户端,只要有ssh即可,而且使用简单。
  • Python 异步任务队列,介绍一些常用的调度系统,如APScheduler、Redis Queue、Celery等。
  • ZeroMQ 简介,一个 C++ 编写的高性能分布式消息队列,非常简单好用的传输层。


Golang Logo

Golang 从 2007 年末由 Robert Griesemer、Rob Pike、Ken Thompson 主持开发,后来还加入了 Ian Lance Taylor、Russ Cox 等人,最终于 2009 年 11 月开源,在 2012 年发布了稳定版本。

实际上,Golang 基于现有的技术实现,例如协程 (Coroutine)、IO 多路复用 (multiplexing)、异步 IO 等,然后在此之上进行了一些原语的封装。开始 Golang 包含了很多 C 语言代码,在 1.5 版本开始,包括运行时 (runtime)、编译器 (compiler)和连接器 (linker) 也都全部是由 Golang 所编写。

现在 Golang 的开发已经是完全开放的,并且拥有一个活跃的社区。简单来说,Golang 是一个开源、高并发、高效的编程语言,支持垃圾回收,具有很好的可伸缩性。

而且,越来越多的项目开始使用 Golang 进行开发,例如 Docker、LXD、InfluxDB、etcd 等等。另外,与 Golang 类似的高并发语言还可以参考 Rust、Elixir 。

文章

模块

InfluxDB

一个开源分布式时序、事件和指标数据库。

  • InfluxDB 简介,简单介绍常见概念,如何安装,常用操作等。


一些杂七杂八的东西。

Lua Logo

Lua 在葡萄牙语中是 “月亮” 的意思,是一个小巧的脚本语言,官方版本只包括一个精简的核心和最基本的库,使得其体积小、启动速度快,从而特别适合嵌入到其它程序里。

这里简单介绍其使用方法。

  • Lua 简介,简单介绍常见概念,包括安装、语法规则、常用模块等。
  • Lua 协程,作为一种简单的语言,仍支持闭包、协程等较新的特性,简单介绍协程使用。
  • Lua 源码解析,其核心代码总共才 2W 行左右,但是却实现了很多不错的特性。
  • Lua CAPI 使用,简单介绍 Lua 和 C 之间的调用,常见的概念如栈、CAPI等概念。

OpenSSH Logo

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现,一种命令行的远程登录工具,使用加密的远程登录实现,可以有效保护登录及数据的安全,同时提供了安全的文件传输功能。

这里主要介绍 SSH 一些常见的操作。

Git Logo

Git 是一免费、开源的分布式版本控制系统,可有效、高速的处理从很小到非常大的项目版本管理,该工具是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发,其本意是为了替换 BitKeeper 。

除了 GitHub 外,开源的工具还有 GitLabGogs,以及 C 的相关库 libgit2

这里简单介绍一下常见概念及其操作。

  • Git 简明教程,简单介绍常见操作。
  • Git 分支管理,主要介绍 git 的分支处理常用操作,以及比较经典的版本分支管理方式。
  • Git 使用杂项,记录 git 常见的示例,可以用来作为参考使用。

RAFT Logo

PAXOS 算法从 90 年提出到现在已经有二十几年了,不过其流程过于复杂,目前较多的有 Chubby、libpaxos ,以及 Zookeeper 修改后的 Zookeeper Atomic Broadcase, ZAB 。

RAFT 是斯坦福的 Diego Ongaro、John Ousterhout 两人设计的一致性算法,在 2013 年发布了论文 《In Search of an Understandable Consensus Algorithm》,目前已经有近十多种语言的实现,其中使用较多的是 ETCD 。

  • RAFT 协议简介,一个为真实世界应用建立的协议,注重落地性和可理解性。
  • ETCD 简介,主要介绍 ETCD 如何使用,包括安装、部署、使用以及常见的介绍。
  • ETCD 示例源码,源码中关于如何 RAFT 协议的示例代码,直接使用的是内存数据库。
  • ETCD 源码解析,除了上述的示例代码,这里简单介绍其代码的实现。

Tags

program

golang

linux

misc

PHP

About This Blog

Recent Posts

Categories

Related Links

  • RTEMS
    RTEMS
  • GNU
  • Linux Kernel
  • Arduino

Search


This Site was built by Rimond, generated with Jekyll, and hosted on GitHub Pages
©2013-2018 – Rimond