From 33270d005c230d4bcd9cca0704bcd92b2a4faa90 Mon Sep 17 00:00:00 2001 From: login Date: Mon, 13 Mar 2023 09:54:50 +0800 Subject: [PATCH] Add v0.1.5 changelog (#200) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 更新about app * V0.1.5发行日志 --- README.md | 27 +- README_EN.md | 26 +- docs/community/ChangeLog/V0.1.x/V0.1.5.md | 308 ++++++++++++++++++ docs/community/ChangeLog/index.rst | 1 + .../the-development-process.md | 2 +- docs/community/contact/index.rst | 2 +- kernel/src/filesystem/devfs/mod.rs | 2 +- user/apps/about/about.c | 6 +- 8 files changed, 341 insertions(+), 33 deletions(-) create mode 100644 docs/community/ChangeLog/V0.1.x/V0.1.5.md diff --git a/README.md b/README.md index 3b080a267..68732db3a 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@   作为一个社区驱动的开源操作系统,为了促进其发展,避免让其遭受一些不遵守开源协议的商业公司的侵权,我们决定使用GPLv2协议开放源代码,以严格的开源协议来保护DragonOS。 -[关于DragonOS,你想了解的都在这儿 - DragonOS](https://dragonos.org/uncategorized/summary/) +[关于DragonOS,你想了解的都在这儿 - DragonOS](https://dragonos.org/?p=46) ## 网站 @@ -32,9 +32,7 @@   运行DragonOS的步骤非常简单,您可以参考以下几个资料,在最短15分钟内运行DragonOS! -- [构建DragonOS — DragonOS dev 文档](https://docs.dragonos.org/zh_CN/latest/introduction/build_system.html#docker) - -- [如何在电脑的虚拟机上运行DragonOS? | | 龙进的博客](https://longjin666.cn/?p=1514) +- [构建DragonOS — DragonOS dev 文档](https://docs.dragonos.org/zh_CN/latest/introduction/build_system.html) - [教你在15分钟内运行DragonOS!- Bilibili](https://www.bilibili.com/video/BV1zF411w7s2?share_source=copy_web&vd_source=41ab4a1b73e6f65219a785923511517e) @@ -50,7 +48,7 @@ ## 如何与社区建立联系? -  你可以发邮件给我,我的邮件地址是[longjin@RinGoTek.cn](mailto:longjin@RinGoTek.cn)。 +  你可以发邮件给Maintainer: longjin,邮件地址是 [longjin@DragonOS.org](mailto:longjin@DragonOS.org) 。   或者是加入我们的开发交流QQ群:**115763565** @@ -60,19 +58,17 @@ ## 贡献者名单 -[Contributors to fslongjin/DragonOS · GitHub](https://github.com/fslongjin/DragonOS/graphs/contributors) - -## 联系我 +[Contributors to DragonOS-Community/DragonOS · GitHub](https://github.com/DragonOS-Community/DragonOS/graphs/contributors) -我的邮箱:longjin@RinGoTek.cn +## 联系我们 -社区邮箱:contact@DragonOS.org +社区对外联系邮箱:contact@DragonOS.org -我的博客:[longjin666.cn](https://longjin666.cn) +社区负责人邮箱:longjin@DragonOS.org ## 赞助 -  DragonOS是一个公益性质的开源项目,但是它的发展离不开资金的支持,如果您愿意的话,可以通过**[赞助 - DragonOS](https://dragonos.org/donate/)**,从而促进这个项目的发展。所有的赞助者的名单都会被公示。您的每一分赞助,都会为DragonOS的发展作出贡献! +  DragonOS是一个公益性质的开源项目,但是它的发展离不开资金的支持,如果您愿意的话,可以通过 ** [赞助 - DragonOS](https://dragonos.org/?page_id=37) ** ,从而促进这个项目的发展。所有的赞助者的名单都会被公示。您的每一分赞助,都会为DragonOS的发展作出贡献! ### 赞助的资金都会被用到哪里? @@ -94,6 +90,7 @@ ### 个人赞赏者列表 +- 万晓兰 - David Wen - [Seele.Clover](https://github.com/seeleclover) - [FindWangHao](https://github.com/FindWangHao) @@ -126,8 +123,6 @@ - [osdev.org](https://wiki.osdev.org/Main_Page) -- Multiboot2 Specification version 2.0 - - ACPI_6_3_final_Jan30 - the GNU GRUB manual @@ -139,3 +134,7 @@ - [skiftOS]([GitHub - skiftOS/skift: 🥑 A hobby operating system built from scratch in modern C++. Featuring a reactive UI library and a strong emphasis on user experience.](https://github.com/skiftOS/skift)) - [GuideOS](https://github.com/Codetector1374/GuideOS) + +- [redox-os](https://gitlab.redox-os.org/redox-os/redox) + +- [rcore](https://github.com/rcore-os/rCore) diff --git a/README_EN.md b/README_EN.md index 96fe8a676..fa17b4cbe 100644 --- a/README_EN.md +++ b/README_EN.md @@ -6,7 +6,7 @@   DragonOS is an operating system running on the X86_64 Architecture. This project is currently under development! -[All you want to know about DragonOS is here - DragonOS](https://dragonos.org/uncategorized/summary/) +[All you want to know about DragonOS is here - DragonOS](https://dragonos.org/?p=46) ## Websites @@ -21,9 +21,7 @@   The steps to run DragonOS are very simple. You can refer to the following information to run DragonOS within 15 minutes at the fastest! -- [Building DragonOS - DragonOS dev document](https://docs.dragonos.org/zh_CN/latest/introduction/build_system.html#docker) - -- [How to run DragonOS on a computer's virtual machine? || Long Jin's blog](https://longjin666.cn/?p=1514) +- [Building DragonOS - DragonOS dev document](https://docs.dragonos.org/zh_CN/latest/introduction/build_system.html) - [Teach you to run DragonOS in 15 minutes- Bilibili](https://www.bilibili.com/video/BV1zF411w7s2?share_source=copy_web&vd_source=41ab4a1b73e6f65219a785923511517e) @@ -39,7 +37,7 @@ ## How to contact the community? -  You can send me an email. My email address is[ longjin@RinGoTek.cn ](mailto: longjin@RinGoTek.cn )。 +  You can send an email to the project's maintainer: longjin. His email address is [longjin@DragonOS.org](mailto: longjin@DragonOS.org) .   Or join our development exchange QQ group: **115763565** @@ -49,19 +47,18 @@ ## List of contributors -[Contributors to fslongjin/DragonOS · GitHub](https://github.com/fslongjin/DragonOS/graphs/contributors) - -## Contact with me +[Contributors to DragonOS-Community/DragonOS · GitHub](https://github.com/DragonOS-Community/DragonOS/graphs/contributors) -Email:longjin@RinGoTek.cn +## Get contact with us Community Contact Email: contact@DragonOS.org -Blog:[longjin666.cn](https://longjin666.cn) +Maintainer longjin's Email:longjin@DragonOS.org + ## Reward -  DragonOS is an open source public welfare project, but its development cannot be separated from the support of funds. If you want, you can visit **[Sponsor - DragonOS](https://dragonos.org/donate/)**, so as to promote the development of this project. The list of all sponsors will be published. Every bit of your sponsorship will contribute to the development of DragonOS! +  DragonOS is an open source public welfare project, but its development cannot be separated from the support of funds. If you want, you can visit ** [Sponsor - DragonOS](https://dragonos.org/?page_id=37) ** , so as to promote the development of this project. The list of all sponsors will be published. Every bit of your sponsorship will contribute to the development of DragonOS! ### Where will the sponsorship funds be used? @@ -80,6 +77,7 @@ We hope that in the future, some enterprises can sponsor DragonOS and inject fin ### Individual Sponsor List +- 万晓兰 - David Wen - [Seele.Clover](https://github.com/seeleclover) - [FindWangHao](https://github.com/FindWangHao) @@ -112,8 +110,6 @@ If you find any violation of the open source license, we welcome you to send ema - [osdev.org](https://wiki.osdev.org/Main_Page) -- Multiboot2 Specification version 2.0 - - ACPI_6_3_final_Jan30 - the GNU GRUB manual @@ -125,3 +121,7 @@ If you find any violation of the open source license, we welcome you to send ema - [skiftOS]([GitHub - skiftOS/skift: 🥑 A hobby operating system built from scratch in modern C++. Featuring a reactive UI library and a strong emphasis on user experience.](https://github.com/skiftOS/skift)) - [GuideOS](https://github.com/Codetector1374/GuideOS) + +- [redox-os](https://gitlab.redox-os.org/redox-os/redox) + +- [rcore](https://github.com/rcore-os/rCore) diff --git a/docs/community/ChangeLog/V0.1.x/V0.1.5.md b/docs/community/ChangeLog/V0.1.x/V0.1.5.md new file mode 100644 index 000000000..f3cceab37 --- /dev/null +++ b/docs/community/ChangeLog/V0.1.x/V0.1.5.md @@ -0,0 +1,308 @@ +# V0.1.5 + +:::{note} +本文作者:龙进 + +2023年3月13日 +::: + +## 贡献者名单 + +DragonOS V0.1.5版本由以下小伙伴贡献代码: + +- 龙进 +- 关锦权 +- 苏琎韬 +- 孔维超 +- 侯嘉滢 +- 吴宇健 +- 周于喆 +- Satin Wuker <74630829+SatinWuker@users.noreply.github.com> + +## 赞助者名单 + +感谢以下同学的赞赏,我们将不断努力! + +- 万晓兰 +- David Wen +- [Seele.Clover](https://github.com/seeleclover) +- [FindWangHao](https://github.com/FindWangHao) +- 叶锦毅 +- 林 +- Albert +- [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT) +- slientbard +- 悟 + +## 更新内容-内核 + +- scheduler: doc: 实时进程调度器文档 (#163) +- scheduler: rt: RTQueue改用双向链表存储 (#174) +- scheduler: load balance: 多核负载均衡 (#193) +- Semaphore: new: 新增了rust实现的信号量 (#183) +- mm: refactor: 重构了MMIO地址分配器 (#184) +- RwLock: new: 新增了rust实现的读写锁 (#186) +- driver: update: 完善pci的功能 (#194) +- driver: new: VirtIO网卡驱动(仍存在问题) (#194) +- driver: refactor: Rust版本的AHCI驱动 (#198) +- block io: delete: 移除Block IO 调度器. (#196) +- filesystem: refactor: 新版的VFS (#198) +- filesystem: refactor: 新版的ProcFS (#198) +- filesystem: refactor: 新版的DevS (#198) +- filesystem: new: RamFS内存文件系统 (#198) +- filesystem: new: FAT12/FAT16/FAT32文件系统 (#198) +- filesystem: new: 新的设备、块设备抽象 (#198) + + +## 更新内容-用户环境 + +- libc: 调整,将所有的app直接链接到libc.a中,而不是都执行一遍"搜索.o"的过程 (#171) + +## 更新内容-其他 + +- bootstrap: 解决ubuntu2210版本无法正确编译grub,以及正确安装qemu的问题 (#176) +- toolchain: 添加rust的bare bone工具链 (#197) + +## 更新内容-软件移植 + +无 + +## 源码、发布版镜像下载 + +  您可以通过以下方式获得源代码: + +### 通过Git获取 + +- 您可以访问[https://github.com/DragonOS-Community/DragonOS/releases](https://github.com/DragonOS-Community/DragonOS/releases)下载发布版的代码,以及编译好的,可运行的磁盘镜像。 +- 我们在gitee上也有镜像仓库可供下载:[https://gitee.com/DragonOS/DragonOS](https://gitee.com/DragonOS/DragonOS) + +### 通过DragonOS软件镜像站获取 + +  为解决国内访问GitHub慢、不稳定的问题,同时为了方便开发者们下载DragonOS的每个版本的代码,我们特意搭建了镜像站,您可以通过以下地址访问镜像站: + +  您可以通过镜像站获取到DragonOS的代码压缩包,以及编译好的可运行的磁盘镜像。 + +- [https://mirrors.DragonOS.org](https://mirrors.DragonOS.org) +- [https://mirrors.DragonOS.org.cn](https://mirrors.DragonOS.org.cn) +- 国内镜像加速: [https://mirrors.ringotek.cn/] (https://mirrors.ringotek.cn/) + +## 开放源代码声明 + + +:::{note} +为促进DragonOS项目的健康发展,DragonOS以GPLv2开源协议进行发布。所有能获得到DragonOS源代码以及相应的软件制品(包括但不限于二进制副本、文档)的人,都能享有我们通过GPLv2协议授予您的权利,同时您也需要遵守协议中规定的义务。 + +这是一个相当严格的,保护开源软件健康发展,不被侵占的协议。 + +对于大部分的善意的人们而言,您不会违反我们的开源协议。 + +我们鼓励DragonOS的自由传播、推广,但是请确保所有行为没有侵犯他人的合法权益,也没有违反GPLv2协议。 + +请特别注意,对于违反开源协议的,尤其是**商业闭源使用以及任何剽窃、学术不端行为将会受到严肃的追责**。(这是最容易违反我们的开源协议的场景)。 + +并且,请注意,按照GPLv2协议的要求,基于DragonOS修改或二次开发的软件,必须同样采用GPLv2协议开源,并标明其基于DragonOS进行了修改。亦需保证这些修改版本的用户能方便的获取到DragonOS的原始版本。 + +您必须使得DragonOS的开发者们,能够以同样的方式,从公开渠道获取到您二次开发的版本的源代码,否则您将违反GPLv2协议。 + +关于协议详细内容,还敬请您请阅读项目根目录下的**LICENSE**文件。请注意,按照GPLv2协议的要求,**只有英文原版才具有法律效力**。任何翻译版本都仅供参考。 +::: + +### 开源软件使用情况 + +  DragonOS在开发的过程中,参考了一些开源项目的设计,或者引入了他们的部分代码,亦或是受到了他们的启发。现将他们列在下面。我们对这些开源项目的贡献者们致以最衷心的感谢! + +格式:<项目名> - <链接> - <开源协议> + +- Linux - https://git.kernel.org/ - GPLv2 +- skiftOS - https://github.com/skiftOS/skift - MIT +- FYSOS - https://github.com/fysnet/FYSOS - [FYSOS' License](https://github.com/fysnet/FYSOS/blob/9a8968e3d6600de34539c028c843f4c06d134039/license.txt) +- LemonOS - https://github.com/LemonOSProject/LemonOS.git - BSD 2-Clause License +- LZ4 - https://github.com/lz4/lz4 - BSD 2-Clause license +- SerenityOS - https://github.com/SerenityOS/serenity.git - BSD 2-Clause license +- MINE - 《一个64位操作系统的设计与实现》田宇; 人民邮电出版社 +- chcore - 《现代操作系统:设计与实现》陈海波,夏虞斌; 机械工业出版社 +- SimpleKernel - https://github.com/Simple-XX/SimpleKernel - MIT +- rcore-fs - https://github.com/rcore-os/rcore-fs.git - MIT +- redox - https://gitlab.redox-os.org/redox-os/redox - MIT + +## 当前版本的所有提交记录 + +```text +commit 84407d360511c7699938a0f245ae33ff76f16b17 +Author: login +Date: Mon Mar 13 00:26:04 2023 +0800 + + bugfix:解决touch命令失败的问题 (#199) + + * bug fix : 解决touch命令失败的问题 + +commit 004e86ff19727df303c23b42c7a271b9214c6898 +Author: login +Date: Sun Mar 12 22:36:11 2023 +0800 + + 新版文件系统重构完成 (#198) + + 1.重构:VFS + 2. 重构:ProcFS + 3. 重构:DevFS + 4. 重构:FAT32 + 5. 重构:AHCI驱动 + 6. 新增:RamFS + 7. 新增:MountFS + 8. 新增:FAT12 + 9. 新增:FAT16 + 10. 重构:设备抽象 + + Co-authored-by: guanjinquan <1666320330@qq.com> + Co-authored-by: DaJiYuQia <88259094+DaJiYuQia@users.noreply.github.com> + +commit 17041e0e307eaf9e8d8ddbddfa186cd1f10f1bc0 +Author: login +Date: Sun Mar 12 21:04:37 2023 +0800 + + 添加rust的bare bone工具链 (#197) + +commit 26d84a31393c50063ff416bc509316e8d342028c +Author: YJwu2023 <119829947+YJwu2023@users.noreply.github.com> +Date: Sat Mar 11 21:09:50 2023 +0800 + + 新增VirtIO网卡驱动 (#194) + + * 修复内存bug与grub安装脚本的错误 + + * 修改小bug + + * PCI增加功能与virtio-net驱动 + + * little fix + + * virtio-net小修改 + +commit 1d48996375149279a721777b2c600e1b5c3ee1b5 +Author: kong <45937622+kkkkkong@users.noreply.github.com> +Date: Sat Mar 11 18:17:35 2023 +0800 + + 多核负载均衡(#193) + + * feat(sched):CPU负载检测初步实现 + + * fix(smp):调整smp中的apic的头文件声明 + + * fix(smp):简单的负载均衡算法实现 + + * fix(sched):抽离负载均衡方法 + + * fix(sched):修改rt中的运行队列bug,调整负载均衡逻辑 + + * fix(process):移除无用测试代码 + + * reformat code + +commit ef9f9732b09f78d7192f1d0dd3b41be655fb0914 +Author: houmkh <100781004+houmkh@users.noreply.github.com> +Date: Thu Mar 9 23:31:25 2023 +0800 + + 修复了mmio buddy的bug (#189) + + * 修改buddy_query + +commit c1396d277115b371d09ad6d39a1c419f9224ffd0 +Author: Gou Ngai +Date: Mon Mar 6 11:28:32 2023 +0800 + + Rwlock文档 (#186) + + * Rwlock文档 + +commit a7eb62a47a8d701b90a14f83cc9028cfed07c268 +Author: houmkh <100781004+houmkh@users.noreply.github.com> +Date: Mon Mar 6 11:21:29 2023 +0800 + + 修改mmio-buddy代码结构和函数名 (#184) + + * 修改mmio-buddy结构和函数名 + +commit c2481452f81750ec02adec627ab2edbc93d9cd9c +Author: houmkh <100781004+houmkh@users.noreply.github.com> +Date: Sat Mar 4 18:36:55 2023 +0800 + + rust重构mmio_buddy和mmio (#178) + + * rust重构mmio_buddy和mmio + + * mmio-buddy文档 + + --------- + + Co-authored-by: longjin + +commit f1284c35717a2f9f8cee7cecfc835ba1d23a1161 +Author: Gou Ngai +Date: Sat Mar 4 17:47:17 2023 +0800 + + 新增了rust实现的信号量 (#181) + + * 新增了rust实现的信号量 + + --------- + + Co-authored-by: longjin + +commit 83b9512c1c1e8289000084adcafddebee6a23f16 +Author: Gou Ngai +Date: Sat Mar 4 16:54:42 2023 +0800 + + 新增了rust实现的信号量 (#183) + + * 新增了rust实现的信号量 + +commit e532a536a0b244f4590e6eb7910084bd63049704 +Author: login +Date: Thu Mar 2 22:50:07 2023 +0800 + + 添加赞助者:FengWangHao (#179) + +commit b66beefd4e9ead61ee55f335246ebeb8277d3011 +Author: login +Date: Mon Feb 27 01:00:35 2023 +0800 + + 解决ubuntu2210版本无法正确编译grub,以及正确安装qemu的问题 (#176) + +commit 4177d0327c3eacdc606f0b22f99f208fd48cfff3 +Author: kong <45937622+kkkkkong@users.noreply.github.com> +Date: Mon Feb 20 17:03:37 2023 +0800 + + RTQueue改用双向链表存储(#174) + + * RTQueue改用双向链表存储 + +commit 2bf5ee0e3cac3a91dee6a13b71c86a9477c07d9b +Author: login +Date: Sat Feb 11 13:04:24 2023 +0800 + + 修改libc的编译相关内容(#171) + + 1.将libc的include文件夹分为export和internal + 2.将所有app都直接链接libc.a,而不是都执行一遍"搜索.o"的过程 + +commit 90b077f9d3ecd48ca46f8bbb32363620db6ddbe6 +Author: kong <45937622+kkkkkong@users.noreply.github.com> +Date: Thu Feb 9 15:24:37 2023 +0800 + + Sched rt doc (#163) + + * update + + * 完善调度器文档 + + * 更新RT调度器文档 + + * 更新实时调度文档 + +commit 009f92d50fe2e52e425bce397801d3fa204daecd +Author: Satin Wuker <74630829+SatinWuker@users.noreply.github.com> +Date: Tue Feb 7 19:29:09 2023 -0800 + + fix typos 改正README_EN的错别字和语法错误 (#167) + +``` \ No newline at end of file diff --git a/docs/community/ChangeLog/index.rst b/docs/community/ChangeLog/index.rst index 630e6ef88..050626ab3 100644 --- a/docs/community/ChangeLog/index.rst +++ b/docs/community/ChangeLog/index.rst @@ -6,6 +6,7 @@ .. toctree:: :maxdepth: 1 + V0.1.x/V0.1.5 V0.1.x/V0.1.4 V0.1.x/V0.1.3 V0.1.x/V0.1.2 diff --git a/docs/community/code_contribution/the-development-process.md b/docs/community/code_contribution/the-development-process.md index 550120bf1..c1a2f6a2c 100644 --- a/docs/community/code_contribution/the-development-process.md +++ b/docs/community/code_contribution/the-development-process.md @@ -9,7 +9,7 @@ 对于新人而言,参与开发的过程主要包括以下几步: - **运行DragonOS**:按照文档:{ref}`构建DragonOS <_build_dragonos>`中的教程,编译DragonOS,并成功运行。在运行过程中,如果有任何的疑问,欢迎您在交流群或者BBS上进行反馈! -- **联系Maintainer**:您可以通过邮箱或者QQ`184829088`与龙进取得联系,或者是对应的模块的开发者进行联系(目前您可以通过发行日志上的邮箱与他们建立联系,在将来我们将编写一份“Maintainers List”以便于您能快速找到要联系的人)。 +- **联系Maintainer**:您可以通过邮箱或者QQ`184829088`与龙进取得联系,或者是对应的模块的开发者进行联系(目前您可以通过发行日志上的邮箱与他们建立联系,在将来我们将编写一份“Maintainers List”以便于您能快速找到要联系的人)。 为了节省您的时间,请简要说明: - 如何称呼您 - 您目前掌握的技术能力 diff --git a/docs/community/contact/index.rst b/docs/community/contact/index.rst index 3972e5869..7ddb6480a 100644 --- a/docs/community/contact/index.rst +++ b/docs/community/contact/index.rst @@ -7,7 +7,7 @@ DragonOS负责人: longjin -工作邮箱: longjin@RinGoTek.cn +工作邮箱: longjin@DragonOS.org 开发交流QQ群: 115763565 diff --git a/kernel/src/filesystem/devfs/mod.rs b/kernel/src/filesystem/devfs/mod.rs index f1f053de9..daf684728 100644 --- a/kernel/src/filesystem/devfs/mod.rs +++ b/kernel/src/filesystem/devfs/mod.rs @@ -73,7 +73,7 @@ impl DevFS { .expect("DevFS: Failed to create /dev/block"); devfs.register_bultinin_device(); - kdebug!("ls /dev: {:?}", root.list()); + // kdebug!("ls /dev: {:?}", root.list()); return devfs; } diff --git a/user/apps/about/about.c b/user/apps/about/about.c index 49c781d1d..2762550a4 100644 --- a/user/apps/about/about.c +++ b/user/apps/about/about.c @@ -19,15 +19,15 @@ void print_copyright() printf(" DragonOS - An opensource operating system.\n"); printf(" Copyright: fslongjin & DragonOS Community. 2022, All rights reserved.\n"); printf(" Version: "); - put_string("V0.1.4\n", COLOR_GREEN, COLOR_BLACK); + put_string("V0.1.5\n", COLOR_GREEN, COLOR_BLACK); printf(" Git commit SHA1: %s\n", DRAGONOS_GIT_COMMIT_SHA1); printf(" Build time: %s %s\n", __DATE__, __TIME__); printf(" \nYou can visit the project via:\n"); printf("\n"); put_string(" Official Website: https://DragonOS.org\n", COLOR_INDIGO, COLOR_BLACK); - put_string(" GitHub: https://github.com/fslongjin/DragonOS\n", COLOR_ORANGE, COLOR_BLACK); + put_string(" GitHub: https://github.com/DragonOS-Community/DragonOS\n", COLOR_ORANGE, COLOR_BLACK); printf("\n"); - printf(" Maintainer: longjin \n"); + printf(" Maintainer: longjin \n"); printf(" Get contact with the community: \n"); printf("\n"); printf(" If you find any problems during use, please visit:\n");