Java 程序员眼里的 Linux 内核 —— wait_event 源码分析

看 Linux 的 wait_event 源码时,联想到我们平时经常用得比较多的 wait/notify、double-check 和 volatile,突然意识 wait_event 简简单单几行代码的背后,涉及的知识非常丰富。本篇文章我们就一起了来探索它背后的知识,然后尝试着和我们的日常开发关联起来。

阅读全文

Linux 内核页表的创建

内核跟普通的应用一样,为了使用虚拟内存,也需要一个给 CPU 设置一个页表。在这篇文章中,我们就一起来了解 Linux 是如何为内核创建页表的。

阅读全文

《深入理解 LINUX 内核》读书笔记 - 临时内核页表

x86 在启动的时候,CPU 处于实模式;而在保护模式下,为了将线性(内存)地址转换为物理内存地址,我们需要给 CPU 设置页表。本篇文件主要给《深入理解 LINUX 内核》临时内核页表一节(P74)中作者描述不太详细的部分添加更多的解释,并不打算把书中相关的知识点都搬上来,相关知识读者可以参考书中的描述。

阅读全文

Flutter 开发(5)- 插件的使用、开发和发布

本篇文章我们先一起学习 Flutter 插件的使用,然后通过开发一个 toast 插件来学习它的开发,最后发布到 Pub 上。

阅读全文

Dart 语言入门

本篇文章假定读者有一定的编程经验。通过快速浏览 Dart 的一些基础特性,让读者具备使用它进行开发的基本能力。

阅读全文

Flutter 开发(4)- 文件、存储和网络

本篇文章我们先学习 Flutter IO 相关的基础知识,然后在 flutter-ux-basic 一文的基础上,继续开发一个 echo 客户端。由于日常开发中 HTTP 比 socket 更常见,我们的 echo 客户端将会使用 HTTP 协议跟服务端通信。Echo 服务器也会使用 Dart 来实现。

阅读全文

Flutter 开发(3)- 交互、动画、手势和事件处理

在这一篇文章中,我们首先介绍手势事件的处理和页面跳转的基础知识,然后通过实现一个 echo 客户端的前端页面来加强学习;最后我们再学习内置的动画 Widget 以及如何自定义动画效果。

阅读全文

Flutter 开发(2)- UI控件和布局

本篇文章我们先介绍 Flutter 里一些常用的 UI 控件,然后借助官网提供的两个 demo 把所学的控件知识实际使用起来。

阅读全文

Flutter 开发(1)- 开发框架、流程、编译打包、调试

Flutter 是 Google 推出的移动端跨平台开发框架,使用的编程语言是 Dart。从 React Native 到 Flutter,开发者对跨平台解决方案的探索从未停止,毕竟,它可以让我们节省移动端一半的人力。本篇文章中,我们就通过编写一个简单的 Flutter 来了解他的开发流程。

阅读全文

JDK 源码分析(1)- FutureTask

本篇是 JDK 源码分析的第一篇,主要关注 FutureTask 的实现。我们所分析的源码使用的是 Java10,因此也假设了读者了解 VarHandle(Java9 新增的 API),不了解的读者可以看我翻译的JEP 193

阅读全文