llhuii's Blog

Happy coding

Jos

llhuii posted @ 2013年6月26日 17:18 in programming with tags linux jos , 5782 阅读

花了一个月做JOS[1], 阅读xv6[2]和linux-0.11[3], 收获颇多.
MIT的计算机和Linus果然名不虚传(即便只是linux-0.11).

## 读源码也是一种乐趣.

-----------------------------------
JOS

它分为七个实验:
1.启动.
2.内存管理.
3.用户环境
4.可抢断多任务
5.文件系统
6.网络驱动
7.A shell

============================
Lab 1: Booting a PC.
计算机启动->BIOS->引导启动程序->内核, 也可见[4].

引导启动程序主要干两件事:
1.将处理器从实模式转换到32位保护模式. (boot/boot.S)
2.从硬盘读内核, 将控制权转给内核. (boot/main.c)

内核获得控制之后, 由于代码还在低地址运行需要开启分页机制, 然后通过间接调用跳到
高地址的C初始化代码. (kern/entry.S, kern/entrypgdir.c)

内核初始化(kern/init.c):
1)console: keyboard/vga/serial. (kern/console.c)
2)目前直接monitor.(kern/monitor.c) (后序实验初始化, 如内存, 文件系统等)

Challenges:
1) Enhance the console, see [3] "字符设备驱动程序"一章.

Summary: It took me much time to review not-so-familiar knowledge, i.e.
assembly instructions, 80x86 registers, and gdb.


============================
Lab 2: Memory Management.

Part 1: 物理内存管理. (kern/pmap.c)
1)页面的初始化.
2)页面的分配和回收.

Part 2: 虚拟内存. (kern/pmap.c)
1)虚拟地址/线性地址/物理地址三者之间的转换.
2)页表的管理, 插入和删除页面时页目录和页表的更新.

Part 3: 内核地址空间
1)JOS 内存layout. (inc/memlayout.h)
2)内核的保护. (页表项, 段选择符)

Challenges:
1) Reducing pages for KERNBASE mapping, see [2](entrypgdir in main.c).
2) Malloc/free, see [2](umallo.c) and [4](lib/mallo.c).

Summary: I'm more clear about these three addresses and memory
layout/allocating/freeing, etc.


============================
Lab 3: User Environments.

Part A: 用户环境和异常处理

JOS的用户环境类似于Unix进程. (kern/env.c)
1) 内核需要为用户环境保存的信息. (env_id 含有个有趣的部分)
2) 分配用户环境空间, 创建和运行用户环境. (由于没有文件系统, JOS嵌入binary到
        kernel)

异常处理, 设置中断描述表IDT. (kern/trap.c, kern/trapentry.S)

Part B: 页故障, 断点和系统调用
页故障, CR2. (kern/trap.c)

断点, 主要用来user-mode panic. (kern/trap.c)

系统调用. (kern/syscall.c)
1)参数的传递是通过5个registers(edx, ecx, ebx, edi, esi), eax保存系统调用号.

Challenges:
1) Clean trapentry.S up, we can script it, see [4](vectors.pl).
2) Support 'continue', set TF and RF of EFLAGS, then go back user.
3) Sysenter/sysexit, see [5].

Summary: Trap, exception, and syscall; kernel protection; kernel/user address
space switching.


============================
Lab 4: Preemptive multitasking

Part A: 多核支持和合作式多任务

多核支持: (kern/lapic.c) ## 这部分没细看
1)BSP(bootstrap processor) 激活APs(application processors)
2)Per-CPU 状态和初始化. (Kernel stack, tss 和 tss 描述符, 当前env, registers,
        idle env)

Locking(kern/spinlock.c), Big Kernel Lock.

Scheduling(kern/sched.c), Round-Robin.

System calls for 创建用户环境: (注意权限和地址的合法性判断)
1) sys_exofork, 类似Unix fork, 创建新用户环境, child 被标记不可运行.
2) sys_env_set_status, 设置可运行或不可运行.
3) sys_page_alloc, 分配新页面.
4) sys_page_map, 复制一页面的映射.
5) sys_page_unmap, unmap 一页面.

Part B: Copy-on-Write Fork

用户级页错误处理函数:
1) 设置页错误处理函数.
2) 异常栈(Exception stack).
3) 调用页错误处理函数.
4) Entrypoint. ## 有点难且有趣

实现CoW Fork: ## 难点: 理解vpt/vpd
1) 设置页错误处理函数.
2) sys_exofork 创建新env.
3) 为父/子env 设置cow-or-writable 页面为 cow, 除了异常栈.
4) 为子env设置页错误处理函数.
5) 标记子env可运行.

Part C: IPC

1) send/receive.
2) lib wrapper.

## 令我十分吃惊的是primes.c, 它用一种新颖的思路实现prime sieve.

## 这部分Challenges十分有趣, 花了我很多时间, 尤其是power-series.
Challenges:
1) Drop big kernel lock, see [2] and [4].
2) Add a scheduling policy, well, todo.
3) SFORK, easy but heed the global ``thisenv'' pointer.
4) Un-loop ipc_send, the only way I can occur is the block-wait.
5) Matrix multiplication, using sfork.
6) Power series, GOOD ONE, also see [6](Python implementation).
7) "Improving IPC by Kernel Design", so many tricks :-), todo.

Summary: Other CPUs are activated by BSP; Locking and Scheduling both are big
chunks; COW fork is easy to say, but seem tricky to implement; Page Fault is
also tricky; IPC...

============================
Lab 5: File System
## 主要工作是看代码.

文件系统在磁盘上数据结构:
1) 区(Sector)与块(Block)
2) 超级块(Superblock)

3) 块位图(block bitmap)
4) 文件元数据(File meta-data)

文件系统组成部分:
1) 磁盘访问, see also [4]'s "块设备驱动程序" 一节.
2) 块缓存的管理.
3) 位图的管理.
4) 文件操作.

该文件系统是由一个专门env来实现, JOS 通过IPC的方式让其它env来使用该文件系统.

Spawning processes
## 这段代码还挺有意思.
##

Challenges:
1) Crash-resilient, see [2]
2) Inode, see [2]
3) Unix-style exec, tricky as the kernel is needed to do the entire replacement.
4) Mmap-style, no that hard.

Summary: Delving into this simple FS, now I understand FS more clearly.


============================
Lab 6: Network Driver

## 本实验主要阅读Intel的8254x手册, 以及阅读源码(略过lwIP).

## 之前我一直使用从官方编译的QEMU, 这个实验要使用6.828的版本便于调试(见JOS-tool).

## 这个实验开始grade-test改用python实现, 这可以说是一大改进, 因为可以部分测试了,
## 十分方便.

该网络驱动分为四个部分:
1) 核心网络服务环境
2) 输入环境
3) 输出环境
4) 定时器
## 主要完成2/3/4.

Part A: 初始化和网络包的传输

网卡识别与初始化:
1) PCI接口
2) 内存映射I/O
3) DMA

包的传输, 传输队列的初始化与更新, 注意队列满的处理.

Output 环境, 注意等待的情况.

Part B: 包的接收和Web服务器

包的接受, 类似于传输的情况, 接收队列的相关处理.

Input 环境, 注意IPC 页面的竞争.

Web 服务器, 一个简单网页服务器的实现.

Challenges:
1) Reading MAC address from EEPROM, from the 8254x manual, there are two ways to
         do this:EEPROM Read register and control register. But the first doesn't work,
         the second implementation is stolen from linux-2.6.38.
2) Zero-copy, messy, see [7].
3) For other challenges, I'm sorry, either you're hard or I'm busy.

Summary: I'm forced to read the Intel's 8054x manual, and now feel comfortable
about hardware's details. Networking seems to be interesting.


============================
Lab 7: Final Project
1) 共享库代码, PTE_COW.
2) 键盘接口, see [3].
3) Shell, see also [2].

Challenges:
1) The project, 我还不够优秀来完成这个Project, 没有足够好的想法。

Summary: This lab except the challenge requires the least code. If I have much
time, I would want to see the bash source.


============================
Needed requirements:
1) OS concept
2) 80x86 concept
2) Assembly(gas)/C/Inline_assembler
3) GDB
4) ELF, part.

Optional requirements:
1) Hardware programming, keyboard/console/disk/network etc.
2) Make, Makefile of course.
3) Shell, grade test for lab1-5.
4) Python, grade test for lab6-7. ## It took me 1/2 day to understand, and
        another 1/2 to deal with the qemu-bug.
5) Qemu, well I didn't dive into it.
6) Gcc/ld, ditto.

Tools I use:
## well, it could be better to write another article.

1) Vim. You need a damn great editor and make full use of it. For vim, I heavily
        use cscope, marks, tabs, global/substitute, etc, and good plugins[8].
2) Tmux. A terminal multiplexer (Before I used GNU screen).

-----------------------------------
Xv6
阅读[2]给的书和源码.

-----------------------------------
Linux-0.11
阅读[3]和linux-0.11源码.



引用: ## JOS主页本身含有大量好资源.
[1] MIT-JOS, http://pdos.csail.mit.edu/6.828/2011/overview.html
[2] Xv6, http://pdos.csail.mit.edu/6.828/2011/xv6.html
[3] Linux0.11, <<linux内核完全剖析>> 赵炯
[4] Booting, http://www.ruanyifeng.com/blog/2013/02/booting.html
[5] Sysenter, http://articles.manugarg.com/systemcallinlinux2_6.html
[6] Power-series, https://github.com/pdonis/powerseries
[7] Zero-copy, http://www.ibm.com/developerworks/library/j-zerocopy/index.html
[8] Vim-good-plugins, https://github.com/carlhuda/janus

maid services dubai 说:
2019年9月15日 19:53

Now we have leading providers at Provilink with the cleaning community. No suspect, you will be able to avail belonging to the service with one covering whether you need villa maintaining, building maintaining, and storage facility cleaning. They have also been expert in supplying you with apartment maintaining and home office cleaning.

Kris Thorkelson 说:
2019年10月31日 19:06

Kris Thorkelson, who began his career in the pharmaceutical industry in Winnipeg, Manitoba, operates several pharmacies, in addition to his real estate business. “As a leader, it is your role to praise employees who do a good job,” Thorkelson adds.

rapidity-news.com 说:
2019年11月14日 00:55

Dressing fashionably is a terrific express your own self and give a boost to your trust. It may lead to success in areas, even ones own professional and even personal everyday life. However, designer trends shift quickly. It usually feels impossible to maintain up with that fast-paced.

paper io 说:
2020年2月17日 14:52

I'm glad I found this web site, I couldn't find any knowledge on this matter prior to. Also, operate a site and if you are ever interested in doing some visitor writing for me if possible feel free to let me know, I'm always looking for people to check out my web site.

sikkim health 说:
2020年3月19日 22:28

Health and fitness worries basically serve a motive and that purpose seriously isn't difficult to help detect in the event one appears to be deep plenty of into that pattern connected with behavior. Often that pattern involves serotonin levels distracting by specific emotions how the individual confirms difficult to treat.

clean tech laws 说:
2020年3月19日 22:29

Produce personal liability your default location. Yes, initially it truly is easier, cheaper and even more convenient find fault, excuse, refute and/or neglect responsibility in comparison with to adapt to it. Such are classified as the current default settings practically in most cultures, including each of our. In this long in any other case medium assortment, however, it truly is healthier, more satisfying and more appropriate to assume at the very least some quantity responsibility.

bank ruptcy law merc 说:
2020年3月19日 22:29

This demand intended for law school along with the government subsidization connected with school concluded in the growth on the school marketplace, aided by means of publications including U. Ohydrates. News featuring a ludicrous classes rankings. Schools evolved into financial benefit centers connected with universities (including successful activities programs) and in some cases were instructed to kick returning money towards central college or university administration that can help underwrite all of those other less profitable regions of the college or university.

dui lawyer montreal 说:
2020年3月19日 22:30

Legal issues of Fascination has received lots of media attention nowadays. Thanks towards movie Secrets and the next explosion connected with television, print out media in addition to internet insurance policy coverage, nearly all people in European society possesses heard this phrase "Law connected with Attraction".

wendy wood law 说:
2020年3月19日 22:33

If we could accept that each possibilities exist in our moment in addition to remain focused from the Now connected with life, consciously letting the Legislation of Lifetime to widely operate as a result of us, we would soon recognize that we are usually in a co-created earth which we have now personal liability for providing into everyday living.

Mike 说:
2020年4月23日 04:38

This write-up was created by a genuine thinking author without a doubt. I settle on most of them with the strong points made by the author. I'll be back day in and also day for further brand-new updates. Funny Wifi Names 2020

Matt 说:
2020年4月28日 05:19

Normal sees noted here are the easiest technique to appreciate your energy, which is why I am going to the web site on a daily basis, looking for new, fascinating information. Thanks!

maid service dubai 说:
2020年4月28日 19:50

The following piece should be a favorite at my Halloween current wardrobe collection. Alternative trends could come plus go, but going for a sexy German Maid is actually a costume staple that should make you get noticed from every Halloween market. Don't worry bringing a person's purse on hand when you actually wear the following seductive set of clothing, because guys might be falling through themselves for their attempts to order you a glass or two!

house painting servi 说:
2020年4月28日 19:51

painter really is vital in regards to decision building. By making use of this, you may easily have your glimpse with what the home or garden looks like. The colorations and elements used on the program are the ones that resemble the ones are out there. You could mix plus or check out a color that is definitely already premixed while in the program.

Ric Thomas 说:
2020年5月01日 09:01

Superior article, stay on par with this phenomenal job.It's wonderful to understand that this subject is being additionally covered on this internet site so cheers for taking the time to discuss this!  Thanks repeatedly! kbc winner

Ric Thomas 说:
2020年5月02日 05:19

You have actually done a fantastic work on this write-up.
It's very intelligent and extremely understandable.
You have even taken care of to make it easy as well as reasonable to check out.
You have some genuine writing skill. Thanks.  jio lottery winner,kbc lottery

Ric Thomas 说:
2020年5月02日 20:13

Efficiently composed details. It will certainly pay to anyone that uses it, counting me.
Maintain the good work.
For sure I will certainly examine out even more posts a day in and day out.  jio lottery winner

Ric Thomas 说:
2020年5月08日 03:39

Very informative message!
There is a lot of info here that can help any organisation
begin with a successful social networking campaign.  assignment代写

Ric Thomas 说:
2020年5月08日 14:15

Favorable website, where did u generate the info on this uploading? I have read a few of the write-ups on your site currently, as well as I actually like your design. Many thanks a million and also please maintain the reliable job. kbc head office number

Ric Thomas 说:
2020年5月08日 15:18

Maintain up the great; I check out a few messages on this site, including I consider that your blog is fascinating and has collections of fantastic piece of details. Many thanks for your valuable initiatives. kbc winner

Ric Thomas 说:
2020年5月08日 15:20

I'm sure that you will certainly be making a truly helpful location.
Great carry out! kbc lottery winner

Ric Thomas 说:
2020年5月08日 15:58

Regular visits provided here are the simplest method to value your power, which is why I am mosting likely to the website every day, browsing for brand-new, interesting details. Thank you! kbc lottery

Ric Thomas 说:
2020年5月09日 15:51

Superior blog post, stay on par with this exceptional work. It's good to understand that this subject is being additionally covered on this internet website so joys for putting in the time to review this! Many thanks over and over! assignment代写

Ric Thomas 说:
2020年5月11日 21:48

Fabulous blog post, you have actually denoted out some fantastic factors, I likewise believe this s an extremely terrific web site. kbc

Ric Thomas 说:
2020年5月11日 22:35

I will certainly check out again for even more quality web content as well as also, suggest this website to all. Thanks. kbc registration

Ric Thomas 说:
2020年5月11日 22:45

what a dazzling message I have come across as well as believed me I have been locating for this similar kind of blog post for past a week and hardly found this. Thank you significantly as well as I will certainly seek even more postings from you. kbc lottery

Andrew Strauch 说:
2020年5月24日 10:42

Routine check outs noted here are the simplest method to appreciate your energy, which is why I am going to the internet site daily, looking for brand-new, intriguing information. Thank you! kbc head office number

Andrew Strauch 说:
2020年5月24日 11:51

I appreciate this write-up for the well-researched content and exceptional wording. I got so interested in this material that I couldn't quit reading. Your blog site is really impressive. kbc winner

Andrew Strauch 说:
2020年5月24日 14:31

Hey, what a fantastic post I have come throughout and also thought me I have actually been seeking for this comparable kind of article for past a week and also rarely discovered this. Thanks really much and also I will certainly search for even more postings from you. kbc helpline number

Andrew Strauch 说:
2020年5月24日 14:35

I got way too much interesting things on your blog.
I guess I am not the just one having all the pleasure right here!
Maintain the great.  kbc customer care number

Andrew Strauch 说:
2020年5月24日 14:39

Believe it or otherwise,
it is the sort of details I've long been trying to locate.
It matches my needs a great deal.
Thank you for creating this info.  kbc winner list

Andrew Strauch 说:
2020年5月25日 14:33

Regular check outs noted here are the simplest method to value your energy,
which is why I am going to the site each day, looking for new,
intriguing details. Thank you!  best email marketing platform

Andrew Strauch 说:
2020年5月28日 11:49

Fabulous post, you have actually represented out some amazing factors, I furthermore believe this s a really wonderful internet site. I will see again for more quality web content and likewise, advise this site to all. Thanks. jio lottery 2020

Andrew Strauch 说:
2020年5月28日 11:53

Positive website, where did u think of the information on this posting? I have checked out a few of the posts on your website currently, as well as I truly like your style. Many thanks a million as well as please maintain up the efficient work. kbc winner 2020

Andrew Strauch 说:
2020年6月05日 06:41

Excellent message. I was constantly inspecting this blog site, and I'm amazed! Incredibly useful details specially the last part, I look after such details a whole lot. I was discovering this specific information for a very long time. Many thanks to this blog my expedition has actually ended. kbc winner list

Andrew Strauch 说:
2020年6月05日 07:44

Truly pleased! Whatever is very clear and also really open information of concerns. It consists of true realities. Your web site is very important. Many thanks for sharing. kbc lottery winner

Andrew Strauch 说:
2020年6月05日 09:45

You really make it look so simple with your performance but I discover this matter to be actually something which I think I would certainly never comprehend. It seems extremely wide and as well challenging for me. I'm looking ahead to your following post, I'll attempt to obtain the hang of it! kbc contact number

Andrew Strauch 说:
2020年6月05日 09:53

I review a lot of blog messages, yet I never ever listened to a subject like this. I review a lot of blog articles, yet I never listened to a subject like this. Positive site, where did u come up with the details on this uploading? I just stumbled upon your weblog and wanted to claim that I have actually really delighted in browsing your blog site posts. Positive site, where did u come up with the info on this uploading? kbc lottery winner

Andrew Strauch 说:
2020年6月05日 10:57

I want you to say thanks to for your time of this terrific read!!! I definitely take pleasure in every little bit of it as well as I have you bookmarked to look into new things of your blog a must-read blog! kbc lottery

Andrew Strauch 说:
2020年6月05日 11:00

This post was composed by a genuine reasoning writer without a question. I concur on a lot of them with the strong points made by the writer. I'll be back day in and also day for further new updates. kbc winner 2021

Andrew Strauch 说:
2020年6月05日 11:03

I appreciate this article for the well-researched material and also outstanding wording. I obtained so curious about this material that I couldn't quit checking out. Your blog site is truly impressive. jio lottery 2021

Andrew Strauch 说:
2020年6月07日 06:49

Wonderful task here on. I read a whole lot of post, yet I never listened to a topic similar to this. I Love this topic you made about the blog writer's pail checklist. Really clever. best dog training collar

Andrew Strauch 说:
2020年6月12日 10:38

I can not wait to dig deep and also kickoff using sources that I received from you. Your vitality is refreshing. kbc lottery 2021

Andrew Strauch 说:
2020年6月12日 11:22

I check out a whole lot of blog posts, yet I never listened to a topic like this. I read a whole lot of blog articles, but I never ever heard a topic like this. Favorable site, where did u come up with the details on this uploading? I simply stumbled upon your weblog and wanted to claim that I have truly appreciated surfing your blog articles. Favorable website, where did u come up with the information on this posting? kbc head office number

Andrew Strauch 说:
2020年6月12日 11:46

Normal check outs listed here are the most convenient method to appreciate your energy, which is why I am going to the website everyday, searching for brand-new, intriguing info. Thank you! jio lottery winner

Andrew Strauch 说:
2020年6月12日 12:58

This write-up was composed by a real reasoning writer undeniably. I settle on a lot of them with the strong factors made by the author. I'll be back day in and day for more new updates. kbc lottery winner 2021

Andrew Strauch 说:
2020年6月12日 13:01

I value this post for the well-researched web content and excellent wording. I obtained so curious about this material that I couldn't stop reviewing. Your blog is actually excellent. kbc lucky draw 2021

Andrew Strauch 说:
2020年6月12日 13:42

Think it or not, it is the type of info I've long been looking for. It matches my needs a great deal. Thanks for composing this info. kbc winner list

Andrew Strauch 说:
2020年6月12日 13:44

Fantastic job right here on. I check out a great deal of post, however I never ever listened to a subject like this. I Love this subject you made concerning the blogger's pail list. Really resourceful. kbc head office number

Andrew Strauch 说:
2020年6月15日 06:21

You have done a wonderful work on this article. It's very smart as well as extremely legible. You have even managed to make it reasonable and also simple to read. You have some actual composing ability. Thanks. כאן

Andrew Strauch 说:
2020年6月24日 05:52

Superior blog post, maintain up with this outstanding job. It's wonderful to know that this topic is being likewise covered on this web website so cheers for taking the time to review this! Many thanks repeatedly! roku com link

Andrew Strauch 说:
2020年7月06日 18:45

You obtained a terrific blog site. I will certainly be interested in even more similar subjects. I see you obtained truly very beneficial topics, I will be constantly checking your blog site thanks. קמגרה למכירה

Andrew Strauch 说:
2020年7月10日 04:42

Favorable site, where did u come up with the info on this uploading? I have actually reviewed a few of the posts on your web site now, as well as I really like your style. Many thanks a million as well as please maintain the effective work. kbc lucky draw 2021

Andrew Strauch 说:
2020年7月10日 04:46

Your job is genuinely valued round the world as well as the clock. It is a useful as well as incredibly thorough blog. kbc lottery winner 2021

Andrew Strauch 说:
2020年7月11日 04:27

Really helpful article! There is a great deal of info right here that can aid any company get going with a successful social networking campaign. kbc lucky winner

Andrew Strauch 说:
2020年7月11日 04:32

The most effective post I came throughout a number of years, compose something concerning it on this web page. kbc number

Andrew Strauch 说:
2020年7月15日 06:52

Hey, what a fantastic message I have encountered and also thought me I have actually been browsing out for this similar type of article for past a week as well as rarely found this. Thanks very a lot and also I will certainly look for more postings from you. how can i check my kbc lottery online?

Andrew Strauch 说:
2020年7月16日 04:06

Great Article it's ingenious as well as really interesting maintain us published with new updates. its was actually useful. thanks a lot. kbc lottery check 2021

Andrew Strauch 说:
2020年7月16日 05:00

Hey, what a brilliant article I have actually discovered and also thought me I have actually been finding for this similar type of message for past a week and barely came throughout this. Thanks quite and also I will certainly search for more postings from you. 网课代写

Andrew Strauch 说:
2020年7月16日 05:02

I got also much interesting stuff on your blog. I presume I am not the only one having all the enjoyment here! Maintain the excellent work. paragonpoker

Andrew Strauch 说:
2020年7月16日 18:58

Maintain the great; I check out a couple of posts on this site, including I think about that your blog is remarkable and has collections of great item of details. Thanks for your beneficial initiatives. kbc whatsapp number

Andrew Strauch 说:
2020年7月17日 18:52

Excellent task below on. I review a great deal of article, but I never ever listened to a subject like this. I Love this topic you made regarding the blog owner's pail checklist. Extremely clever. kbc lottery check website

Andrew Strauch 说:
2020年7月19日 05:29

Remarkable article. I like to inspect this post considering I met such a great deal of brand-new authentic components worrying it truly. Hppoker

Andrew Strauch 说:
2020年7月19日 05:32

Exceptional message. I was always inspecting this blog site, and also I'm satisfied! Very beneficial information specifically the tail end, I take care of such details a lot. I was discovering this certain info for a long time. Many thanks to this blog site my expedition has ended. mybestpoker

Andrew Strauch 说:
2020年7月19日 05:36

Favorable site, where did u think of the details on this posting? I have read a few of the articles on your web site now, as well as I actually like your style. Thanks a million and please maintain the efficient work. Lexispoker

Andrew Strauch 说:
2020年7月21日 06:03

I'm sure that you will certainly be making a really beneficial place. Great do! Judi Slot Online

Andrew Strauch 说:
2020年7月26日 04:53

Favorable site, where did u create the info on this publishing? I have actually read a few of the articles on your website currently, and also I really like your design. Many thanks a million as well as please maintain up the reliable work. kbc lottery

Andrew Strauch 说:
2020年7月26日 04:58

Superb blog post. Many thanks to this blog my expedition has finished. 25 Lakh Jio Lottery Winner List 2020

Andrew Strauch 说:
2020年7月26日 04:58

Fabulous blog post, you have actually signified out some great points, I likewise believe this s a very fantastic website. I will certainly check out again for even more quality material and additionally, advise this website to all. Thanks. dndpoker

Andrew Strauch 说:
2020年7月27日 04:59

Extremely informative post! There is a whole lot of info right here that can assist any type of organisation begin with an effective social networking project. kbc lottery winner 2020 june

Andrew Strauch 说:
2020年7月27日 04:59

The very best write-up I stumbled upon a number of years, create something about it on this page. kbc winner list

Andrew Strauch 说:
2020年8月08日 22:34

You have done a great job on this article. It's extremely intelligent as well as very understandable. You have even taken care of to make it understandable and very easy to check out. You have some real writing talent. Thanks. 먹튀검증사이트

Andrew Strauch 说:
2020年8月08日 22:34

This short article was created by an actual thinking writer certainly. I settle on much of them with the strong points made by the writer. I'll be back day in as well as day for more brand-new updates. 먹튀커머스

Andrew Strauch 说:
2020年8月12日 16:28

I review a whole lot of blog site posts, however I never heard a subject like this. I Love this subject you made about the blogger's container listing. แทงบอลออนไลน์

Andrew Strauch 说:
2020年9月10日 22:01

This is a magnificent blog post I have seen due to the offer it. It is actually what I anticipated to see rely on the future you will continue in sharing such a mind-blowing post. บุหรี่ไฟฟ้า

Andrew Strauch 说:
2020年9月24日 03:37

It is genuinely a well-researched content as well as excellent wording. I obtained so participated in this product that I could not wait to read. I am impressed with your work as well as skill. Many thanks. QR Code Generator

Dini 说:
2020年10月24日 18:34

Salah satu tote bag yang populer dan banyak digemari para wanita saat ini adalah tote bag tali sumbu. Tote bag ini cocok digunakan dalam berbagai aktivitas. Untuk kamu yang ingin berbelanja tas tote bag tali sumbu, bisa cek koleksi kami selengkapnya di sini, <a href=https://www.beebagshop.com/tag/tote-bag-tali-sumbu/>tote bag tali sumbu murah</a>. Berbelanja beragam model tas terbaru dan terlengkap untuk pria, wanita, dan anak-anak dengan harga terbaik hanya di Bee Bagshop, <a href=https://www.beebagshop.com/>tas grosir Bandung</a>. Untuk anda yang bingung memilih tas untuk anak laki-laki anda yang baru akan masuk sekolah TK atau SD, kami punya banyak tas ransel bergambar aneka robot yang banyak digemari anak-anak, cek koleksi tas robot kami di sini, <a href=https://www.beebagshop.com/tag/tas-robot/>harga tas robot</a>. Salah satu robot yang kini populer di kalangan anak laki-laki adalah tobot. Kami punya banyak koleksi tas ransel bergambar tobot, anda bisa melihat koleksi tas tobot kami di link ini, <a href=https://www.beebagshop.com/tag/tas-tobot/>jual tas tobot murah di Bandung</a>. Untuk anda yang ingin memulai usaha berjualan tas tanpa perlu mengeluarkan modal untuk membeli stok barang, silahkan bergabung menjadi reseller kami, gratis tidak perlu membayar biaya pendaftaran, info lengkapnya cek di link ini, <a href=https://www.beebagshop.com/dropship-reseller/>click here</a>.

Dini 说:
2020年10月24日 18:35

Salah satu tote bag yang populer dan banyak digemari para wanita saat ini adalah tote bag tali sumbu. Tote bag ini cocok digunakan dalam berbagai aktivitas. Untuk kamu yang ingin berbelanja tas tote bag tali sumbu, bisa cek koleksi kami selengkapnya di sini, tote bag tali sumbu murah. Berbelanja beragam model tas terbaru dan terlengkap untuk pria, wanita, dan anak-anak dengan harga terbaik hanya di Bee Bagshop, tas grosir Bandung. Untuk anda yang bingung memilih tas untuk anak laki-laki anda yang baru akan masuk sekolah TK atau SD, kami punya banyak tas ransel bergambar aneka robot yang banyak digemari anak-anak, cek koleksi tas robot kami di sini, harga tas robot. Salah satu robot yang kini populer di kalangan anak laki-laki adalah tobot. Kami punya banyak koleksi tas ransel bergambar tobot, anda bisa melihat koleksi tas tobot kami di link ini, jual tas tobot murah di Bandung. Untuk anda yang ingin memulai usaha berjualan tas tanpa perlu mengeluarkan modal untuk membeli stok barang, silahkan bergabung menjadi reseller kami, gratis tidak perlu membayar biaya pendaftaran, info lengkapnya cek di link ini, click here.

Andrew Strauch 说:
2020年10月27日 06:19

Believe it or otherwise, it is the kind of details I've long been searching for. It matches my needs a lot. Thank you for composing this info. radio app

Andrew Strauch 说:
2020年11月09日 22:23

I got so involved in this product that I could not wait to review. Many thanks. 卡式台胞證

Andrew Strauch 说:
2020年11月11日 10:31

Fantastic work here on. I read a great deal of blog posts, but I never heard a subject like this. I Love this subject you made concerning the blogger's container listing. Very resourceful. 臺胞證

Norton Com Setup 说:
2020年11月29日 22:41

norton.com/setup
norton.com/setup enter product key
norton.com/setup activate

Let's help you get the Norton

www.norton.com/setup or norton.com/setup

Form url www.norton.com/setup 2019 directly in the address bar of your browser.
Sign up for your Norton account.
Sign in or Build a new Norton Account
Then enter the key to your Norton product.
Choose to install Norton.
After the Norton Update has been completed, run the installation.
"You're all set up! The Norton is now mounted."

Significant points to be recalled when downloading Norton:
You will use your Norton account for all applications relevant to Norton.
If your product key has been redeemed and you are unable to find Norton apps. You can instal Norton directly on your Norton account.

Nulavance 说:
2021年1月02日 17:40

If these pollution are not eliminated from the frame immediately, probabilities are that they'll best fireplace up hassle, causing distinctive fitness conditions.
https://www.ketogenicsupplementsreview.com/nulavance-uk/

One Shot Keto 说:
2021年1月16日 18:15

And the greater lean muscle you have got, the extra calories you can burn. If you starve your self, your body will feed on lean muscle groups. And <a href="http://ipsnews.net/business/2020/12/30/one-shot-keto-on-shark-tank-reviews-is-oneshot-keto-hoax-work/">One Shot Keto</a> if you have a good deal much less lean muscle mass, your metabolism might not be as rapid and you may no longer burn as many calories Obviously, in case you starve yourself for a long term, you'll lose a few weight however it will likely be in most instances lean muscles. It may not be the belly fat you need to lose... So that you will weigh less however you may nonetheless have that belly.
<a href="http://ipsnews.net/business/2020/12/30/one-shot-keto-on-shark-tank-reviews-is-oneshot-keto-hoax-work/">http://ipsnews.net/business/2020/12/30/one-shot-keto-on-shark-tank-reviews-is-oneshot-keto-hoax-work/</a>

Andrew Strauch 说:
2021年1月19日 06:13

No question this is an exceptional blog post I obtained a great deal of expertise after reviewing all the best. The motif of the blog is outstanding there is practically whatever to read, Brilliant article. notes

Andrew Strauch 说:
2021年4月09日 13:39

Think it or not, it is the sort of information I've long been trying to find. It matches my requirements a lot. Thanks for writing this information. framing a basement

Andrew Strauch 说:
2021年5月09日 02:38

I read a whole lot of blog posts, but I never heard a subject like this. I read a great deal of blog articles, yet I never listened to a topic like this. Positive site, where did u come up with the details on this posting? I just stumbled upon your weblog and also wanted to claim that I have actually truly delighted in surfing your blog messages. Positive site, where did u come up with the info on this publishing? Relx

cleaning company dub 说:
2021年6月07日 13:36

To stay aside this problems, you need to make a good cleaning itinerary. And, the pro player house cleaners highly recommend cleaning the total house one or more times a time of day. Additionally, you'll have to focus more at the hard supports while vacuuming and disinfecting home.

Andrew Strauch 说:
2021年6月24日 04:38

I obtained as well much intriguing stuff on your blog. I think I am not the just one having all the satisfaction right here! Maintain the good work. eprimefeed.com Latest News Economy Politics Tech Sports Movies Fashion Life & Style الإخبارية

Andrew Strauch 说:
2021年12月08日 07:30

The ideal article I encountered a number of years, write something about it on this page. joker123 online

Andrew Strauch 说:
2021年12月14日 05:48

Pretty good post. I just stumbled upon your blog and intended to state that I have actually really delighted in browsing your blog messages. I'll be subscribing to your feed as well as I hope you create once again quickly! Normanton Park

Andrew Strauch 说:
2022年6月18日 08:47

Normal sees provided here are the most convenient method to value your energy, which is why I am going to the website daily, browsing for brand-new, intriguing information. Thanks! resume builder


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter