Coder Social home page Coder Social logo

mirrorcheck's Introduction

TockOS

tock-ci slack book

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers. Tock uses two mechanisms to protect different components of the operating system. First, the kernel and device drivers are written in Rust, a systems programming language that provides compile-time memory safety and type safety. Tock uses Rust to protect the kernel (e.g. the scheduler and hardware abstraction layer) from platform specific device drivers as well as isolate device drivers from each other. Second, Tock uses memory protection units to isolate applications from each other and the kernel.

Tock 2.x!

Tock is now on its second major release! For a summary of the latest new features and improvements, check out the changelog.

Getting Started

There are a variety of resources for learning about Tock, contributing to the project, and getting help.

Code of Conduct

The Tock project adheres to the Rust Code of Conduct.

All contributors, community members, and visitors are expected to familiarize themselves with the Code of Conduct and to follow these standards in all Tock-affiliated environments, which includes but is not limited to repositories, chats, and meetup events. For moderation issues, please contact members of the @tock/core-wg.

Cite this Project

Tock was presented at SOSP'17

Amit Levy, Bradford Campbell, Branden Ghena, Daniel B. Giffin, Pat Pannuto, Prabal Dutta, and Philip Levis. 2017. Multiprogramming a 64kB Computer Safely and Efficiently. In Proceedings of the 26th Symposium on Operating Systems Principles (SOSP ’17). Association for Computing Machinery, New York, NY, USA, 234–251. DOI: https://doi.org/10.1145/3132747.3132786

Bibtex
@inproceedings{levy17multiprogramming,
      title = {Multiprogramming a 64kB Computer Safely and Efficiently},
      booktitle = {Proceedings of the 26th Symposium on Operating Systems Principles},
      series = {SOSP'17},
      year = {2017},
      month = {10},
      isbn = {978-1-4503-5085-3},
      location = {Shanghai, China},
      pages = {234--251},
      numpages = {18},
      url = {http://doi.acm.org/10.1145/3132747.3132786},
      doi = {10.1145/3132747.3132786},
      acmid = {3132786},
      publisher = {ACM},
      address = {New York, NY, USA},
      conference-url = {https://www.sigops.org/sosp/sosp17/},
      author = {Levy, Amit and Campbell, Bradford and Ghena, Branden and Giffin, Daniel B. and Pannuto, Pat and Dutta, Prabal and Levis, Philip},
}

This is the primary paper that describes the design considerations of Tock.

Other Tock-related papers

There are two shorter papers that look at potential limitations of the Rust language for embedded software development. The earlier PLOS paper lays out challenges and the later APSys paper lays out potential solutions. Some persons describing work on programming languages and type theory may benefit from these references, but generally, most work should cite the SOSP paper above.

@inproceedings{levy17rustkernel,
	title = {The Case for Writing a Kernel in Rust},
	booktitle = {Proceedings of the 8th Asia-Pacific Workshop on Systems},
	series = {APSys '17},
	year = {2017},
	month = {9},
	isbn = {978-1-4503-5197-3},
	location = {Mumbai, India},
	pages = {1:1--1:7},
	articleno = {1},
	numpages = {7},
	url = {http://doi.acm.org/10.1145/3124680.3124717},
	doi = {10.1145/3124680.3124717},
	acmid = {3124717},
	publisher = {ACM},
	address = {New York, NY, USA},
	conference-url = {https://www.cse.iitb.ac.in/~apsys2017/},
	author = {Levy, Amit and Campbell, Bradford and Ghena, Branden and Pannuto, Pat and Dutta, Prabal and Levis, Philip},
}
@inproceedings{levy15ownership,
	title = {Ownership is Theft: Experiences Building an Embedded {OS} in {R}ust},
	booktitle = {Proceedings of the 8th Workshop on Programming Languages and Operating Systems},
	series = {PLOS 2015},
	year = {2015},
	month = {10},
	isbn = {978-1-4503-3942-1},
	doi = {10.1145/2818302.2818306},
	url = {http://dx.doi.org/10.1145/2818302.2818306},
	location = {Monterey, CA},
	publisher = {ACM},
	address = {New York, NY, USA},
	conference-url = {http://plosworkshop.org/2015/},
	author = {Levy, Amit and Andersen, Michael P and Campbell, Bradford and Culler, David and Dutta, Prabal and Ghena, Branden and Levis, Philip and Pannuto, Pat},
}

There is also a paper on the Tock security model. The threat model documentation in the docs/ folder is the source of truth for the current Tock threat model, but this paper represents a snapshot of the reasoning behind the Tock threat model and details how it compares to those in similar embedded OSes.

@inproceedings{10.1145/3517208.3523752,
	author = {Ayers, Hudson and Dutta, Prabal and Levis, Philip and Levy, Amit and Pannuto, Pat and Van Why, Johnathan and Watson, Jean-Luc},
	title = {Tiered Trust for Useful Embedded Systems Security},
	year = {2022},
	isbn = {9781450392556},
	publisher = {Association for Computing Machinery},
	address = {New York, NY, USA},
	url = {https://doi.org/10.1145/3517208.3523752},
	doi = {10.1145/3517208.3523752},
	booktitle = {Proceedings of the 15th European Workshop on Systems Security},
	pages = {15–21},
	numpages = {7},
	keywords = {security, embedded systems, operating systems, IoT},
	location = {Rennes, France},
	series = {EuroSec '22}
}

License

Licensed under either of

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

mirrorcheck's People

Contributors

dependabot[bot] avatar lschuermann avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mirrorcheck's Issues

`test-mirrors` has encountered an error

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Read timed out. (read timeout=30)

Request Error for URL

Details:

Error message:

HTTPSConnectionPool(host='www.cs.virginia.edu', port=443): Read timed out. (read timeout=30)

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Read timed out. (read timeout=30)

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Read timed out. (read timeout=30)

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Read timed out. (read timeout=30)

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Read timed out. (read timeout=30)

`test-mirrors` has encountered an error

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Read timed out. (read timeout=30)

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Read timed out. (read timeout=30)

Request Error for URL

Details:

Error message:

('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Max retries exceeded with url: /~bjc8c/archive/tock/libtock-libc++-13.2.0.zip (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb804a51930>: Failed to establish a new connection: [Errno 111] Connection refused'))

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Max retries exceeded with url: /~bjc8c/archive/tock/libtock-newlib-4.2.0.20211231.zip (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb804a531f0>: Failed to establish a new connection: [Errno 111] Connection refused'))

Request Error for URL

Details:

Error message:

HTTPConnectionPool(host='www.cs.virginia.edu', port=80): Max retries exceeded with url: /~bjc8c/archive/tock/libtock-newlib-4.3.0.20230120.zip (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb804a51450>: Failed to establish a new connection: [Errno 111] Connection refused'))

`test-mirrors` has encountered an error

Request Error for URL

Details:

Error message:

HTTPSConnectionPool(host='caesium.princeton.edu', port=443): Max retries exceeded with url: /mirror-alpha/files/2023-08-17_gcc-riscv64-unknown-elf-8.3.0-ubuntu.zip (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe8d732d870>: Failed to establish a new connection: [Errno 111] Connection refused'))

Request Error for URL

Details:

Error message:

HTTPSConnectionPool(host='caesium.princeton.edu', port=443): Max retries exceeded with url: /mirror-alpha/files/tock/gcc-riscv64-unknown-elf-8.3.0-ubuntu.zip (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe8d732cbe0>: Failed to establish a new connection: [Errno 111] Connection refused'))

Request Error for URL

Details:

Error message:

HTTPSConnectionPool(host='caesium.princeton.edu', port=443): Max retries exceeded with url: /mirror-alpha/files/tock/libtock-libc++-10.5.0.zip (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe8d7335b70>: Failed to establish a new connection: [Errno 111] Connection refused'))

Request Error for URL

Details:

Error message:

HTTPSConnectionPool(host='caesium.princeton.edu', port=443): Max retries exceeded with url: /mirror-alpha/files/tock/libtock-libc++-12.3.0.zip (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe8d732db70>: Failed to establish a new connection: [Errno 111] Connection refused'))

Request Error for URL

Details:

Error message:

HTTPSConnectionPool(host='caesium.princeton.edu', port=443): Max retries exceeded with url: /mirror-alpha/files/tock/libtock-libc++-13.2.0.zip (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe8d732fe50>: Failed to establish a new connection: [Errno 111] Connection refused'))

Request Error for URL

Details:

Error message:

HTTPSConnectionPool(host='caesium.princeton.edu', port=443): Max retries exceeded with url: /mirror-alpha/files/tock/libtock-newlib-4.2.0.20211231.zip (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe8d7337b80>: Failed to establish a new connection: [Errno 111] Connection refused'))

Request Error for URL

Details:

Error message:

HTTPSConnectionPool(host='caesium.princeton.edu', port=443): Max retries exceeded with url: /mirror-alpha/files/tock/libtock-newlib-4.3.0.20230120.zip (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe8d732f0a0>: Failed to establish a new connection: [Errno 111] Connection refused'))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.