ディレクトリ構成

/ └─ usr ├─ include(stdio.h等のヘッダ) │ └─ w32api(windows.h等のwindowsヘッダ) │ (windowsのランライムライブラリ用のcファイル) │ ├─ bin(cygwin1.dll等) │ (gcc,x86_64-pc-cygwin-gcc,x86_64-w64-mingw32-gcc,i686-w64-mingw32-gcc) │ ├─ l…

フォント

使用するフォント ReactOSの日本語のフォントはDroid Sans Fallbackが標準になっているようですが、svnからダウンロードしたReactOSのソースには、Droid Sans Fallbackは含まれていないようです。 そのため、Droid Sans Fallbackのフォントを入れてみたので…

ime探検(2)タスクトレイ

タスクトレイの表示 windows2000 キーボード ステータスアイコン 選択表示 英語キーボード EN (アイコンあり)English(United States) MS-IME MS-IMEのアイコン (アイコンあり)Microsoft IME 2000(Japanese) MZ-IME MZ-IMEのアイコン (アイコンあり)MZ-…

ime探検(1)調べものなど

問題 MZ-IMEをインストールしたが、コントロールパネルに出てこないので、選択できない。 対策など レジストリに直接登録すると、コントロールパネルに出てくるようになり、選択できるようになる。 タスクトレイにも出てくるようになるが、windows2000とは、…

kalloc.c

xv6

// Physical memory allocator, intended to allocate // memory for user processes, kernel stacks, page table pages, // and pipe buffers. Allocates 4096-byte pages. #include "types.h" #include "defs.h" #include "param.h" #include "memlayout.h…

swtch.S

xv6

# Context switch # # void swtch(struct context **old, struct context *new); # # Save current register context in old # and then load register context from new. .globl swtch swtch: movl 4(%esp), %eax movl 8(%esp), %edx # Save old callee-sav…

proc.c

xv6

#include "types.h" #include "defs.h" #include "param.h" #include "memlayout.h" #include "mmu.h" #include "x86.h" #include "proc.h" #include "spinlock.h" struct { struct spinlock lock; struct proc proc[NPROC]; } ptable; static struct proc *…

proc.h

xv6

// Per-CPU state struct cpu { uchar apicid; // Local APIC ID struct context *scheduler; // swtch() here to enter scheduler struct taskstate ts; // Used by x86 to find stack for interrupt struct segdesc gdt[NSEGS]; // x86 global descriptor …

vm.c

xv6

#include "param.h" #include "types.h" #include "defs.h" #include "x86.h" #include "memlayout.h" #include "mmu.h" #include "proc.h" #include "elf.h" extern char data[]; // defined by kernel.ld pde_t *kpgdir; // for use in scheduler() // Set…

spinlock.c

xv6

// Mutual exclusion spin locks. #include "types.h" #include "defs.h" #include "param.h" #include "x86.h" #include "memlayout.h" #include "mmu.h" #include "proc.h" #include "spinlock.h" void initlock(struct spinlock *lk, char *name) { lk->n…

spinlock.h

xv6

// Mutual exclusion lock. struct spinlock { uint locked; // Is the lock held? // For debugging: char *name; // Name of lock. struct cpu *cpu; // The cpu holding the lock. uint pcs[10]; // The call stack (an array of program counters) // th…

main.c

xv6

#include "types.h" #include "defs.h" #include "param.h" #include "memlayout.h" #include "mmu.h" #include "proc.h" #include "x86.h" static void startothers(void); static void mpmain(void) __attribute__((noreturn)); extern pde_t *kpgdir; ext…

entryother.S

xv6

#include "asm.h" #include "memlayout.h" #include "mmu.h" # Each non-boot CPU ("AP") is started up in response to a STARTUP # IPI from the boot CPU. Section B.4.2 of the Multi-Processor # Specification says that the AP will start in real mo…

entry.S

xv6

# The xv6 kernel starts executing in this file. This file is linked with # the kernel C code, so it can refer to kernel symbols such as main(). # The boot block (bootasm.S and bootmain.c) jumps to entry below. # Multiboot header, for multi…

elf.h

xv6

// Format of an ELF executable file #define ELF_MAGIC 0x464C457FU // "\x7FELF" in little endian // File header struct elfhdr { uint magic; // must equal ELF_MAGIC uchar elf[12]; ushort type; ushort machine; uint version; uint entry; uint p…

mmu.h

xv6

// This file contains definitions for the // x86 memory management unit (MMU). // Eflags register #define FL_CF 0x00000001 // Carry Flag #define FL_PF 0x00000004 // Parity Flag #define FL_AF 0x00000010 // Auxiliary carry Flag #define FL_ZF…

asm.h

xv6

// // assembler macros to create x86 segments // #define SEG_NULLASM \ .word 0, 0; \ .byte 0, 0, 0, 0 // The 0xC0 means the limit is in 4096-byte units // and (for executable segments) 32-bit mode. #define SEG_ASM(type,base,lim) \ .word ((…

x86.h

xv6

// Routines to let C code use special x86 instructions. static inline uchar inb(ushort port) { uchar data; asm volatile("in %1,%0" : "=a" (data) : "d" (port)); return data; } static inline void insl(int port, void *addr, int cnt) { asm vol…

defs.h

xv6

struct buf; struct context; struct file; struct inode; struct pipe; struct proc; struct rtcdate; struct spinlock; struct sleeplock; struct stat; struct superblock; // bio.c void binit(void); struct buf* bread(uint, uint); void brelse(struc…

memlayout.h

xv6

// メモリのレイアウト #define EXTMEM 0x100000 // extended memoryの開始アドレス #define PHYSTOP 0xE000000 // 物理メモリの先頭 #define DEVSPACE 0xFE000000 // 他のデバイスは、より高いアドレスにある // Key addresses for address space layout (s…

param.h

xv6

#define NPROC 64 // プロセスの最大の個数 #define KSTACKSIZE 4096 // プロセスごとのカーネルスタックのサイズ #define NCPU 8 // CPUの最大の個数 #define NOFILE 16 // プロセスごとのオープンできるファイルの個数 #define NFILE 100 // システムご…

types.h

xv6

typedef unsigned int uint; typedef unsigned short ushort; typedef unsigned char uchar; typedef uint pde_t;

.bash_profileと.bashrc

.bash_profileは、最初に1度だけ実行される。 .bashrcはminttyを開きなおすたびに実行される。 ~/.bash_profile #gdbでデバッグするために、stackdumpではなく、coreを吐くように設定 export CYGWIN=error_start=dumper #.bashrcを実行 test -r ~/.bashrc &…

linuxで動作するCygwin(32bit)用のクロスコンパイラ

cygwin32 cygwin64 linux32 コメント $ gcc -v hello.c $ i686-pc-cygwin-gcc -v hello.c 組み込み spec を使用しています。 組み込み spec を使用しています。 COLLECT_GCC=gcc COLLECT_GCC=i686-pc-cygwin-gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-c…

アンインストール

windows 7以降でUWINをアンインストールする方法は、https://www.mail-archive.com/uwin-users@lists.research.att.com/msg00120.htmlを参照。takeownはwindows xpにはないため、変更が必要。以下、上記より転載。 caclsは古いので、icaclsに変更したほうが…

/etc/fstab

windowsのc:ドライブを/cygdrive/cではなく、/cで見たい。 /etc/fstab none / cygdrive binary,posix=0,user 0 0 cygwinを一度終了し、確認 $ mount -p Prefix Type Flags / user binmode

梅フォントの追加

/media/font/docにフォントのライセンスを追加 /media/fontにフォント本体(*.ttf)を追加 /media/fontのCmakeLists.txtにフォントファイルを追記ライセンス文自体をバイナリに同梱させるやり方がわからない...

雑記

日本語のソースをcp932で書くと文字化けしない。 どこで設定している?

/base/system

autochk bootok diskpart expand format logonui lsass msiexec インストーラ wineからそのままコピー? regsvr32 rundll32 runonce services smss subst userinit winlogon 戻る d:id:piropirostar:20150512:1431438484

/base/services

audiosrv Audio eventlog Event Logging rpcss RPCサブシステム schedsvc スケジュール spoolsv スプーラ srvsvc ファイル共有のserver Lanmanserver svchost svchostサブシステム tcpsvcs TCP/IPサービスアプリケーション telnetd telnetd tftpd tftpd http…