分析版本api 24 首先我们要找一个入口,就从ObjectAnimator.ofInt(this, "width", 0, -20).start()开始吧,其他动画都是类似的。...不同属性动画版本,这里有所区别。
那么容器场景选择哪个 Linux 版本最好呢?在腾讯云,这个答案是 Tencent Linux[1]。 ? 这时候大家应该会有很多的疑问,接下来的 FAQ 会尽力解答大家的疑问。...Tencent Linux是谁维护的?基于什么发行版的? 是腾讯内核和虚拟化团队负责维护的。...Tencent Linux跟CentOS有什么区别? 关键的区别在内核版本,本文后面会详细介绍。...用户态有少量调整,如 YUM 源的配置等,详情请参考官方介绍文档:https://cloud.tencent.com/document/product/213/38027 内核是什么版本?...年底会推出 5.4版本。 Tencent Linux跟TKE的Optimized镜像是什么关系?
version=v2 后台可以看到当前的版本 ? ...如果url中没有传版本参数,则显示默认的版本("DEFAULT_VERSION":'v1') http://127.0.0.1:8000/api/users/ ? ...P[v1|v2]+)/users/,这里本来需要传version的参数,但是version包含在request里面(源码里面可以看到),所有只需要request=request就可以...源码流程 (1)dispatch def dispatch(self, request, *args, **kwargs): """ `.dispatch()` is...URLPathVersioning源码 class URLPathVersioning(BaseVersioning): """ To the client this is the same
在上一篇文章 Linux epoll 源码分析 2 中,我们分析了 epoll_ctl 的 ep_insert 方法,在这里我们继续看下 ep_remove 和 ep_modify 方法。
上一篇文章我们分析了shutdown方法的实现,这里我们再看下close方法。
// net/socket.c SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr...
在linux下,假设我们想打开文件/dev/tty,我们可以使用系统调用open,比如: int fd = open("/dev/tty", O_RDWR, 0); 本文将从源码角度看下,在linux内核中...// include/linux/fs.h struct filename { const char *name; /* pointer to actual...限于篇幅原因,本文暂且分析到这,下一篇继续分析vfs_open方法。 完。
/* * linux/mm/memory.c * * (C) 1991 Linus Torvalds */ /* * demand-loading started 01.12.91 -...invalidate()"s - I wasn't doing enough of them. */ #include #include #include linux.../sched.h> #include linux/head.h> #include linux/kernel.h> volatile void do_exit(long code); static
我的源码分析,是基于Linux Kernel 4.4.19 (https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.4.19.gz)版本的,由于namespace...模块更新很少,因此其他相近版本之间雷同。...初始化完成处理信息 调用 wake_up_new_task 将子进程加入调度器,为之分配 CPU 如果是 vfork,父进程等待子进程完成 exec 替换自己的地址空间 ##copy_process源码分析...###sched_fork源码分析 linux-4.4.19/kernel/sched/core.c #2187 int sched_fork(unsigned long clone_flags, struct...return 0; } 我们可以看到sched_fork大致完成了两项重要工作,一是将子进程状态设置为 TASK_RUNNING,二是为其分配 CPU ###copy_thread_tls源码分析
继上一篇 Linux epoll 源码分析 1,我们来继续看下 epoll_ctl 方法。...// include/linux/poll.h static inline void poll_wait(struct file * filp, wait_queue_head_t * wait_address...我们看下 ep_ptable_queue_proc 干了什么事。...限于篇幅原因,ep_remove和ep_modify方法我们会在下一篇文章中分析。
Linux下的tcp编程中,第一步就是要创建socket,本文将从源码角度看下socket是如何被创建的。...本文使用的linux内核版本为 ➜ bionic git:(ffdd392b8196) git remote get-url origin git://git.launchpad.net/~ubuntu-kernel...-45.48 有关如何找到当前运行的Ubuntu版本对应的内核源码,请参考 找到运行的Ubuntu版本对应的内核源码。...在看具体的源码分析之前,最好先看下socket的man文档,这样能对socket api有个大概的了解。...有关epoll的源码分析,请参见 Linux epoll 源码分析 1 Linux epoll 源码分析 2 Linux epoll 源码分析 3 5.
本文将从源码角度分析epoll的实现机制,使用的内核版本为 ➜ bionic git:(ffdd392b8196) git remote -v origin git://git.launchpad.net.../~ubuntu-kernel/ubuntu/+source/linux/+git/bionic (fetch) origin git://git.launchpad.net/~ubuntu-kernel.../ubuntu/+source/linux/+git/bionic (push) ➜ bionic git:(ffdd392b8196) git status HEAD detached at Ubuntu...-4.15.0-45.48 有关如何找到对应的内核源码,请参考 找到运行的Ubuntu版本对应的内核源码。...至此,epoll_wait 方法也分析完毕。 有关 epoll_ctl 方法及其他epoll内容,我们会在另起文章再来分析。
Linux内核源码分析方法 一、内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。...我也是通过一个项目接触了Linux内核源码的分析,从源码的分析工作中,我受益颇多。除了获取相关的内核知识外,也改变了我对内核代码的过往认知: 1.内核源码的分析并非“高不可攀”。...从本质上讲,分析Linux内核代码和看别人的代码没有什么两样,因为摆在你面前的一般都不是你自己写出来的代码。...我们先举一个简单的例子,一个陌生人随便给你一个程序,并要你看完源码后讲解一下程序的功能的设计,我想很多自我感觉编程能力还可以的人肯定觉得这没什么,只要我耐心的把他的代码从头到尾看完,肯定能找到答案,并且事实确实是如此...目前的Linux源码会把模块相关的文档说明保存在源码目录的documention的文件夹下,如果待分析的模块没有文档说明,这多少会增加定位关键源码文件的难度,但是不会导致我们找不到我们要分析的源码。
unix_proto_getname, unix_proto_read, unix_proto_write, unix_proto_select, unix_proto_ioctl }; 二、建立连接源码分析...buf = NULL; upd->bp_head = upd->bp_tail = 0; } } --upd->refcnt; } 三、读发送接收源码分析
之前的文章已经分析了tcp的建立过程以及tcp读和写,下面我们继续看下shutdown方法。
// net/socket.c SYSCALL_DEFINE2(listen, int, fd, int, backlog) { struct socket...
上面的文章已经分析了tcp建立的整个过程,下面我们来看下write是如何实现tcp写的。...// include/linux/fs.h static inline ssize_t call_write_iter(struct file *file, struct kiocb *kio,
connect方法对应的内核源码为 // net/socket.c SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr
accept方法对应的内核源码为 // net/socket.c SYSCALL_DEFINE3(accept, int, fd, struct sockaddr __user *, upeer_sockaddr
之后又调用call_read_iter方法,传入这些新的参数,继续执行read逻辑 // include/linux/fs.h static inline ssize_t call_read_iter...当tcp层收到数据后,会将数据放到sk->sk_receive_queue队列中,等待用户读取,该部分逻辑的详细分析,我们以后会另开文章详细讲解。 7.
领取专属 10元无门槛券
手把手带您无忧上云