sony xz2p do版本最全app清理列表

由于日版 docomo 有芯片锁,无法解锁bl,也无法 root,目前唯一的办法只能通过 adb 删除自带软件已达到精简目的

adb 怎么安装怎么用自行百度,目前只贴 app 的清理列表。可以直接保存为 bat 文件,执行即可

adb shell pm uninstall –user 0 com.amazon.mShop.android.shopping

adb shell pm uninstall –user 0 com.google.android.calendar

adb shell pm uninstall –user 0 jp.co.nttdocomo.lcsapp

adb shell pm uninstall –user 0 com.sonymobile.scan3d

adb shell pm uninstall –user 0 com.google.android.youtube


x230 再战黑苹果 10.14.5

距离上一次安装黑苹果,已经3年过去了。第一次安装的时候作为一个新手,参考网上教程,整个安装过程顺利的让我这种小白都震惊了,x230 不愧是为黑苹果而生的一个本本

但是后来因为网卡问题,安装后就没有继续用了,切记!使用黑苹果千万别用usb网卡,那真是非常蛋疼,能上网但是进不去 app store 的,因为 app store 必须要求网卡BSD名字是en0。虽然有一些魔改的教程,但是成功率不高,不建议尝试,比较浪费时间

x230 上黑苹果能用的网卡主流是2种,一种是AR9285,一种是BCM94352,BCM的高级很多,AR的最傻瓜凑合用。我淘了一个AR的把原装网卡换掉了。接下来准备开始安装黑苹果,但是这次就没那么顺利了,为了防止下一次继续掉坑,记录了一下安装过程需要特别注意的一些地方

安装黑苹果的过程可以分为4大块

  1. BIOS 参数修改
  2. 制作U盘启动盘(EFI + 原始镜像)
  3. 安装(硬盘分区,安装)
  4. 硬盘引导

其中网上大部分傻瓜教程或者视频,都是讲2-4,但其实1非常关键,你看那些教程视频装个黑苹果跟装个Windows似的,因为很多前置的坑都填了(就比如BIOS参数),当然是看着很简单了。


cgroup 内存管理之 page cache 回收

page cache 的管理,是内核内存管理里最复杂的一块,也是容器混部场景下,问题最多的地方
我们这里只关注读 cache 的处理,脏页的控制单独讲。所以这篇文章里,无特殊说明 page cache 默认不包括脏页部分
当我们谈到 page cache 时, 我们会关注什么?
有以下几个关键的点
  1. 什么时机会触发 page cache 回收?
  2. 回收过程是什么样的
  3. 不可回收的页面有哪些?
  4. 不容易回收的页面有哪些?
  5. 回收力度如何控制
接下来,我们就这几点,来讲一讲 page cache 的一些内核实现内幕。以及混部场景下,可能会遇到的一些坑
实际上,不同的回收方式,其时机、回收的页面范围、力度、算法都稍有不同,所以下面我们将按照不同的回收方式来详细讲

1. 整机 drop_caches 回收

内核接口 /proc/sys/vm/drop_caches
内核的代码实现入口在 fs/drop_caches.c 里面
这个接口支持3种方式:
  1. echo 1,清理 page cache
  2. echo 2,清理 slab,比如 dentry cache 通常也很消耗内存
  3. echo 3,两种都清理
我们这里只讨论方式1

1.1. 回收时机、力度、算法

只有人为的 echo xx > /proc/sys/vm/drop_caches 时,才会触发 page cache 回收
每次触发 drop_caches,基本上都会把系统能回收的 clean page 一次性全部回收回来,注意,是全部能回收的
所以,这里其实也没有什么的特殊的回收算法了,简单全遍历就完了

1.2. 回收过程

内核代码 fs/drop_caches.c
简单来说,就是
  1. 遍历所有的超级块,super_block
  2. 遍历每个超级块上的所有 inode 对象
  3. 根据 inode->i_mapping 找到每个 inode 的 address_space 空间
  4. 遍历 address_space 下的所有 page
    1. 将 page 从 radix tree 上删除
    2. 调用文件系统的 releasepage 函数释放文件系统资源。这个可以忽略,我看 fs/* 几乎所有文件系统都不实现这个函数了
  5. 释放所有能释放的 page 内存(引用计数为0)
核心逻辑的调用栈如下:
  • drop_caches_sysctl_handler
    • iterate_supers(drop_pagecache_sb, NULL)
      • drop_pagecache_sb, list_for_each_entry(inode, &sb->s_inodes, i_sb_list)
        • invalidate_mapping_pages(inode->i_mapping, 0, -1) // 这个函数的实现在 mm/truncate.c 文件里,Invalidate all the unlocked pages of one inode
          • invalidate_inode_page(page) for page in pagevec_lookup_entries(&pvec)
            • invalidate_complete_page() 删除page的mapping,并从 page cache 的radix-tree 里面剔除,因为下一步就直接 free 内存了
        • pagevec_release(&pvec) // 释放所有的 page 内存空间

1.3. 回收范围

drop_caches 是一个非常轻量级的回收过程,只回收能够立即释放的 page
从 invalidate_inode_page() 我们可以看到,有3种页面,是不会被回收的:
  1. 脏页
  2. 正在回写的页
  3. mmap + MAP_SHARED 方式映射到 page table 的页
  4. PG_SyncReadahead 需要多次drop才能回收
int invalidate_inode_page(struct page *page)
{
        struct address_space *mapping = page_mapping(page);
        if (!mapping)
                return 0;
        if (PageDirty(page) || PageWriteback(page))
                return 0;
        if (page_mapped(page))
                return 0;
        return invalidate_complete_page(mapping, page);
}
注意,page_mapping() 和 page_mapped() 不是一个东西。另外,!mapping 这段代码我没看懂是过滤的啥?
page_mapping() 返回 page 的 address_space,读的是 page->mapping 信息
(1)返回 NULL,说明该页要么是 slab cache,要么是 anon
(2)返回非空,可能是 swap_address_space(),或者就是正常页所在的一个 address_space
struct address_space *page_mapping(struct page *page)
{
        struct address_space *mapping;
        page = compound_head(page);
        /* This happens if someone calls flush_dcache_page on slab page */
        if (unlikely(PageSlab(page)))
                return NULL;
        if (unlikely(PageSwapCache(page))) {
                swp_entry_t entry;

                entry.val = page_private(page);
                return swap_address_space(entry);
        }
        mapping = page->mapping;
        if ((unsigned long)mapping & PAGE_MAPPING_ANON)
                return NULL;
        return (void *)((unsigned long)mapping & ~PAGE_MAPPING_FLAGS);
}

而 page_mapped 是用来判断 page 是否在 page table 里面。这里用 page_mapped() 主要是用来判断当前 page 是否是一个 mmap + MAP_SHARED 产生的页(因为 MAP_PRIVATE 产生的页不会填充到 page table 里面,具体可以自己看下代码)


外遇

昨天,为了准备见习的事,来到了北亭

因为听说北亭有个小学,所以来看看,结果发现是有个牌坊写着北亭小学,但实际上已经拆了

随便走走,看到有个北亭公园,好奇地走了进去。那是一个不大的院子,载了几棵树,各类的草类植物。在一棵古树旁,一个小女孩在拔着树的须经,然后放进红色的塑料袋里,很是认真。

我颇有兴致地走过去,问一下北亭小学的情况,她告诉我,没有北亭小学,她是在穗石小学读的。我还问了她一些问题,她回答得不是很流利,可能面对陌生人还是有点不适应吧。但我很喜欢她,一个朴实的可爱的农村小女孩,言语动作中透露出异样的气质。


放牛班的春天

他的生命,不只是音乐,还是教学,就像他说的“我没有孩子,又或者可以说我有60个孩子”,孩子们给了他事业的阳光,他却给了孩子们人生的天堂

你的生命中会不会出现这样一位老师,他看起来很呆,但他十分睿智

他内心畏惧过,但他似乎毫无畏惧

他对孩子们很好,但它并不是平易近人的感觉

他冷冷的,就连他的幽默也是冷冷的,他从未开怀大笑过,不论是孩子们的进步还是他自己的成功,这也许归咎于他曾经的失败

就这样,即使他不帅,即使他秃头又有啤酒肚,他依然有着无人能比的魅力,这不只存在于孩子们的心中


我们的爱情

漫漫大学时光,匆忙中已不知不觉走了半程,在这个城市的任何一个角落,环顾四周,随处可见那些相互依偎的身影。

但是你或许注意不到这样一群人,他们会一个人忙碌在自身的事情上,他们只是偶尔和朋友相约,他们比你更依赖电脑和电话,他们会突然微笑或者独处忧伤。他们一个人,却过着完整的生活。

如果你们在一个班,你们可以一起自习,一起上下课,一起记笔记,分开一秒也无所谓,因为还有下一秒在等着你们。

如果你们在一个学校,你们可以一起去图书馆,一起去食堂,一起看看星星、赏赏月亮,一天不见至少还有明天,甚至可以一起毕业。


撞车

这是一部多元探究人类的心里与情绪反映的细腻之作。

故事透过地方检察官一家,经营商店的波斯商人,墨西哥锁匠,两个劫车混混,一个菜鸟警官与中年韩籍夫妇……

等等这样的角色,在短短36个小时间

经由间接,直接,甚至是不经意的互动,呈现出人们在不同时间与场景之中的情绪反映,以及这些情绪反映的联动关系对人们的命运、态度与观点所产生的影响


土豆的体重

体重一直是土豆的心头之痛,好不容易才忘记这个疙瘩,但前晚与蚊子一起跑内环,闲聊中听到蚊仔爱死不死的提到体重这东西,又勾起了土豆的伤心回忆!

照理说,这样的海拔配这样的重量也还在医学专家所说的“正常范围”内,应该是没什么大问题的。可仔细想想,体重这东西困扰我那么久了,还是值得探讨一下下!

自打小学起,我的座位就很少离开过前三排,其中坐第一排的次数还不少,也因此为自己如此短小精悍的身材而沾沾自喜了好长一段时间!

随着年龄的增长,体重亦在一点点的缓慢增加着,甚谓艰难!直至上高中,一次常规体检之后,看见自己体重一栏赫然写着“49.5Kg”。医师的草书颇有龙飞凤舞的气势,却仍然逃不过我的火眼金睛!这个数字着实让我欣喜了一把,自此掰着手指头过日子,满脑子认为“破百”指日可待!来年再测,48Kg,立时打回原形!伤心之余不禁疑惑,当年那个草书医师何以能凭着那堆烂铁测出一个“49.5”的数据来?

高考前的身体检查着实又让我郁闷了好一阵子!


回家

这些天,包车回家的信息和电话不断涌来,买车票回家成了同学们谈论的热门话题,到处被炒得沸沸扬扬。我的心微微地颤动,恰如秋风秋雨愁煞人,在游子的心中留下深深的一触。

自从住校以来,便与父母分隔两地,我在这一头,父母在那一头。从此以后,小小的车票牵扯着两地离人的心,凝结着浓浓的思念。

每逢放假,心情是复杂的。正如一句俗话所说“近乡情更怯”,一方面,我会为即将见到熟悉的亲人的脸庞而欢喜;另一方面,心里莫名地生出怯意,道不明这种情愫。每次回家的前几天,睡觉时便辗转难眠,心情无法平伏,一如春风缭乱了恬静的松林,银银的雨丝拨动平静的湖面。


回顾2009

2009年,是激情的一年,是忙碌的一年,也是落魄的一年,更是值得回顾的一年,2009,一年里,发生过很多大大小小的事情,这些事情里,有我的收获,有我的遗憾,还有我的快乐,更多的还是我的趣事儿

2009年1月:订好机票,早上7点忘了时间,拖着行李箱狂奔出校园,很艰难的截到一台出租车,终于赶到了机场,机上认识了一个来理工大考研的学生,聊了2个小时,到家,很短的一段旅程,早上回到家里,发现爸爸居然还没起床

2009年2月:忽然想坐坐火车,结果熬了2天2夜没吃没喝的日子,早上8点迎上了太原的曙光,到了宿舍照照镜子,发现人都瘦了一圈,寒假回家那两个月算是白吃了

2009年3月:下了一场大暴雪,铺天盖地,我借了同学的手机,早上6点起床到外面采光,导致的直接后果是,摔破了屁股还丢了同学的手机

2009年4月:攥了很多年的私房钱,买了一部移动硬盘,结果摔了一下就报废了,真是餐具

2009年5月:五一放长假,想和侄女一同去北京看弟弟,去到了北京却找不到路,坐着公车在北京城内坏到处乱跑,最后还是好心司机花了一整整下午带着我们兜了大半个城区才找到杨二环,见一面弟弟还真不容易,在军营里呆了三天,和弟弟相处了一段时间,很开心,弟弟懂事了很多,不再是小孩子了

2009年6月:六一儿童节,给自己买了大把大把的棒棒糖,然后脸皮其厚无耻地分给其他同学吃

2009年7月:放假,不想回家,整理4500本原版国外参考书籍完毕,真是一件伟大的工程

2009年8月:为了纪念学校的历史悠久,我拿着相机跑遍了整个校园把所有下水道盖顶都拍了保存下来,结果发现年份最久的下水道顶盖竟然是1902年的,几乎可以申报吉尼斯世界纪录

2009年9月:新生入学充话费大优惠,同学冲了50,送130,我冲了100,什么也没送,联通是个De