-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
1 lines (1 loc) · 55 KB
/
index.html
1
<!doctype html><html lang=zh-cmn-hans-cn prefix="og: http://ogp.me/ns#"><head><meta charset=utf-8><meta name=generator content="Hugo 0.110.0"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><meta name=author content="ffutop"><meta property="og:url" content="https://www.ffutop.com/"><link rel=canonical href=https://www.ffutop.com/><link rel=apple-touch-icon href=favicon.ico><link rel=icon href=favicon.ico><link rel=shortcut href=favicon.ico><link rel=alternate type=application/atom+xml href=https://www.ffutop.com/index.xml title="Utop's Blog"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/www.ffutop.com\/"},"articleSection":"","name":"Utop\u0027s Blog","headline":"Utop\u0027s Blog","description":"","inLanguage":"en-US","author":"ffutop","creator":"ffutop","publisher":"ffutop","accountablePerson":"ffutop","copyrightHolder":"ffutop","copyrightYear":"2024","datePublished":"2024-09-29 00:00:00 \u002b0000 UTC","dateModified":"2024-09-29 00:00:00 \u002b0000 UTC","url":"https:\/\/www.ffutop.com\/","keywords":[]}</script><title>Utop's Blog</title><meta property="og:title" content="Utop's Blog"><meta property="og:type" content="website"><meta property="og:description" content><meta name=description content><meta property="og:locale" content="zh-cmn-Hans-CN"><meta property="og:image" content="favicon.ico"><style>body{font-family:bree serif,sans-serif;-webkit-font-smoothing:antialiased;margin:0 20px}article{max-width:800px;margin-left:auto;margin-right:auto}a{color:#000;text-decoration:none}a:hover{font-weight:600;text-decoration:underline}.post-ads{margin:50px 0}.markdown-body{font-size:18px;max-width:100%}.markdown-body a{text-decoration:underline;text-decoration-color:#000}.markdown-body blockquote{margin:0;padding:0 1em;color:#57606a;border-left:.25em solid #d0d7de}.markdown-body pre{padding:16px;overflow:auto;border-radius:10px}.markdown-body code{padding:.2em .4em;font-size:85%;background-color:#f6f8fa;border-radius:6px}.markdown-body pre>code{padding:0;font-size:100%;background-color:inherit;border:0}.Chinese .markdown-body{line-height:200%}.site-date-catalog{font-size:2rem}.header-title{font-size:2rem;font-weight:700;margin-top:32px;font-family:bungee shade,sans-serif}.header-title a{text-decoration:none}.header-subtitle{color:#666}.header-items{margin:10px 0}.header-item{margin:0 5px}.header-line{width:100%;border-width:2px;border-color:#482936;border-style:solid none none none}.lang-switch{font-weight:600}#posts-list{min-height:600px}.posts-line{font-size:1.2rem;margin:12px 0}.posts-categories{font-size:.8rem;margin:auto;text-align:center}.posts-category{padding:3px 0;border:#000 2px solid;border-radius:5px}.site-footer{margin-top:50px}.site-footer-item{margin-right:12px}.post-content img{max-width:100%;display:block;margin-right:auto;margin-top:12px}.post-header{margin-bottom:50px}.post-title{font-size:2rem;font-weight:600}.post-tags{display:inline;font-weight:600;padding:2px 5px;margin-right:6px;border:#000 2px solid;border-radius:5px}.post-date{font-weight:800;font-style:italic}.post-author{float:right;font-weight:600}.page-content{min-height:60%}.post-content{margin-bottom:50px}.post-content p{hyphens:auto;line-height:1.8;text-justify:ideographic;margin-bottom:1em}.related-content{border-width:3px;border-style:solid;border-color:#000;padding:0 10px;margin-bottom:50px;margin-top:100px}.related-content li{margin:5px 0}.taxonomy-term{font-size:3rem}.gallery-img{text-align:center}.gallery-img span{text-align:center}.gallery-img-desc{font-size:.8em;font-weight:800}#disqus_thread{position:relative}#disqus_thread:after{content:"";display:block;height:55px;width:100%;position:absolute;bottom:0;background:#fff}@media screen and (max-width:600px){.header-title,.header-subtitle,.header-items{text-align:center}.posts-line{font-size:16px}.markdown-body{font-size:16px}.post-title{font-size:2rem}.post-content p{letter-spacing:.05em}}@media screen and (max-width:48em){.posts-category{display:none}}</style><style>.container,.container-fluid{margin-right:auto;margin-left:auto}.container-fluid{padding-right:2rem;padding-left:2rem}.row{box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:initial;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-.5rem;margin-left:-.5rem}.row.reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.col.reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.col-xs,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-offset-0,.col-xs-offset-1,.col-xs-offset-10,.col-xs-offset-11,.col-xs-offset-12,.col-xs-offset-2,.col-xs-offset-3,.col-xs-offset-4,.col-xs-offset-5,.col-xs-offset-6,.col-xs-offset-7,.col-xs-offset-8,.col-xs-offset-9{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:none;padding-right:.5rem;padding-left:.5rem}.col-xs{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-xs-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-xs-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-xs-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-xs-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-xs-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-xs-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-xs-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-xs-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-xs-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-xs-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-xs-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-xs-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-11{margin-left:91.66666667%}.start-xs{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-xs{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-xs{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-xs{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-xs{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-xs{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-xs{-ms-flex-pack:distribute;justify-content:space-around}.between-xs{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-xs{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-xs{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}@media only screen and (min-width:48em){.container{width:49rem}.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-offset-0,.col-sm-offset-1,.col-sm-offset-10,.col-sm-offset-11,.col-sm-offset-12,.col-sm-offset-2,.col-sm-offset-3,.col-sm-offset-4,.col-sm-offset-5,.col-sm-offset-6,.col-sm-offset-7,.col-sm-offset-8,.col-sm-offset-9{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:none;padding-right:.5rem;padding-left:.5rem}.col-sm{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-sm-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-sm-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-sm-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-sm-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-sm-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-sm-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-sm-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-sm-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-sm-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-sm-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-sm-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-sm-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}.start-sm{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-sm{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-sm{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-sm{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-sm{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-sm{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-sm{-ms-flex-pack:distribute;justify-content:space-around}.between-sm{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-sm{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-sm{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}@media only screen and (min-width:64em){.container{width:65rem}.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-offset-0,.col-md-offset-1,.col-md-offset-10,.col-md-offset-11,.col-md-offset-12,.col-md-offset-2,.col-md-offset-3,.col-md-offset-4,.col-md-offset-5,.col-md-offset-6,.col-md-offset-7,.col-md-offset-8,.col-md-offset-9{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:none;padding-right:.5rem;padding-left:.5rem}.col-md{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-md-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-md-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-md-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-md-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-md-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-md-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-md-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-md-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-md-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-md-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-md-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-md-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}.start-md{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-md{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-md{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-md{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-md{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-md{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-md{-ms-flex-pack:distribute;justify-content:space-around}.between-md{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-md{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-md{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}@media only screen and (min-width:75em){.container{width:76rem}.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-offset-0,.col-lg-offset-1,.col-lg-offset-10,.col-lg-offset-11,.col-lg-offset-12,.col-lg-offset-2,.col-lg-offset-3,.col-lg-offset-4,.col-lg-offset-5,.col-lg-offset-6,.col-lg-offset-7,.col-lg-offset-8,.col-lg-offset-9{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:none;padding-right:.5rem;padding-left:.5rem}.col-lg{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-lg-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-lg-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-lg-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-lg-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-lg-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-lg-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-lg-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-lg-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-lg-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-lg-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-lg-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}.start-lg{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-lg{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-lg{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-lg{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-lg{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-lg{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-lg{-ms-flex-pack:distribute;justify-content:space-around}.between-lg{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-lg{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-lg{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}</style><link href=/index.xml rel=alternate type=application/rss+xml title="Utop's Blog"><link rel=preconnect href=https://fonts.gstatic.com><link href="https://fonts.googleapis.com/css?family=Bree+Serif|Bungee+Shade" rel=stylesheet><script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script><script id=MathJax-script async src=https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-3RHY4L44ZL"></script> <script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-3RHY4L44ZL")</script></head><body><article class=posts><div class=row><div class=col-xs-12><header><div class=header-title><a href=/>FFUTOP</a></div><div class=header-subtitle></div></header><div class="row end-md center-xs header-items"><div class=header-item><a href=/posts/ target=_blank>Posts</a></div><div class=header-item><a href=/index.xml target=_blank>RSS</a></div><div class=header-item><a href=https://github.com/ffutop target=_blank>Github</a></div><div class=header-item><a href=/about/ target=_blank>About</a></div></div><div class="row end-xs"></div><div class=header-line></div><div id=posts-list><section><h1 class=site-date-catalog>2024</h1><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2024-09-29 00:00:00 UTC">Sep 29</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2024-09-29-fin-wait2/>HAProxy 大量 FIN_WAIT2 状态连接故障分析</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2024-08-06 00:00:00 UTC">Aug 06</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2024-08-06-faketime/>容器内进程的 faketime 热更新</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2024-06-19 00:00:00 UTC">Jun 19</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2024-06-19-freetype-glyph/>[译] FreeType 字形约定</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e7%bf%bb%e8%af%91/><strong>翻译</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2024-01-17 00:00:00 UTC">Jan 17</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2024-01-17-timescaledb-chunks-excluded/>TimescaleDB 超表查询性能优化</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%a1%88%e4%be%8b%e5%88%86%e6%9e%90/><strong>案例分析</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2024-01-16 00:00:00 UTC">Jan 16</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2024-01-16-timescaledb-constriant-exclusion/>[译](Timescale)实施约束排除以提高查询性能</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e7%bf%bb%e8%af%91/><strong>翻译</strong></a></div></div></div></div></div></section><section><h1 class=site-date-catalog>2023</h1><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2023-08-24 00:00:00 UTC">Aug 24</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2023-08-24-jsr-385/>[译] JSR 385 - 计量单位 API 2.0</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e7%bf%bb%e8%af%91/><strong>翻译</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2023-03-18 00:00:00 UTC">Mar 18</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2023-03-18-tls-parse/>TLS 加密报文解析</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e7%bd%91%e7%bb%9c/><strong>网络</strong></a></div></div></div></div></div></section><section><h1 class=site-date-catalog>2022</h1><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2022-11-12 00:00:00 UTC">Nov 12</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2022-11-12-tcp-state/>TCP 异常状态总结</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e7%bd%91%e7%bb%9c/><strong>网络</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2022-08-12 00:00:00 UTC">Aug 12</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2022-08-12-kubeedge/>KubeEdge - 边缘管理与监控</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2022-07-21 00:00:00 UTC">Jul 21</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2022-07-19-telegraf/>Telegraf 执行流</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div></section><section><h1 class=site-date-catalog>2021</h1><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2021-12-10 00:00:00 UTC">Dec 10</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2021-12-10-log4j-rce/>Log4J 漏洞浅析(CVE-2021-44228)</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/cve/><strong>CVE</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2021-10-31 00:00:00 UTC">Oct 31</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2021-10-31-grpc-mtls/>gRPC 在跨云架构中的 mTLS 配置</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2021-07-23 00:00:00 UTC">Jul 23</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2021-07-23-ssh-proxy/>SSH 代理</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/cheat%20sheet/><strong>Cheat Sheet</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2021-05-21 00:00:00 UTC">May 21</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2021-05-21-certificate-issue/>ACME 协议下的域名证书签署</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/cheat%20sheet/><strong>Cheat Sheet</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2021-05-19 00:00:00 UTC">May 19</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2021-05-19-certificate-chain-problem/>CURL 与证书链问题</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%a1%88%e4%be%8b%e5%88%86%e6%9e%90/><strong>案例分析</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2021-04-03 00:00:00 UTC">Apr 03</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2021-04-03-nginx-dns-cache/>NGINX 的域名解析缓存</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%a1%88%e4%be%8b%e5%88%86%e6%9e%90/><strong>案例分析</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2021-03-15 00:00:00 UTC">Mar 15</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2021-03-15-datetime-vs-calendar/>时间(Timestamp)、日历(Calendar)与夏令时</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%a1%88%e4%be%8b%e5%88%86%e6%9e%90/><strong>案例分析</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2021-01-24 00:00:00 UTC">Jan 24</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2021-01-24-darts/>双数组前缀树</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div></section><section><h1 class=site-date-catalog>2020</h1><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-11-06 00:00:00 UTC">Nov 06</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-11-06-deadlock-insert-update/>MySQL DeadLocks with INSERT</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%a1%88%e4%be%8b%e5%88%86%e6%9e%90/><strong>案例分析</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-10-19 00:00:00 UTC">Oct 19</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-10-19-hijack-http-req/>劫持 Java 应用 HTTP 请求</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-08-06 00:00:00 UTC">Aug 06</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-08-06-tun/>tcp Tunnel</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-07-25 00:00:00 UTC">Jul 25</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-07-25-non-standard-uri/>URI不规范编码解决方案</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-07-17 00:00:00 UTC">Jul 17</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-07-17-oauth-and-openid/>纠缠不清的 OAuth vs OpenId</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-06-17 00:00:00 UTC">Jun 17</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-06-17-dubbo-telnet/>Dubbo Telnet 调试</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/cheat%20sheet/><strong>Cheat Sheet</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-05-23 00:00:00 UTC">May 23</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-05-23-uri/>URI 与资源定义</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e8%a7%81%e8%a7%a3/><strong>见解</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-04-11 00:00:00 UTC">Apr 11</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-04-11-large-http-header/>HTTP Large Header Fields Problem</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-03-26 00:00:00 UTC">Mar 26</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-03-26-idempotent/>Idempotent Pattern</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e8%a7%81%e8%a7%a3/><strong>见解</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-02-28 00:00:00 UTC">Feb 28</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-02-28-db-transfer-based-on-dns/>基于DNS的数据库切换·事故</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-02-17 00:00:00 UTC">Feb 17</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-02-17-raft/>分布式共识·Raft Algorithm</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2020-01-27 00:00:00 UTC">Jan 27</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2020-01-27-go-routine/>Goroutine 与调度</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div></section><section><h1 class=site-date-catalog>2019</h1><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-12-24 00:00:00 UTC">Dec 24</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-12-24-how-calico-works/>Calico 网络通信解析</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-12-14 00:00:00 UTC">Dec 14</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-12-14-https/>HTTPS 安全通讯如何上演?</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-11-06 00:00:00 UTC">Nov 06</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-11-07-groovyclassloader-fullgc/>GroovyClassLoader 引发的 FullGC</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-10-17 00:00:00 UTC">Oct 17</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-10-17-random/>随机数生成器拖慢 Tomcat 启动速度</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-10-12 00:00:00 UTC">Oct 12</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-10-12-bpf/>理解 Linux Kernel (14) - cBPF</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-09-16 00:00:00 UTC">Sep 16</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-09-16-load-average/>系统平均负载分析</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-08-23 00:00:00 UTC">Aug 23</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-08-23-traffic-control/>Linux Traffic Control</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-08-19 00:00:00 UTC">Aug 19</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-08-20-too-many-links/>Too many links problem</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-08-06 00:00:00 UTC">Aug 06</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-08-06-netfilter/>Netfilter 导览 - based on iptables</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-07-17 00:00:00 UTC">Jul 17</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-07-17-understand-kernel-13/>理解 Linux Kernel (13) - 虚拟内存</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-07-06 00:00:00 UTC">Jul 06</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-07-06-jni_problem/>JNI 引发的堆外内存泄露</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-06-18 00:00:00 UTC">Jun 18</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-06-18-understand-kernel-12/>理解 Linux Kernel (12) - Linux 容器化技术</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-06-02 00:00:00 UTC">Jun 02</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-06-02-ftrace/>跟踪内核函数的工具—— Ftrace</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-05-27 00:00:00 UTC">May 27</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-05-27-understand-kernel-11/>理解 Linux Kernel (11) - 进程间通信</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-05-20 00:00:00 UTC">May 20</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-05-20-close_wait_problem/>pipe 导致的 CLOSE_WAIT</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-05-10 00:00:00 UTC">May 10</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-05-10-png-structure/>PNG 文件格式</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-04-26 00:00:00 UTC">Apr 26</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-04-26-time-accuracy/>MySQL TIMESTAMP 时间精度问题</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-04-25 00:00:00 UTC">Apr 25</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-04-25-lex-and-yacc/>Lex & Yacc 学习笔记</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-04-10 00:00:00 UTC">Apr 10</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-04-10-understand-kernel-10/>理解 Linux Kernel(10) - Context of Execution</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-03-25 00:00:00 UTC">Mar 25</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-03-25-mem-dump/>如何获取运行时进程堆栈</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-03-19 00:00:00 UTC">Mar 19</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-03-19-janus/>认证与授权·简述</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-03-05 00:00:00 UTC">Mar 05</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-03-05-understand-kernel-9/>理解 Linux Kernel (9) - IO Multiplexing</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-02-27 00:00:00 UTC">Feb 27</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-02-27-java-fatal-api/>【Java】API 参数误定义的后果</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-02-02 00:00:00 UTC">Feb 02</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-02-02-unicode/>字符集与字符编码</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2019-01-15 00:00:00 UTC">Jan 15</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2019-01-15-understand-kernel-8/>理解 Linux Kernel (8) - 网络</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div></section><section><h1 class=site-date-catalog>2018</h1><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-12-28 00:00:00 UTC">Dec 28</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-12-28-understand-kernel-7/>理解 Linux Kernel (7) - 字符设备</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-12-15 00:00:00 UTC">Dec 15</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-12-15-sql-injection/>SQL 注入</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-11-16 00:00:00 UTC">Nov 16</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-11-16-regex-exponential-explosion/>正则表达式指数爆炸</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-11-11 00:00:00 UTC">Nov 11</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-11-11-understand-kernel-6/>理解 Linux Kernel (6) - read & write</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-10-14 00:00:00 UTC">Oct 14</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-10-14-understand-kernel-5/>理解 Linux Kernel (5) - 文件系统(宏观描述)</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-10-12 00:00:00 UTC">Oct 12</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-10-12-understand-kernel-4/>理解 Linux Kernel (4) - 任务调度</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-10-06 00:00:00 UTC">Oct 06</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-10-06-understand-kernel-3/>理解 Linux Kernel (3) - 操作系统启动</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-09-27 00:00:00 UTC">Sep 27</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-09-27-mail/>Understand MAIL</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-09-18 00:00:00 UTC">Sep 18</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-09-18-tcp-syn/>TCP SYN 包模拟</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-09-08 00:00:00 UTC">Sep 08</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-09-08-preprocessor-output/>Preprocessor Output</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-08-26 00:00:00 UTC">Aug 26</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-08-26-understand-kernel-2/>理解 Linux Kernel (2) - 多任务切换</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-08-19 00:00:00 UTC">Aug 19</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-08-19-understand-kernel-1/>理解 Linux Kernel (1) - BIOS</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-08-19 00:00:00 UTC">Aug 19</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-08-19-understand-kernel-0/>理解 Linux Kernel (0) - 概述</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-08-15 00:00:00 UTC">Aug 15</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-08-15-java-instrumentation/>Java Instrumentation</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-07-24 00:00:00 UTC">Jul 24</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-07-24-jvm-instruction/>JVM 指令简析</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-07-20 00:00:00 UTC">Jul 20</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-07-20-java-proxy/>Java Proxy 源码解析</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-07-13 00:00:00 UTC">Jul 13</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-07-13-how-to-easily-get-cglib-generated-code/>如何方便地获取 CGlib 生成类</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-07-10 00:00:00 UTC">Jul 10</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-07-10-cglib-enhancer/>CGlib Enhancer 主流程源码解析</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-07-04 00:00:00 UTC">Jul 04</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-07-04-jdk-permission/>Java 安全访问与权限控制</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-06-28 00:00:00 UTC">Jun 28</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-06-28-asm-verifyerror/>ASM-VerifyError错误信息解决</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-06-25 00:00:00 UTC">Jun 25</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-06-25-asm-core/>ASM 核心包基本内容漫谈</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-06-21 00:00:00 UTC">Jun 21</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-06-21-java-memory-model/>java-memory-model</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-06-11 00:00:00 UTC">Jun 11</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-06-11-asm-classreader/>ASM - ClassReader 与 Java ClassFile 文件格式</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-03-01 00:00:00 UTC">Mar 01</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-03-01-%E5%8C%BA%E5%9D%97%E9%93%BE%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D/>区块链技术概述</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div><div class="row posts-line"><div class="posts-date col-xs-3 col-sm-2"><time datetime="2018-01-15 00:00:00 UTC">Jan 15</time></div><div class="posts-title col-xs-9 col-sm-10"><div class=row><div class="col-xs-11 col-sm-10"><a href=/posts/2018-01-15-spring-jdbc-code-reading/>Spring JDBC 源码学习</a></div><div class="col-xs-1 col-sm-2 posts-categories"><div class=posts-category><a href=/categories/%e6%8a%80%e6%9c%af/><strong>技术</strong></a></div></div></div></div></div></section></div><div class=site-footer></div></div></div></article><script></script></body></html>