From 073f5827526c77ef4a97b8322cb4b4f9acf0a41c Mon Sep 17 00:00:00 2001 From: EnderIce2 Date: Sat, 4 Jan 2025 08:09:57 +0200 Subject: [PATCH] website: Rewrite the website Signed-off-by: EnderIce2 --- tools/website/assets/css/style.css | 329 ++++++++++++++++++ .../website/assets/images/feature-default.png | Bin 0 -> 19230 bytes tools/website/assets/images/feature1-en.png | Bin 0 -> 17310 bytes tools/website/assets/images/feature2-en.png | Bin 0 -> 18123 bytes tools/website/assets/images/feature3-en.png | Bin 0 -> 18490 bytes .../assets/images/screenshot-default.png | Bin 0 -> 15874 bytes tools/website/assets/images/screenshot-en.png | Bin 0 -> 13650 bytes tools/website/assets/js/script.js | 91 +++++ tools/website/assets/lang/README.md | 1 + tools/website/assets/lang/bg.json | 0 tools/website/assets/lang/de.json | 0 tools/website/assets/lang/en.json | 38 ++ tools/website/assets/lang/es.json | 0 tools/website/assets/lang/fr.json | 0 tools/website/assets/lang/hu.json | 0 tools/website/assets/lang/it.json | 0 tools/website/assets/lang/ja.json | 0 tools/website/assets/lang/ko.json | 0 tools/website/assets/lang/pl.json | 0 tools/website/assets/lang/pt.json | 0 tools/website/assets/lang/ro.json | 0 tools/website/assets/lang/ru.json | 0 tools/website/assets/lang/tr.json | 0 tools/website/assets/lang/zh-CN.json | 0 tools/website/assets/lang/zh-TW.json | 0 tools/website/assets/logo.png | Bin 0 -> 10302 bytes tools/website/favicon.ico | Bin 0 -> 15406 bytes tools/website/index.html | 206 +++++------ tools/website/robots.txt | 8 +- 29 files changed, 552 insertions(+), 121 deletions(-) create mode 100644 tools/website/assets/css/style.css create mode 100644 tools/website/assets/images/feature-default.png create mode 100644 tools/website/assets/images/feature1-en.png create mode 100644 tools/website/assets/images/feature2-en.png create mode 100644 tools/website/assets/images/feature3-en.png create mode 100644 tools/website/assets/images/screenshot-default.png create mode 100644 tools/website/assets/images/screenshot-en.png create mode 100644 tools/website/assets/js/script.js create mode 100644 tools/website/assets/lang/README.md create mode 100644 tools/website/assets/lang/bg.json create mode 100644 tools/website/assets/lang/de.json create mode 100644 tools/website/assets/lang/en.json create mode 100644 tools/website/assets/lang/es.json create mode 100644 tools/website/assets/lang/fr.json create mode 100644 tools/website/assets/lang/hu.json create mode 100644 tools/website/assets/lang/it.json create mode 100644 tools/website/assets/lang/ja.json create mode 100644 tools/website/assets/lang/ko.json create mode 100644 tools/website/assets/lang/pl.json create mode 100644 tools/website/assets/lang/pt.json create mode 100644 tools/website/assets/lang/ro.json create mode 100644 tools/website/assets/lang/ru.json create mode 100644 tools/website/assets/lang/tr.json create mode 100644 tools/website/assets/lang/zh-CN.json create mode 100644 tools/website/assets/lang/zh-TW.json create mode 100644 tools/website/assets/logo.png create mode 100644 tools/website/favicon.ico diff --git a/tools/website/assets/css/style.css b/tools/website/assets/css/style.css new file mode 100644 index 00000000..e76592f5 --- /dev/null +++ b/tools/website/assets/css/style.css @@ -0,0 +1,329 @@ +body { + font-family: Arial, sans-serif; + margin: 0; + padding: 0; + line-height: 1.6; + background-color: #121212; + color: #f0f0f0; + scroll-behavior: smooth; +} + +.hero { + text-align: center; + background: linear-gradient(135deg, #1e1e2e, #313450); + color: white; + padding: 50px 20px; +} + +.hero h1 { + font-size: 2.8em; + margin-bottom: 10px; + text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5); +} + +.hero p { + margin-bottom: 20px; + font-size: 1.3em; +} + +.hero button { + background-color: #282828; + color: #ffffff; + border: none; + padding: 12px 25px; + font-size: 1.1em; + border-radius: 25px; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 10px rgba(14, 14, 14, 0.5); +} + +.hero button:hover { + background-color: #ff6b81; + color: black; + transform: scale(1.15); + box-shadow: 0 6px 15px rgba(255, 71, 87, 0.7); +} + +.buttons-section { + text-align: center; + margin: 40px 20px; +} + +.buttons-section h2 { + font-size: 2em; + margin-bottom: 20px; + text-transform: uppercase; + color: #ff4757; +} + +.buttons-section button { + color: white; +} + +.button { + background-color: #313450; + color: black; + border: none; + padding: 15px 30px; + font-size: 1.1em; + margin: 10px; + border-radius: 50px; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: none; +} + +.button:hover { + background-color: #ff4757; + transform: scale(1.1); + box-shadow: 0 6px 15px rgba(255, 71, 87, 0.6); + color: black; +} + +.button:focus { + outline: none; +} + +.screenshot-section { + text-align: center; + margin: 40px 20px; +} + +.screenshot { + max-width: 80%; + height: auto; + border-radius: 15px; + box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.5); + transition: transform 0.5s ease, box-shadow 0.5s ease; +} + +.screenshot:hover { + transform: scale(1.05); + box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.8); +} + +.features-section { + background-color: #1e1e2e; + padding: 40px 20px; +} + +.features-section h2 { + text-align: center; + margin-bottom: 20px; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 2em; +} + +.features { + display: flex; + justify-content: center; + gap: 20px; + flex-wrap: wrap; +} + +.card { + background: linear-gradient(135deg, #313450, #1e1e2e); + box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3); + padding: 20px; + width: 300px; + border-radius: 15px; + text-align: center; + transition: transform 0.4s ease, box-shadow 0.4s ease; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.card:hover { + transform: translateY(-10px) scale(1.05); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.card h3 { + color: #ff4757; + margin-bottom: 10px; +} + +.card p { + color: #ccc; +} + +.feature-detail { + display: flex; + align-items: center; + justify-content: space-between; + padding: 40px 20px; + gap: 30px; + opacity: 0; + transform: translateY(50px); + transition: opacity 0.6s ease, transform 0.6s ease; +} + +.feature-detail.active { + opacity: 1; + transform: translateY(0); +} + +.feature-detail:nth-child(even) { + flex-direction: row-reverse; +} + +.feature-detail img { + max-width: 50%; + border-radius: 15px; + box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.5); + transition: transform 0.8s ease, box-shadow 0.8s ease; + margin: 0 40px; +} + +.feature-detail.active img:hover { + transform: scale(1.11); + box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.8); +} + +.feature-detail img.active { + transform: scale(1.1); + box-shadow: 0px 15px 25px rgba(0, 0, 0, 0.7); +} + +.feature-detail .text { + max-width: 40%; + padding: 0 20px; +} + +.feature-detail .text h3 { + font-size: 1.8em; + margin-bottom: 10px; + color: #ff4757; +} + +.feature-detail .text p { + color: #ccc; + font-size: 1.1em; + line-height: 1.6; +} + +.footer { + text-align: center; + padding: 20px; + background-color: #121212; + color: #bbb; + border-top: 1px solid #2a2a2a; +} + +@media (max-width: 768px) { + .features { + flex-direction: column; + align-items: center; + } + + .feature-detail { + flex-direction: column; + text-align: center; + } + + .feature-detail img, + .feature-detail .text { + max-width: 100%; + } +} + +header { + position: sticky; + top: 0; + max-height: 64px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 20px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); + backdrop-filter: blur(10px); + background: rgba(0, 0, 0, 0.5); + z-index: 999; +} + +header img { + width: 64px; + height: 64px; +} + +.div-warning { + text-decoration: none; + color: white; + font-size: 1.2em; + text-align: center; + display: flex; + margin-left: auto; + text-shadow: 0px 0px 5px rgba(255, 0, 0, 1); +} + +.div-dropdown { + position: relative; + display: flex; + align-items: center; + margin-left: auto; +} + +.header-button { + background-color: #313450; + color: white; + border: none; + text-decoration: none; + display: block; + border-radius: 8px; + font-size: 1.1em; + padding: 8px 12px; + margin: 0; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); +} + +.header-button:hover { + transform: scale(1.05); +} + +.dropdown-content { + display: none; + position: absolute; + top: 110%; + right: 0; + background-color: #313450; + z-index: 1; + border-radius: 12px; + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.5); + padding: 10px 0; + max-height: 300px; + overflow-y: auto; + overflow-x: hidden; +} + +.dropdown-content::-webkit-scrollbar { + width: 8px; +} + +.dropdown-content::-webkit-scrollbar-thumb { + background-color: #ff4757; + border-radius: 4px; +} + +.dropdown-content::-webkit-scrollbar-thumb:hover { + background-color: #ff6b81; +} + +.dropdown-content a { + color: white; + white-space: nowrap; + text-decoration: none; + display: block; + padding: 8px 12px; + border-radius: 8px; + font-size: 1.1em; + transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s ease; +} + +.dropdown-content a:hover { + background-color: #ff4757; + color: black; + transform: scale(1.05); +} \ No newline at end of file diff --git a/tools/website/assets/images/feature-default.png b/tools/website/assets/images/feature-default.png new file mode 100644 index 0000000000000000000000000000000000000000..e1dc44d2a4c8ebf96020f5ce66af345ab8b1bf41 GIT binary patch literal 19230 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 literal 0 HcmV?d00001 diff --git a/tools/website/assets/images/feature3-en.png b/tools/website/assets/images/feature3-en.png new file mode 100644 index 0000000000000000000000000000000000000000..e26b21488b66b38f381a00a2c314cad4bd74f71a GIT binary patch literal 18490 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�~x|0<=5p=!_bzTQm4-c{?OOY)u6Mf)^W^& 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

nG2{80HjA9CSWeDY>>V(o_hCukry| z#j2sTR+cC;3PWK0>HE#JoRM5-&Sg{=hR}dw&K#5)B(73>D>K%)*Dl!O^Kx=E_`*nX ze7mqtN5${O3jwoZXyC>1HM`6na+(DQ#-1F$VdvI{hKgRIE8u9eQjiy)C^#5&Q058X zqvHLgf1=?%dT+v`1v;=s+Q0dUJx1w+T~SM-H4%-qs}MbuL<1eh(VnQELYielysO zZ8_9A(pJndU}?fqMYM2^24cw?6_XCM<%E<*X@% z-8We2xMwRx+(A%~hpVNw@nCZDP%Z_OEWw4=spu{*U zNn-b{;O@I7|DU>d%&78Ls62_6J@sgX@dj##0HA7jIS)OA0$&fBQJUX%@X;gxyd3xWB;#MP%VnwYEf0s zYc`sRCNI$x!2}drLV%v09tX94Z5TwtY~nBT4zyP#bIkjj4{q^21jE zsp7`LMGDc=^F<$UqM>)|<(6kM;(!$p+PCcSEM91G;EcP6Mh&+n>Vh?`lAD;2&;Wa~ zC%*Z6P)T{><77-DRra^^cykM|aDgHT(oI`m6 zq$WshO8~XijjajGv-_SIs(?1Vad|t*u^*6+sjjtu}J6LtaV}bOdRK8ZBU3 zNubn{E$R?|ysF6ghG51?J1+BZ6^y7h!AM_`)ilg*?$eT%5dvEy*70)6pFy;CmBDBr z(T!*qP3uB}(?)vAJ#3d*aiP)3WMa>Lp>#d=S<8hsDvCx&PMJuyb`6oAg3^!18q2>w z)Mu15w?mDfQR}$gVlb5C%?-h@QN$uex_B;=Zod-n*N>=p7%`f zfaOxb`zL$WLWJ-ZE1b`Zii+k!o>4&QxrBrpDESPzx{$evesAQbqUjspi=RtoCRP1@ zUI87{i^uMP@mvPr!@4(7+@t*&F@6AQU?eKb8Qgm|3NI#L_PoNvLJ@KCJU|hD2}o*P23Oq)(Lq-s z4j0Wlc!P9|4-Mtj)pb74aR!B(4U4A&hmxCrxt=|I&^lznt{)QDd%9hP3PgngvH$^W z=~6V}m#psV=I!lG{_x>!+HsF(0umag@87>?L&v4Ss00M+28}Bz7hs?o@XdVbv=UeN%VE<)$b#!&JhOOYK$6*tm%A@aF zjQ5o0g0;~-vkmsd6!s)08Sur%jT^}@qm!Ht8@O2y-s=IAYS{qp6g5G4-*wUV^J>g- z6Cy+$bi?^zC?-FNRzy%idg?+$$NQ`1B;DaYUwOZTVV7`ZXaUZCe&ruGB3~vLz9YZ} zSx%)AT`LmK&T++5g`47hiM$NB=W%N|!k!j1Ep1VD-6;URCw*cA-{!EgVsPg`R;)@+ zhf~{p5>{r^6f2$!>d-k=CWDa!_@xW9G-~HzcpNeGIE%xH)(k-Jj;a~JjmG;bivK(V zD>H)|hvxNDRH_{*8C~gQBa}5GUkBqm+ z(;)J8!Ki|$DMVuD!pfsU_hZ7hSY+rN4u{;^+xun@JU|CTa3>y)&KSl!b6}RO?6Rn^ zaCUlnIzJws|E4V35-(_)i1V6v04cP*efu`KzrX(tdj5`m*s2RSoMh;-2RsCKI0G`) z>5GD*;w5$8iR-G?C5}d}pu(6>{0h%|7A-LkC=-kZRXv`DaS1B4%zrM?A1#prNG*p* zB!+;Keu!>qX~~A+UkXeU^>!XZH`@(sr3i?tT>{SR{?Ed8Y&feJ;OnO`q;pVy1@88K90Tsua|-M za5u*Ixa*ZI5P*SDDt;V#uxD#qyQN1&REH-P9NBz zJMNuV^piTpnu)6zsaYckgl+p4NSXk%U|rZ=pg17O8-@ zpHPQuX6NJp7D-E-+qrY6(-91h(}eL2~55`{j*4oaV=wf2ak_I3mP!o&>*eTo2np$EmM*lamAPbQZ`e z7GQ+C2EbmP$h5zND<(O^wqw}mMr#bV@4tR8Ko9%hrSJXytY`=R>*1Nd&-L$fMOAy( eeQ4lGkh)7qkA&>}& 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 literal 0 HcmV?d00001 diff --git a/tools/website/assets/images/screenshot-en.png b/tools/website/assets/images/screenshot-en.png new file mode 100644 index 0000000000000000000000000000000000000000..e66939d9df7612016b4ce0c1bd514f6850111b3b GIT binary patch literal 13650 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 SZX25Ub7ze83;%WX_J09T(O%X7 literal 0 HcmV?d00001 diff --git a/tools/website/assets/js/script.js b/tools/website/assets/js/script.js new file mode 100644 index 00000000..e74fc32d --- /dev/null +++ b/tools/website/assets/js/script.js @@ -0,0 +1,91 @@ +const featureDetails = document.querySelectorAll('.feature-detail'); + +const observer = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + entry.target.classList.add('active'); + const img = entry.target.querySelector('img'); + img.classList.add('active'); + } + else { + entry.target.classList.remove('active'); + const img = entry.target.querySelector('img'); + img.classList.remove('active'); + } + }); +}, { + threshold: 0.1 +}); + +featureDetails.forEach(detail => { + observer.observe(detail); +}); + +function updateContent(langData) { + document.querySelectorAll('[data-i18n]').forEach(element => { + const key = element.getAttribute('data-i18n'); + + if (key in langData) { + if (element.tagName === "IMG") { + element.src = langData[key]; + } else { + element.innerHTML = langData[key]; + } + } else { + console.warn(`Missing translation for key: '${key}'`); + } + }); +} + +function setLanguagePreference(lang) { + localStorage.setItem('language', lang); + location.reload(); +} + +async function fetchLanguageData(lang) { + try { + const response = await fetch(`assets/lang/${lang}.json`); + if (!response.ok) { + throw new Error(`Language file for '${lang}' not found`); + } + return response.json(); + } catch (error) { + console.warn(error.message + `. Falling back to English.`); + return fetchLanguageData('en'); + } +} + +async function detectAndLoadLanguage() { + const savedLanguage = localStorage.getItem('language'); + const browserLanguage = navigator.language || navigator.languages[0]; + const languageToLoad = savedLanguage || browserLanguage.split('-')[0] || 'en'; + + console.log(`Detected language: ${browserLanguage}. Loading: ${languageToLoad}`); + + const langData = await fetchLanguageData(languageToLoad); + updateContent(langData); +} + +async function changeLanguage(lang) { + setLanguagePreference(lang); +} + +window.addEventListener('DOMContentLoaded', detectAndLoadLanguage); + +function toggleDropdown() { + const dropdownMenu = document.getElementById('dropdownMenu'); + dropdownMenu.style.display = dropdownMenu.style.display === 'block' ? 'none' : 'block'; +} + +window.onclick = function (event) { + const dropdownMenu = document.getElementById('dropdownMenu'); + const dropdownButton = document.querySelector('.header-button'); + if (!dropdownMenu.contains(event.target) && event.target !== dropdownButton) { + dropdownMenu.style.display = 'none'; + } +}; + +function downloadFennix() { + // TODO: Here will download the iso file + window.location.href = "https://github.com/EnderIce2/Fennix"; +} diff --git a/tools/website/assets/lang/README.md b/tools/website/assets/lang/README.md new file mode 100644 index 00000000..0725ae73 --- /dev/null +++ b/tools/website/assets/lang/README.md @@ -0,0 +1 @@ +# Language Directory diff --git a/tools/website/assets/lang/bg.json b/tools/website/assets/lang/bg.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/de.json b/tools/website/assets/lang/de.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/en.json b/tools/website/assets/lang/en.json new file mode 100644 index 00000000..37893787 --- /dev/null +++ b/tools/website/assets/lang/en.json @@ -0,0 +1,38 @@ +{ + "home": "Fennix - Future of Computing", + "warning_message": "⚠️ The operating system is in early development ⚠️
This website is a placeholder and does not fully represent the project's current status.", + + "welcome_message": "Welcome to Fennix", + "welcome_subtitle": "Unlock seamless and powerful computing.", + "download_button": "Download", + "screenshot_title": "Explore Fennix", + "screenshot_image": "assets/images/screenshot-en.png", + + "get_involved": "Get Involved", + "get_involved_btn1": "Contribute", + "get_involved_btn2": "Documentation", + "get_involved_btn3": "API Reference", + "get_involved_btn4": "Developing with Fennix", + + "features_title": "Core Features", + "card1_title": "High Performance", + "card1_text": "Experience fast speeds for modern computing tasks.", + "card2_title": "Security & Privacy", + "card2_text": "Your data is secure with advanced encryption and privacy protocols.", + "card3_title": "Customizable", + "card3_text": "Customize Fennix to enhance your workflow and productivity.", + + "feature1_title": "User Interface", + "feature1_text": "Work with a user-friendly, modern interface designed for efficiency.", + "feature1_image": "assets/images/feature1-en.png", + + "feature2_title": "Multitasking", + "feature2_text": "Run multiple applications and switch between tasks easily.", + "feature2_image": "assets/images/feature2-en.png", + + "feature3_title": "Security Features", + "feature3_text": "Use built-in security measures to protect your data.", + "feature3_image": "assets/images/feature3-en.png", + + "footer_text": "© 2025 EnderIce2" +} diff --git a/tools/website/assets/lang/es.json b/tools/website/assets/lang/es.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/fr.json b/tools/website/assets/lang/fr.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/hu.json b/tools/website/assets/lang/hu.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/it.json b/tools/website/assets/lang/it.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/ja.json b/tools/website/assets/lang/ja.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/ko.json b/tools/website/assets/lang/ko.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/pl.json b/tools/website/assets/lang/pl.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/pt.json b/tools/website/assets/lang/pt.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/ro.json b/tools/website/assets/lang/ro.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/ru.json b/tools/website/assets/lang/ru.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/tr.json b/tools/website/assets/lang/tr.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/zh-CN.json b/tools/website/assets/lang/zh-CN.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/lang/zh-TW.json b/tools/website/assets/lang/zh-TW.json new file mode 100644 index 00000000..e69de29b diff --git a/tools/website/assets/logo.png b/tools/website/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..82ea15996692771e1a9f252147cf3a3cc843700c GIT binary patch literal 10302 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 F`9D>?UBdtX literal 0 HcmV?d00001 diff --git a/tools/website/favicon.ico b/tools/website/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0f008981565f8b0b734b310349081b1193b0fe26 GIT binary patch literal 15406 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 literal 0 HcmV?d00001 diff --git a/tools/website/index.html b/tools/website/index.html index b0cda18a..9c30b08c 100644 --- a/tools/website/index.html +++ b/tools/website/index.html @@ -1,136 +1,108 @@ - + + - Fennix - - - + + + Fennix + - -

- - -
-
- GitHub Workflow Status - GitHub - GitHub repo size - GitHub Repo stars -
-
-

About

- - - - - - -
- -
-
- Hello!
This is my Operating System from scratch, my goal is to make a fully functional Operating System with a GUI and a lot of features.
I'm working on this project alone, but I'm open to any kind of help, if you want to help - me, you can contribute to the project on GitHub.
I have a Discord server too →
+ + -
-
-

Compiling Instructions

-
-

Requirements

- First of all, you need to install the required packages to build the cross-compiler, bootloader, OS, etc. -
-
- • Ubuntu 22.04
For cross-compiler:
- sudo apt install build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo libzstd-dev libisl-dev autoconf m4 automake gettext gperf dejagnu guile-3.0 guile-3.0-dev expect tcl autogen tex-common sphinx-common git ssh diffutils patch -
For bootloader:
- sudo apt-get install make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -
For QEMU you'll have to follow this page here
For OS:
- sudo apt-get install xorriso mtools genisoimage ovmf nasm doxygen - -
+
+

+

+ +
+ +
+

+ Fennix Screenshot +
+ +
+

+ + + + +
+ +
+

+
+
+

+

- -
-

Building The Cross-Compiler

- The cross-compiler is used to compile the OS, the bootloader and the kernel.
-
All you have to do is to write this command in the terminal:
- make tools
You'll have to wait a while, but when it's done, you can jump to the next step.
+
+

+

- -
-

Configuring your kernel

- If you want to build different architecture, use other QEMU binary or change kernel name you can find in - config.mk file.
-
- DEBUG • If it's set to 1, the kernel will be compiled in debug mode.
- TESTING • Enable unit testing.
- OSNAME • The name of the kernel. This can be anything.
- OSARCH • The architecture of the kernel. Supported values are: amd64 i386 aarch64.
- KERNEL_VERSION • The version of the kernel. This can be anything.
- BOOTLOADER • The bootloader to be used. If set to other, the bootloader will be Limine for 64-bit, or - with GRUB if 32-bit. - COMPILER_PATH • The path of the cross compiler. If you want to use your own cross compiler, change it to the path of the compiler.
- LIMINE_FOLDER • The path of the Limine bootloader.
- QEMU_PATH • Qemu path. If you want to use the one you have installed in your system, change it to /usr/bin/qemu-system- (do not include x86_64 or i386, it will be added automatically) -
That's all you can change in this file.
-
- -
-

Building The Operating System

- The fun part!
-
Now that you have the cross-compiler, you can build the OS.
There are a few commands that you can use to compile the OS:
- make build • Builds the entire OS and creates an ISO image.
- make run • Same as make build but starts the QEMU too.
- make clean • Clean all files (object files, ISO, etc...).
- make doxygen • Generate the documentation in directory doxygen-doc.
+
+

+

+
-
-

Running With Other Virtual Machines

-
-
- • On VirtualBox and VMware, you can use the ISO image to run the OS.
• HDD/SSD are not required.
• The minimum RAM required is 4G. You can run with lower memory, but sometimes can cause issues (I don't know - why).
• UEFI required. BIOS sometimes doesn't work properly.
• Serial Port (COM1) is recommended.
-
+
+ Feature 1 Screenshot +
+

+

+
-
-

Reporting Issues

-
-
- You can report bugs or crash issues to Issues - tab.
-
+
+ Feature 2 Screenshot +
+

+

+
- -
-

© EnderIce2

- -
-
+
+ Feature 3 Screenshot +
+

+

+
+
+ +
+

+
+ + - \ No newline at end of file + diff --git a/tools/website/robots.txt b/tools/website/robots.txt index 3f4966a2..018361fd 100644 --- a/tools/website/robots.txt +++ b/tools/website/robots.txt @@ -1,5 +1,5 @@ User-agent: * -Disallow: /userspace/ -Disallow: /drivers/ -Disallow: /kernel/ -Disallow: /fulldoc/ +Disallow: /lang/ +Disallow: /js/ +Disallow: /css/ +Disallow: /images/