colorfulshark

blog of a linux developer

Linux用多了,即使切换到Windows,也开始有意无意地使用开源软件,最近Manager想要在Windows下使用TraceCompass,需要安装Java环境,于是就研究了一下在Windows下安装OpenJDK的方法,其实跟安装JavaSE是一样的。

Read more »

我们在编译一些老版本的软件时,通常必须选择一个较老版本的host环境,这时候我们可能会选择vm,但是vm有几个比较明显的缺陷:一是资源的消耗较大,因为vm本质上是一个独立的系统,内核以及大量的服务在host运行了一份,在vm里还要再运行一份,消耗了大量内存;二是在host和vm之间共享存储不方便,虽然可以使用nfs,samba之类的方式,但是他们都是基于网络的,当编译时会有大量小文件读写,这时可能会遇到性能瓶颈。通过使用Docker,则可以较好的解决这类问题。

Read more »

最近想要重新看一遍ldd3,以前看的时候总是照着新版的内核写代码,结果很多接口都发生了变化,在这个问题上浪费了不少时间,以至于最后看不下去了。所以这次打算使用upstream的linux 2.6.10来做实验,一方面upstream的内核没有受到第三方patch的污染,另一方面可以把关注点放在内核的接口设计以及驱动框架本身。所以就花了一些时间把linux 2.6.10的系统环境搭建了出来,这里记录一下搭建过程。

Read more »

Cache出现的目的是为了弥补CPU与内存之间速度不匹配的状况,如果要访问的内存地址的内容已经存在于Cache中,那么CPU就无需访问速度较慢的内存。本文通过一个内存访问的例子,简单介绍两种Cache模型,以及它们是如何工作的。

Read more »

在带有GUI的Linux系统中,我们可以通过GParted方便地管理磁盘分区,但是在很多时候我们没有条件使用GUI工具,所以本文简单介绍一下如何在命令行界面调整ext4分区的大小。

Read more »

随着MySQL的升级,其安装配置方式也变得越来越复杂,以至于新手第一次安装可能无法顺利地登录数据库,因此本文对如何在Ubuntu上安装配置MySQL进行简单阐述。

Read more »

虽然Ftrace在debugfs中的接口很简单,但在实际操作时,还是显得不太灵活。如果能让一个应用程序代替我们与Ftrace的接口交互,将会大大简化其使用,而这个程序就是trace-cmd。此外,为了能够更加直观的分析过滤Ftrace的log,将会介绍一个基于GUI的工具kernelshark。

Read more »

在进行内核调试时, 最长使用的方式就是printk(),由于printk()被设计成可以在任何上下文(进程上下文、中断上下文)执行,因此它会在执行过程中带来较大的开销,尤其是所调试的代码对时间很敏感时,比如时间中断。而ftrace则能够在输出log的同时,最大程度上降低调试带来的开销。

Read more »

在使用键盘的时候,经常会用到Ctrl来触发各种快捷键,但每次使用Ctrl,手都需要大幅度扭曲,非常不舒服,反观Caps这个按键,不仅位置舒适,而且按键更大,但却常年得不到有效利用。目前市面上已经有一些键盘另辟蹊径,把Ctrl和Caps进行交换来获得更好的打字体验,但这通常需要特殊的固件或者驱动才能实现。实际上,在Windows下可以通过修改注册表来重新映射按键,从而让普通键盘也能做到这一点。

Read more »

最近一直种草软路由,从j1900看到i5 7200u,无奈囊中羞涩,最便宜的也得500以上,于是打算把大学时用的旧笔记本利用起来,i7 4702mq的处理器即使放到今天也不算过时(感谢牙膏厂)。但如果只是安装一个Openwrt的话,有点太浪费硬件性能,于是打算在Proxmox VE中安装Opnewrt虚拟机。

Read more »