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/
相关文章
|
29天前
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
44 2
|
1月前
|
Dart Android开发
鸿蒙Flutter实战:03-鸿蒙Flutter开发中集成Webview
本文介绍了在OpenHarmony平台上集成WebView的两种方法:一是使用第三方库`flutter_inappwebview`,通过配置pubspec.lock文件实现;二是编写原生ArkTS代码,自定义PlatformView,涉及创建入口能力、注册视图工厂、处理方法调用及页面构建等步骤。
55 0
|
1月前
|
开发框架 监控 搜索推荐
GoFly快速开发框架集成ZincSearch全文搜索引擎 - Elasticsearch轻量级替代为ZincSearch全文搜索引擎
本文介绍了在项目开发中使用ZincSearch作为全文搜索引擎的优势,包括其轻量级、易于安装和使用、资源占用低等特点,以及如何在GoFly快速开发框架中集成和使用ZincSearch,提供了详细的开发文档和实例代码,帮助开发者高效地实现搜索功能。
121 0
|
1月前
|
存储 缓存 安全
如何使用 PHP 将天气跟踪集成到 Web 应用程序中
如何使用 PHP 将天气跟踪集成到 Web 应用程序中
32 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
152 0
|
3月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
165 0
|
3月前
|
开发者 存储 API
Xamarin 云服务集成竟然如此强大,简化后端开发不再是梦,数据存储、用户认证、推送通知全搞定!
【8月更文挑战第31天】Xamarin 是一款强大的跨平台移动应用开发工具,通过与云服务集成,显著简化了后端开发。开发者无需自行搭建服务器,即可利用云服务提供的数据存储、用户认证、推送通知等功能,大幅减少数据库设计、服务器配置及 API 开发的时间成本。借助 Azure Mobile Apps 等云服务,Xamarin 可轻松实现数据存取操作,同时增强应用安全性与用户参与度,使开发者更专注于业务逻辑和用户体验,提升开发效率并降低成本。这种方式在快速发展的移动应用领域极具价值。
59 0
|
3月前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
203 0

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面