lunaix-os.git
2 years agoupdate readmes
Minep [Wed, 4 Jan 2023 22:28:36 +0000 (22:28 +0000)]
update readmes
upload ELF related specification

2 years agofeat: closedir(2)
Minep [Wed, 4 Jan 2023 16:35:48 +0000 (16:35 +0000)]
feat: closedir(2)
regression: execve
fix: wrong signature for printf
fix: sys_readdir context misuse
fix: page fault handler: offset calculation for memory-mapped file
fix: (merged) interrupt reworks in favour of execve.
fix: mmap: gap fitting

2 years agoMerge branch 'interrupt-rework' into prog-loader
Minep [Wed, 4 Jan 2023 16:12:56 +0000 (16:12 +0000)]
Merge branch 'interrupt-rework' into prog-loader

2 years agofix: previous interrupt context lost after a nested interrupt
Minep [Wed, 4 Jan 2023 16:06:20 +0000 (16:06 +0000)]
fix: previous interrupt context lost after a nested interrupt
fix: disable function inlining optimization as it could potentially cause BUGS!

2 years agorefactor: cut off some bloats in intr_ctx
Minep [Wed, 4 Jan 2023 02:15:56 +0000 (02:15 +0000)]
refactor: cut off some bloats in intr_ctx

2 years agofeat: provide some libc routines only for testing
Minep [Mon, 2 Jan 2023 16:47:37 +0000 (16:47 +0000)]
feat: provide some libc routines only for testing
feat: ls
feat: readdir(3) for wrapping sys_readdir(2)
chore: clean ups

2 years agoregression: elf loading
Minep [Mon, 2 Jan 2023 14:25:22 +0000 (14:25 +0000)]
regression: elf loading

2 years agofeat: wrapper function for bootstraping user program
Minep [Sun, 1 Jan 2023 01:44:46 +0000 (01:44 +0000)]
feat: wrapper function for bootstraping user program
feat: user runtime library for writing user space program
wip: initd
refactor: separate user space code from kernel code (syscall and some inits)
refactor: rewrite makefile to make it more flexible and modular

2 years agofeat: heap support and re-worked
Minep [Sat, 31 Dec 2022 21:57:49 +0000 (21:57 +0000)]
feat: heap support and re-worked
refactor: re-worked user program bootstraping
refactor: mm_region interfacings
refactor: remove kalloc, as no longer needed.
regression: mmap, munmap

2 years agofeat: basic elf32 loader (only LOAD segment is supported)
Minep [Sat, 31 Dec 2022 01:26:10 +0000 (01:26 +0000)]
feat: basic elf32 loader (only LOAD segment is supported)
feat: execve(2)
feat: MAP_FIXED, MAP_FIXED_NOREPLACE
refactor: mem_map: improved arguments passing
refactor: mm_region: custom page init policy and managed region_release()
refactor: use mem_map to create user stack
chore: update READMEs

2 years agofeat: msync(2)
Minep [Thu, 29 Dec 2022 20:53:39 +0000 (20:53 +0000)]
feat: msync(2)
fix: sync mappings when destorying process
fix: regression on mmap(2)
refactor: rename PD_REFERENCE to VMS_SELF
refactor: rename PD_MOUNT_1 to VMS_MOUNT_1

2 years agorefactor: separate syscall interfaces from kernel space, into posix compliant structure.
Minep [Thu, 29 Dec 2022 01:03:17 +0000 (01:03 +0000)]
refactor: separate syscall interfaces from kernel space, into posix compliant structure.

2 years agoregression: mmap for fd
Minep [Wed, 28 Dec 2022 23:19:19 +0000 (23:19 +0000)]
regression: mmap for fd
fix: replace %ebp register to %esi for passing 5-th arg when switching to syscall dispatcher.
feat: support for anonymous mapping
refactor: mm_region interfaces
refactor: page fault handler clean up.
refactor: resolve cyclic dependencies between mm.h and fs.h
refactor: rename readdir to sys_readdir to distinguish readdir(3)
wip refactor: separating syscall definitions to userspace.

3 years agoMerge branch 'master' into prog-loader
Minep [Mon, 5 Dec 2022 20:25:20 +0000 (20:25 +0000)]
Merge branch 'master' into prog-loader

3 years agorefactor: vfs_open: start opening iff there is a empty fd slot available.
Minep [Mon, 5 Dec 2022 20:23:52 +0000 (20:23 +0000)]
refactor: vfs_open: start opening iff there is a empty fd slot available.

3 years agofeat: (vm) memory mapping support: mmap/munmap
Minep [Sun, 20 Nov 2022 22:28:38 +0000 (22:28 +0000)]
feat: (vm) memory mapping support: mmap/munmap
fix: (vm_region) ensure the ordering of regions.
fix: (hal/rnd) correct the clobbered register name.

3 years agofeat: (device) dev_null and dev_rand support
Minep [Sun, 20 Nov 2022 15:04:28 +0000 (15:04 +0000)]
feat: (device) dev_null and dev_rand support
feat: versioning stuff

3 years agofeat: (iso9660) finishing up unmount
Minep [Sun, 13 Nov 2022 23:42:08 +0000 (23:42 +0000)]
feat: (iso9660) finishing up unmount
fix: (vfs) no need to do sync when inode getting evicted

3 years agorefactor: replace all stdint::uint32_t into short and more manageable u32_t
Minep [Sun, 13 Nov 2022 22:20:45 +0000 (22:20 +0000)]
refactor: replace all stdint::uint32_t into short and more manageable u32_t

3 years agofeat: (iso9660) rock ridge extension
Minep [Sun, 13 Nov 2022 00:08:59 +0000 (00:08 +0000)]
feat: (iso9660) rock ridge extension
fix: (pcache) over-reading the page cache

3 years agoupdate readme
Minep [Sat, 12 Nov 2022 20:07:19 +0000 (20:07 +0000)]
update readme
add materials related to ISO9660 file system

3 years agofeat: (vfs) write_page and read_page file operations
Minep [Fri, 11 Nov 2022 23:45:51 +0000 (23:45 +0000)]
feat: (vfs) write_page and read_page file operations
fix: (iso9660) infinite loop when scanning iso9660 volume descriptors
chore: clean up

3 years agofeat: (iso9660) implement file read (for both interleaved and non-interleaved mode)
Minep [Fri, 11 Nov 2022 21:45:16 +0000 (21:45 +0000)]
feat: (iso9660) implement file read (for both interleaved and non-interleaved mode)
fix: (blkio) race condition between blkio_commit and pwait
fix: regression
chore: clean up

3 years agofeat: (iso9660) directory read support
Minep [Fri, 11 Nov 2022 19:50:54 +0000 (19:50 +0000)]
feat: (iso9660) directory read support
feat: (syslog) syslog syscall for kernel-level logging in userspace
feat: (blkio) block io feature in sector level granularity
refactor: (vfs) simplify some interfaces
refactor: (vfs) verbose logging on mount
refactor: (lunaix) rename proc.h to lunaix.h
fix: regression
chore: code clean up and add verbose logging message

3 years agofix: (blkio) enforce disk io buffer size alignment (to block size)
Minep [Thu, 10 Nov 2022 22:15:09 +0000 (22:15 +0000)]
fix: (blkio) enforce disk io buffer size alignment (to block size)
fix: (blkio) handle buffer smaller than block size
fix: (ahci) handle the hba interrupt as per spec
refactor: (vecbuf) a more compact interface

3 years agofeat: (ahci) support multiple AHCI controller
Minep [Thu, 10 Nov 2022 18:33:40 +0000 (18:33 +0000)]
feat: (ahci) support multiple AHCI controller
feat: (pci) pci device driver auto-binding
refactor: (isrm) change the interrupt vector type to int
fix: (waitq) mitigation of possible race condition in pwait
fix: (sched) expand stack size of dummy process for allowance in the using of kprintf
refactor: (kinit) reserve the higher half space as earlier as possible.

3 years agorefactor: more compact log message
Minep [Thu, 10 Nov 2022 13:52:47 +0000 (13:52 +0000)]
refactor: more compact log message

3 years agofix: add dummy process to keep scheduler busy
Minep [Thu, 10 Nov 2022 12:53:53 +0000 (12:53 +0000)]
fix: add dummy process to keep scheduler busy
refactor: reduce boot stack size
fix: regression

3 years agofeat: block partition support
Minep [Thu, 10 Nov 2022 02:04:20 +0000 (02:04 +0000)]
feat: block partition support
feat: GUID Partition Table parsing
fix: regression

3 years agofix: memory leakage in file descriptor allocation
Minep [Wed, 9 Nov 2022 21:42:11 +0000 (21:42 +0000)]
fix: memory leakage in file descriptor allocation

3 years agofix: use wait queue for blocking process
Minep [Wed, 9 Nov 2022 18:44:24 +0000 (18:44 +0000)]
fix: use wait queue for blocking process
test: regression on the async io feature.
refactor: centeralize process state changing.

3 years agofeat: asynchronized SATA IO
Minep [Wed, 9 Nov 2022 00:35:48 +0000 (00:35 +0000)]
feat: asynchronized SATA IO
feat: vectorized buffer for flexibility
refactor: block device subsystem.

3 years agoMerge branch 'iso-9660' into block-io
Minep [Sun, 6 Nov 2022 13:41:22 +0000 (13:41 +0000)]
Merge branch 'iso-9660' into block-io

3 years agofix: ensure inlining
Minep [Sun, 23 Oct 2022 11:49:15 +0000 (12:49 +0100)]
fix: ensure inlining
prerequisites check before compiling
add some housekeeping stuff

3 years agoMerge branch 'master' into iso-9660
Minep [Sun, 23 Oct 2022 01:34:09 +0000 (02:34 +0100)]
Merge branch 'master' into iso-9660

3 years agofix: temporary disable the cse optimizations that cause kernel misbehave.
Minep [Sun, 23 Oct 2022 01:16:07 +0000 (02:16 +0100)]
fix: temporary disable the cse optimizations that cause kernel misbehave.

3 years agofix: bugs related to O2 optimization
Minep [Sun, 23 Oct 2022 00:23:11 +0000 (01:23 +0100)]
fix: bugs related to O2 optimization
fix: change default optimization level to O1 as temp workaround.

3 years agorefactor: isrm to centeralize interrupt/irq resources management.
Minep [Sat, 22 Oct 2022 00:13:59 +0000 (01:13 +0100)]
refactor: isrm to centeralize interrupt/irq resources management.

3 years agolaying out the iso9660 structure definitions
Minep [Fri, 21 Oct 2022 21:52:08 +0000 (22:52 +0100)]
laying out the iso9660 structure definitions
fix: switch the order of hash mangling, as it gives higher empirical collision rarity.
refactor: own primitive type shadowing, will be good for future portability.

3 years agofix: PS/2 keyboard initialization sequence
Minep [Wed, 19 Oct 2022 22:30:32 +0000 (23:30 +0100)]
fix: PS/2 keyboard initialization sequence
fix: TLB should be invalidated after L2 page table is hooked.
change readme

3 years agofeat: integrate gdb support over serial port for bare-metal debugging.
Minep [Tue, 18 Oct 2022 23:11:28 +0000 (00:11 +0100)]
feat: integrate gdb support over serial port for bare-metal debugging.

3 years agofix: remove unnecessary backtracing in mnt_mkbusy/chillax
Minep [Mon, 3 Oct 2022 21:11:00 +0000 (22:11 +0100)]
fix: remove unnecessary backtracing in mnt_mkbusy/chillax
fix: no need to do subtree reposition after symlink is resolved (for now).

3 years agofix: missing sudo in toolchain build tool
Minep [Fri, 23 Sep 2022 11:54:15 +0000 (12:54 +0100)]
fix: missing sudo in toolchain build tool

3 years agofix: load x87 fpu default settings
Minep [Sat, 17 Sep 2022 18:10:33 +0000 (19:10 +0100)]
fix: load x87 fpu default settings
fix: forked child should inherit parent's x87 and mmx state

3 years agofeat: add support for process to conduct Intel x87 and MMX related task.
Minep [Sat, 17 Sep 2022 17:25:59 +0000 (18:25 +0100)]
feat: add support for process to conduct Intel x87 and MMX related task.

3 years agorefactor: script to generate code for interrupt installation
Minep [Sat, 17 Sep 2022 13:08:47 +0000 (14:08 +0100)]
refactor: script to generate code for interrupt installation

3 years agoMerge branch 'device-sys'
Minep [Sat, 17 Sep 2022 11:30:46 +0000 (12:30 +0100)]
Merge branch 'device-sys'

3 years agofix: dnode cache syncing for pseudo fs
Minep [Sat, 17 Sep 2022 11:30:24 +0000 (12:30 +0100)]
fix: dnode cache syncing for pseudo fs

3 years agoadd code-topic mapping for better learning experience. close #5
Minep [Fri, 16 Sep 2022 09:48:46 +0000 (10:48 +0100)]
add code-topic mapping for better learning experience. close #5

3 years agofeat: simple read/write lock implementation
Minep [Wed, 31 Aug 2022 13:50:03 +0000 (14:50 +0100)]
feat: simple read/write lock implementation
feat: mutex lock owenership checking
feat: mount points export
chore: cleanups and fixes

3 years agofeat: support ioctl() syscall for direct control to devices
Minep [Tue, 30 Aug 2022 12:20:39 +0000 (13:20 +0100)]
feat: support ioctl() syscall for direct control to devices
feat: add ascii control code support to lunaix tty driver
feat: expose the syscall interface of getpgid() and setpgid()
fix: race condition when issuing SIGINT to process group.
fix: dead lock when a process get terminated while it is holding the inode lock
fix: double freeing the v_file object when terminating a process which it's fd is dup()ed from it's parent process.
todo: taskfs is still problematic..
chore: fixes and refactor.

3 years agofeat: taskfs for export process to filesystem
Minep [Mon, 29 Aug 2022 12:53:49 +0000 (13:53 +0100)]
feat: taskfs for export process to filesystem
chore: refactor, fixes and cleanup

3 years agorefactor: clean up the virtual memory mappings
Minep [Sat, 27 Aug 2022 12:13:52 +0000 (13:13 +0100)]
refactor: clean up the virtual memory mappings
chores: other code clean up

3 years agofeat: (twimap) provide an easy way for mapping kernel objects into filesystem
Minep [Fri, 26 Aug 2022 16:43:06 +0000 (17:43 +0100)]
feat: (twimap) provide an easy way for mapping kernel objects into filesystem
feat: map pci, clock, cake allocator and block devices into filesystem.
chore: fixes and clean up

3 years agofeat: a file system mapping for pci devices
Minep [Thu, 25 Aug 2022 15:04:33 +0000 (16:04 +0100)]
feat: a file system mapping for pci devices
chore: some fixes around and cleanup.

3 years agorefactor: improve on scrolling experience in lunaix console
Minep [Wed, 24 Aug 2022 16:18:24 +0000 (17:18 +0100)]
refactor: improve on scrolling experience in lunaix console
fix: handle the strange scan code sequence on Virtualbox's PS/2 keyboard.
fix: incompatible pointer type passing in devfs.
chore: refactoring and clean up.

3 years agofeat: a pseudo shell environment for basic interacting and testing purpose
Minep [Tue, 23 Aug 2022 11:55:38 +0000 (12:55 +0100)]
feat: a pseudo shell environment for basic interacting and testing purpose
chore: fixes and clean up

3 years agorefactor: add user space printf.
Minep [Mon, 22 Aug 2022 15:41:45 +0000 (16:41 +0100)]
refactor: add user space printf.

3 years agofeat: input device subsystem to resolve race condition on polling input
Minep [Mon, 22 Aug 2022 14:37:56 +0000 (15:37 +0100)]
feat: input device subsystem to resolve race condition on polling input
feat: simple wait queue implementation for efficient waiting.
fix: dead lock when invoking sched_yieldk() inside interrupt context.
chore: refactorings and clean up.

3 years agofeat: (devfs) a new filesystem for device exposure.
Minep [Sun, 21 Aug 2022 15:03:15 +0000 (16:03 +0100)]
feat: (devfs) a new filesystem for device exposure.
chore: fixes and refactorings.

3 years agofeat: mount point flags check
Minep [Sat, 20 Aug 2022 18:48:37 +0000 (19:48 +0100)]
feat: mount point flags check
refactor: eliminate edge case when try to access parent of root.
chore: minor refactoring, clean-up and small fixes.

3 years agofeat: ability to manipulate extended attribute
Minep [Sat, 20 Aug 2022 16:30:33 +0000 (17:30 +0100)]
feat: ability to manipulate extended attribute
chore: minor refactoring and fix.

3 years agofix: symlink resolve.
Minep [Fri, 19 Aug 2022 19:14:02 +0000 (20:14 +0100)]
fix: symlink resolve.
refactor: add some invariants checks.
chore: minor refactors and clean up.

3 years agorefactor: add a simple ramfs for rootfs. Twifs should have more specific job in future.
Minep [Fri, 19 Aug 2022 18:08:00 +0000 (19:08 +0100)]
refactor: add a simple ramfs for rootfs. Twifs should have more specific job in future.
refactor: inode creation, inode cache lookup and it's hashing are now separated.
refactor: reduce the v_inode and v_file size due to ops invariants.
chores: minor refactoring and fixings.

3 years agorefactor: send the command with retry and error detection
Minep [Thu, 18 Aug 2022 15:31:23 +0000 (16:31 +0100)]
refactor: send the command with retry and error detection
chore: other refactorings

3 years agofix: READ_CAPACITY command for 12 bytes CDB SCSI device.
Minep [Thu, 18 Aug 2022 11:34:03 +0000 (12:34 +0100)]
fix: READ_CAPACITY command for 12 bytes CDB SCSI device.
fix: PACKET command hangs in Virtualbox when try to write readonly drive.
fix: possible null pointer dereference in pcache_commit_all.
chore: attach cdrom into QEMU's IDE bus.

3 years agorefactor: mount system reworked
Minep [Wed, 17 Aug 2022 19:03:04 +0000 (20:03 +0100)]
refactor: mount system reworked
refactor: inode cache system reworked
chore: minor refactoring and fixes.

3 years agofeat: ability to evict dnode and inode cache
Minep [Tue, 16 Aug 2022 16:22:55 +0000 (17:22 +0100)]
feat: ability to evict dnode and inode cache
chore: minor fixes and refactoring

3 years agorefactor: inode hashing and reusing
Minep [Tue, 16 Aug 2022 00:55:19 +0000 (01:55 +0100)]
refactor: inode hashing and reusing
fix: dnode referencing counter corrected
chore: minor fixes and refactoring
chore: todo-list for some essential fixes and improvments

3 years agofeat: rename(2), mount(2) and unmount(2)
Minep [Mon, 15 Aug 2022 15:03:09 +0000 (16:03 +0100)]
feat: rename(2),  mount(2) and unmount(2)
fix: dnode caching hash function
chore: code clean up

3 years agothe sata slides
Minep [Sun, 14 Aug 2022 16:03:52 +0000 (17:03 +0100)]
the sata slides

3 years agorefactor: synchronize the vfs objects
Minep [Sun, 14 Aug 2022 15:55:14 +0000 (16:55 +0100)]
refactor: synchronize the vfs objects
chore: minor tweaks, fixes, and annotations

3 years agoMerge branch 'vfs-dev'
Minep [Sun, 14 Aug 2022 00:19:55 +0000 (01:19 +0100)]
Merge branch 'vfs-dev'

3 years agofeat: lru eviction policy on page caches
Minep [Sun, 14 Aug 2022 00:14:07 +0000 (01:14 +0100)]
feat: lru eviction policy on page caches
refactor: interface to file operations operats on inode only, not v_file itself
enhance: enforce more strict compiler options for code quality
chore: tweaks that make compiler happy

3 years agorefactor: kernel space yield() for controllable, flexible task switching
Minep [Fri, 12 Aug 2022 12:17:22 +0000 (13:17 +0100)]
refactor: kernel space yield() for controllable, flexible task switching
fix: incorrect control flow in getcwd(2) syscall

3 years agofeat: support per-process current working directory (cwd)
Minep [Wed, 10 Aug 2022 12:31:26 +0000 (13:31 +0100)]
feat: support per-process current working directory (cwd)
fix: typo in README

3 years agoupdate readme
Minep [Tue, 9 Aug 2022 15:43:59 +0000 (16:43 +0100)]
update readme

3 years agoMerge branch 'master' into vfs-dev
Minep [Tue, 9 Aug 2022 15:09:18 +0000 (16:09 +0100)]
Merge branch 'master' into vfs-dev

3 years agofix: remove unwanted interrupts during disk init and probing process.
Minep [Tue, 9 Aug 2022 15:08:11 +0000 (16:08 +0100)]
fix: remove unwanted interrupts during disk init and probing process.

3 years agoMerge branch 'master' into vfs-dev
Minep [Tue, 9 Aug 2022 14:29:17 +0000 (15:29 +0100)]
Merge branch 'master' into vfs-dev

3 years agofix: incorrect settings of msi registers.
Minep [Tue, 9 Aug 2022 14:25:19 +0000 (15:25 +0100)]
fix: incorrect settings of msi registers.
fix: enable correct hba interrupt for indicating end of transfer.

3 years agofeat: stdin/stdout into process
Minep [Tue, 9 Aug 2022 12:34:37 +0000 (13:34 +0100)]
feat: stdin/stdout into process

3 years agofix: refining the tty input
Minep [Mon, 8 Aug 2022 23:44:33 +0000 (00:44 +0100)]
fix: refining the tty input

3 years agofeat: hook up the keyboard input into our vfs
Minep [Mon, 8 Aug 2022 16:15:45 +0000 (17:15 +0100)]
feat: hook up the keyboard input into our vfs
feat: general fifo buffer (based on ring buffer) implementation
fix: make read/write syscall interruptible
refactor: remove the need of using loop for finding the suitable segregated list

3 years agofix: separate any i/o to sequential device from caching layer
Minep [Sun, 7 Aug 2022 16:23:20 +0000 (17:23 +0100)]
fix: separate any i/o to sequential device from caching layer
fix: a corner case on index resulting lookup fail in radix tree
fix: pass the incorrect argument to vfs_close when freeing up resources on destorying process
refactor: attach default file ops to inode for more flexible choice of ops when opening file
refactor: reduce the size of twifs_node.

3 years agofeat: page caching layer for vfs
Minep [Sat, 6 Aug 2022 17:35:00 +0000 (18:35 +0100)]
feat: page caching layer for vfs
refactor: replace all mem allocation with valloc
fix: read/write to block device now using byte offset value instead of sector offset

3 years agofeat: symlink(2) and realpathat syscall
Minep [Tue, 2 Aug 2022 14:21:36 +0000 (15:21 +0100)]
feat: symlink(2) and realpathat syscall
feat: symbolic link following

3 years agofeat: implement dup(2), dup2(2)
Minep [Sun, 31 Jul 2022 16:15:38 +0000 (17:15 +0100)]
feat: implement dup(2), dup2(2)
fix: free & copy the fd tables upon process destoryed or forked

3 years agofeat: implement fsync(2) and hard link support [link(2)]
Minep [Sun, 31 Jul 2022 14:21:25 +0000 (15:21 +0100)]
feat: implement fsync(2) and hard link support [link(2)]
chore: update readme
chore: re-organise the syscall to appropriate header file
chore: minor refactoring and code cleaning

3 years agofeat: implement rmdir(2), unlink(2), unlinkat(2)
Minep [Sat, 30 Jul 2022 17:08:19 +0000 (18:08 +0100)]
feat: implement rmdir(2), unlink(2), unlinkat(2)

3 years agofeat: implement readlink(2) readlinkat(2)
Minep [Sat, 30 Jul 2022 16:12:54 +0000 (17:12 +0100)]
feat: implement readlink(2) readlinkat(2)
refactor: pull the . and .. support to vfs level
chore: refactor and bug fixes

3 years agofeat: simple device abstraction layer
Minep [Sat, 30 Jul 2022 14:09:18 +0000 (15:09 +0100)]
feat: simple device abstraction layer
feat: integrate tty console into fs
refactor: timer now using cake allocator
refactor: adjust initialization sequence
chore: code clean up and minor refactoring

3 years agoupdate readme
Minep [Fri, 29 Jul 2022 18:05:21 +0000 (19:05 +0100)]
update readme

3 years agofeat: lseek(2), read(2), write(2) implementation
Minep [Fri, 29 Jul 2022 16:04:02 +0000 (17:04 +0100)]
feat: lseek(2), read(2), write(2) implementation
feat: unified block device manipulation using vfs.
chore: bug fix & code formatting.

3 years agofeat: readdir fix and demo
Minep [Wed, 27 Jul 2022 23:20:37 +0000 (00:20 +0100)]
feat: readdir fix and demo

3 years agofeat: open(2), close(2), mkdir(2) and readdir(2) syscall
Minep [Wed, 27 Jul 2022 16:01:23 +0000 (17:01 +0100)]
feat: open(2), close(2), mkdir(2) and readdir(2) syscall
feat: file descriptor support
feat: fast interge base 2 logarithm.
fix: incorrect cake piece number calculation in cake allocator
fix: incomplete refactoring in ahci code base
fix: file system mounting.
chores: code refactoring and cleaning

3 years agofeat: twifs - pseudo file system for lunaix kernel state exposure
Minep [Sun, 24 Jul 2022 12:51:16 +0000 (13:51 +0100)]
feat: twifs - pseudo file system for lunaix kernel state exposure
feat: vfs_path_walk now capable to mkdir enroute, and handle malformed path.
feat: mkdir, open and close file.
feat: datetime to unix time conversion.
fix: some design consideration.

3 years agofeat: vfs - path walking and dnode caching.
Minep [Wed, 20 Jul 2022 12:31:57 +0000 (13:31 +0100)]
feat: vfs - path walking and dnode caching.
feat: vfs - file system manager for extensible file system implementation.
feat: simple hash table implementation based on hash list.

3 years agofeat: block device support (mount device and partitions)
Minep [Wed, 20 Jul 2022 12:28:21 +0000 (13:28 +0100)]
feat: block device support (mount device and partitions)

3 years agorefactor: change the disk io api to accept device instead of port struct
Minep [Wed, 20 Jul 2022 12:24:25 +0000 (13:24 +0100)]
refactor: change the disk io api to accept device instead of port struct
refactor: add vzalloc and make vcalloc sounds right.
chore: format code and renaming things