forked from Bananymous/banan-os
update main #1
Sinipelto
commented 2023-11-20 13:20:09 +02:00
Owner
No description provided.
Sinipelto
added 240 commits 2023-11-20 13:20:10 +02:00
aa59142bfa
Kernel: Fix ext2 file write
82b049204d
Kernel: Print stack trace on isr
b0c22b61ec
Kernel: Writes to disk are not synchronous anymore
5fae3cec2a
Kernel: Implement SYS_SYNC and add sync executable to userspace
14a608effd
1000th COMMIT: Kernel: Add basic E1000 driver
7774f56ab6
Kernel: PCI devices can now create region for BAR
3a9c6fc51a
General: remove linecount.sh
bc1087f5a7
Kernel: Add pointer validation API to page table
0d67e46041
Kernel: Add config read/write api to PCI
8136248a67
Kernel: Fix timer includes
c9e09b840e
Kernel: Add LAI as a dependency
9a3286ad57
Kernel: Add constexpr conditional debug prints
971eb737c1
BAN: Fix LinkedList::pop_back()
4818c6e3dd
BuildSystem: Add cmake target for debugging qemu
fee3677fb9
Kernel/LibC: add mmap for private anonymous mappings
f662aa6da2
Kernel/LibC: userspace malloc now uses mmap to get memory
fe2dca16f0
Kernel/LibC: add flag to enable/disable sse support
fc953df281
Kernel/LibC: remove PATH resoltion from kernel
c0a89e8951
Kernel: Fully remove sys_alloc and sys_free
2ef496a24a
Kernel: all mapped ranges are now stored in one container
8b2bb95b81
Kernel: VirtualRange doesn't store physical addresses of pages
18d582c6ce
Kernel: Hacky kmalloc quick fix
3ea707c0e7
BuildSystem: Optimize image creation
7bdb428938
Kernel: Fix ext2 block allocation
8caba1e774
Kernel: Ext2 filesystem now holds 10 preallocated block buffers
b62186441b
BAN: Implement basic WeakPtr
55d30a7cc3
Kernel: Ext2 inodes are now stored in cache
b4e4f7a6cc
Kernel: Print more detailed output on ISR
1d470fb5ba
Kernel: All syscalls now validate users pointers
09c1aa44d8
Kernel: Allow creationg of empty processes and manual registration
b924c85669
Kernel: DiskCache now requires sync to be called from kernel thread
05e57801e7
Kernel: SYS_SYNC now schedules sync to happen soon
6cb8bda6e1
LibC: add syncsync() to unistd.h
ec2baeb276
Sync: Add some argument parsing to sync(1)
6e1825d6b4
Kernel: Add missing TRY() to font loading
f9b347f9d9
BuildSystem: Rework calling qemu
feafc57b63
Kernel: Disable DiskCache sync messages
8d5369fafe
Kernel: Add some functionality to disable TTY input/output
27adb9486b
BAN: Update Endiannes API
c84b66d078
Shell: String leading and trailing whitespace from commands
1cd12b5f16
LibC: Implement length modifiers to printf
85b1252b9e
Userspace: Use printf length modifiers when printing
f7097398ca
Kernel: Make tty overload correct has_data() function
0b11d76576
LibC: Add errno for unknown error
fcdc922343
Kernel: Enter ACPI mode with lai
79851394b3
Kernel/LibC/Userspace: Add SYS_POWEROFF + cli tool
547eabb403
Kernel: Reboot will now always succeed
a66c3bdae5
Kernel: Remove duplicate code in VirtualRange::create_to_vaddr_range
49d941ad65
LibC: Fix a bug in malloc
b51d2f5295
Kernel: mmap regions are now demand paged
6cf7e01fe9
Kernel: Don't map interrupt stack as userspace accessable
f4049be975
Kernel: Fix off by one error when calculating pages in range
9943edad5a
LibELF: Add types for native executable
be13120554
LibELF: Implement new ELF structure
c11e84b248
Kernel: Use the new on demand ELF structure
603fc200e6
Kernel: Add some sanity assertions/functions
7e9e4c47ae
LibELF: Optimize LoadableELF::clone() memory usage
376b9f7272
LibC: mmap returns MAP_FAILED instead of NULL
4a92f44cf6
Kernel: Implement new abstract MemoryRegion
db5d6a7f80
Kernel: Implement MAP_PRIVATE file mappings
d54c6b7f6b
LibC: Fix mmap()
7a5bb6a56b
Userspace: Implement cat-mmap
9fc75fe445
Kernel: Don't write to stat_loc on SYS_WAIT if it is null
f953f3d3ff
Kernel: Implement MAP_SHARED for regular files
3f164c6b82
Userspace: Implement basic test for MAP_SHARED
94ce2c97be
Shell: Quick fix to not freeze for multiple seconds
eb5c6cf736
BAN: Remove endianness functions from Math
e949e8550c
Kernel: Rework RamInode API
8604c55de8
Kernel: Add API for RamDirectoryInodes to delete containing inodes
dedb2a2399
Kernel: RamInode verifies that you have not specified mode type
d883d212b1
Kernel/LibC: dirent now contains file type
38320018dc
LibC: Implement stpcpy since gcc seems to need it
f88ad7efcd
Kernel: All process' memory areas can report their virtual mem usage
cd61d710df
Kernel: Add procfs that contains only pids
a511441f7e
Kernel: /proc/{pid}/meminfo now reports per process memory usage
762b7a4276
Userspace: Add meminfo command that parses /proc/{pid}/meminfo
797ca65c66
Kernel: Add physical memory info to /proc/{pid}/meminfo
b712c70c75
Kernel: Expose command line and environment to /proc
f0b6844feb
meminfo: Add process command line to the output
bb0989fdef
Shell: Implement sourcing scripts
44cb0af64f
Shell: source $HOME/.shellrc if found on Shell startup
e780eaa45f
meminfo: Print allocated physical memory percentage
7ce8e2d57b
cat: Use write() instead of puts to print file contents
2eef581737
BuildSystem: Try to set compiler only if it exists
4d6322ff9c
BuildSystem: Don't strip kernel
bcf62c5f2e
Kernel: Rework interrupt mechanism
27364f64a6
Kernel: Rework whole ATA driver structure
f071240b33
Kernel: Fix PCI BarRegion offsets
03d2bf4002
Kernel: Rework physical memory allocation
8a9816d6e0
Kernel: Add API for getting contiguous physcial pages
211cad03ff
Kernel: Implement bare boness DMA Region
400db176d1
Kernel: fix some math in physical ranges
521513bed2
Kernel: make DMARegion::create static and fix mapping
d2cfc843e4
BAN: Optional can now be constructed from another Optional
1b9e14a53b
Kernel: PCI cleanup PCI::Device API
ab8b77406d
Kernel: PCI can now get interrupts for devices
790064d248
Kernel: Add vaddr/paddr conversion functions to DMARegion
f4b901a646
Kernel: Add Timer::ns_since_boot()
d3e5c8e0aa
Kernel: Generalize ATA device and cleanup code
a2b5e71654
Kernel: Implement AHCI driver
f0820e6f24
Shell: Fix parsing $ with unknown character
773dcdd3a2
Kernel: Check whether ELF address space can be loaded
39be6ab099
Kernel: Add temporary terminal output before controlling terminal
72f3c378dd
Kernel: Fix PhysicalRange mapping size
f842a9255f
Kernel: Allow getting ACPI headers with same signature
1d61bccfc3
Kernel: Debug temporary debug print just to beginning when full
5630f64175
Kernel: Add 16 more irq handlers
cf4f5f64a5
Kernel: add NEVER_INLINE and make Interruptable not constructable
6b180da4e8
Kernel: Separate scheduler execution and stack loading
45a6783c3d
Kernel: Cleanup GDT code
c7b6fc950a
Kernel: Don't crash if header type != 0 in bar region creation
dafc016293
Kernel: Clear TTY when setting as current
cb65be3e33
Toolchain: Build grub with efi capabilities
6b1b3d333c
BuildSystem: add cmake variable UEFI_BOOT
76f17bd569
Kernel: PCIDevice stores its vendor id and device id
5977341610
Kernel: PCI checks if ethernet device is E1000 before initialization
31aa157201
Kernel: Don't require framebuffer
6f8fce94a0
Kernel: Fix PCI bugs
b767317a7a
Kernel: Fix ATADevice naming
48980b56ab
Kernel: ATABuses are but to compatibility mode if possible
e01928d186
Kernel: Fix device identification with all bits as ones
792bb2df1c
Kernel: TTY doesn't panic if it doesn't find input device
be3efb0b92
Kernel: Start using multiboot2 instead of multiboot
e2e5c31d54
Kernel: Map multiboot2 memory in PageTable initialization
781c950af6
BAN: add helper to cast Span<T> to Span<const T>
db5c24b2a5
BAN: Implement ByteSpan
5bfeb9f3ca
Kernel: Rewrite all read/write functions to use BAN::ByteSpan
df69612bb1
BuildSystem: Rewrite whole build system structure
51ad27ea3c
BuildSystem: Match README.md with the new buildsystem
00ee86920a
Kernel: Add timeout to ACHI commands
e8d20bc653
BuildSystem: Fix bugs in new build system
adbbdf73c4
meminfo: fix g++ warning for oob write
988a4e1cd8
BAN: Fix bug of size of splice after slice()
1e2c2fb973
Shell: Set get old termios earlier
e8890062d6
Userspace: Implement basic cp
15bb1804ef
Kernel/LibC: implement chmod syscall + libc wrapper
7a54a088b4
Userspace: Add basic chmod command
9e4adc1264
cp: abort copy if write fails
4f4b8ada8c
Kernel: Fix read offset of RamFileInode
b890e2fc14
Kernel: Ext2FS now uses Ext2Inodes as cached values
6ee5576dcc
Kernel: Add Inode API for creating directories
e85f9ac6a1
Kernel: Implement Ext2 directory creation
1f794e4ac0
Kernel: Implement directory creation for RamFS
8bb47aee02
Kernel/LibC/Userspace: Implement mkdir and creat
fda4a4ad24
BAN: ByteSpan can be sliced without specified size
091c5b6a66
BAN: Implement Ext2 file unlinking
74bfb930f2
Kernel/LibC: Add syscall and wrapper for unlink
126edea119
Userspace: implement basic rm command
d09310f388
Kernel: Fix ext2 inode deletion
1ec341e2dd
rm: add option to remove recursively
98d702ac60
All: Remove read only from ext2 filesystem :)
99bde9aa49
Kernel: Fix ext2 inode deletion cleanup
8d583c8b67
Kernel: Fix ext2 inode block allocation with triply indirect blocks
3bffbe330d
BAN: Update ByteSpan API
0757834176
Kernel: Rewrite a lot of ext2 code
3940f53231
BuildSystem: Add bos short hand for building with zsh completions :)
09fcc613c7
BAN: Add variant to ForwardList
1af3ca19ab
BAN: Rewrite String with small string optimizations
f312c3a4d7
Kernel: Fix ACPI DSDT address
ea5ed3001e
Toolchain: Clone GCC and Binutils from git
f05b9a6877
Kernel/LibC: Add crt* files to LibC and remove crt0 from kernel
bc1d1bf919
LibC: implement and call __cxa_finalize() on exit()
382f9d9bb3
Userspace: Add quick test for global ctors and dtors
f72fdeeb59
BAN: String now uses union for its sso storage
3d899d2e44
Kernel/LibELF: Map pages always as RW so kernel can write to them
5d34cebeca
Kernel: Fix stack OOB detection
8a10853ba7
Kernel: Enable Write Protect. This seems to be good for security
0405461742
BAN: Implement better ASSERT macros
26c7aee327
Kernel: only map kernel from g_kernel_start onwards
4e785a133c
Kernel: Fix ext2 small link deallocation
ce2461d0e8
Kernel: panic takes arguments as rvalue references
1c5985148c
Kernel: Allow offsetof with packed fields
4dbe15aa0e
Kernel: Remove GeneralAllocator since it was not used
3bac19e518
Kernel: Add fast page to page table
a44482639d
Kernel: Temporarily force FileBackedRegion mappings writable
5e396851f4
Kernel: Remove unused externs in kernel.cpp
4f25c20c97
Kernel: Canonicalize vaddr before using it
120f7329b1
BAN: Update ASSERT api
6d899aa6ce
BuildSystem: using sysroot doesn't need root privileges anymore!
061d10e635
BAN: Update bytespan -> span API
e5ffadb109
Kernel: Add better APIs for fast page
f9bf47ab30
Kernel: Start work on proper TmpFS in Heap instead of kmalloc memory
8164c15b6c
Kernel: Implement read/write/truncate for TmpFileInode
1ed08f62d3
Kernel: TmpInode blocks are on demand allocated
ab4f033385
Kernel: Cleanup TmpFS code and block access doesn't require allocs
cbb2c37e00
Kernel: Implement TmpFS inode chmod
639fd8804c
Kernel: Implement TmpFS directory listing
181d139c7d
Kernel: Fix ext2 directory listing for big directories
e33b3bcdff
Kernel: Fix TmpFS directory entry enumeration early return
af330f7b8e
Kernel: TmpFS directory inodes now iterate over only valid entries
a20f8607de
Kernel: Implement TmpFS Inode unlinking and deletion
a46b2f43d9
Kernel: Make ProcFS use the new TmpFS internally
c20f773c5d
Kernel: /tmp is now TmpFS instead of RamFS
1acc0abf2e
Kernel: Make unlinking from /proc always fail with EPERM
a0fbf18d3b
meminfo: better format for files without permissions
670c787af3
BuildSystem: Fix temporary sysroot creation in toolchain compilation
6d4b684219
Kernel: Make PS/2 keyboard wait until interrupts are enabled
27963febc0
Kernel: Implement symlinks to TmpFS
8b4f661acb
Kernel: Lock TmpFS in all its methods
464737fbe9
Kernel: Add method to TmpFS for looping over all (cached) inodes
b87351f6d5
Kernel: Make DevFS use the new and better TmpFS instead of RamFS
cec04a2858
Kernel: Remove now obsolete RamFS
2191ca46bb
Kernel: Make TmpFS enforce max page count.
845ed66e5e
Toolchain: add em=gnu to gas. This allows using / in expressions
430a006acf
Toolchain: Fix typo when setting make flags
c47f6a78bc
Bootloader: Start work on bootloader
a3a287f5ca
Bootloader: Continue work on bootloader
447da99f0b
Kernel/LibC: Implement readlink and readlinkat
6e3f176457
ls: print link targets when listing files
39801e51da
BuildSystem: add proper clean target
1a75262b04
BuildSystem: add bootloader target
8a5753b0fe
Bootloader: Add API to create GUID from string
b4775fbe75
Bootloader: installer now patches GPT GUID's
aa4f3046ff
Bootloader: Find root partition from GPT header
8faad47843
LibELF: Remove 2 32 bit types that don't exist
732eb9da41
fixup
d99ef11e48
Bootloader: installer now uses banan os elf headers intead of Linux's
055b1a2a1a
Bootloader move bootloader code from arch directory
b0b39c56ba
Bootloader: Split bootloader into multiple files
8aab3a62cc
Bootloader: Build with cmake instead of custom script
a9412aa741
Bootloader: Implement basic ext2 filesystem
aa7a8124ce
Bootloader: Add helpers for printing n bit hexadecimal numbers
6f9b3ab5de
Bootloader: add support for indirect inode blocks
8b4f169d0f
Bootloader: implement reading from inode
407a7b80c5
Bootloader: Fix getting command line
03b80ed113
Bootloader enter unreal mode at the start of stage2
07ae1bbf34
Bootloader: Load kernel to memory and jump to it!
ec56e9c6f1
Kernel: Don't use multiboot2 explicitly. Parse it to common structure
3daf3d53a3
Kernel: Serial now uses random size for some serial ports
41065d2f9a
Kernel: Don't calculate divisor in a for loop in ext2 inodes
5f4d81a502
Bootloader: Clear screen, better memcpy
065eec430e
Kernel/Bootloader: banan-os can now be booted with my bootloader :D
f0d2a211ea
Bootloader add temporary initial command line
a554bd0fd8
Bootloader: Fix kernel memset to zero
a312d75bb2
Bootloader: Implement VESA video mode query and pass it to kernel
6e2443ca72
Bootloader do some directory restructuring
5293ae070d
Kernel: ProcFS inodes reflect processes ruid/rgid
e2515c1109
Buildsystem: default bootloader is not my custom one
8b81406b81
Toolchain: Build full toolchain with one call to toolchain/build.sh
f2397b775c
BuildSystem: Remove old bootloader target
Sinipelto
merged commit a6a5c00763 into main 2023-11-20 13:20:51 +02:00
Sinipelto
referenced this issue from a commit 2023-11-20 13:20:53 +02:00
Merge pull request 'update main' (#1) from Bananymous/banan-os:main into main
Bananymous
referenced this issue from a commit 2023-12-19 21:41:58 +02:00
Merge pull request 'update main' (#1) from Bananymous/banan-os:main into main
Loading…
Reference in New Issue
No description provided.
Delete Branch "Bananymous/banan-os:main"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?