Minep [Mon, 17 Jul 2023 17:17:20 +0000 (18:17 +0100)]
refactor: restructure the user space stuff.
refactor: better isolation between kernel and user header file
refactor: rebuild user space make system
Minep [Sun, 16 Jul 2023 23:05:34 +0000 (00:05 +0100)]
chore: fix almost *ALL* warnings.
Minep [Sun, 16 Jul 2023 17:20:16 +0000 (18:20 +0100)]
refactor: decouple the executable file implementations with execve functionality.
Minep [Mon, 10 Jul 2023 20:53:58 +0000 (21:53 +0100)]
edit readme
Minep [Mon, 10 Jul 2023 20:37:38 +0000 (21:37 +0100)]
refactor: elf parsing utility and exec related
refactor: ISA abstraction setup
Minep [Sun, 25 Jun 2023 15:47:55 +0000 (16:47 +0100)]
feat: refine symbolic link support.
Minep [Sun, 18 Jun 2023 20:27:23 +0000 (21:27 +0100)]
feat: dynamic boot medium probing and mounting
fix: null pointer exception in usr/sh
fix: parameter passing by uwrapper
Minep [Sun, 18 Jun 2023 18:08:07 +0000 (19:08 +0100)]
feat: shell and signal demo as loadable user executable
fix: incorrect offset when mmap segments
refactor: streamline loading of memory-mapped file
other minor refactorings
Minep [Wed, 14 Jun 2023 21:34:07 +0000 (22:34 +0100)]
Merge branch 'master' into prog-loader
Minep [Wed, 14 Jun 2023 21:29:22 +0000 (22:29 +0100)]
fix: the correct way to detect ahci LBA48 support
Minep [Sat, 10 Jun 2023 20:08:17 +0000 (21:08 +0100)]
fix: promote to gcc-12.2.0 (close #15)
Minep [Wed, 22 Feb 2023 19:05:55 +0000 (19:05 +0000)]
update readme
Minep [Tue, 17 Jan 2023 10:30:13 +0000 (10:30 +0000)]
Merge branch 'master' into prog-loader
Minep [Tue, 17 Jan 2023 10:26:31 +0000 (10:26 +0000)]
Merge branch 'master' of github.com:Minep/lunaix-os
Minep [Tue, 17 Jan 2023 10:21:03 +0000 (10:21 +0000)]
fix: sleeper issue #13
Minep [Fri, 6 Jan 2023 00:47:54 +0000 (00:47 +0000)]
feat: brk and sbrk (mmap based)
feat: environ access
refactor: status code user space port
Minep [Wed, 4 Jan 2023 22:28:36 +0000 (22:28 +0000)]
update readmes
upload ELF related specification
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
Minep [Wed, 4 Jan 2023 16:12:56 +0000 (16:12 +0000)]
Merge branch 'interrupt-rework' into prog-loader
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!
Minep [Wed, 4 Jan 2023 02:15:56 +0000 (02:15 +0000)]
refactor: cut off some bloats in intr_ctx
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
Minep [Mon, 2 Jan 2023 14:25:22 +0000 (14:25 +0000)]
regression: elf loading
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
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
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
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
Minep [Thu, 29 Dec 2022 01:03:17 +0000 (01:03 +0000)]
refactor: separate syscall interfaces from kernel space, into posix compliant structure.
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.
Lunaixsky [Sun, 11 Dec 2022 14:52:19 +0000 (14:52 +0000)]
Merge pull request #10 from jackwang0108/master
Add all-build tool
JackWang [Fri, 9 Dec 2022 15:48:56 +0000 (09:48 -0600)]
add all-build tool. Add qemu support, add configure option support
Lunaixsky [Thu, 8 Dec 2022 13:27:59 +0000 (13:27 +0000)]
Merge pull request #8 from Catrol-s-Forks/master
Update README.md for link
常青园晚 [Thu, 8 Dec 2022 11:53:54 +0000 (19:53 +0800)]
Update README_en.md
常青园晚 [Wed, 7 Dec 2022 05:52:50 +0000 (13:52 +0800)]
Update README.md
Minep [Mon, 5 Dec 2022 20:25:20 +0000 (20:25 +0000)]
Merge branch 'master' into prog-loader
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.
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.
Minep [Sun, 20 Nov 2022 15:04:28 +0000 (15:04 +0000)]
feat: (device) dev_null and dev_rand support
feat: versioning stuff
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
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
Minep [Sun, 13 Nov 2022 00:08:59 +0000 (00:08 +0000)]
feat: (iso9660) rock ridge extension
fix: (pcache) over-reading the page cache
Minep [Sat, 12 Nov 2022 20:07:19 +0000 (20:07 +0000)]
update readme
add materials related to ISO9660 file system
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
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
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
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
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.
Minep [Thu, 10 Nov 2022 13:52:47 +0000 (13:52 +0000)]
refactor: more compact log message
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
Minep [Thu, 10 Nov 2022 02:04:20 +0000 (02:04 +0000)]
feat: block partition support
feat: GUID Partition Table parsing
fix: regression
Minep [Wed, 9 Nov 2022 21:42:11 +0000 (21:42 +0000)]
fix: memory leakage in file descriptor allocation
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.
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.
Minep [Sun, 6 Nov 2022 13:41:22 +0000 (13:41 +0000)]
Merge branch 'iso-9660' into block-io
Minep [Sun, 23 Oct 2022 11:49:15 +0000 (12:49 +0100)]
fix: ensure inlining
prerequisites check before compiling
add some housekeeping stuff
Minep [Sun, 23 Oct 2022 01:34:09 +0000 (02:34 +0100)]
Merge branch 'master' into iso-9660
Minep [Sun, 23 Oct 2022 01:16:07 +0000 (02:16 +0100)]
fix: temporary disable the cse optimizations that cause kernel misbehave.
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.
Minep [Sat, 22 Oct 2022 00:13:59 +0000 (01:13 +0100)]
refactor: isrm to centeralize interrupt/irq resources management.
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.
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
Minep [Tue, 18 Oct 2022 23:11:28 +0000 (00:11 +0100)]
feat: integrate gdb support over serial port for bare-metal debugging.
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).
Minep [Fri, 23 Sep 2022 11:54:15 +0000 (12:54 +0100)]
fix: missing sudo in toolchain build tool
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
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.
Minep [Sat, 17 Sep 2022 13:08:47 +0000 (14:08 +0100)]
refactor: script to generate code for interrupt installation
Minep [Sat, 17 Sep 2022 11:30:46 +0000 (12:30 +0100)]
Merge branch 'device-sys'
Minep [Sat, 17 Sep 2022 11:30:24 +0000 (12:30 +0100)]
fix: dnode cache syncing for pseudo fs
Minep [Fri, 16 Sep 2022 09:48:46 +0000 (10:48 +0100)]
add code-topic mapping for better learning experience. close #5
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
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.
Minep [Mon, 29 Aug 2022 12:53:49 +0000 (13:53 +0100)]
feat: taskfs for export process to filesystem
chore: refactor, fixes and cleanup
Minep [Sat, 27 Aug 2022 12:13:52 +0000 (13:13 +0100)]
refactor: clean up the virtual memory mappings
chores: other code clean up
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
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.
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.
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
Minep [Mon, 22 Aug 2022 15:41:45 +0000 (16:41 +0100)]
refactor: add user space printf.
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.
Minep [Sun, 21 Aug 2022 15:03:15 +0000 (16:03 +0100)]
feat: (devfs) a new filesystem for device exposure.
chore: fixes and refactorings.
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.
Minep [Sat, 20 Aug 2022 16:30:33 +0000 (17:30 +0100)]
feat: ability to manipulate extended attribute
chore: minor refactoring and fix.
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.
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.
Minep [Thu, 18 Aug 2022 15:31:23 +0000 (16:31 +0100)]
refactor: send the command with retry and error detection
chore: other refactorings
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.
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.
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
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
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
Minep [Sun, 14 Aug 2022 16:03:52 +0000 (17:03 +0100)]
the sata slides
Minep [Sun, 14 Aug 2022 15:55:14 +0000 (16:55 +0100)]
refactor: synchronize the vfs objects
chore: minor tweaks, fixes, and annotations
Minep [Sun, 14 Aug 2022 00:19:55 +0000 (01:19 +0100)]
Merge branch 'vfs-dev'
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
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
Minep [Wed, 10 Aug 2022 12:31:26 +0000 (13:31 +0100)]
feat: support per-process current working directory (cwd)
fix: typo in README
Minep [Tue, 9 Aug 2022 15:43:59 +0000 (16:43 +0100)]
update readme
Minep [Tue, 9 Aug 2022 15:09:18 +0000 (16:09 +0100)]
Merge branch 'master' into vfs-dev
Minep [Tue, 9 Aug 2022 15:08:11 +0000 (16:08 +0100)]
fix: remove unwanted interrupts during disk init and probing process.