FuckingCode

-安卓系统- -源码分析- -linux编程- -设计模式-


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Linux系统编程之信号进阶

发表于 2019-01-08 | 更新于 2019-01-10 | 分类于 Linux
本文字数: 14k | 阅读时长 ≈ 12 分钟

本章节继续介绍关于Linux系统下信号相关的知识点,介于之前介绍了信号的基础,了解了信号的产生、缘由以及工作流程,这里就对信号的相关函数进行统一的分析,之后在用实例进行说明。

阅读全文 »

Linux系统编程之信号基础

发表于 2019-01-08 | 更新于 2019-01-14 | 分类于 Linux
本文字数: 4.5k | 阅读时长 ≈ 4 分钟

Linux下信号涉及知识点非常多,本章节先做一个铺垫,简单介绍一下信号种类及其含义,信号的几种默认处理方式等,后续再来介绍具体的信号处理函数以及注意事项也就方便很多了。工欲善其事,必先利其器。Let us get it!

阅读全文 »

Linux系统编程之静态/动态库生成实战

发表于 2019-01-07 | 分类于 Linux
本文字数: 3.9k | 阅读时长 ≈ 4 分钟

本节就如何创建和使用程序库进行论述。所谓” 程序库”,简单说,就 是包含了数据和执行码的文件。其不能单独执行,可以作为其它执行程序的一部分来完成某些功能。库的存在,可以使得程序模块化,可以加快程序的再编译,可以实现代码重用,可以使得程序便于升级。程序库可分静态库 (static library) 和共享库 (shared object)。

阅读全文 »

Linux系统编程之进程间通信

发表于 2019-01-07 | 分类于 Linux
本文字数: 10k | 阅读时长 ≈ 9 分钟

之前文件介绍了Linux下进程的创建,执行以及回收,此章节就进程间通信进行详细介绍。Linux提供了多种进程间通信机制,本文会分别介绍匿名管道pipe,有名管道fifo,内存共享映射机制以及Socket套接字等。通过其中任意一种机制,都能够方便两个进程间进行通信操作,极大方便开发者的开发效率。

阅读全文 »

Linux系统编程之进程

发表于 2019-01-05 | 更新于 2019-01-07 | 分类于 Linux
本文字数: 10k | 阅读时长 ≈ 9 分钟

学习Linux中的进程,主要设计了三个重要的函数:fork(创建子进程),exec(执行命令),wait(回收进程资源)。进程的管理由内核中的task_struct结构体(PCB进程控制块)负责,下面我们来具体了解一下。

阅读全文 »

Linux系统编程之文件IO进阶

发表于 2019-01-04 | 分类于 Linux
本文字数: 7.1k | 阅读时长 ≈ 6 分钟

文章概括描述文段
上篇文章中介绍了linux中基本的io处理操作,对于一般的文件读取是没有问题的,但是考虑到终端以及网络等可能存在阻塞情况下,这时候就需要我们使用标志位 O_NONBLOCK 。其次,对于文件的阻塞和非阻塞操作,如果是一个已经打开的文件呢又该如何操作,fcntl 便应运而生了。

阅读全文 »

Linux系统编程之文件IO

发表于 2019-01-03 | 分类于 Linux
本文字数: 4.8k | 阅读时长 ≈ 4 分钟

在Linux系统中,一切皆是文件。文件相当于操作系统和设备之间的一架桥梁。程序可以像使用文件那样访问磁盘文件,串行口,打印机等其他设备。通常情况下,我们可以通过以下5个函数,即可操作众多设备:open、close、read、write和ioctl。例外的情况: 目录的读写,网络连接等特殊文件

阅读全文 »

源码分析之存储系统启动流程MountService模块

发表于 2018-09-28 | 更新于 2019-04-10 | 分类于 源码分析
本文字数: 26k | 阅读时长 ≈ 24 分钟

上篇我们介绍了Android的存储系统中native层的Vold的启动流程,Vold在init进程中通过init脚本进行启动,而MountService则是在Java的服务总站SystemServer中配置启动的,下面我们就来看一下Java层的MountService是如何启动的。

阅读全文 »

源码分析之存储系统启动流程Vold

发表于 2018-09-28 | 更新于 2019-04-10 | 分类于 源码分析
本文字数: 27k | 阅读时长 ≈ 24 分钟

Android的存储系统相对来讲还是比较复杂,其中主要包括了native层的Vold以及Java层的MountService。其中Vold在init进程中通过init脚本进行启动,而MountService则是在Java的服务总站SystemServer中配置启动的。它们之间的通信采用的Socket进行,而不是Binder机制,其主要的原因就是架构上比较简单,代码量也少。本文就从启动流程上分析安卓系统中的存储模块是如何加载起来的,下面就让我们直接进入正题。

阅读全文 »

Android系统HAL层驱动开发实战

发表于 2018-08-22 | 更新于 2018-09-28 | 分类于 驱动
本文字数: 19k | 阅读时长 ≈ 17 分钟

基于Android HAL层驱动框架,开发者很容易将自己的驱动实现在用户空间,实现驱动细节的隐藏,而不必在内核中进行修改,避免因修改内核,公开源码进而损害自己的商业利益。本章节,我们就对HAL层驱动框架进行实现,由底层驱动到中间层framework,继而进入上层应用端,彻底完成上层应用到底层驱动的一一实现。

阅读全文 »
123…8
Allies

Allies

一位由安卓应用向系统底层进阶的开发者。在这里,开始自己的打怪升级之路。Just do it!
75 日志
17 分类
59 标签
RSS
GitHub 微博 邮箱 掘金
Creative Commons
© 2017 – 2019 Allies | 693k | 10:30
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Pisces v7.1.0