311 lines
9.4 KiB
HTML
311 lines
9.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="description" content="MontaukOS">
|
|
<title>MontaukOS</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600&display=swap" rel="stylesheet">
|
|
<style>
|
|
body {
|
|
font-family: 'Open Sans', Arial, sans-serif;
|
|
max-width: 960px;
|
|
margin: 0 auto;
|
|
padding: 1em;
|
|
line-height: 1.5;
|
|
display: flex;
|
|
gap: 2em;
|
|
}
|
|
p { margin: 0 0 0.5em; }
|
|
h2 { margin: 0.5em 0; }
|
|
.sidebar {
|
|
width: 160px;
|
|
flex-shrink: 0;
|
|
}
|
|
.sidebar ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
}
|
|
.sidebar li {
|
|
margin: 0.5em 0;
|
|
}
|
|
.sidebar a {
|
|
color: #0066CC;
|
|
text-decoration: none;
|
|
font-weight: 600;
|
|
}
|
|
.sidebar a:hover {
|
|
color: #004499;
|
|
text-decoration: underline;
|
|
}
|
|
.main {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
a { color: #0000EE; }
|
|
a:visited { color: #0066CC; }
|
|
hr { border-style: solid; border-width: 1px 0 0 0; border-color: #999; }
|
|
pre { background: #f0f0f0; padding: 0.5em; overflow-x: auto; }
|
|
.center { text-align: center; }
|
|
.box {
|
|
border: 1px solid #999;
|
|
padding: 0.5em;
|
|
margin: 0.5em 0;
|
|
}
|
|
.app-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
|
|
gap: 0 1em;
|
|
margin: 0;
|
|
}
|
|
.app-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
text-align: center;
|
|
margin: 0;
|
|
}
|
|
.app-item img {
|
|
width: 48px;
|
|
height: 48px;
|
|
display: block;
|
|
}
|
|
.app-item a {
|
|
color: #0000EE;
|
|
text-decoration: none;
|
|
font-size: 0.9em;
|
|
}
|
|
.app-item a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
.slideshow {
|
|
margin: 0 0 1em;
|
|
}
|
|
.slideshow-frame {
|
|
position: relative;
|
|
}
|
|
.slideshow-frame img {
|
|
display: block;
|
|
width: 100%;
|
|
aspect-ratio: 16 / 10;
|
|
object-fit: contain;
|
|
}
|
|
.slideshow-button {
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
border: 1px solid #999;
|
|
background: rgba(255, 255, 255, 0.9);
|
|
color: #222;
|
|
padding: 0.35em 0.55em;
|
|
cursor: pointer;
|
|
font: inherit;
|
|
}
|
|
.slideshow-button:hover {
|
|
background: #fff;
|
|
}
|
|
.slideshow-button.prev {
|
|
left: 0.75em;
|
|
}
|
|
.slideshow-button.next {
|
|
right: 0.75em;
|
|
}
|
|
.slideshow-meta {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 1em;
|
|
margin-top: 0.6em;
|
|
flex-wrap: wrap;
|
|
}
|
|
.slideshow-caption {
|
|
margin: 0;
|
|
}
|
|
.slideshow-dots {
|
|
display: flex;
|
|
gap: 0.4em;
|
|
}
|
|
.slideshow-dot {
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 50%;
|
|
border: 1px solid #999;
|
|
background: #ddd;
|
|
padding: 0;
|
|
}
|
|
.slideshow-dot.active {
|
|
background: #0066CC;
|
|
border-color: #004499;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="sidebar">
|
|
<ul>
|
|
<li><a href="#about">About</a></li>
|
|
<li><a href="#features">Features</a></li>
|
|
<li><a href="#applications">Applications</a></li>
|
|
<li><a href="downloads.html">Downloads</a></li>
|
|
<li><a href="docs/index.html">Documentation</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="main">
|
|
<div class="center">
|
|
<h1>MontaukOS</h1>
|
|
<p>Modern and unique bare metal operating system</p>
|
|
</div>
|
|
|
|
<hr>
|
|
<h2 id="about">About</h2>
|
|
<p>
|
|
MontaukOS is a novel multi-user operating system that runs on bare metal.
|
|
It features its own preemptive multitasking kernel and modern userspace with its own desktop environment,
|
|
targeting both emulators and real hardware.
|
|
</p>
|
|
<br>
|
|
<p>
|
|
MontaukOS is <strong>not</strong> Linux, nor is it Unix-like. Rather, it uses its own custom Montauk kernel with its own architecture and design.
|
|
</p>
|
|
<hr>
|
|
<h2 id="features">Features</h2>
|
|
<ul style="margin: 0 0 0.5em;">
|
|
<li>Real hardware support: Intel GPU, e100e Ethernet, HDA audio, Bluetooth</li>
|
|
<li>Storage: AHCI/NVMe SSDs, GPT partitions, ext2 and FAT32 filesystems</li>
|
|
<li>ACPI support including support for shutdown and partial support for S3 sleep</li>
|
|
<li>USB and PS/2 input device support</li>
|
|
<li>Desktop environment with 12+ applications</li>
|
|
</ul>
|
|
|
|
<h2 id="applications">Applications</h2>
|
|
<br>
|
|
<div class="app-grid">
|
|
<div class="app-item">
|
|
<a href="#"><img src="fr_icons/utilities-terminal.svg" width="48" height="48" alt="Terminal"></a>
|
|
<a href="#">Terminal</a>
|
|
</div>
|
|
<div class="app-item">
|
|
<a href="#"><img src="fr_icons/system-file-manager.svg" width="48" height="48" alt="File Manager"></a>
|
|
<a href="#">File Manager</a>
|
|
</div>
|
|
<div class="app-item">
|
|
<a href="#"><img src="fr_icons/web-browser.svg" width="48" height="48" alt="Wikipedia Client"></a>
|
|
<a href="#">Wikipedia Client</a>
|
|
</div>
|
|
<div class="app-item">
|
|
<a href="#"><img src="fr_icons/weather-widget.svg" width="48" height="48" alt="Weather App"></a>
|
|
<a href="#">Weather App</a>
|
|
</div>
|
|
<div class="app-item">
|
|
<a href="#"><img src="fr_icons/application-pdf.svg" width="48" height="48" alt="PDF Viewer"></a>
|
|
<a href="#">PDF Viewer</a>
|
|
</div>
|
|
<div class="app-item">
|
|
<a href="#"><img src="fr_icons/audio-player.svg" width="48" height="48" alt="Music Player"></a>
|
|
<a href="#">Music Player</a>
|
|
</div>
|
|
<div class="app-item">
|
|
<a href="#"><img src="fr_icons/doom.svg" width="48" height="48" alt="DOOM"></a>
|
|
<a href="#">DOOM</a>
|
|
</div>
|
|
</div>
|
|
<br><br>
|
|
|
|
<hr>
|
|
<h2 id="screenshots">Screenshots</h2>
|
|
<div class="slideshow">
|
|
<div class="slideshow-frame">
|
|
<img id="slideshow-image" src="images/mtk_doomgame.png" alt="MontaukOS screenshot showing DOOM running in the desktop environment">
|
|
<button type="button" class="slideshow-button prev" id="slideshow-prev" aria-label="Show previous screenshot"><</button>
|
|
<button type="button" class="slideshow-button next" id="slideshow-next" aria-label="Show next screenshot">></button>
|
|
</div>
|
|
<div class="slideshow-meta">
|
|
<p class="slideshow-caption" id="slideshow-caption">DOOM running inside MontaukOS.</p>
|
|
<div class="slideshow-dots" id="slideshow-dots" aria-label="Screenshot selector"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<hr>
|
|
|
|
<div class="center">
|
|
<a href="downloads.html">Releases</a>
|
|
</div>
|
|
|
|
<hr>
|
|
<br>
|
|
<div class="center"><p>Copyright © 2025-2026 Montauk Operating System Project</p></div>
|
|
|
|
</div>
|
|
<script>
|
|
const slideshowItems = [
|
|
{
|
|
src: 'images/mtk_doomgame.png',
|
|
alt: 'MontaukOS screenshot showing DOOM running in the desktop environment',
|
|
caption: 'DOOM running inside MontaukOS.'
|
|
},
|
|
{
|
|
src: 'images/mtk_procmgr_devexplorer.png',
|
|
alt: 'MontaukOS screenshot showing Process Manager and Developer Explorer',
|
|
caption: 'Process Manager and Developer Explorer open on the MontaukOS desktop.'
|
|
}
|
|
];
|
|
|
|
const slideshowImage = document.getElementById('slideshow-image');
|
|
const slideshowCaption = document.getElementById('slideshow-caption');
|
|
const slideshowDots = document.getElementById('slideshow-dots');
|
|
const slideshowPrev = document.getElementById('slideshow-prev');
|
|
const slideshowNext = document.getElementById('slideshow-next');
|
|
let slideshowIndex = 0;
|
|
|
|
function renderSlideshow(index) {
|
|
const item = slideshowItems[index];
|
|
slideshowImage.src = item.src;
|
|
slideshowImage.alt = item.alt;
|
|
slideshowCaption.textContent = item.caption;
|
|
|
|
Array.from(slideshowDots.children).forEach(function(dot, dotIndex) {
|
|
dot.classList.toggle('active', dotIndex === index);
|
|
dot.setAttribute('aria-current', dotIndex === index ? 'true' : 'false');
|
|
});
|
|
}
|
|
|
|
function showSlide(index) {
|
|
slideshowIndex = (index + slideshowItems.length) % slideshowItems.length;
|
|
renderSlideshow(slideshowIndex);
|
|
}
|
|
|
|
if (slideshowItems.length === 0) {
|
|
slideshowImage.remove();
|
|
slideshowCaption.textContent = 'Screenshots will appear here when they are added to the site.';
|
|
slideshowPrev.hidden = true;
|
|
slideshowNext.hidden = true;
|
|
} else {
|
|
slideshowItems.forEach(function(item, index) {
|
|
const dot = document.createElement('span');
|
|
dot.className = 'slideshow-dot';
|
|
dot.setAttribute('aria-hidden', 'true');
|
|
slideshowDots.appendChild(dot);
|
|
});
|
|
|
|
slideshowPrev.addEventListener('click', function() {
|
|
showSlide(slideshowIndex - 1);
|
|
});
|
|
|
|
slideshowNext.addEventListener('click', function() {
|
|
showSlide(slideshowIndex + 1);
|
|
});
|
|
|
|
if (slideshowItems.length === 1) {
|
|
slideshowPrev.hidden = true;
|
|
slideshowNext.hidden = true;
|
|
}
|
|
|
|
renderSlideshow(slideshowIndex);
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|