ToaruOS 2.0

ToaruOS 2.0

Three screenshots demonstrate various applications

ToaruOS has consumed the higher segment of my life for the final eleven years. This launch has been a truly lengthy time coming: My first plans for a 64-bit, SMP-appropriate port of the OS date wait on to earlier than the 1.0 launch. The repository wherein I constructed the recent kernel became as soon as one thing I had already prepare as far wait on as 2015. And now, lastly, I contemplate it is ready.

What is ToaruOS?

ToaruOS is a full hobby working plan for x86-64 PCs. ToaruOS is made up of several ingredients:

  • Misaka, an SMP-enabled kernel for x86-64. Misaka is the principle focal point of this launch, because it replaces the older “toaru32” kernel from 1.x.
  • Yutani, a tool-compositing windowing plan. Yutani has been a core segment of ToaruOS since very early in its construction, and this launch brings a call of improvements to the windowing protocol and compositor implementation.
  • Kuroko, a bytecode-compiled interpreted programming language. Kuroko first seemed in ToaruOS 1.14 as a replace for Python, and has improved critically because it made its debut.
  • Bim, a Vim-inspired code editor with syntax highlighting and plugins powered by Kuroko. All code written for ToaruOS in the last few years has been written in Bim.
  • Graphical applications for Yutani, in conjunction with a file browser, terminal emulator, widget-powered panel, and a kit supervisor.
  • A superior series of terminal utilities, in conjunction with a mammoth subset of popular POSIX utilities.
  • The ToaruOS libc, a cleanroom implementation of the C popular library. ToaruOS’s libc has confirmed itself by supporting a appreciable place of advanced ports.
  • A fleshy suite of userspace libraries to supply serve for PNG and JPEG pictures, TrueType fonts, and extra.
  • A dynamic linker (
  • A suite of bootloaders for BIOS and EFI methods.

All tool ingredients of ToaruOS are usual to the project.

What’s Original in ToaruOS 2.0?

There are two methods to take a study 2.0: First, as a discover up to 1.14.1. When put next to the final “in finding” launch, the modifications in 2.0 are intensive but iterative. Alternatively, 2.0 could simply also be when put next with 1.0. That launch became as soon as constructed on a call of third-party parts, and a pair of.0 demonstrates how these parts like been efficiently replaced.

Capabilities of Misaka

  • x86-64 architecture serve and a miles extra moveable contaminated than its predecessor.
  • Toughen for symmetric multiprocessing (SMP).
  • VFS and job serve for filesystem groups and supplementary crew lists.
  • Per-thread and per-core CPU usage monitoring.
  • Toughen for gzip-compressed ramdisks.
  • Loadable driver modules, which for the time being are loaded from the ramdisk.
  • Course of tracing with ptrace, offering visibility into plan calls and signal shipping, single-step debugging, and unhappy-job memory access.
  • A newly-rewritten network stack offering a BSD-vogue sockets API, serve for just a few interfaces, a loopback interface, and listening sockets.

Modifications Since 1.14.1

  • Original userspace utilities exposing functionality added in Misaka: top, strace, dbg, ping, cpuwidget.
  • Several improvements like been made to the graphics library, in conjunction with the addition of affine transformations.
  • Several improvements like been made to the window compositing framework.
  • A brand recent TrueType text rasterizer has been added.
  • A brand recent marked-up text formatting library has been added.
  • The BIOS loader has been improved and can serve a worthy broader differ of hardware configurations (in conjunction with laborious disk boot), the EFI loader has been rewritten, and each now serve editing the kernel repeat line.
  • The panel has been redesigned, and widgets like been improved with loaded libraries, dynamic structure, and recent popups.
  • The Julia place viewer has been rewritten with recent palettes and exploration choices.
  • A brand recent calculator app has been added, powered by Kuroko.
  • The libc now helps general timezone configuration. Please place your plan RTC to UTC for lawful time.
  • The timezone offset and panel weather widget are robotically configured by scheme products and companies, when available.
  • Driver serve has been added for the Ensoniq ES1371 chipset emulated by VMware Workstation.
  • Many extra things I lost discover of.

Identified Factors

  • The recent network stack remains experimental and the TCP implementation is lacking functionality I’m hoping to scream in a future replace.
  • As in earlier releases, ToaruOS’s libc remains incomplete. Some functions is at risk of be equipped as stubs, or could simply no longer accumulate all anticipated alternate choices.
  • There are identified concerns with the ext2 implementation and, whereas conceivable, disk installations are no longer commended.
  • Please gape the linked dialogue for further concerns present on this launch.

What’s Subsequent?

Several choices had been deferred to future releases in narrate to steer clear of scope plod and web 2.0 finalized. My roadmap for the lengthy speed appears to be one thing relish this:

  • 2.0.x: A range of worm fixes and functionality that became as soon as nearly ready for 2.0, equivalent to TCP stack improvements.
  • 2.1: AHCI, xHCI, USB HID devices, and diversified improved hardware serve that became as soon as namely deferred.
  • 2.2: AArch64 port.

Working ToaruOS

About the Reside CD

ToaruOS is disbursed as a “reside CD”. The default configuration will boot into a user session for native. The password for this legend is also native, and it is permitted to make advise of the sudo repeat. When caused for a password by either the graphical or repeat-line sudo utilities, enter native. The reside CD is configured to supply an in-memory learn-write filesystem and applications could simply also be put in up to the limits of plan memory, but no recordsdata will persist between boots. As in earlier releases of ToaruOS, an experimental learn-write ext2 implementation is available (insmod /mod/ext2.ko) and drivers for IDE laborious disks are equipped (insmod /mod/ata.ko). While these drivers like viewed essential improvements since earlier releases, their advise on staunch methods is just not any longer commended.

Virtual Machines

I customarily indicate the advise of a digital machine equivalent to QEMU, VirtualBox or VMware Workstation to speed ToaruOS, as driver serve for staunch hardware configurations is particular.

QEMU could simply also be configured as follows:

qemu-plan-x86_64 -cdrom describe.iso -m 1G -instrument AC97 -allow-kvm

You need to perhaps more than doubtless also simply also relish to make advise of just a few virtualized CPUs with -smp 2. For platforms diversified than Linux, replace an acceptable repeat line flag for -allow-kvm to permit hardware virtualization.

For VirtualBox, ensure that to supply 32MB of present memory and configure an Intel NIC with NAT, and AC97 audio for many fine serve.

ToaruOS 2.0 has also been tested in VMware Player.

Valid Hardware

Users wishing to compare out ToaruOS 2.0 on staunch hardware are commended to make advise of GRUB. Booting ToaruOS 2.0 is critically simplified over 1.x, as modules no longer like to be loaded by the bootloader to carry out a functioning plan. Extract the kernel and ramdisk files from the launch CD and space them in a course accessible out of your GRUB loader, then add a menu entry with the next commands:

multiboot2 /kernel root=/dev/ram0 vid=auto migrate
module2 /ramdisk.igz
place gfxpayload=serve # You need to perhaps more than doubtless also simply like to specify an acceptable mode right here.

Credit and Licenses

ToaruOS itself is made available underneath the next terms, customarily identified because the NCSA / University of Illinois License:

Copyright (c) 2011-2021 Ample Lange, et al. (hereafter [fullname]). All rights reserved.

Developed by: ToaruOS (hereafter [project])

Permission is hereby granted, free of price, to any individual
acquiring a copy of this tool and associated documentation files
(the "Utility"), to tackle the Utility with out restriction,
in conjunction with with out limitation the rights to make advise of, copy, adjust, merge,
publish, distribute, sublicense, and/or promote copies of the Utility,
and to permit persons to whom the Utility is furnished to fetch so,
discipline to the next conditions:

Redistributions of source code must make a choice the above copyright gape,
  this checklist of conditions and the next disclaimers.

Redistributions in binary make must reproduce the above copyright
  gape, this checklist of conditions and the next disclaimers in the
  documentation and/or diversified materials equipped with the distribution.

Neither the names of [fullname], [project] nor the names of its
  contributors is at risk of be weak to endorse or promote products derived from
  this Utility with out declare prior written permission.


ToaruOS integrates ingredients one at a time licensed underneath the ISC License (apps/bim.c and linked files):

Copyright (C) 2012-2021 Ample. Lange

Permission to make advise of, copy, adjust, and/or distribute this tool for any
unbiased with or with out price is hereby granted, equipped that the above
copyright gape and this permission gape appear in all copies.


Kuroko, ToaruOS’s bytecode-compiled interpreted language, is according to prior work by Robert Nystrom and is disbursed underneath the MIT License:

ToaruOS is constructed with GCC and its runtime serve library (libgcc) is geared up on the CD as a dynamic shared object. This file carries a GPLv3 license with a linking exception, which you would possibly want to simply in finding right here alongside the requisite sources:

Finally, ToaruOS involves the DejaVu family of TrueType fonts, license particulars for which is at risk of be realized right here: (embedded license text for fonts could simply also be viewed in the OS with the font-instrument utility the advise of the -s flag)

All diversified property, in conjunction with icons, wallpapers, mouse cursors, etc, are usual works by the ToaruOS crew and released underneath the same NCSA license because the relaxation of the OS. ToaruOS assemble property is at risk of be made available underneath alternative Ingenious Commons terms by inquire.


  • about: accumulate resize messages
  • ahci: extra sorting out
  • ahci: wip module
  • reveal: advise dprintf, no longer printf, when printing assertion message
  • ata: deal in pages, no longer sectors
  • ata: Raze no longer make instrument nodes for disks that reveal to be empty
  • ata: descend the disk scheduler job and lawful advise a factual sleepable mutex
  • ata: Produce certain we lock spherical submitting ATAPI repeat so we’re woken up properly
  • ata: fix badly allocated prdt
  • ata: fix inferior timeout on ATAPI initialization, fixes vbox seeing the CD
  • ata: establish disk earlier than checking its dimension…
  • ata: Original disk scheduler; much less dreadful but very sluggish
  • ata: do away with partition info which belongs to dospart module
  • ata: Rudimentary restoration of the legacy ATA driver
  • ata: slap a warning on the halt of that
  • contaminated: Settle for QEMU IDE controller for ata driver autoload
  • contaminated: Add ‘visitor’ user without a groups, no longer in sudoers
  • contaminated: add eradicated shell scripts from /bin
  • contaminated: Add /src/boot and /src/modules
  • contaminated: Cleaned up quantity icons
  • contaminated: Cleanup native’s rc files
  • contaminated: define some byte narrate macros
  • contaminated: Raze no longer live up for msk on boot
  • contaminated: Produce certain we’re easy offering the unfounded
  • contaminated: Set up auto-dep.krk to /bin in favor to /usr/bin
  • contaminated: Land recent property for 2.0
  • contaminated: Load ATA drivers on vbox if IDE is detected
  • contaminated: Load iso9660 and add a desktop icon when mounting CD at boot
  • contaminated: Load the piix4 remapper if we gape the ISA bridge; fixes OVFM underneath qemu with out -M q35
  • contaminated: make certain dir exists to create host Kuroko
  • contaminated: minor cleanup of /usr/piece
  • contaminated: Only present tutorial as soon as on first graphical login for ‘native’
  • contaminated: Put collectively for 2.0.0
  • contaminated: Print message when loading drivers on startup
  • contaminated: Protect dilapidated qemu thing from startup
  • contaminated: do away with unsupported startup script
  • contaminated: Display some toasts on startup.
  • contaminated: A piece of much less ineffective encourage files
  • contaminated: replace /etc/os-launch
  • contaminated: replace kit repository on startup
  • contaminated: Update
  • contaminated: Wait a small earlier than beginning the wizard
  • bim: fix unintentional wraparound when scrolling to ‘-1’
  • bim: fix argument parsing derp
  • bim: File errors when opening files
  • bim: sync with upstream
  • bim: sync with upstream
  • bim: syntax highlighter for /etc/distress files
  • bim: Update gasoline highlighter
  • bim: upstream worm fix
  • bim: Exercise ansi theme on vga terminal
  • bim: version 3.0.0
  • block-dev-stats: Test instrument for ongoing ata rewrite
  • boot: Add 1280×800 as a most popular resolution
  • boot: Add a shortcut to toggle video/text mode
  • boot: Add a scheme indicator when loading
  • boot: add repeat line editor
  • boot: add menu timeout
  • boot: adjust timeout a small
  • boot: alternate encourage message when highlighting a toggle
  • boot: test for lengthy mode serve so we can bitch if any person runs the outrageous qemu
  • boot: Trim up editor redraw, shift-arrow input?
  • boot: Cleanup strings; scheme-test memory on startup
  • boot: Raze no longer clear traces earlier than printing on them when drawing banners
  • boot: allow SMP by default
  • boot: allow vmware resize by default? it appears to be in finding
  • boot: Fall wait on to 24bpp modes
  • boot: first pass at cleanup, lawful make certain every thing has lead comments
  • boot: fixup getting again from editor to menu
  • boot: generalize video mode decision to work on BIOS
  • boot: Jump wait on to staunch mode to load sectors?
  • boot: much less debug text
  • boot: Make certain menu displays if an unrecognized key’s pressed
  • boot: make this bootload v4.0?
  • boot: MBR / disk boot stub
  • boot: merge retooled EFI loader
  • boot: extra editor key binds
  • boot: Prettify
  • boot: indicate 1GiB of RAM
  • boot: Earn better BIOS loader.
  • boot: make a choice final mode when toggle to text mode
  • boot: Rewrite README
  • boot: Rewrite the legacy BIOS loader
  • boot: Make a choice present mode on video menu; esc to return with out altering
  • boot: Position a kcmdline flag when debug is decided in menu
  • boot: Toughen AOUT_KLUDGE kernels
  • boot: Exercise CD for QEMU
  • boot: VBE modesetting
  • create: Protect C++ serve, halt in conjunction with libstdcxx on the ramdisk
  • calculator: Raze no longer let the window web too small
  • calculator: screwy, kuroko-backed calculator
  • calculator: place binpath so we can no longer lower than import ‘math’
  • calculator: straightforward text input
  • chown: fixup semantics, serve names in repeat
  • coloration-picker: Original widget demo
  • compositor: Add a brand recent OVERLAY layer, namely for toasts
  • compositor: Add one more layer above overlays for menus in narrate that they present in front of toasts
  • compositor: Add I-beam cursor; common sense in terminal, file-browser
  • compositor: Animate bottom and top windows customarily in the event that they’re no longer marked ALT_ANIMATION
  • compositor: Steer away from extra transformations.
  • compositor: steer clear of transformations if we’re lawful clear
  • compositor: Cessation archaic windows that had been lost in the stack
  • compositor: properly place subsequent targeted window when a window closes
  • compositor: don’t animate regular dropdown menus
  • compositor: descend serve for replace renderers
  • compositor: Produce higher turned around coordinate bounds to tackle rounding / truncation errors
  • compositor: Fix up waft math ordering for better coordinate mapping outcomes
  • compositor: fixup tiling sizes for one pixel of overlap, no longer two
  • compositor: Hack to serve 24bpp framebuffers
  • compositor: Oops, we weren’t reseting compositor clips
  • compositor: realign pointing hand cursor
  • compositor: refuse to initiate dragging when as we exclaim resizing
  • compositor: Restructure ‘advertise‘ messages to supply window buffer, dimension
  • compositor: halt dragging windows on esc
  • compositor: serve positioning a window relative to 1 more
  • compositor: Switch window screenshot keybind to Shift+PrtSc due to Gnome doesn’t want us to web Alt+PrtSc in emulators
  • compositor: take screenshots on print show veil key
  • compositor: Unthread the render pass
  • compositor: Wait unless a flip match is received earlier than revealing windows
  • cpuwidget: Add to menu as ‘Map Video show’
  • cpuwidget: Cap graphs better
  • cpuwidget: Complete revamp
  • cpuwidget: CPU usage graph
  • cpuwidget: fix file descriptor leak
  • cpuwidget: Memoir cleanup
  • cpuwidget: Shoddily add interface names to network memoir
  • date: trade default structure
  • dbg: add backtrace repeat
  • dbg: add ‘print’ repeat
  • dbg: make certain debugged job terminates on exit
  • dbg: present signal number if name is just not any longer available
  • dbg: Strive and resolve out symbol names, library locations
  • decorations: are attempting to be a small smarter about drawing titlebar parts
  • decorations: Exercise a single spritesheet for window borders
  • dhclient: don’t segfault on RO filesystem making an are attempting to write resolv.conf
  • dhclient: fallback to /var/resolv.conf if /etc is learn-easiest
  • dhclient: Skip things that wouldn’t like hardware addresses
  • dhclient: Strive about a instances…
  • dhclient: are attempting to configure all available interfaces
  • dospart: recover and convert to mount unbiased
  • e1000: add ref link
  • e1000: Raze no longer print that message
  • e1000: Extra driver rewrites
  • e1000: Extra transmit modifications…
  • e1000: Uncover SRPD irqs?
  • e1000: Protect debug procfs entry that became as soon as causing errors
  • e1000: do away with print
  • e1000: rewrite tx a small
  • e1000: will like to doubtlessly serve the advise of no matter became as soon as in the card after reset
  • es1371: Audio driver for vmware
  • ext2: Add some essential mutexes spherical block and inode allocation
  • ext2: Put lawful ownership of unique files
  • ext2: fix block crew calculation for inodes
  • ext2: fixup increasing directories
  • ext2: No cache for you
  • ext2: Earn better (experimental) ext2 filesystem driver
  • ext2: portray ROFS
  • ext2: Strive and make this much less broken
  • fbterm: Raze no longer personal show veil on startup, we don’t prepare memory caching for this well
  • fbterm: Make certain we’re drawing with crawl, no longer width
  • fbterm: Run log to middle, place bg to murky
  • fbterm: Only allow scrolling by default on vga terminal
  • fbterm: Toughen 24bpp framebuffers
  • fbterm: VGA backend, allow scrolling by default
  • web: Parse https and bail better
  • web: parse port relish we fetch in web-tls
  • web: print full time when carried out, in favor to 0.0 final
  • web: switch forced progress updates wait on off
  • file-browser: add about a extra keyboard shortcuts
  • file-browser: Add picker mode
  • file-browser: fetch fewer redundant redraws
  • file-browser: Raze no longer restart when wallpaper modifications
  • file-browser: fix interior radius of targeted text input box
  • file-browser: fix up scroll dimensions for desktop, though we undoubtedly fetch like to make that multi-column
  • file-browser: Icons, identification of PDFs, small launcher wrapper
  • file-browser: small fixes
  • file-browser: realign and blink the cursor in the input box
  • file-browser: Acknowledge extra file forms by extension
  • file-browser: Position the default gape mode to TILES
  • file-browser: Display a distinct context menu when no files are chosen
  • file-browser: stretch columns to suit
  • file-browser: Exercise object icon for kernel modules
  • font-preview: If a font offers sample text, present it by default
  • font-preview: Encompass font name in window title
  • font-preview: Override preview text with argv[2]
  • font-preview: instrument for viewing TrueType fonts
  • font-instrument: Add method to extract all (understood) names
  • github: checkout the factual commit of kuroko
  • github: fix ramdisk course for create artifacts
  • github: Re-add launch management
  • github: upload CD describe as create artifact
  • glogin-provider: cleanup, do away with animation
  • glogin-provider: Fixup animation to no longer smear on sluggish methods
  • glogin-provider: fixup overflowing text packing containers
  • glogin-provider: the advise of outrageous fonts for metrics…
  • graphics: undoubtedly fix that off-by-one in draw_sprite_alpha
  • graphics: Add affine transformations for sprites
  • graphics: better method to remodeled blitting
  • graphics: const arguments for point/line calculations
  • graphics: make certain rounded rectangle rendering is bounded?
  • graphics: faster alpha utility…
  • graphics: fix alpha painting of sprites
  • graphics: fixup aa line rasterizer
  • graphics: general improvements
  • graphics: improved bilinear interpolator
  • graphics: Match nearest-neighbor signature to bilinear for more straightforward swapping
  • graphics: off-by-one on scanline width in draw_sprite_alpha
  • graphics: easiest load describe libraries as soon as
  • graphics: instant-circuit out of bounds lookups in bilinear interpolator
  • graphics: some improvements to the sprite blitters
  • groups: First pass at serve for supplementary crew lists
  • groups: Preliminary serve for gids.
  • gsudo: Icon for panel, fixup overflowing password box
  • gunzip: Hidden method to print progress experiences, for debugging
  • hda: stub module
  • encourage-browser: wants to be an inline label
  • encourage-browser: viably present the AGPL text for the mupdf kit
  • hexify: bail if fopen failed
  • i965: add a leading statement block
  • i965: Raze no longer load if mode wasn’t already place
  • i965: modeset a thinkpad
  • i965: register names
  • i965: Send mode trade signal?
  • idt: Track core interrupt registers due to arch_fatal() step by step occurs with inferior stack recordsdata
  • imgviewer: encompass filename in window title
  • imgviewer: small improvements
  • insmod: Toughen passing arguments to modules
  • ioctl: inquire wants to be ‘unsigned lengthy’
  • ipv4: Raze no longer wait see you later for initial arp response
  • ipv4: are attempting to arp native stuff?
  • irc: switch to sockets
  • irc: This undoubtedly wants to make advise of rline, but no longer lower than don’t mess up lengthy input traces
  • irq: Ticket isr_common as world so it presentations up in symbol desk
  • iso9660: recover, fixup driver
  • iso9660: are attempting to fetch some doable mount errors
  • julia: trade defaults
  • julia: totally retooled julia place explorer
  • julia: fixups
  • kbd: Receive diversified scancode from PrtSc key
  • kbd: halt sending empty occasions to purchasers
  • kernel: Manufacture a lock spherical waitpid situation modifications
  • kernel: add ‘reveal()’
  • kernel: Add straightforward mutex with a wait queue
  • kernel: no longer lower than add fleshy lead comments to every thing
  • kernel: inferior ordering of checklist insert / wakeup triggered crashes
  • kernel: open work on re-adding module loading
  • kernel: Better fault experiences
  • kernel: trade signatures for vfs interfaces to verify reality
  • kernel: horny up kernel/arch/x86_64/{cmos,pit}.c
  • kernel: cleanup kernel/arch/x86_64/idt.c
  • kernel: cleanup kernel/arch/x86_64/smp.c
  • kernel: cleanup kernel/arch/x86_64/user.c
  • kernel: cleanup kernel/generic.c
  • kernel: cleanup things offered in COW
  • kernel: conclude file descriptors >STDERR_FILENO on exec relish toaru32 did
  • kernel: exclude serial ports from pts numbering; open numbering at 1
  • kernel: Export sys_ functions in narrate that they appear in symbol desk
  • kernel: Fix gdt install clobbering symbol desk, or no matter else ends up after it
  • kernel: fix getpgid(pid != 0)
  • kernel: fix lacking lock for the duration of wakeup from signal shipping
  • kernel: Fixup inferior lock ordering in process_awaken_signal
  • kernel: fixup lock ordering spherical process_timeout_sleep
  • kernel: Elevated resolution CpuPermille
  • kernel: Implement general copy-on-write for fork()
  • kernel: Preliminary pass at recent debug printf interface
  • kernel: Preliminary are attempting at accurate user buffer validation
  • kernel: make an are attempting to horny up processes in SMP
  • kernel: make_process_ready is at risk of be known as with sleep_lock already received?
  • kernel: extra vivid indolent monitoring
  • kernel: (wants review) let threads sleep on their like kids?
  • kernel: oops
  • kernel: opportunistically design stack house
  • kernel: Presumably fix sporadic lockup in compositor?
  • kernel: halt modules from being loaded just a few instances
  • kernel: Print gs alongside diversified registers in fright
  • kernel: Print tracebacks for added deadly errors
  • kernel: Save codename string in quotes for stylistic causes
  • kernel: Unencumber SHM whereas we’re at it…
  • kernel: restore debug prints for a online page fault in the kernel, since SMP failures are uncommon now
  • kernel: restore fprintf() for printing to vfs nodes (personality devices)
  • kernel: Could easy no longer like to make advise of non permanent buffer for fxsave/rstr
  • kernel: instances() can take NULL
  • kernel: discover indolent job usage
  • kernel: Track relative CPU usage over one-2d spans
  • kernel: Exercise native APIC timer for preemption on APs, no longer an IPI
  • kernel: Exercise ‘Misaka’ because the plan named offered by the kernel
  • kernel: advise that recent sleep_on_unlocking in ringbuffers
  • kmalloc: Exercise existing assertion infrastructure
  • ksym: open organizing kernel symbols for linking
  • kuroko: add managed modules to filesystem
  • kuroko: bind text library in _yutani module
  • kuroko: Bump for sendto() serve
  • kuroko: extra upstream updates
  • kuroko: pull in version number replace
  • kuroko: Toughen keyword arguments to lambdas
  • kuroko: sync to fix string comparison atomize
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • kuroko: sync with upstream
  • kuroko: Sync with upstream
  • kuroko: replace repo
  • kuroko: Upstream updates
  • kuroko: yet extra upstream updates
  • kuroko: _yutani: present shm font serve
  • Expose some inside of recordsdata to be utilized by debugger
  • Link for 4K pages
  • Position values in dynamic symbol tables when linking
  • Cease leaking low heap to init functions
  • Exercise a worthy higher hash dimension and cc1 hundreds lots faster
  • lfbvideo: Raze no longer design EGA/VGA text mode differ as WC as apparently things don’t relish that
  • lfbvideo: Produce certain we design ample room for mammoth preset video modes
  • lfbvideo: Fallback to port-IO driver if MMIO is just not any longer available
  • lfbvideo: Withhold resolution place by loader if none specified by args
  • lfbvideo: recalculate vmware memory dimension on present trade
  • lfbvideo: place some extra bits on bochs
  • lfbvideo: Exercise MMIO interface to configure qemu/bochs; vbox is easy port i/o
  • libc: __assert_func will like to exit
  • libc: cleanup, some lacking things
  • libc: Fix inferior common sense when looking out out for IP tackle
  • libc: fix fseek behavior with packed with life learn?
  • libc: Implement an accurate quicksort for qsort…
  • libc: Extra inferior (and a couple simply) math functions
  • libc: easiest elide fractional parts in g/G, no longer f/F
  • libc: rand() must always not ever return detrimental values
  • libc: serve ip addresses in gethostbyname
  • libc: that xor-swap is silly and doubtlessly also slower
  • libc: Update wcwidth with most unique recordsdata
  • libm: Add lacking M_, INFINITY, NAN constants
  • libm: Add two lacking functions
  • libm: Hyperolibc trig functions
  • libm: must put into effect sqrt() or it will loop in gcc
  • lib: replace doctors
  • localtime: rudimentary, wrong serve for timezone offsets
  • login-loop: Linefeed earlier than distress text
  • login-loop: Exercise a straightforward, ‘unique’ /etc/distress
  • login: Return 2 when ‘disconnect’ is geared up as a username
  • login: Toughen /etc/distress thru login-loop
  • lspci: Add extra instrument descriptions from my ThinkPad
  • lspci: add qemu’s e1000e model
  • make: Add a take a look at instrument/script
  • make: bail if make fails?
  • make: Trim extra stuff
  • make: Default SMP=4 for qemu targets due to why no longer
  • make: Default to 2 SMP cores so we’re consistently sorting out with SMP enabled
  • make: detect extra contaminated/ modifications
  • make: Produce certain we’re constructing /usr/bin so we can put auto-dep.krk in it
  • make: Give write access to docker container’s bin dir
  • make: Run SMP alternate choices to ‘make shell’
  • make: Substitute with a Kuroko same
  • make: Strip final kernel describe
  • make: ‘take a look at’ target will like to advise q35 plan
  • make: /usr/lib/ libs (from gcc) will like to approach from TOOLCHAIN
  • make: Why are we making an are attempting to echo PATH right here?
  • markup: fix inferior malloc
  • markup: Preliminary work on recent marked up text rendering library
  • menu: Add look after speech-bubble-vogue menus relish Gnome has
  • menu: Better tail alignment for bubble windows
  • menu: Disallow dragging/resizing of menu windows
  • menu: flip after transferring
  • menu: put into effect menu_free_entry
  • menu: The truth is, critically don’t present menus earlier than transferring them
  • menu: Rudimentary checkbox menu entries
  • menu: house out menu bars nicer
  • meta: Add .mailmap
  • meta: Add extra screenshots
  • meta: A present on licenses
  • meta: Cleanup Makefile, add some comments
  • meta: Cleanup, rewrite parts of the README
  • meta: Picture filesystem constructing in README
  • meta: Fix typo in README
  • meta: Fresh batch of screenshots
  • meta: I undoubtedly assign no longer like to make a choice out doing this. Please halt stealing my free code.
  • meta: purge most cases of vim hints
  • meta: Some README updates
  • meta: Cease commended recursive git checkout, because it pulls in gcc/binutils
  • meta: Update the overall heading comments in apps/
  • meta: Update leading comments in modules/
  • meta: Update README, recent screenshot
  • meta: Update launch notes template
  • meta: We must always not like to link -lgcc in the kernel
  • misaka: final merge prep
  • misaka: initial merge
  • misc: cleanup
  • mmu: The truth is learn multiboot mmap recordsdata
  • mmu: be disturbing about ensuring we’re no longer leaking pages?
  • mmu: Be extra clear about what’s happening when we speed out of RAM
  • mmu: Fixup mapping for physical memory tackle >4GiB
  • mmu: Reserve about a extra initial PTs so we can serve 64GiB of memory
  • mmu: Strive and fabricate undoubtedly inferior TLB shootdowns?
  • modules: cleanup header comments
  • modules: checklist modules in /proc/modules
  • modules: Reimplement loadable kernel modules
  • modules: discover loaded sizes so we can free modules later
  • extra: add straightforward pager utility
  • extra: add house binding
  • msk: accumulate https: remotes
  • msk: horny up after ourselves
  • msk: Fixup native manifest file resolution
  • msk: Fixup serve for just a few remotes, add about a alternate choices
  • msk: deal with failures in ‘web’ when retrieving applications
  • msk: serve the advise of an intermediary file for gunzip as or no longer it is easy technique faster than the pipe
  • msk: Switch wait on to the advise of tar/gunzip with pipes
  • msk: Switch kit source to CDN
  • msk: Exercise 192.168.11.for native repo because it bails faster in vmware
  • multiboot: Accurately pass bits-per-pixel from framebuffer recordsdata
  • fetch: undoubtedly are attempting to resolve out jog scheme hardware addresses
  • fetch: add arp?
  • fetch: add configure addresses
  • fetch: add lacking declaration
  • fetch: add netmask, peep extra stuff from DHCP
  • fetch: Add stats counters
  • fetch: one more batch of rewrites
  • fetch: arp fixups
  • fetch: cleanup
  • fetch: full most of a TCP stream?
  • fetch: disable debug prints for the duration of TCP connection
  • fetch: don’t reproduction struct structure in e1000 instrument object
  • fetch: don’t dynamically allocate hashmaps and lists?
  • fetch: don’t explode with out a network
  • fetch: e1000 receive fixes?
  • fetch: fix inferior copy in ICMP ECHO
  • fetch: fixups for dhclient, just a few nics
  • fetch: hacked up udp stuff, dns resolver
  • fetch: hack up some fin packets
  • fetch: Type out indicators
  • fetch: initialize e1000e better?
  • fetch: initialize that checklist earlier
  • fetch: initial loopback interface serve
  • fetch: initial raw socket implementation
  • fetch: Per chance allow udp binds?
  • fetch: extra cleanup
  • fetch: extra interface properties
  • fetch: extra tcp; timeout nameserver lookups
  • fetch: net_udp_send() will like to return dimension of recordsdata despatched
  • fetch: ongoing network work
  • fetch: Oops, we broke UDP sends
  • fetch: pack that?
  • fetch: answer to pings?
  • fetch: return eof when socket is closed and no recordsdata is available
  • fetch: seize random sequence number to open
  • fetch: silence extra debug messages
  • fetch: silence the network stack unless MISAKA_DEBUG_NET is outlined
  • fetch: tcp: general syn/ack receipt?
  • fetch: are attempting to undoubtedly discover received packet sizes…
  • fetch: are attempting to web the kit supervisor working
  • netty: Fixup the reverse shell host for socket connections
  • netty: swiftly hack to make advise of threads so pasting doesn’t deadlock
  • fetch: varied
  • fetch: varied improvements to easy dreadful network stack
  • fetch: we undoubtedly want some factual blocking off queue primitives
  • fetch: wip stuff for sockets
  • nproc: Expose processor rely and advise it to take dangle of between yielding and non-yielding inch locks
  • kit-supervisor: apply same optimization as file-browser
  • kit-supervisor: Scuttle up a thread to speed ‘msk’
  • kit-supervisor: replace ‘about‘ text
  • panel: Add icon, replace much less step by step
  • panel: Add notifications when a network connects/disconnects
  • panel: adjust dimension of ‘Purposes’, clock
  • panel: constantly seize middle alignment for popups
  • panel: And pork up the popup whereas we’re at it
  • panel: And make extra room for lengthy month names
  • panel: Discover smarter alignment to popup menus
  • panel: cleanup and fix present of window objects
  • panel: cleanup widgets, segment 1
  • panel: Raze no longer atomize when alt-tab window is open and the final tabable window closes
  • panel: Raze no longer present loopback in network scheme widget
  • panel: Dynamically dimension the date widget
  • panel: experiments with a brand recent assemble
  • panel: First pass at modularization
  • panel: fixup window title present in alt-tab switcher
  • panel: pork up assemble of calendar popup
  • panel: Enhancements to the window switcher
  • panel: Withhold ticking the clock when receiving diversified occasions
  • panel: Shrimp improvements to weather widget
  • panel: Original quantity slider menu widget
  • panel: redo structure when panel resizes
  • panel: re-allow weather widget
  • panel: Restore Alt-F1 and Alt-F3 key binds
  • panel: Display icon of present window at fleshy opacity
  • panel: present logout dialog in a thread (non permanent)
  • panel: walk the panel up faster on ctrl-f11
  • panel: are attempting some smarter popup placement
  • panel: Exercise fleshy month name in date widget
  • panel: Visible modifications to slider
  • pci: deal with setups with out a bunch bridge?
  • pci: Implement PIIX4 PIRQ remapping
  • pcspkr: recover module
  • pex: The truth is are attempting to conclude server endpoints
  • pex: Cleanup pipes?
  • pex: don’t go away invalid connections with the server learn/write strategies?
  • pex: don’t shove packets onto the pipes, shove packet pointers so we can learn them atomically
  • pex: perhaps lastly fix this
  • piix4: journey to module, easiest load in virtualbox
  • ping: fancier sub-ms printing (I contemplate %Ng is supposed to fetch this, but mine is at risk of be broken?)
  • ping: Withhold pinging, present summary on ^C
  • ping: shoddy implementation
  • pipe: Embiggen pipe buffers
  • pipe: Produce pipes extra divulge with ring buffer usage
  • plasma: fix what I contemplate is undoubtedly a math worm in plasma
  • polygons: cleanup
  • polygons: rasterizer demo
  • job: okay don’t designate stack protectors nx…
  • job: Position up stack protectors for kernel stacks
  • job: (temp) steer clear of releasing processes that are easy a persons final
  • job: are attempting to fix up some locks, as soon as more
  • procfs: cleanup /proc/indolent structure
  • procfs: swiftly-and-soiled /proc/kallsyms, lacking modules
  • ps2hid: Fixup initialization sequence; unbreaks scrollwheel in vbox
  • ps2hid: quit on PS/2 if making an are attempting to empty input buffer doesn’t work after 1024 tries
  • ps: Encompass thread CPU usage in mother or father when no longer queried with -T
  • ptrace: Allow separate tracing of indicators and syscalls
  • ptrace: steer clear of suggesting job terminated when continuing from ptrace_signal
  • ptrace: Receive indicators, open work on debugger
  • ptrace: Expose non-mother or father tracer when tracee exits
  • ptrace: POKEDATA, permission fixes for PEEKDATA
  • ptrace: serve tracing from non-mother or father job
  • ptrace: Update scheme earlier than surroundings suspended flag
  • readelf: Fix lacking -d option
  • readelf: fix typo in usage
  • readelf: GNU-vogue alternate choices
  • readelf: Display dynamic symbol tables
  • readelf: typo
  • readme: Fix docker repeat
  • readme: Extra updates.
  • readme: replace
  • readme: Update readme
  • readme: Update README
  • readme: Update references to EFI loader
  • readme: updates
  • readme: updates
  • readme: replace screenshot
  • ringbuffer: don’t advise heap allocator if buffer dimension is one online page
  • rline: Add a brand recent r-search
  • rline: highlight ‘abs’ as a builtin in kuroko repl
  • rline: halt highlighting numbers in the midst of words
  • serial: wants to be owned by ‘dialout’ crew
  • sh: Point out ‘ifconfig’ slightly than ‘ip’/’ipconfig’
  • sh: semaphore pipe write helps with an odd flee situation
  • sh: advise return code from final job in pipeline, and live up for every person properly
  • smp: ACPI checksups are extra of an provide
  • smp: add a procfs entry to gape what diversified cores are up to
  • smp: allow repeat line override for where to scan for RSDP
  • smp: Co-opt Multiboot’s config_table member to sneak ACPI tables to kernel
  • smp: fetch no longer are attempting to ship IPIs when now we like one core and no lapic
  • smp: Raze no longer lawful deadly() if there is too many cores; initialize up to 32
  • smp: fix wakeups doing inferior EOI write
  • smp: Power userspace preemption on diversified cores.
  • smp: Memory invalidation fixes
  • socket: Purge rx queue when socket closes?
  • splash-log: Cleanup, disable log if ‘debug’ is just not any longer specified, unless we take too lengthy
  • splash-log: deal with present mode trade
  • splash-log: Withhold main messages on show veil
  • splash-log, migrate: Cleanup
  • splash-log: reset present on resolution trade
  • splash-log: restore vga text output
  • splash-log: Withhold final message to print it if we switch out of tranquil mode
  • startup: are attempting to dhcp on boot
  • stat: fix dimension definitions
  • stat: Print a extra coreutils-y output
  • strace: fix-up inferior signal name desk
  • strace: initial -e trace=… serve
  • strace: Preliminary serve for a ptrace() mechanism, strace instrument
  • strace: extra syscall groupings from the staunch strace
  • strace: serve extra syscalls, output values, errno
  • strace: serve -o option
  • sync: Toughen argument
  • sync: non permanent thing for sorting out; no longer a factual sync
  • syscall: PTR_VALIDATE explicitly does no longer test null…
  • sysfunc: undoubtedly bother validating some values
  • sysinfo: OS name from /etc/os-launch $PRETTY_NAME
  • sysinfo: Strive and be a small smarter about printing logo
  • sysinfo: Update, add CPU, re-add Font
  • tarfs: throw EROFS on assemble
  • tcp: fixup connect retry
  • tcp: Fixup socket receive buffers
  • tcp: deal with connection refused
  • tcp: Day out connection after 3 makes an are attempting, decrease time between resends
  • terminal: Add some functionality to the -g flag
  • terminal: bind Ctrl Shift +, Ctrl -, Ctrl 0 to change scaling
  • terminal: defer updates; no longer entirely asynchronous
  • terminal: fix inferior bounds in mouse space test
  • terminal: fix text width for DejaVu Sans Mono
  • terminal: fixup scroll be troubled rects
  • terminal: Implement some swiftly and soiled font fallback serve
  • terminal: Birth with out animation when operating fullscreen
  • terminal: make scrollback extra efficient?
  • terminal: Minor improvements to text decision
  • terminal: rewrite redraw common sense to be extra buffered
  • terminal: source repo for bitmap font moved, replace statement
  • terminal: serve ^[[3J to clear scrollback
  • terminal: varied cleanups
  • terminal-vga: Backport decision improvements from graphical terminal
  • terminal-vga: Fixup better left cell acting chosen
  • terminal-vga: recover vga text mode operation
  • terminal-vga: Rewrite present caching so or no longer it is undoubtedly snappily, and buffered
  • take a look at: install xhci module
  • take a look at: extra detailed logging for USB so we can take a look at xhci
  • take a look at-sigsegv: Add a deeper segfault to take a look at debugging libs
  • text: Add some macros so we can extra with out problems swap out the bitmap font
  • text: allocate subsamples according to glyph bounds
  • text: carry wait on shm-saved fonts equipped by compositor
  • text: Expose technique for brute-pressure course stroke
  • text: fix clipped factual-hand-aspect of some glyphs
  • text: fix overly trusting bounds calculation
  • text: deal with off-curve open point
  • text: Introduce recent TrueType implementation
  • text: offset horizontal scanlines a small to no longer bleed bottoms of glyphs into subsequent pixel
  • text: on 2d thought, cache the tips no longer the font object, so every tt_font_from_shm is a distinct ref
  • text: purge the SDF renderer, RIP
  • text: learn fonts with instant glyf desk offsets
  • text: learn unitsPerEm from font, advise for tt_set_size
  • text: do away with sdf kerning config
  • text: Substitute bitmap font with a baked version of Deja Vu Sans Mono, mostly for metrics causes
  • text: shadowed text, port file-browser
  • text: Will have to love been doing two box blurs this total time
  • text: scheme fix for clipped text shadows
  • text: serve extra flexible sizing in pt, px
  • text: serve form 4 cmaps, dilapidated Microsoft fonts
  • text: Switch several apps/libs to recent text library
  • text: varied rewrites
  • instances: rudimentary serve for job instances
  • time: Strive and resolve out some vivid timezone names from the TZ offset, and web that from ip-api
  • tmpfs: finer-grained locks, advise world mmu mapping
  • tmpfs: Produce full block allocations available thru a procfs entry
  • toastd: Alter spacing, are attempting to vertically middle text
  • toastd: Attain things up, I guess.
  • toastd: initial prototype
  • toast: Quick Kuroko toast shopper
  • top: Allow sorting by repeat line
  • top: cap CPU%/CPUA at 100
  • top: code cleanup
  • top: Differentiate general memory from memory weak for tmpfs
  • top: Raze no longer cap at 100, but fetch structure >=100 in some other case
  • top: fixup memory leaks
  • top: job show screen
  • top: Track just a few slices of usage, present averages
  • contact: don’t segfault when unable to the contact
  • contact: don’t segfault when unable to the contact
  • tutorial: Add a online page about the reside CD
  • tutorial: Alter spacings, fix centering
  • tutorial: do away with regards to dilapidated irc network
  • tutorial: width/height wants to be minus decorations
  • udp: add bind() and recv() take a look at instrument
  • util: Add working bochsrc
  • util: Run ISO, FAT stuff to a library
  • util: Resolve bootstrapping distress thru bruteforce
  • vbox: Minor cleanup, don’t job occasions we did not web an IRQ for
  • vfs: Allow ‘filesystems’ that are partition mappers to no longer return a node
  • vfs: copied nodes will like to web their like refcounts
  • vfs: ramdisk dimension wants to be updated on the usual node
  • vmware: detect



Hey! look, i give tutorials to all my users and i help them!