Skip to content
Fabien Bavent edited this page Aug 27, 2019 · 3 revisions

Drafts


Port the kernel on a new architecture

  • Boot
  • Write syslog
  • Map available pages
  • Cpu save / restore
  • Make IRQ works
  • Kernel check
  • Drivers

Applications

  • Calculator
  • Terminal (krish)
  • Notepad
  • Painter
  • Photos
  • Medias
  • Wordpad
  • Spreadsheet
  • Preze
  • File browser
  • Web broswser
  • Calendar
  • instant messaging
  • task monitor
  • play tunes
  • archives (tar, zip...)
  • meteo
  • video player
  • pdf viewer
  • book/magazine maker
  • movies maker
  • audio maker
  • picture maker
  • notebook

Master task

  • load drivers
  • Look for /
  • Select CHROOT
  • Search /etc/.kora-settings
  • Create user/session enries
  • Identify desktop devices group [fb0, kdb, mse]
  • Start logon program
  • Star deamons
  • Handle plugNplay requests

Straces

[thrd    1] open("bin/logon", 078) = 4
[thrd    1] fork(0777, 4) = 2
[thrd    1] mmap(NULL, 8192, -1, 07866) = 0x480000
[thrd    1] read(0, <unfinished ...>
[thrd  643] nanosleep({0'08"000.000}, <unfinished ...>
[thrd  643] <... nanosleep resumed>, {0'08"000.000}) = 0
[thrd    3] write(2, "Error\n", 6) = 6

Tasks

  • tty

  • make use of pipe for input

  • add cursor blinking

  • command history

  • tabulation helper (plugin style)

  • keyboard shortcut (plugin/config)

  • kernel

  • add drivers win32

  • task

  • create new proc from scratch

  • fork new process

  • fork new thread

  • create environment variables block

  • support for thread local storage

  • create interval timer

  • support thread pools

  • net

  • socket api

  • isolate layers info

  • socket requeue mechanism (C10K)

  • create rooter/network testing

  • create host DNS cache

  • create arp tables

  • UI

  • handle solid child is over multi skin parent

  • advanced text input edition

  • handle formular tab event

  • handle formular enter event

  • create simple api for list creation

  • handle partial/multi redraw

  • handle window partial invalidation

  • File

  • use virtual operations

  • use bio api cleaner for file loading

  • clean block access for drivers

  • short internal

  • clean kernel headers

  • use ticket spinlocks

  • add drivers for win32/x11

system file trees

Sys/
  Kernel/
    Parameters/
    Cmdline
    Cpuinfo
    Diskstats
    Fs/
    Interrupt
    Ksymbols
    Kmsg
    Loadavg
    Locks
    Meminfo 
    Misc
    Modules 
    Stat
    Iostat
    Netstat 
    Schedstat 
    Swaps 
    Uptime 
    Version 
    Vmcore 
    Vmstat 
  Modules/
    Ata/
      Parameters/
        Dma_enabled 
      Logs
      Version 
      Refcnt
Dev/
  Disk/
  Bus/
    Acpi/
    Ide/
    Pci/
    Usb/
    Serio/
  Cpu/
    0/
    1/
  Input/
  Net/
  Shm/
  Stdin -> /proc/self/fd/0
  Stdout ->
  Stderr ->

Learn KoraOS

  • Krishshell
  • File navigaion
  • User managmen
  • Networl Managment
  • System initialization
  • Basic system administration
    • File navigation
    • Install new programs
    • Use of krish shell
    • Manage users account
    • Disk and devices
    • Backu and updates
    • Network
  • Hack the system
    • Compil kernel
    • Devices and drivers
    • Customize dstributions
    • Improve performances
    • Fixing issues
  • Network admnistration
    • Secure a connection
    • Network security
    • Firewall setup
    • Security policy
    • Measure security
  • Cloud applicative system
    • Configure services
    • Manage accounts
    • Peer-to-peer
    • Distributed computing

logon

  • top menu lang - allow to switch language and keyboard layout

  • top menu net - select network / wifi

  • top menu vol - change volume level/ mixer

  • clock - show calendar and tz info

  • access - show dialog list of plugins (0)

  • power - sleep, hibernate, restart, shutdown, update request

  • log as guest, show popup with username prompt, combobox for cloud service and password (req or tmp)

  • manage users, go to system global settings

New account

  • user Id (hidden)
  • username
  • password
  • first name
  • email
  • location (combo free)
  • language (combo)
  • keyboard (combobox)
  • domain (combobox?)
  • groups (multi select list or combo)

Technotes

(CC BY-NC 4.0)

  • Cloud account
  • Extendable syscalls
  • Fork or not to fork
  • Video stream, as kernel resx

Scripts static analyzer

Tool to analyze headers deps (part of compilor, not found, or private

core utils

base64, basename, cal, cat, dirname, diff, false, hd, pinky, ps, true, uname, xargs, yes

FS: ls, chmod, chown, cp, dd, df, du, link, ln, mkdir, mkfifo, mknod, mktemp, mv, readlink, rm, rmdir, stat, touch, truncate, unlink

Next: comm, copy, csplit, cut, date, echo, env, expand, Expr, factor, fmt, fold, getlimits, groups, head, hostid, hostname, id, install, join, kill, nice, nl, nohup, nproc, paste, pathchk, pr, printenv, printf, ptx, pwd, runcon, seq, setuidgid, shred, shuf, sleep, sort, split, stdbuf, su, sum, sync, tac, tail, tee, test, timeout, tr, tsort, unexpand, uniq, uptime, users, wc, who

long mode


References

Paging

IA-32 PML4 FF80 0000 0000 256Tb PDPT 007F C000 0000 512Gb PD 0000 3FE0 0000 1Gb PT 0000 001F F000 2Mb PO 0000 0000 0FFF 4Kb

PAE PDPT 0000 C000 0000 4Gb PD 0000 3FE0 0000 1Gb PT 0000 001F F000 2Mb PO 0000 0000 0FFF 4Kb

32 PD 0000 FFC0 0000 4Gb PT 0000 003F F000 4Mb PO 0000 0000 0FFF 4Kb

categories

  • kernel architecture port (kernel startup, cups and memory handling)
  • kernel tasks and sessions (scheduler logic, security, thread management)
  • userspace applications (shell, desktop ui, syscalls)
  • file systems support (vfs, drivers fs, network stack, graphics)
  • external hardware drivers (drivers for external devices, bus...)