msyscuione:基于msys的一体化CUI开发生产环境,支持qt,llvm,ros集成常见web appstack

本文涉及的产品
资源编排,不限时长
简介: CUI又称TUI,作为一个开发者和云主机这种服务性环境的使用者,无论有没有意识到,它都是装机时我们大多数情况下第一要装的。linux往往天然集成语言环境和包管理(语言级或系统桌面级),这使得云主机linux装机量往往占首位。相反在windows下没有这样一套东西,因为windows往往作为终端windows应用往往面向要求图形界面的普通用户。

CUI又称TUI,作为一个开发者和云主机这种服务性环境的使用者,无论有没有意识到,它都是装机时我们大多数情况下第一要装的。linux往往天然集成语言环境和包管理(语言级或系统桌面级),这使得云主机linux装机量往往占首位。相反在windows下没有这样一套东西,因为windows往往作为终端windows应用往往面向要求图形界面的普通用户。

那么为什么需要这样一套环境呢?

1,cui环境是历史上程序开发和应用(部署、安装)原始形式,cui是程序上产出后的raw form,与GUI相对,GUI是高级封装形式。比如编译器这种东西历史上就是CUI后有IDE的。用法上约定俗成。仅需tui就够了;第二,服务性的程序往往也只需要而且产出时提供的就是其CUI的形式。不需要套一层GUI。也不需要像终端程序那样依赖复杂而频繁的GUI配置。复杂性程序本身也不需要透露太多用户界面用于配置。只喂指定参数即够。因此适合服务器环境。第三,有些需要batch配置的程序必定需要CUI,GUI反而不合适。

故,这三点其实可以看成是服务器开发和应用部署和客户终端的开发部署差别要求。

2,CUI是最接近被调用的。遵从生产部署的先后顺序列,比如一些API DLL本身能运行的话就是天然CUI的—dll即demo,开发即发布。程序的开发和生产往往是共享部件的近年来的java,.net大语言系统深刻地体现了这点因为它的语言环境有时可以作为可选系统组件(比如netfx系列),。运行环境与开发环境中的runtime往往天然一体,在脚本语言中,发布runtime往往意味着发布整个脚本语言环境。

ps:runtime=run time support,分开run和time并加了support才是重点,即runtime其实不是语言后端,那些supportting libs可能反而正是重点:提供对该语言开发的应用在run time的一切支持,包括前后端。
4,一句话,CUI是程序的原始形式。维护这样一个环境是必要的-它是继os core之后在PC软件上出现的第二大存在,这往往出现在windows和linux易用性之争上。或CUI,GUI之争中。
再来看这个msyscuione:

其实对windows上的cui的整合工作一直存在比如msys2,比如cmder,而msyscuione倾向于模拟了linux下的开发生产合一环境,全开源(未来可能与ros结合做成开箱即用的全开源高可用整体),并极力做到一个整块生态,即全部基于mingw,未来希望整块就小精。并尊重了多语言多开发的现实,将它们合理组织在langsys,appstack目录下只透露simple facades给用户(就像我的1ddlangsys=qtcling,1ddpractise codebase一样)。

大家知道一个生态有什么好处吗,我们现在接确到的每个应用的每个DLL都可能是大块的(比如chrome v8,qt dll),导入复杂的对象环境到内存。模块同一,你看windows的DLL其实全是由DLL组成的,它的每个DLL都是关于kernel.dll,user32.dll等的生态,这种小精性有如瑞士军刀自成一体所以快。不必一启动时拉大量第三方DLL,迅速占满系统资源。现在的APP普遍比较大因为web时代我们复用轮子的开发越来越典型了,一个APP都可以做得系统一样大,就是这个道理。

msyscuiinone被组织进了msys的文件结构的另一个的好处,是以后可以做sandbox,免注册表挂载。绿色激活某一组件到活动系统。就像云端(yuanduan.cn)一样,你可以理解为docker的fuse,或shadow filesystem

msyscui没有包管理,没有语言级容器。msyscuione将这一切留给现有语言或msyscuione可能不断增加的新语言支持,因为包管理往往与语言绑定是它们的机制,记住:程序的不折腾原则是在正确的层面干正确的事情。这是指抽象,而运营,可以选择一个应用切面渗透作已有整合,像微信小程序那样,一个应用强大了完全可以通过业务渗透+软件抽象整合,软件之道莫不如此。

————

msyscuione开发环境主要部件:

1,集成msys1.01
2,集成perl-5.24.0-mingw32 (比如为了支持qt等的shadow build)
3,采用i686-4.8.3-release-posix-dwarf-rt_v3-rev2(集成python,python2.7builtin)
4,集成qtcling
5,。。。
msyscuione支持编译的源码体系有qt和llvm/cling等支持ros免rosbe。

生产环境方面,支持常见开箱即用的那些webstacks,其实每种组件都能定义一种appstack,git加web也能组成gitstack,openvpn跟其它组合也能定义access server之类的东西,nginx也有openresty这样的增强变体,但webstack往往指wamp,wnmp这些简单环境,比如当今最常见的那些由一种动态语言加数据库加其它东西混合而成的东西它们没有层次,msyscui为他们定义了一种良好的语言/stack分开的层次。

msyscuione 应用stack环境主要部件:monogodb,mysql,nginx,git,apache,openvpn,ssh

———–

其它,msyscuione最小仅要求w2k3/winxp:

修正了mingw32的如下文件头,开闭其SECURE API支持,在win2k3/winxp上不会出现“找不到msvcrt.dll中函数入口”的错误

i686-w64-mingw32\include\_mingw.h
/* #define MINGW_HAS_SECURE_API 1 */
使用junction.exe替换了ln,使得一些需要创建软链接的编译脚本可在win2k3/winxp上通过。
junction.exe to replace ln.exe

未来还将支持更多..

下载地址见源站文章链接。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
13天前
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
33 2
|
22天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
82 3
|
4天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
73 44
|
2天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
5天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
22 2
WK
|
5天前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
9 0
|
28天前
|
设计模式 测试技术 持续交付
开发复杂Web应用程序
【10月更文挑战第3天】开发复杂Web应用程序
31 2
|
30天前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
40 3
|
6天前
|
JavaScript 前端开发 Java
SpringBoot_web开发-webjars&静态资源映射规则
https://www.91chuli.com/ 举例:jquery前端框架
10 0
|
19天前
|
Dart Android开发
鸿蒙Flutter实战:03-鸿蒙Flutter开发中集成Webview
本文介绍了在OpenHarmony平台上集成WebView的两种方法:一是使用第三方库`flutter_inappwebview`,通过配置pubspec.lock文件实现;二是编写原生ArkTS代码,自定义PlatformView,涉及创建入口能力、注册视图工厂、处理方法调用及页面构建等步骤。
36 0

推荐镜像

更多