The Cosm Project
Cosm is a set of open protocols and applications designed to allow poeple and computers all over the world to work together for distributed computing, mobile, sensor networks, cloud, or other applications. The projects and applications may be scientific, educational, or commercial. Cosm also provides the libraries, APIs, and standards that are required to make open applications easy to develop for every type of computing device.
The Cosm CPU/OS and Utility layers, along with the CS-SDK have had many contributors over the years. A list of contributors is in the credits file in the code downloads. For press coverage of Cosm, visit the press page.
|Cosm Distributed Computing Platform|
|Cosm File System||Cosm ID||Cosm Network||Cosm Compute|
|Cosm Utility Layer|
|Cosm CPU/OS Layer|
Cosm CPU/OS Layer
The lowest level of the Cosm stack, the CPU/OS layer abstracts away the
differences in host Operating System and CPU to allow for completely
cross-platform development. Abstracts file, I/O, memory, networking,
process, threading, and synchronization functions.
- CPU/OS layer documentation.
Cosm Utility Layer
The Utility Layer contains code libraries for HTTP and HTTPD
servers, encryption, compression, time, configuration, buffering,
transform filters, and other common functionality.
- Utility layer documentation.
The Cosm Client-Server Software Development Kit (CS-SDK) launched in
1999 is for quickly developing applications where clients coordinate
with a central server to accomplish a shared task. The CS-SDK is setup
for a simple counting task, but any computation is easy to drop in.
Examples of uses include distributed computing, map/reduce tasks,
rendering, biocomputation, messaging hubs, and Folding@home which was
initially developed with the CS-SDK.
- CS-SDK user projects.
- more information.
The Cosm Client-Server Software Development Kit 2 (CS-SDK2)
developed in 2009 is for applications where clients coordinate with a
central server to collect, log, and display data. Commands can also
be sent to the clients when needed, and the data collection engine
can be remotely updated for devices that cannot be retrieved from
the field for maintenance.
Examples of uses include weather data collection, computer monitoring,
research sensor networks, and home automation.
The Cosm CS-SDK2 is currently in the source tree in /cosm/apps/cs-sdk2/
Both CS-SDKs will be merged into a common codebase in the future.
Cosm File System
The Cosm File System (Cosm FS) is a fully distributed file system designed to store encrypted data in a redundant and globally accessible way. It can also serve as a backbone for live or on demand content distribution.
Cosm ID is the identity and authentication part of Cosm. Providing both a global and local identity domains, allowing for universal logon and persistent identity across systems. Cosm ID provides identity for users, computers, and things.
For users, this means a strong identity, many-factor authentication, trust for financial and legal transactions, reputation, and both online and offline verification of identity. Designed to make impersonation or identity theft nearly impossible, improving security in a wide variety of real world situations.
For computers it provides identify, ownership, routing, and namespaces. For the Internet of Things (IoT) Cosm ID provides easy ways to handle device/sensor ID, tracking, and deployment.
For things, in addition to universal serial numbers, ownership history, tracking, and theft prevention, Cosm ID enables authenticated package delivery, full chain of custody, and many other capabilities for supply chain management.
The Cosm Network system allows for hosts to be on the internet, instead of just having access to the internet - a subtle but significant distinction. It uses entity based addressing, employs end system multicast for efficiency, and store & forward messaging in cases where devices cannot directly connect to the internet.
Cosm Compute (CosmJob) is the process management system, completing the Cosm Distributed Computing Platform. Run processes locally or remotely, queue them for execution at a cloud provider, or migrate processes between devices.
Cosm Distributed Computing Platform
The Cosm Distributed Computing Platform combines all parts of Cosm to form a complete distributed computing platform for local, cloud, mobile, and hybrid computing.
What can Cosm help you do?
For the Developer: Developers can use the Cosm CPU/OS and Utility layer libraries to allow their applications to run on a large number of platforms. These libraries abstract all kernel functions as well as things like files, networking, time, compression, and more.
For the Researcher: Researchers with the CS-SDK can recruit volunteers and gather huge pools of computing resources to run their projects on. Studies can be done in a fraction of the time, theories can be proven or disproved, and since it takes hours instead of weeks, the next big development is that much closer. Cosm and the APIs will handle all the issues of distributed computing, and the researcher can focus fully on the science.
For the Business: A business gets the same advantages as everyone else, plus some of the tools like the distributed file system are very useful for operations. Businesses can also use the global compute pool provided they are willing to play well with others and share the results. Cosm ID provides many advantages for identity, security, tracking, logistics, and more. Cosm File has many advantages for content distribution.
How can you get involved?
As an open and evolving project, there is always lots of work to do. Coding, documenting, translating, testing, legal work, interface design, database coding, and graphic design. You can check the To Do List for some pending tasks.
For those using Cosm, you can also grab a
Cosm logo and put it on your web page with a link
to our site.
© Mithral Inc.
All Rights Reserved.
Mithral® and Cosm® are trademarks of Mithral Inc.