Minep [Sun, 3 Sep 2023 23:38:06 +0000 (00:38 +0100)]
feat: serial device interfacing
feat: devzero
feat: simple cat implementation
fix: add default name for nameless device
chore: general clean up
Minep [Mon, 28 Aug 2023 21:47:39 +0000 (22:47 +0100)]
feat: device subsystem rework
+ dynamic device driver registration and discovery
+ centeralise the device managements
refactor: syslog
Minep [Fri, 25 Aug 2023 22:17:18 +0000 (23:17 +0100)]
feat: better rtc framework which aims to remove single rtc restrictions.
feat: user mode api for timer/rtc through fs mapping.
feat: interrupt handlers now have the option to accept customized payload.
refactor: creare a new device class of pseudo device, hope that it will clear things
refactor: move ps2 keyboard driver out of kernel code base.
fix: pcache is now abandon the use of valloc api, as the access is unaligned when allocating page size buffer.
fix: pcached write/read should use direct file i/o and must not failed with ENOMEM when buffer allocation failed.
chore: group the device file ops for better clarity
Minep [Thu, 24 Aug 2023 12:46:14 +0000 (13:46 +0100)]
refactor: use a more decent physical memory map
fix: pde's perm overrides pte's when pte has lower access level.
feat: template generator now with infinite horizon when inferencing the memory region's base and size
Minep [Wed, 23 Aug 2023 16:56:09 +0000 (17:56 +0100)]
hotfix: a better hinting on non-returning spin function
fix: make sometimes can't find 'python' if it's alias does not exported to makefile's shell
Minep [Wed, 23 Aug 2023 16:32:15 +0000 (17:32 +0100)]
add lunaix dynamic linker as submodule
fix: elf32 should load the PT_LOAD segments only
fix: vmap does not respect the passed mapping attribute flags
fix: mmap does not take account of flen
fix: makefile does not recompiled on changed source file.
fix: incorrect modulo operation on PG_SIZE
fix: unwanted infinite loop elimination reported in #16
Minep [Sun, 20 Aug 2023 19:59:09 +0000 (20:59 +0100)]
update readme for more up-to-date information
chore: housekeeping stuff
Minep [Sun, 20 Aug 2023 16:14:13 +0000 (17:14 +0100)]
feat: kernel stack tracing
refactor: move cpu.h to arch specific
Minep [Sun, 20 Aug 2023 00:27:12 +0000 (01:27 +0100)]
fix: corrected time conversion on alarm/sleep syscall
fix: makefile does not respond to source file change
feat: makefile respond to header change
chore: add description on arch-specific code
chore: clean up
Minep [Sat, 19 Aug 2023 22:54:30 +0000 (23:54 +0100)]
refactor: one more step towards arch-agnostic design
feat: linker generated array to free up the need of those nasty explicit invocation init_* functions
Minep [Sat, 12 Aug 2023 16:37:14 +0000 (17:37 +0100)]
refactor: striped more arch-related code from the kernel code base
feat: memory map generation from description file
Minep [Thu, 10 Aug 2023 18:46:04 +0000 (19:46 +0100)]
refactor: organize all arch related files together.
refactor: better code templating
Minep [Tue, 25 Jul 2023 18:24:03 +0000 (19:24 +0100)]
refactor: decouple i386 specific instruction invocation
refactor: re-organize the directory structure
Minep [Sun, 23 Jul 2023 17:45:53 +0000 (18:45 +0100)]
fix: corner case for x87 context restore on execve
chore: clean up unused fields
Minep [Sun, 23 Jul 2023 13:35:18 +0000 (14:35 +0100)]
refactor: Optimize the signal context overhead
refactor: remove kernel memory overhead for saving x87 context by saving it into user stack
Minep [Sun, 23 Jul 2023 10:39:16 +0000 (11:39 +0100)]
refactor: Optimize the context switch overhead
Minep [Sat, 22 Jul 2023 22:17:28 +0000 (23:17 +0100)]
fix: argv, envp passing
chore: take care of some warnings
Minep [Fri, 21 Jul 2023 18:28:03 +0000 (19:28 +0100)]
edit readme
Minep [Fri, 21 Jul 2023 18:19:01 +0000 (19:19 +0100)]
refactor: full rewrite of signal feature
refactor: scheduler logic
refactor: (hhk) initial page mapper.
fix: remove debugging user access to kernel page
feat: make signal.h more posix compliant
Minep [Thu, 20 Jul 2023 21:07:37 +0000 (22:07 +0100)]
refactor: rewrite kernel's make script
fix: change linking script to match rewrited kernel makefile
fix: some recent exposed issues.
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.