summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2026-03-22 17:22:16 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2026-03-22 17:22:16 +0100
commit12b2e32abf385b3feb697c442ee79ed8b71d450b (patch)
tree608342ff1203d2c1d4e5828846ae13011f9c2373
parentbc8b05bce61b16daa03a6c4dd0e87f65c608dba3 (diff)
[FEAT] Kernel: Hybrid kernel harderning.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--compile_flags.txt1
-rw-r--r--src/boot/src/New+Delete.cpp8
-rw-r--r--src/kernel/FSKit/OpenHeFS.h2
-rw-r--r--src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cpp2
-rw-r--r--src/kernel/HALKit/ARM64/HalCoreInterruptHandler.cpp2
-rw-r--r--src/kernel/KernelKit/DriveMgr.h6
-rw-r--r--src/kernel/KernelKit/FileMgr.h21
-rw-r--r--src/kernel/KernelKit/HardwareThreadScheduler.h1
-rw-r--r--src/kernel/KernelKit/User.h (renamed from src/kernel/KernelKit/UserMgr+User.h)0
-rw-r--r--src/kernel/KernelKit/UserMgr.h2
-rw-r--r--src/kernel/KernelKit/UserProcessScheduler.h2
-rw-r--r--src/kernel/NeKit/New.h6
-rw-r--r--src/kernel/src/FS/NeFS+FileSystemParser.cpp2
-rw-r--r--src/kernel/src/FS/OpenHeFS+FileMgr.cpp7
-rw-r--r--src/kernel/src/FS/OpenHeFS+FileSystemParser.cpp2
-rw-r--r--src/kernel/src/New+Delete.cpp8
-rw-r--r--src/kernel/src/User.cpp4
17 files changed, 38 insertions, 38 deletions
diff --git a/compile_flags.txt b/compile_flags.txt
index 362ffe20..51003cd9 100644
--- a/compile_flags.txt
+++ b/compile_flags.txt
@@ -16,6 +16,7 @@
-Ipublic/frameworks
-Isrc/boot/BootKit
-Itools/
+-D__BOOTZ_STANDALONE__
-I./
-std=c++20
-D__NE_AMD64__
diff --git a/src/boot/src/New+Delete.cpp b/src/boot/src/New+Delete.cpp
index 70ab1dcd..f3f3d753 100644
--- a/src/boot/src/New+Delete.cpp
+++ b/src/boot/src/New+Delete.cpp
@@ -37,7 +37,7 @@ void* operator new[](size_t sz) {
/// @brief Deletes the object.
/// @param buf the object.
-void operator delete(void* buf) {
+void operator delete(void* buf) noexcept {
if (!buf) return;
BS->FreePool(buf);
@@ -45,7 +45,7 @@ void operator delete(void* buf) {
/// @brief Deletes the object.
/// @param buf the object.
-void operator delete[](void* buf) {
+void operator delete[](void* buf) noexcept {
if (!buf) return;
BS->FreePool(buf);
@@ -54,7 +54,7 @@ void operator delete[](void* buf) {
/// @brief Deletes the object (array specific).
/// @param buf the object.
/// @param size it's size.
-void operator delete(void* buf, size_t size) {
+void operator delete(void* buf, size_t size) noexcept {
if (!buf) return;
SetMem(buf, 0, size);
@@ -64,7 +64,7 @@ void operator delete(void* buf, size_t size) {
/// @brief Deletes the object (array specific).
/// @param buf the object.
/// @param size it's size.
-void operator delete[](void* buf, size_t size) {
+void operator delete[](void* buf, size_t size) noexcept {
if (!buf) return;
SetMem(buf, 0, size);
diff --git a/src/kernel/FSKit/OpenHeFS.h b/src/kernel/FSKit/OpenHeFS.h
index a642c299..1e3c3921 100644
--- a/src/kernel/FSKit/OpenHeFS.h
+++ b/src/kernel/FSKit/OpenHeFS.h
@@ -8,7 +8,7 @@
#include <CompilerKit/CompilerKit.h>
#include <KernelKit/DriveMgr.h>
-#include <KernelKit/UserMgr+User.h>
+#include <KernelKit/User.h>
#include <NeKit/Config.h>
#include <NeKit/Crc32.h>
#include <NeKit/KString.h>
diff --git a/src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cpp b/src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cpp
index 92fb064c..118dd98c 100644
--- a/src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cpp
+++ b/src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cpp
@@ -5,7 +5,7 @@
#include <ArchKit/ArchKit.h>
#include <KernelKit/ProcessScheduler.h>
-#include <KernelKit/UserMgr+User.h>
+#include <KernelKit/User.h>
#include <NeKit/Atom.h>
#include <NeKit/KString.h>
#include <SignalKit/Signals.h>
diff --git a/src/kernel/HALKit/ARM64/HalCoreInterruptHandler.cpp b/src/kernel/HALKit/ARM64/HalCoreInterruptHandler.cpp
index 39f12705..1e3adadf 100644
--- a/src/kernel/HALKit/ARM64/HalCoreInterruptHandler.cpp
+++ b/src/kernel/HALKit/ARM64/HalCoreInterruptHandler.cpp
@@ -5,7 +5,7 @@
#include <ArchKit/ArchKit.h>
#include <KernelKit/ProcessScheduler.h>
-#include <KernelKit/UserMgr+User.h>
+#include <KernelKit/User.h>
#include <NeKit/KString.h>
#include <SignalKit/Signals.h>
diff --git a/src/kernel/KernelKit/DriveMgr.h b/src/kernel/KernelKit/DriveMgr.h
index 76ee5dcf..8b095f05 100644
--- a/src/kernel/KernelKit/DriveMgr.h
+++ b/src/kernel/KernelKit/DriveMgr.h
@@ -3,8 +3,8 @@
// Licensed under the Apache License, Version 2.0 (see LICENSE file)
// Official repository: https://github.com/ne-foss-org/nekernel
-#ifndef INC_DRIVE_MANAGER_H
-#define INC_DRIVE_MANAGER_H
+#ifndef KERNELKIT_DRIVEMGR_H
+#define KERNELKIT_DRIVEMGR_H
/// @file DriveMgr.h
/// @brief NeKernel's drive manager.
@@ -166,4 +166,4 @@ Void io_drv_input(DriveTrait::DrivePacket pckt);
Void io_drv_output(DriveTrait::DrivePacket pckt);
} // namespace Kernel
-#endif /* ifndef INC_DRIVE_MANAGER_H */
+#endif /* ifndef KERNELKIT_DRIVEMGR_H */
diff --git a/src/kernel/KernelKit/FileMgr.h b/src/kernel/KernelKit/FileMgr.h
index 87644e68..06af3c2d 100644
--- a/src/kernel/KernelKit/FileMgr.h
+++ b/src/kernel/KernelKit/FileMgr.h
@@ -3,14 +3,14 @@
// Licensed under the Apache License, Version 2.0 (see LICENSE file)
// Official repository: https://github.com/ne-foss-org/nekernel
-#ifndef INC_FILEMGR_H
-#define INC_FILEMGR_H
+#ifndef KERNELKIT_FILEMGR_H
+#define KERNELKIT_FILEMGR_H
/// @file FileMgr.h
/// @brief File Manager Subsystem.
/// @author Amlal El Mahrouss (amlal@nekernel.org)
-//! Include filesystems that NeKernel supports.
+//! Include filesystems that the hybrid kernel supports.
#include <FSKit/Ext2+IFS.h>
#include <FSKit/NeFS.h>
#include <FSKit/OpenHeFS.h>
@@ -352,7 +352,7 @@ class FileStream final {
/// @brief Leak MIME.
/// @return The MIME.
- Char* MIME() { return const_cast<Char*>(fMime); }
+ Char* MIME() { return fMime; }
enum {
kFileMgrRestrictRead = 100,
@@ -364,14 +364,15 @@ class FileStream final {
};
private:
- NodePtr fFile{nullptr};
- Int32 fFileRestrict{kFileMgrRestrictReadBinary};
- const Char* fMime{kFileMimeGeneric};
+ NodePtr fFile{nullptr};
+ Int32 fFileRestrict{kFileMgrRestrictReadBinary};
+ Char* fMime{const_cast<Char*>(kFileMimeGeneric)};
};
using FileStreamASCII = FileStream<Char>;
using FileStreamUTF8 = FileStream<Utf8Char>;
-using FileStreamUTF16 = FileStream<WideChar>;
+using FileStreamUTF16 = FileStream<Utf16Char>;
+using FileStreamWide = FileStream<WideChar>;
typedef UInt64 CursorType;
@@ -423,9 +424,9 @@ inline FileStream<Encoding, Class>::FileStream(const Encoding* path, const Encod
/// @brief destructor of the file stream.
template <typename Encoding, typename Class>
inline FileStream<Encoding, Class>::~FileStream() {
- mm_free_ptr(fFile);
+ if (fFile) mm_free_ptr(fFile);
fFile = nullptr;
}
} // namespace Kernel
-#endif // ifndef INC_FILEMGR_H
+#endif // ifndef KERNELKIT_FILEMGR_H
diff --git a/src/kernel/KernelKit/HardwareThreadScheduler.h b/src/kernel/KernelKit/HardwareThreadScheduler.h
index a9183cd2..43a906d6 100644
--- a/src/kernel/KernelKit/HardwareThreadScheduler.h
+++ b/src/kernel/KernelKit/HardwareThreadScheduler.h
@@ -12,6 +12,7 @@
/// @note Last Rev Sun 28 Jul CET 2024
/// @note Last Rev Thu, Aug 1, 2024 9:07:38 AM
+/// @note Last Rev Sun, March 22, 2026 5:16 PM
#if defined(__nekernel_max_cores)
/// \note This can be edited at compile-time to specify how many cores can be used by NeKernel.
diff --git a/src/kernel/KernelKit/UserMgr+User.h b/src/kernel/KernelKit/User.h
index bae51180..bae51180 100644
--- a/src/kernel/KernelKit/UserMgr+User.h
+++ b/src/kernel/KernelKit/User.h
diff --git a/src/kernel/KernelKit/UserMgr.h b/src/kernel/KernelKit/UserMgr.h
index 16ca79b6..7fc2b635 100644
--- a/src/kernel/KernelKit/UserMgr.h
+++ b/src/kernel/KernelKit/UserMgr.h
@@ -6,6 +6,6 @@
#ifndef KERNELKIT_USERMGR_H
#define KERNELKIT_USERMGR_H
-#include <KernelKit/UserMgr+User.h>
+#include <KernelKit/User.h>
#endif \ No newline at end of file
diff --git a/src/kernel/KernelKit/UserProcessScheduler.h b/src/kernel/KernelKit/UserProcessScheduler.h
index 8c7a4afa..1318c7f6 100644
--- a/src/kernel/KernelKit/UserProcessScheduler.h
+++ b/src/kernel/KernelKit/UserProcessScheduler.h
@@ -13,7 +13,7 @@
#include <ArchKit/ArchKit.h>
#include <KernelKit/CoreProcessScheduler.h>
#include <KernelKit/LockDelegate.h>
-#include <KernelKit/UserMgr+User.h>
+#include <KernelKit/User.h>
#include <NeKit/MutableArray.h>
////////////////////////////////////////////////////
diff --git a/src/kernel/NeKit/New.h b/src/kernel/NeKit/New.h
index 648f4a20..9b601534 100644
--- a/src/kernel/NeKit/New.h
+++ b/src/kernel/NeKit/New.h
@@ -14,8 +14,8 @@ typedef __SIZE_TYPE__ size_t;
void* operator new(size_t);
void* operator new[](size_t);
-void operator delete(void*);
-void operator delete(void*, unsigned long);
-void operator delete[](void*);
+void operator delete(void*) noexcept;
+void operator delete(void*, unsigned long) noexcept;
+void operator delete[](void*) noexcept;
#endif
diff --git a/src/kernel/src/FS/NeFS+FileSystemParser.cpp b/src/kernel/src/FS/NeFS+FileSystemParser.cpp
index 42fb36a8..36b63ec7 100644
--- a/src/kernel/src/FS/NeFS+FileSystemParser.cpp
+++ b/src/kernel/src/FS/NeFS+FileSystemParser.cpp
@@ -12,7 +12,7 @@
#include <KernelKit/IFS.h>
#include <KernelKit/KPC.h>
#include <KernelKit/ProcessScheduler.h>
-#include <KernelKit/UserMgr+User.h>
+#include <KernelKit/User.h>
#include <NeKit/Crc32.h>
#include <NeKit/KString.h>
#include <NeKit/KernelPanic.h>
diff --git a/src/kernel/src/FS/OpenHeFS+FileMgr.cpp b/src/kernel/src/FS/OpenHeFS+FileMgr.cpp
index a0a649eb..773ed5da 100644
--- a/src/kernel/src/FS/OpenHeFS+FileMgr.cpp
+++ b/src/kernel/src/FS/OpenHeFS+FileMgr.cpp
@@ -221,10 +221,6 @@ _Output VoidPtr HeFileSystemMgr::Read(_Input NodePtr node, _Input Int32 flags, _
Void HeFileSystemMgr::Write(_Input const Char* name, _Input NodePtr node, _Input VoidPtr data,
_Input Int32 flags, _Input SizeT size) {
NE_UNUSED(node);
- // NE_UNUSED(flags);
- // NE_UNUSED(size);
- // NE_UNUSED(name);
- // NE_UNUSED(data);
if (!flags) return;
if (!size) return;
@@ -260,6 +256,7 @@ _Output VoidPtr HeFileSystemMgr::Read(_Input const Char* name, _Input NodePtr no
_Output Bool HeFileSystemMgr::Seek(NodePtr node, SizeT off) {
if (this->Tell(node) == kFileMgrNPos) return false;
+ kout << "The Method is not implemented in the Hybrid kernel.\r";
return off > 0;
}
@@ -269,7 +266,7 @@ _Output Bool HeFileSystemMgr::Seek(NodePtr node, SizeT off) {
_Output SizeT HeFileSystemMgr::Tell(NodePtr node) {
if (!node) return kFileMgrNPos;
SizeT pos = 0ULL;
-
+ kout << "The Method is not implemented in the Hybrid kernel.\r";
return pos;
}
diff --git a/src/kernel/src/FS/OpenHeFS+FileSystemParser.cpp b/src/kernel/src/FS/OpenHeFS+FileSystemParser.cpp
index b923d13f..6f980730 100644
--- a/src/kernel/src/FS/OpenHeFS+FileSystemParser.cpp
+++ b/src/kernel/src/FS/OpenHeFS+FileSystemParser.cpp
@@ -10,7 +10,7 @@
#include <FirmwareKit/GPT.h>
#include <KernelKit/KPC.h>
#include <KernelKit/ProcessScheduler.h>
-#include <KernelKit/UserMgr+User.h>
+#include <KernelKit/User.h>
#include <NeKit/Crc32.h>
#include <NeKit/KString.h>
#include <NeKit/KernelPanic.h>
diff --git a/src/kernel/src/New+Delete.cpp b/src/kernel/src/New+Delete.cpp
index 9ec34c6f..6e4dd79a 100644
--- a/src/kernel/src/New+Delete.cpp
+++ b/src/kernel/src/New+Delete.cpp
@@ -18,19 +18,19 @@ void* operator new(size_t sz) {
return Kernel::mm_alloc_ptr(sz, true, false);
}
-void operator delete[](void* ptr) {
+void operator delete[](void* ptr) noexcept {
if (ptr == nullptr) return;
Kernel::mm_free_ptr(ptr);
}
-void operator delete(void* ptr) {
+void operator delete(void* ptr) noexcept {
if (ptr == nullptr) return;
Kernel::mm_free_ptr(ptr);
}
-void operator delete(void* ptr, size_t sz) {
+void operator delete(void* ptr, size_t sz) noexcept {
if (ptr == nullptr) return;
NE_UNUSED(sz);
@@ -38,7 +38,7 @@ void operator delete(void* ptr, size_t sz) {
Kernel::mm_free_ptr(ptr);
}
-void operator delete[](void* ptr, size_t sz) {
+void operator delete[](void* ptr, size_t sz) noexcept {
if (ptr == nullptr) return;
NE_UNUSED(sz);
diff --git a/src/kernel/src/User.cpp b/src/kernel/src/User.cpp
index 2e626b03..3f5bb66a 100644
--- a/src/kernel/src/User.cpp
+++ b/src/kernel/src/User.cpp
@@ -7,12 +7,12 @@
#include <KernelKit/HeapMgr.h>
#include <KernelKit/KPC.h>
#include <KernelKit/ThreadLocalStorage.h>
-#include <KernelKit/UserMgr+User.h>
+#include <KernelKit/User.h>
#include <NeKit/KString.h>
#include <NeKit/KernelPanic.h>
#include <NeKit/Utils.h>
-/// @file UserMgr+User.cpp
+/// @file User.cpp
/// @brief Multi-user support.
namespace Kernel {