os

An operating system
git clone https://erai.gay/code/os/
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2025-07-15 19:37Don't produce call graph outputerai4+33-33
2025-06-07 07:41riscv backenderai6+6164-1215
2025-06-07 06:33fix aarch64 statbuferai1+3-4
2025-06-07 06:31add binary constantserai3+58-0
2025-05-14 18:19mbr loadererai5+222-19
2025-05-13 04:28add arch independent statbuferai5+118-30
2025-05-12 23:13use getrandom instead of rdrandomerai4+79-77
2025-05-12 22:44add aarch64 targeterai17+37093-31424
2025-05-07 18:28move kernel to kernel.x86erai2+2-2
2025-05-07 18:24add -std=c89 to bootstraperai1+1-1
2025-05-07 18:17add syscall.x86.om to build.sherai2+2-2
2025-05-07 18:05use libc for bootstraperai4+901-551
2025-05-07 17:21isolate x86 specific stufferai9+2060-2036
2025-04-26 23:58add line numberserai5+169-336
2025-04-26 20:53remove peg parsererai14+6250-18486
2025-04-26 16:19create ast of the base languageerai6+10201-3814
2025-04-23 22:11move lalr action to end of reduceerai1+9-6
2025-04-23 21:37add semantic stack to parsererai6+990-758
2025-04-23 11:16parse lexical valueerai5+1469-1284
2025-04-23 10:35allow token tag to be zeroerai3+880-880
2025-04-23 10:16add actions to lexererai9+3527-2930
2025-04-23 06:54fix whitespaceerai12+169-169
2025-04-22 11:11add lalr actionserai7+2515-2101
2025-04-22 08:21less stack use in parsererai2+983-870
2025-04-22 07:55remove operators from lalr grammarerai2+850-1802
2025-04-21 14:24benchmark lalrerai5+5018-336
2025-04-20 14:36compute lalr lookaheaderai2+1205-63
2025-04-13 18:23generate correct lalr setserai2+40-42
2025-04-13 11:10generate slr setserai2+878-24
2025-04-12 14:25translate lalr peg to productionserai2+1159-1
2025-04-12 14:24add mkstrerai1+8-0
2025-04-11 02:19Change charset to [" instead of [[erai3+200-113
2025-04-10 01:02bootstraperai1+120-118
2025-04-10 01:01faster lexer benchmarkerai2+7-7
2025-04-10 00:49move lexlib into lexererai6+385-406
2025-04-09 20:05get lexer tag nameserai3+598-106
2025-04-09 19:39Add debug lexererai4+3302-71
2025-04-09 18:24Generate state tableserai6+484-83
2025-04-09 01:47allow CC override in bootstraperai1+1-1
2025-04-08 03:09define enums for lexer patternserai4+83-40
2025-04-07 21:24hopcroft minimizationerai4+651-20
2025-04-06 15:27powerset constructionerai4+1058-165
2025-04-06 01:19compile lexer to nfaerai5+1367-107
2025-03-29 01:01add lexer sublanguage pegerai7+251-53
2025-03-28 02:50fix typoerai2+473-6
2025-03-28 02:40add lalr and lexer peg grammarserai1+19-1
2025-03-26 01:42change keyword lalr_grammar to lalrerai2+2-2
2025-03-24 18:18fold attic back into main treeerai34+726-9497
2025-03-24 16:45remove context senstitive lexical elementserai3+61-50
2025-03-24 14:48Make the grammar sublanguage fit bettererai3+480-393
2025-02-16 18:36broken optimizations.erai9+14477-10647
2025-02-15 22:27make table compileerai2+4-4
2025-02-15 22:27remove more magic numberserai2+7-7
2025-02-15 20:54backlink irerai2+135-68
2025-02-15 20:53integer hash tableerai1+175-0
2025-02-15 20:53fewer magic numbers in alloc.omerai2+13-1
2025-02-09 04:59loadb storeb don't need rexerai2+21-4
2025-02-09 04:45fold bit anderai2+217-203
2025-02-09 04:34add time to ci buildserai1+2-2
2025-02-09 04:22add cc0 size to clocerai3+369-366
2025-02-09 04:12add spaceerai2+6-6
2025-02-09 03:49only emit parens when needederai4+17485-18166
2025-02-09 00:51increase buffer to 64kerai5+105-85
2025-02-09 00:29rebootstraperai1+20988-27136
2025-02-09 00:28directly genereate ir in pegerai9+792-463
2025-02-08 02:46merge peg into the omiltem languageerai8+356-338
2025-02-07 19:03combine cout and outerai4+299-209
2025-02-07 17:21remove line numbers from bootstraperai2+3-26508
2025-02-07 16:52Use rb tree for the main decl treeerai4+1187-663
2025-02-06 21:22remove peg.pegerai1+0-18
2025-02-06 02:03merge peg.peg and cc3.pegerai4+9771-10040
2025-02-06 01:50Use %prefix in pegerai6+1836-1513
2025-02-06 01:15don't cout unused variableserai2+5924-5014
2025-02-06 00:34shrink down size of cc0.cerai3+36478-55794
2025-02-06 00:10move cout to the atticerai1+0-0
2025-02-06 00:07fix varref folderai3+5-5
2025-02-05 23:32regenerate cc0.cerai1+89818-11648
2025-02-05 23:32Generate c code from irerai5+567-30
2025-02-05 14:38move comments arounderai2+57-53
2025-02-02 18:33flow control graph simplificationerai2+174-1
2025-02-02 17:47re-bootstraperai1+0-213
2025-02-02 17:45basic identities in foldingerai2+599-209
2025-02-01 17:46really dumb constant foldingerai3+467-103
2025-02-01 16:23remove unused functionserai18+187-1492
2025-02-01 15:50Add call grapherai8+163-51
2025-01-31 21:28moveabs -> mov (where possible)erai3+28-3
2025-01-31 21:00use rodata for stringserai3+216-82
2025-01-31 17:33add clocerai2+24-0
2025-01-31 16:20use the standard calling convetion in the kernelerai2+311-403
2025-01-31 02:58copy bootstraperai1+665-34
2025-01-31 02:51remove the manual compilererai3+193-951
2025-01-31 02:36use ir to generate codeerai12+1227-1496
2025-01-31 02:08all returnerai1+1-0
2025-01-30 00:59add _includ special caseerai4+95-38
2025-01-28 02:24enough ir to generate codeerai3+131-67
2025-01-27 22:47ir calling conventionerai2+350-175
2025-01-27 19:37Fix bug to fully zero init in generated c codeerai1+3-0
2025-01-27 19:37Add build.ymlerai1+9-0
2025-01-27 04:19Add ir codeerai4+1935-25
2025-01-24 15:46Add attic check.pyerai1+176-0
2025-01-24 15:45Add lines output to debug segverai8+296-54
2025-01-20 23:11run bootstraperai2+84-247
2025-01-20 23:09remove TYPECALLerai4+1-15
2025-01-20 18:37Better indentation only on braces and parenthesiserai1+34-2
2025-01-20 17:02truncate cpio ino to 32 bitserai1+1-1
2024-11-29 15:44remove doubled checkserai2+0-24
2024-11-26 04:41discard genericserai1+0-0
2024-11-23 19:54add syntax for genericserai7+351-138
2024-11-21 04:26use nilerai14+499-438
2024-11-21 04:23add nilerai6+32-4
2024-11-21 04:07require func in front of functionserai2+1-7
2024-11-21 04:06add func in front of functionserai34+684-682
2024-11-21 03:54allow func to define a functionerai2+15-9
2024-11-21 03:37remove colon casterai2+1-11
2024-11-21 03:34convert colon cast to aserai24+1322-1322
2024-11-21 02:38reserve aserai5+1353-1302
2024-11-20 18:03remove watch.sherai1+0-6
2024-11-18 05:13Add vimfileserai4+88-0
2024-11-18 03:43update build scripts to use *.omerai3+26-30
2024-11-18 03:39rename *.c to *.omerai44+0-0
2024-11-11 23:48Use 192.168.30.1 as the tftp servererai1+3-3
2024-11-02 19:47allow union in doterai1+2-2
2024-10-11 16:01Add unionserai7+439-129
2024-10-11 15:38Use rsdt instead of xsdterai1+13-27
2024-10-11 15:2663 bit numberserai8+261-241
2024-10-11 15:06Allow underscores in numberserai3+79-42
2024-10-07 22:42add peglib.c to LIBerai4+7-6
2024-10-07 22:33move peg_parse grammar to peg_newerai4+29-19
2024-10-01 03:35add symbol tableerai3+785-48
2024-09-30 03:32add .out to gitignoreerai1+1-0
2024-09-30 03:30add genlex to atticerai1+1115-0
2024-09-30 01:58separate typecheck passerai2+998-531
2024-09-30 01:16only output used functionserai7+376-535
2024-09-28 14:14add undefined evaluation order checkerai5+116-13
2024-09-25 21:02Add lpeg paper linkerai1+2-0
2024-09-24 01:56restore all in one bootstraperai1+9945-0
2024-09-24 01:54move cc0.c to atticerai1+0-0
2024-09-24 01:53revert cc0.c to cc8fe1a7405f48e3ca08f6559c01b4b305cc7db5erai1+4991-9931
2024-09-21 15:20move currently unused files to atticerai14+2-3
2024-09-20 18:38transliterate aes.cerai1+162-0
2024-09-20 18:25transliterate rsa.cerai1+266-0
2024-09-20 17:11all in one bootstraperai7+3825-3133
2024-09-18 03:27full type c translationerai9+1933-2263
2024-09-17 13:15bootstrap using the c generatorerai2+9226-4956
2024-09-17 13:12c generatorerai3+623-1
2024-09-17 13:09only output if compiling to objecterai4+88-26
2024-09-16 00:23remove hand parser in the self hosting compilererai3+30-26
2024-09-16 00:08fix band parse2erai1+1-0
2024-09-15 23:30canonical node outputerai1+24-1
2024-09-15 06:15use peg parser for the second stage parsererai16+2106-829
2024-09-14 22:35discard peg space nodeserai5+12-39
2024-09-14 22:22basic peg syntax error locationerai6+134-34
2024-09-14 19:35add check for pegpeg changeserai2+4-0
2024-09-14 19:30use peg.peg to parse pegerai3+370-471
2024-09-14 19:26peg.c use peglib.cerai2+93-320
2024-09-14 19:16escape peglib treeerai1+22-1
2024-09-14 19:07Use cc3.peg to parse into parse treeserai6+422-53
2024-09-14 16:10Translate peg to codeerai3+461-28
2024-09-13 19:25peg convert postfix to asterai1+95-25
2024-09-13 03:46peg parse peg.peg into postfix notationerai4+379-181
2024-09-12 18:16fix build.sherai1+1-1
2024-09-12 18:15Add peg to build.sherai2+6-7
2024-09-12 16:48Less than minimal shellerai1+314-207
2024-09-12 16:47Add peg parser recognizererai5+670-0
2024-06-08 15:22just enough shell recognizingerai1+661-6
2024-06-05 16:00remove vi for nowerai2+2-13
2024-06-05 15:03basic sshd command ioerai2+257-60
2024-06-05 04:06sshd event looperai2+122-26
2024-06-05 03:26signal handlerserai4+109-14
2024-06-04 01:51ssh spawnerai2+628-7
2024-06-03 18:36ssh publickey userautherai4+492-205
2024-06-03 04:41ssh key exchangeerai2+755-65
2024-06-03 04:41add _ed25519_priverai1+7-0
2024-06-03 04:41streaming sha256erai1+43-0
2024-06-03 04:41add memcmperai1+22-0
2024-06-03 04:40accept with argserai1+5-2
2024-06-03 04:40remove serial ioerai1+3-67
2024-06-02 17:20userspace pages and elferai2+580-34
2024-05-28 02:34ramfserai5+735-24
2024-05-27 17:00ignore binarieserai1+2-0
2024-05-27 17:00add xxd commanderai5+194-3
2024-05-27 15:08kernel is larger than 1MB nowerai2+16-1
2024-05-27 15:03embed initramfserai13+226-60
2024-05-26 16:53simplify syntaxerai1+10-10
2024-05-26 16:18include sources in initramfserai1+36-10
2024-05-26 15:22basic commandserai13+473-56
2024-05-26 00:15remove qemu scriptserai13+174-19
2024-05-25 23:53always compile allerai2+49-25
2024-05-25 17:24basic syscallerai3+188-9
2024-05-21 08:09add rdranderai2+11-0
2024-05-20 03:31no printerai1+0-11
2024-05-20 03:29full ed25519erai4+539-41
2024-05-19 20:44Add x25519erai4+547-96
2024-05-16 02:53ignore interrupts until lapic is setuperai1+35-2
2024-05-15 01:57add unhexerai1+81-0
2024-05-09 16:23fix birational maperai1+9-6
2024-05-09 15:35Add sha512erai3+338-21
2024-05-09 14:43add comments to ed25519erai1+33-4
2024-05-09 06:45Add ed25519erai2+389-0
2024-05-09 01:59Add poly1305erai2+291-0
2024-05-09 00:43fix sha256erai3+68-4
2024-05-09 00:42Add chacha20erai2+249-0
2024-05-08 23:35tcp can failerai1+10-5
2024-05-08 23:34Add sha256erai3+554-0
2024-05-08 18:47tcp reader taskserai1+58-10
2024-05-08 18:12round robinerai1+167-27
2024-05-07 12:37Use framebuffererai1+42-11
2024-05-07 03:17bad tcp but workserai1+264-15
2024-05-06 21:32tcp recverai1+277-35
2024-05-06 19:13README -> README.mderai1+0-0
2024-05-06 17:59add READMEerai1+2-0
2024-05-06 03:14rst tcp connectionserai1+164-3
2024-05-05 20:12udp echoerai1+564-88
2024-05-04 21:46basic ip recverai1+695-266
2024-05-03 22:14use 4k pageserai1+14-7
2024-05-03 02:21ahci read+writeerai1+115-29
2024-05-01 21:54Fix trap errcodeerai2+7-1
2024-05-01 08:12clear interrupts on ahci porterai1+2-3
2024-05-01 08:08ahci basicserai2+576-256
2024-04-28 15:10add isc licenseerai1+13-0
2024-04-28 05:34dumb rtl 10ec:8168erai4+843-133
2024-04-24 16:20sorta boot on real hardwareerai1+67-28
2024-04-24 16:19Add pxe stuberai3+1001-0
2024-04-09 12:13pci bus enumerationerai5+546-20
2024-04-05 18:26Add serial nc for qemuerai4+77-3
2024-04-04 02:48interruptserai2+429-36
2024-04-02 05:18task switchingerai3+442-9
2024-03-30 15:21ud2 at end of _starterai4+16-1
2024-03-30 15:16Top half kernelerai2+39-48
2024-03-29 01:51multiboot bootstraperai3+251-7
2024-03-25 17:35add multiboot headererai3+170-20
2024-03-24 15:20Move enum to toperai1+61-65
2024-03-17 04:31Use more abstract assemblererai4+598-512
2024-03-16 17:42enum constantserai4+68-10
2024-03-16 16:06fix test for file existingerai1+3-1
2024-03-16 15:39Update bootstrap scripterai2+27-7
2024-03-16 15:39buffered file ioerai6+150-71
2024-03-16 15:39Refactor into separate parse, lex, compile stageserai14+4805-4815
2024-03-16 15:39multiple sourceserai5+542-330
2024-03-16 15:39infer void when no return type specifiederai3+84-70
2024-03-16 15:39argc, argv, envperai3+69-7
2024-03-16 15:39left assoc arithmeticerai3+189-145
2024-03-16 15:39fix heapsorterai2+69-55
2024-03-16 15:39find_tag: appenderai1+6-4
2024-03-16 15:39lex generatorerai4+1291-4
2024-03-16 15:39Add goto, labels, function pointerserai2+123-15
2024-03-16 15:39Add line context to prototypeerai2+3-0
2024-03-16 15:39Start at col 1erai2+1-1
2024-03-16 15:39Use cc2 as bootstraperai8+78-27
2024-03-16 15:39Add boostrap compilererai1+0-0
2024-03-02 07:01self compileserai2+4565-215
2024-02-29 07:13cc0 doneerai4+3319-819
2024-02-24 01:54minimal bootstraperai5+2156-0
2024-02-19 02:11Initial commiterai0+0-0